![]() |
Procedure beenden
hi
allso ich würde gerne ein procedure beenden wenn ein if parment zutrifft so in der art:
Delphi-Quellcode:
weiß jemand wie der befehl ist? mit break gehts net und mit end auch net :(procedure x; if y = 0 then ...; if y = 1 then <hier der endbefehl>; if y = 2 then ...; danke in voraus mfg vip11 edit: sufu schon benutzt |
Re: Procedure beenden
Hallo,
das ist ganz einfach, verwende den Befehl "exit". |
Re: Procedure beenden
Das ist aber schlechter Stil. Im Beispielfall wäre ein case-Konstrukt dafür viel besser geeignet, würde weniger Vergleiche machen und das selbe tun - und in vielen anderen Fällen lässt sich ein exit ähnlich auflösen. Was natürlich nicht heißt, dass es generell nutzlos wäre ;)
|
Re: Procedure beenden
ok thx dan weiß ich nicht was ich falsch gemacht hab:
ich will nen kleines prog machen wo der butten einem wegspringt und hab den quelltext:
Delphi-Quellcode:
aber sobalt ich über die buttenposition gehe springt die über alle positionenn und geht wieder runter
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Label1: TLabel; procedure Button1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; pos : integer; implementation {$R *.dfm} procedure TForm1.Button1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin //1->2// if pos = 1 then button1.Top := 120; if pos = 1 then button1.Left := 8; if pos = 1 then pos := 2; if pos = 1 then exit; //2->3// if pos = 2 then button1.Top := 120; if pos = 2 then button1.Left := 152; if pos = 2 then pos := 3; if pos = 2 then exit; //3->4// if pos = 3 then button1.Top := 137; if pos = 3 then button1.Left := 152; if pos = 3 then pos := 4; if pos = 3 then exit; //4->5// if pos = 4 then button1.Top := 64; if pos = 4 then button1.Left := 8; if pos = 4 then pos := 5; if pos = 4 then exit; //5->1// if pos = 5 then button1.Top := 176; if pos = 5 then button1.Left := 8; if pos = 5 then pos := 1; if pos = 5 then exit; end; procedure TForm1.FormCreate(Sender: TObject); begin pos := 1; end; end. |
Re: Procedure beenden
Zitat:
Delphi-Quellcode:
pos wird auf 2 gesetzt. Das exit wird deshalb nicht ausgeführt.
if pos = 1 then pos := 2;
if pos = 1 then exit; |
Re: Procedure beenden
Delphi-Quellcode:
so sollte es auch besser aussehen...
if pos = 1 then
begin button1.Top := 120; button1.Left := 8; pos := 2; exit; end; [Edit] Tippfehler^^ [/Edit] |
Re: Procedure beenden
Zitat:
Delphi-Quellcode:
(Wie Dax bereits sagte)
case pos of
1:begin button1.Top := 120; button1.Left := 8; pos := 2; exit; end; 2:begin //usw.. |
Re: Procedure beenden
Zitat:
|
Re: Procedure beenden
Danke an alle hab mir sehr geholfen :) super forum
mfg vip11 |
Re: Procedure beenden
hmm, ein case bei 5 Werten ist grenzwertig. Lohnt sich das in Sachen geschwindigkeit da wirklich schon? Denn ein Case ist nicht immer schneller.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:13 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz