![]() |
procedure in Checkbox nicht nochmal in OnShow schreiben?
Ich benötige 2x den exakt gleichen Text in der Checkbox und in Form2.OnShow, damit beim starten die Einstellungen übernommen werden.
Gibt es da ne Möglichkeit/ nenn Befehl, dass ich das ganze nur einmal schreiben muss.
Delphi-Quellcode:
procedure TForm2.CheckBox15Click(Sender: TObject);
begin if Form2.checkbox15.Checked then begin Form2.blau.Enabled:=True; Form2.pink.Enabled:=True; Form2.E12z.Enabled:=True; Form2.blau.Color:=clWindow; Form2.pink.Color:=clWindow; Form2.E12z.Color:=clWindow; begin If (E12Z.ItemIndex = 1) Or (E12Z.ItemIndex = 3) Or (E12Z.ItemIndex = 4) Or (E12Z.ItemIndex = 5) Then Begin A12Z.Enabled:=False; A12Z.Color:=cl3DLight; end else begin A12Z.Enabled:=True; A12Z.Color:=clWindow; end; end; end else begin Form2.blau.Enabled:=False; Form2.pink.Enabled:=False; Form2.E12z.Enabled:=False; Form2.A12z.Enabled:=False; Form2.blau.Color:=cl3DLight; Form2.pink.Color:=cl3DLight; Form2.E12z.Color:=cl3DLight; Form2.A12z.Color:=cl3DLight; end; end;
Delphi-Quellcode:
procedure TForm2.FormShow(Sender: TObject);
begin if Form2.checkbox15.Checked then begin Form2.blau.Enabled:=True; Form2.pink.Enabled:=True; Form2.E12z.Enabled:=True; Form2.blau.Color:=clWindow; Form2.pink.Color:=clWindow; Form2.E12z.Color:=clWindow; begin If (E12Z.ItemIndex = 1) Or (E12Z.ItemIndex = 3) Or (E12Z.ItemIndex = 4) Or (E12Z.ItemIndex = 5) Then Begin A12Z.Enabled:=False; A12Z.Color:=cl3DLight; end else begin A12Z.Enabled:=True; A12Z.Color:=clWindow; end; end; end else begin Form2.blau.Enabled:=False; Form2.pink.Enabled:=False; Form2.E12z.Enabled:=False; Form2.A12z.Enabled:=False; Form2.blau.Color:=cl3DLight; Form2.pink.Color:=cl3DLight; Form2.E12z.Color:=cl3DLight; Form2.A12z.Color:=cl3DLight; end; end; |
Re: procedure in Checkbox nicht nochmal in OnShow schreiben?
Delphi-Quellcode:
Du musst einfach nur eine eigene Prozedur schreiben. Einfach das Schlüsselwort "Procedure", danach der Prozedurenname (ggf. Parameter), dann ein Semikolon. Und danach der Anweisungsblock (Begin-End). In den Anweisungsblock schreibst du deinen Code rein. Dann kannst du später die Prozedur aufrufen. Aber achtung! Die Prozedur muss VOR dem COde, der die Prozedur aufruft!
procedure EineProzedur; // Name kann man (fast) beliebig wählen, sollte dann aber auch beim Aufruf geändert werden!
begin if Form2.checkbox15.Checked then begin Form2.blau.Enabled:=True; Form2.pink.Enabled:=True; Form2.E12z.Enabled:=True; Form2.blau.Color:=clWindow; Form2.pink.Color:=clWindow; Form2.E12z.Color:=clWindow; begin If (E12Z.ItemIndex = 1) Or (E12Z.ItemIndex = 3) Or (E12Z.ItemIndex = 4) Or (E12Z.ItemIndex = 5) Then Begin A12Z.Enabled:=False; A12Z.Color:=cl3DLight; end else begin A12Z.Enabled:=True; A12Z.Color:=clWindow; end; end; end else begin Form2.blau.Enabled:=False; Form2.pink.Enabled:=False; Form2.E12z.Enabled:=False; Form2.A12z.Enabled:=False; Form2.blau.Color:=cl3DLight; Form2.pink.Color:=cl3DLight; Form2.E12z.Color:=cl3DLight; Form2.A12z.Color:=cl3DLight; end; end; procedure TForm2.FormShow(Sender: TObject); begin EineProzedur; end; procedure TForm2.CheckBox15Click(Sender: TObject); begin EineProzedur; end; //edit: Das natürlich nur, wenn die Prozedur vorher nicht deklariert wurde, zum Beispiel als Methode ;) |
Re: procedure in Checkbox nicht nochmal in OnShow schreiben?
Ich Dank Dir!
|
Re: procedure in Checkbox nicht nochmal in OnShow schreiben?
Moin,
wenn du ein TForm2 vor den Prozedurnamen schreibst und die Prozedure noch im Privatebereich der Form integierst kannst du in deiner Prozedure die ganzen Form2's weglassen.
Delphi-Quellcode:
und aus
type
TForm2 = class(TForm) Label1: TLabel; ... private { Private-Deklarationen } procedure EineProzedure; public { Public-Deklarationen } end;
Delphi-Quellcode:
machst du
procedure EineProzedur;
begin ... end;
Delphi-Quellcode:
und läßt anschließend alle Form2-Ausdrücke weg :thumb:
procedure TForm2.EineProzedur;
begin ... end; |
Re: procedure in Checkbox nicht nochmal in OnShow schreiben?
du kannst auch einfch nur eine der beiden proceduren deines ausgangspostings stehen lassen, und die anderen jeweils beim OnClick der CheckBox15 und beim OnShow der Form angeben, da beide proceduren ja auch die selben parameter benötigen. ist vielleicht einfacher.
ach ja und wenn du schon eine methode einer klasse schreibst, dann lass bitte das Form2 die ganze zeit da weg - wenn du jetzt z.b. eine 2. form namens Form3 erstellen würdest, könntest du sonst diese beiden proceduren so nicht benutzen, da sie komplett nur mit der Form2 arbeiten. |
Re: procedure in Checkbox nicht nochmal in OnShow schreiben?
Zitat:
|
Re: procedure in Checkbox nicht nochmal in OnShow schreiben?
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:35 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