Przechwytywanie wyjątków Invalid input value. Use escape key to abandon changes

simon_75

Znalazłem takie rozwiązanie na te komunikaty może sie komuś przyda...
Ja osobiście zastosowalem tę procedurę do okna z maską, kiedy po źle wprowdzonych danych wyskakiwał mi błąd: Invalid input value. Use escape key to abandon changes. Oto kod:

TForm1 = class(TForm)
  // .....
  private
    procedure Wyjatki(Sender: TObject; E: Exception);
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
  Application.OnException := Wyjatki;
end;

procedure TForm1.Wyjatki(Sender: TObject; E: Exception);
const
  blad  =  'Invalid input value.  Use escape key to abandon changes';
begin
  if E.Message = blad then
    MessageDlg('Zle wprowadzona dana',mtWarning,[mbYes],0);
end;

Można tak oprogramować inne wyjatki.

16 komentarzy

Przenoszę do FAQ bo to ludzkie pojęcie przechodzi. Gotowiec to program który "coś" robi i ma dołączony pełny listing albo źródła. To pasuje do FAQ ponieważ to porada jak usunąć upierdliwy komunikat, a nie program. Jeśli się coś nie podoba to niech Admin ustali gdzie go dać. Ale na moje oko to nie jest do Gotowców.

@Lardux: jak widać możesz :P
@simon_75:

<font color="green">

simon_75 napisał(a)

Drazni mnie natomiast gro pseudo programistow ktorzy (chyba z nodow) probuja udowodnic jacy oni nie sa
</span>
LOL? ;]

<font color="green">

simon_75 napisał(a)

Napisales ze jestes programista... tak chyba beta testerem bo masz czas poprawiac wpisy na forum.....
</span>
[glowa]

Małe sprostowanie - przecież nie napisałem, że jestem programistą...

A dajmy na to Adam Boduch, założyciel tego serwisu, który ma na koncie ponad 2500 modyfikacji artykułów czy ponad 3600 postów na forum (z tego co pamiętam) (o forum mówię, bo o nim wspomniałeś, ale chodziło Ci pewnie o arty) też jest leniem? Jak widać Ty też jesteś "beta testerem", gdyż miałeś czas napisać ten artykuł i potem "odświeżyć" go :D

<font color="green">

simon_75 napisał(a)

Pozdrawiam i zycze owocnych przedsiewziec programistycznych w poprawianiu forum
</span>
Dzięki ;)

nie moge nic dodac

nie moge dodac komentaza

a ja to wole robic tak, daje mi wieksza wladze nad kodem

try
costam...
except
on E:Exception do
      raise Exception.Create('Blad w procedurze bla bla bla: '+e.Message);
end;

Ostatni moj komentarz na tej stronie.... Nie obchodzi mnie to ze poprawisz znaki polskie czy co kolwiek... masz do tego prawo i juz.... po to umiescilem to rozwiazanie tutaj... bo sam potrzebuje pomocy... alfa i omego nie jestem.... Drazni mnie natomiast gro pseudo programistow ktorzy (chyba z nodow) probuja udowodnic jacy oni nie sa.... Informuje was ze przez takich jak wy nie chce mi sie juz ludziom pomagac.... i mysle ze sporo ludzi zniecheci sie do wstawiania czego kolwiek tutaj... przez takich jak wy np. Coldpeer... Napisales ze jestes programista... tak chyba beta testerem bo masz czas poprawiac wpisy na forum..... Pozdrawiam i zycze owocnych przedsiewziec programistycznych w poprawianiu forum.... simon_75:-)

Simon, jeszcze raz:

  1. Ja wprowadziłem polskie znaki do artykułu, nie do kodu!
  2. A co broni Cię przed:
