![]() |
Re: Problem mit Code, seit Komponente zur Laufzeit erstellt
Erbsenzählerei. ;)
|
Re: Problem mit Code, seit Komponente zur Laufzeit erstellt
Nein OOP :mrgreen:
|
Re: Problem mit Code, seit Komponente zur Laufzeit erstellt
du meinst so zur Sicherheit, falls er da mal was Anderes macht,
Code:
damit wohl die folgenden Casts nicht plötzlich meckern. :angel2:
BracketOpen[zaehler]:= [b]TCheckBox[/b].Create(self);
Delphi-Quellcode:
if (Sender is TCheckBox) and (BracketOpen[i] = Sender) then
// hier man muß auch überall Kürzen if BracketOpen[i] = (Sender as TCheckBox) then ...........| |
Re: Problem mit Code, seit Komponente zur Laufzeit erstellt
Hallo,
eventuell geht's ja so:
Delphi-Quellcode:
procedure TForm1.CheckBoxSettingsChange(Sender: TObject);
var i:Integer; begin i:=0; while i < High(BracketOpen) do begin if BracketOpen[i] = Sender then Break; inc(i); end; if BracketOpen[i] = Sender then begin if (BracketOpen[i].Checked) then begin BracketOpen[i].Font.Color:=clRed; BracketOpen[i].Font.Bold:=true; end else begin BracketOpen[i].Font.Color:=clBlack; BracketOpen[i].Font.Bold:=false; end; // Die beiden Zeilen können alternativ genutzt werden, // es ist nur eine erforderlich, welche ist Geschmacksache. BracketOpen[i].Refresh; // <- Neu zeichnen lassen BracketOpen[i].Repaint; // <- Neu zeichnen lassen end; end; |
Re: Problem mit Code, seit Komponente zur Laufzeit erstellt
Die Schleife vorweg kannst Du Dir auch ersparen.
Ich würde es so schreiben...
Delphi-Quellcode:
procedure TForm1.CheckBoxSettingsChange(Sender: TObject);
begin with Sender as TCheckbox do begin Font.Bold:=checked; if checked then Font.Color:=clRed else Font.Color:=clBlack; Refresh; end; end; |
Re: Problem mit Code, seit Komponente zur Laufzeit erstellt
Hallo,
erstmal VIELEN DANK für die vielen Antworten!!! :thumb: Ok, dass euch meine Schleife verwirrt ist gut möglich, da ihr den Rest von meinem Code nicht kennt :) sie aber schon ihren Sinn hat ;)... Habe sämtliche Möglichkeiten, die ihr mir alle gegeben habt ausprobiert, aber nach wie vor wird es zwar rot aber immernoch nicht fett! Naja vielleicht werde ich einfach auf das fett verzichten! Liebe Grüsse! |
Re: Problem mit Code, seit Komponente zur Laufzeit erstellt
Hallo,
habe kein Lazarus/FreePascal. Bei Delphi geht das so:
Delphi-Quellcode:
Gibt es die Möglichkeit bei Dir eventuell auch?
CheckBox.Font.Style := fsBold;
|
Re: Problem mit Code, seit Komponente zur Laufzeit erstellt
Zitat:
Delphi-Quellcode:
CheckBox.Font.Style := [fsBold];
|
Re: Problem mit Code, seit Komponente zur Laufzeit erstellt
Hi,
ja diese Möglichkeit gibt es bei Lazarus auch, aber auch diese funktioniert nicht :( Grüsse |
Re: Problem mit Code, seit Komponente zur Laufzeit erstellt
Ich habe mal versucht das zu reproduzieren, bei mir klappt folgendes allerdings wunderbar:
man nehme ein neues Projekt, ziehe eine CheckBox auf das Formular, erstelle eine OnClick-Methode dafür. Ins OnCreate kommt
Delphi-Quellcode:
Dadurch wird eine zweite CheckBox zur Laufzeit erstellt. Ins OnClick kommt:
procedure TForm1.FormCreate(Sender: TObject);
begin with TCheckBox.Create(self) do begin SetBounds(200,10,100,20); Parent:=self; Caption := 'Dynamisch'; OnClick:=@CheckBox1Click; end; end;
Delphi-Quellcode:
Klickt man jetzt auf eine der CheckBoxen, wird dessen Caption Rot und Fett dargestellt. Klappt also wunderbar :gruebel:
procedure TForm1.CheckBox1Click(Sender: TObject);
begin with Sender as TCheckBox do begin Font.Color:=clRed; Font.Bold:=true; end; end; Klappt dieses Minibeispiel bei dir auch? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:16 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