![]() |
Procedure vereinfachen.
Hallo,
Ich habe jetzt ein Programm bald vertig und versuche einige Teile zu verkürzen/vereinfachen. Z.B: diese TRadioGroup:
Delphi-Quellcode:
procedure TForm1.levelladenmenueClick(Sender: TObject);
begin case levelladenmenue.itemindex of 0: begin level:=1; spieltimer.enabled:=true; levelladenmenue.Visible:=false; hauptlabel1.caption:=''; status:='ladelevel'; end; 1: begin if levelladenmenue.Items[1]<>'<Level noch nicht verfügbar>' then begin level:=2; spieltimer.enabled:=true; levelladenmenue.Visible:=false; hauptlabel1.caption:=''; status:='ladelevel'; end; end; 2: begin if levelladenmenue.Items[2]<>'<Level noch nicht verfügbar>' then begin level:=3; spieltimer.enabled:=true; levelladenmenue.Visible:=false; hauptlabel1.caption:=''; status:='ladelevel'; end; end; 3: begin if levelladenmenue.Items[3]<>'<Level noch nicht verfügbar>' then begin level:=4; spieltimer.enabled:=true; levelladenmenue.Visible:=false; hauptlabel1.caption:=''; status:='ladelevel'; end; end; 4: begin if levelladenmenue.Items[4]<>'<Level noch nicht verfügbar>' then begin level:=5; spieltimer.enabled:=true; levelladenmenue.Visible:=false; hauptlabel1.caption:=''; status:='ladelevel'; end; end; end; end; Ich habe mehrere Sachen versucht um dieses Procedure zu vereinfachen aber jedesmal stoße ich an ein anderes Problemm. Wisst ihr eine vereinfachung die 100% das selbe macht wie meine Version? [edit=Luckie]Delphi-Tags. Mfg, Luckie[/edit] |
Re: Procedure vereinfachen.
Die Stelle
Delphi-Quellcode:
ist doch überall gleich, warum ist die in der case-Anweisung drinnne?
spieltimer.enabled:=true;
levelladenmenue.Visible:=false; hauptlabel1.caption:=''; status:='ladelevel'; Dann: Mach dir doch eine Prozedur:
Delphi-Quellcode:
Ungetestet und ohne detailierte Infos würde ich es so machen.
procedure TForm1.LoadLevel(Index: Integer);
begin level := Index; spieltimer.enabled := true; levelladenmenue.Visible := false; hauptlabel1.caption := ''; status := 'ladelevel'; end; procedure TForm1.ButtonOnClick(Sender: TObject); begin if levelladenmenue.Items[levelademenu.ItemIndex] <> '<Level noch nicht verfügbar>' then LoadLevel(levellademenue.ItemIndex); end; |
Re: Procedure vereinfachen.
Delphi-Quellcode:
sollte eigentlich funktionieren
procedure TForm1.levelladenmenueClick(Sender: TObject);
var levelOK : Boolean; begin levelOK := levelladenmenue.itemindex = 0; if levelladenmenue.itemindex > 0 then levelOK := levelladenmenue.Items[levelladenmenue.itemindex]<>'<Level noch nicht verfügbar>' ; if levelOK then begin level:=levelladenmenue.itemindex+1; spieltimer.enabled:=true; levelladenmenue.Visible:=false; hauptlabel1.caption:=''; status:='ladelevel'; end; end; |
Re: Procedure vereinfachen.
Hallo
Zu Luckie: Es könnte sein das if levelladenmenue.Items[4]<>'<Level noch nicht verfügbar>' (nicht) zutrifft, deshalb steht es in jeder case anweisung. Zu Gruber_Hans_12345: Werde ich mal ausprobieren. |
Re: Procedure vereinfachen.
Ich habe es gerade noch etwas vereinfacht. ;)
|
Re: Procedure vereinfachen.
Hallo,
funktioniert, danke! |
Re: Procedure vereinfachen.
Zitat:
|
Re: Procedure vereinfachen.
Hallo,
die von Gruber_Hans_12345 habe ich gemeint, deine geht aber auch :lol: danke! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:05 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 by Thomas Breitkreuz