MessageDlg('Źle wprowadzona dana' ...

?
PS. w Delphi od 2005 oraz ogólnie w .NET można używać polskich znaków diaktytycznych w zmiennych, funkcjach - ja nie wprowadziłem polskich znaków w kodzie, w ogóle żadnych zmian (w kodzie).

Czy chociaż zerknąłeś na treść, czy dałeś odpowiedź prosto z masztu po przeczytaniu loga w "Historii"?

simon_75: Ideą Wiki, na której jest oparty Coyote, jest swobodne poprawianie przez różnych użytkowników tekstów umieszczanych w serwisie. Nie chodzi tutaj o przywłaszczanie sobie artykułów. Umieszczając tutaj tekst zgadzasz się na to, że może on być modyfikowany przez innych. Wystarczy spojrzeć w historię aby się jednak dowiedzieć kto był oryginalnym autorem.

Zablokowałem edycję tego artykułu. Jeżeli nie odpowiada Ci to - powiedz, a artykuł może zostać usunięty z naszej bazy.

simon_75: cholera, człowieku, to nie jest artykuł, nie. To jest co_najwyżej_gotowiec.
Jeśli rzeczywiście chcesz jakoś pomóc, to przeczytaj najpierw to: http://4programmers.net/Pomoc/Zasady_redagowania_artykułów , najlepiej, ze 4 razy.

Bo nie znam jezyka programowania ktory uzywa polskich znakow... Jak bys duzo pisal (jak napisales) to nie przeszkadzalo by ci to w kodzie .... no coz poprawiac kazdy moze.... i to jest blad od tego sa komentarze....

migajek: przed chwila to bylo artykulem :>

no dobra ... ale czy to jest warte nazwania tego "gotowcem"? predzej faq ... :P

@simon_75:

Historia napisał(a)

Napisz cos sam Coldpeer

Simon_75 napisał(a)

Widze że sa osoby ktore przywlaszczja arty.... no.. no... jak ci cos przeszkadza w znakach PL to popraw sobie je w swoim kodzie...... Coldpeer

Wybacz, ale takimi twierdzeniami ośmieszasz się.

Nie rozumiesz idei powstałych tutaj artykułów. Każdy użytkownik może poprawiać teksty innych userów, gdy uzna, że można coś poprawić, zmienić, dodać - to właśnie dzięki temu baza liczy obecnie ponad 2600 artykułów. Tutaj cholera nie chodzi o to, żeby w polu "Ostatni autor" byl Twój nick. Nie spotkałem się jeszcze, żeby ktoś obrażał się za dokonanie zmian w jego tekście (nie zaznaczono, żeby niemodifikować czy coś - teksty domyślnie są na Creative Commons). A wg. zasad redagowania artykułów (dział Pomoc), zalecane jest stosowanie polskich znaków, a ja je wprowadziłem.

Po za tym u Ciebie nie było polskich znaków, a ja je dodałem, więc z jakiej racji piszesz "jak ci coś przeszkadza w znakach PL"? :-/

Jak Ci te warunki przeszkadzają, nikt nie trzyma Cię tu przed nie pisaniem artów :) Po za tym po co odświeżasz artykuł tylko po to, żeby zaznaczyć jaką Ty kupę solidnej roboty wykonałeś? :/

Co do "napisz coś sam Coldpeer" - A żebyś wiedział, że piszę i troche tego by się uzbierało i wiele z tych tekstów urozmaicili o dodatkowe / poprawili błędne informacje jacyś userzy, z czego się cieszę.

BTW: przy słowach, że przywłaszczam sobie arty - to było coś :D

No cóż, rozpisałem się chyba aż za bardzo. Sorry za zrzędzenie :P

Widze że sa osoby ktore przywlaszczja arty.... no.. no... jak ci cos przeszkadza w znakach PL to popraw sobie je w swoim kodzie...... Coldpeer

Nie dorwiesz, chociażby dlatego, że każdy nowy komponent, moduł etc. (po prostu każdy programista :) ) może definiować własne klasy wyjątków.

si, tylko skąd dorwać spis wszystkich wyjątków ??