Programowanie w języku Delphi » FAQ

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

  • 2006-09-06 11:04
  • 16 komentarzy
  • 1050 odsłon
  • Oceń ten tekst jako pierwszy
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

Demonical Monk 2008-01-16 10:38

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.

Coldpeer 2006-09-09 01:31

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

<font color=green><quote=simon_75>Drazni mnie natomiast gro pseudo programistow ktorzy (chyba z nodow) probuja udowodnic jacy oni nie sa</quote></font>
LOL? ;]

<font color=green><quote=simon_75>Napisales ze jestes programista... tak chyba beta testerem bo masz czas poprawiac wpisy na forum.....</quote></font>
[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><quote=simon_75>Pozdrawiam i zycze owocnych przedsiewziec programistycznych w poprawianiu forum</quote></font>
Dzięki ;)

Lardux 2006-09-08 16:06

nie moge nic dodac

Lardux 2006-09-08 16:03

nie moge dodac komentaza

Lardux 2006-09-08 16:02

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;

simon_75 2006-09-08 10:32

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:-)

Coldpeer 2006-09-06 16:31

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"?

Ktos 2006-09-06 11:08

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.

Pawel200x.5 2006-09-06 10:47

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.

simon_75 2006-09-05 12:15

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....

Pawel200x.5 2006-09-01 09:52

migajek: przed chwila to bylo artykulem :>

migajek 2006-08-30 22:01

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

Coldpeer 2006-08-29 23:05

@Simon_75:

<quote=Historia>Napisz cos sam Coldpeer</quote>

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

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

simon_75 2006-08-29 22:51

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

brodny 2005-02-10 21:01

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.

angel2953 2005-02-10 15:21

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