Procedura Exit ? ;-)

0

Dzień dobry, mam trochę głupie pytanie ale i tak spytam....

Da się zrobić własną procedurę Exit ?

Mam w kodzie po prostu mnóstwo miejsc w których daje:

begin
  WriteLn('bla bla bla');
  Exit;
end;

a miło by było gdyby dało się to zastąpić jednym

MyExit('bla bla bla')

ale za pewne procedura Exit to coś więcej niż tylko procedura
i nie da się samemu czegoś takiego ulepić ?

0
procedure MyExit(s: string);
begin
  Writeln(s);
  Halt(0);
end;

To być może jest tym, o co Ci chodzi, ale nie gwarantuję :)

0

Mój gościu od PP dostaje ataku paniki jak słyszy o Halt,Goto lub repeat until keypressed :D

0

Powiedzmy że w jakimś sensie Halt spełnia moje oczekiwania
bo w końcu przerywa bieżącą procedurę tyle że robi to zbyt
drastycznie bo wraz z całym programem :-D

0
procedure DoIt;
begin
  Abort;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage('1');
  DoIt;
  ShowMessage('2');
end;

Po naciśnięciu buttona pojawia sie tylko komunikat '1'. Mam nadzieje że Abort nie ma jakichs ubocznych efektów :-) .

0

Mam nadzieje że Abort nie ma jakichs ubocznych efektów :-) .

Ma, nie ma jej w TP, a o TP tu się chyba rozchodzi bo WriteLn było :P. Jeśli piechnatowi chodzi o precedurę która by przerywała poprzednią prockę to wątpię żeby dało się prosto zrobić tak. Może dałobysię jakoś wyskoczyć zprocedury wywołującej zamykającą prockę? Hehe nie wiem mieszam, ale może coś z ExitProc? :P

0

a o TP tu się chyba rozchodzi

Tzn. pisze w Delphi ale aplikacje konsolową i to co napisał
Dominik działa ładnie w programie z formą, natomiast w aplikacji
konsolowej powoduje zamknięcie całego programu...

Szkoda że w module System nie ma tej procedury, tzn
niby jest ale jej nie ma...

0

Może da się jakoś w asmie pobrać adres poprzedniej procedury i wykonać skok?

1 użytkowników online, w tym zalogowanych: 0, gości: 1