AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen FreePascal Problem mit Code, seit Komponente zur Laufzeit erstellt werd
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit Code, seit Komponente zur Laufzeit erstellt werd

Ein Thema von luckybug83 · begonnen am 4. Feb 2009 · letzter Beitrag vom 11. Feb 2009
Antwort Antwort
Seite 2 von 3     12 3      
nuclearping

Registriert seit: 7. Jun 2008
708 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#11

Re: Problem mit Code, seit Komponente zur Laufzeit erstellt

  Alt 5. Feb 2009, 08:29
Erbsenzählerei.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#12

Re: Problem mit Code, seit Komponente zur Laufzeit erstellt

  Alt 5. Feb 2009, 08:38
Nein OOP
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.114 Beiträge
 
Delphi 12 Athens
 
#13

Re: Problem mit Code, seit Komponente zur Laufzeit erstellt

  Alt 5. Feb 2009, 09:17
du meinst so zur Sicherheit, falls er da mal was Anderes macht,
Code:
BracketOpen[zaehler]:= [b]TCheckBox[/b].Create(self);
damit wohl die folgenden Casts nicht plötzlich meckern.

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 ...........|
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#14

Re: Problem mit Code, seit Komponente zur Laufzeit erstellt

  Alt 5. Feb 2009, 12:56
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;
  Mit Zitat antworten Zitat
Bomberbb

Registriert seit: 23. Sep 2003
227 Beiträge
 
#15

Re: Problem mit Code, seit Komponente zur Laufzeit erstellt

  Alt 5. Feb 2009, 13:52
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;
  Mit Zitat antworten Zitat
luckybug83

Registriert seit: 19. Jan 2009
18 Beiträge
 
#16

Re: Problem mit Code, seit Komponente zur Laufzeit erstellt

  Alt 5. Feb 2009, 16:12
Hallo,
erstmal VIELEN DANK für die vielen Antworten!!!

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!
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#17

Re: Problem mit Code, seit Komponente zur Laufzeit erstellt

  Alt 5. Feb 2009, 16:50
Hallo,

habe kein Lazarus/FreePascal.
Bei Delphi geht das so:
CheckBox.Font.Style := fsBold; Gibt es die Möglichkeit bei Dir eventuell auch?
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#18

Re: Problem mit Code, seit Komponente zur Laufzeit erstellt

  Alt 5. Feb 2009, 17:02
Zitat von nahpets:
Hallo,

habe kein Lazarus/FreePascal.
Bei Delphi geht das so:
CheckBox.Font.Style := fsBold; Gibt es die Möglichkeit bei Dir eventuell auch?
Dann hast du ein anderes Delphi als alle anderen hier. Style ist eine Menge (set) und somit musst du auch eine Menge und nicht einen Aufzählungsmember zuweisen. Also geht es bei Delphi so:

CheckBox.Font.Style := [fsBold];
  Mit Zitat antworten Zitat
luckybug83

Registriert seit: 19. Jan 2009
18 Beiträge
 
#19

Re: Problem mit Code, seit Komponente zur Laufzeit erstellt

  Alt 6. Feb 2009, 16:11
Hi,
ja diese Möglichkeit gibt es bei Lazarus auch, aber auch diese funktioniert nicht

Grüsse
  Mit Zitat antworten Zitat
Benutzerbild von inherited
inherited

Registriert seit: 19. Dez 2005
Ort: Rosdorf
2.022 Beiträge
 
Turbo Delphi für Win32
 
#20

Re: Problem mit Code, seit Komponente zur Laufzeit erstellt

  Alt 8. Feb 2009, 14:05
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:
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;
Dadurch wird eine zweite CheckBox zur Laufzeit erstellt. Ins OnClick kommt:
Delphi-Quellcode:
procedure TForm1.CheckBox1Click(Sender: TObject);
begin
  with Sender as TCheckBox do
  begin
    Font.Color:=clRed;
    Font.Bold:=true;
  end;
end;
Klickt man jetzt auf eine der CheckBoxen, wird dessen Caption Rot und Fett dargestellt. Klappt also wunderbar
Klappt dieses Minibeispiel bei dir auch?
Nikolai Wyderka

SWIM SWIM HUNGRY!
Neuer Blog: hier!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:16 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz