Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Buttons und Labels aktualisieren (https://www.delphipraxis.net/115573-buttons-und-labels-aktualisieren.html)

rollstuhlfahrer 16. Jun 2008 14:31

Re: Buttons und Labels aktualisieren
 
was assigned wirklich macht weiß ich (und mehrere andere auch) nicht. Eigentlich sollte nur eine Prüfung auf nil stattfinden, was nicht zu einer Exception führen sollte.

rollstuhlfahrer

angos 16. Jun 2008 14:44

Re: Buttons und Labels aktualisieren
 
Zitat:

Zitat von Privateer3000
Einige Parameter der Buttons und Labels,
werden aus der db geholt.
Delphi-Quellcode:
if not Assigned(main.form.plbox.findcomponent('plnr'+plid)as TsButton) then begin
   tibut:=TsButton.Create(main.form.plbox); tibut.Parent:=main.form.plbox; tibut.Visible:=True;
   tibut.Name:='plnr'+plid;
   end;
zu lösen versuche ich wie oben
es soll geprüft werden ob die komponente existiert
wenn ja werden nur caption und farbe geändert
wenn nein wird sie neu erstellt.
Aber obiger Source verursacht eine shutzverletzung
Warum?


Das Problem scheint mir hier nicht Assigned zu sein, sondern das Casten auf TsButton.


Delphi-Quellcode:
if not Assigned(main.form.plbox.findcomponent('plnr'+plid)as TsButton) then
Wenn das Objekt nicht existiert oder wenn das Objekt kein TsButton ist, wirds genau an der stelle knallen:

Delphi-Quellcode:
main.form.plbox.findcomponent('plnr'+plid)as TsButton


Sowas ist vielleicht eher etwas was du suchst:

Delphi-Quellcode:
if Assigned(main.form.plbox.findcomponent('plnr'+plid)) then
  if (main.form.plbox.findcomponent('plnr'+plid) is TsButton) then
  begin

  end;

Gruß
Angos

Privateer3000 16. Jun 2008 15:16

Re: Buttons und Labels aktualisieren
 
Zitat:

Zitat von angos

Wenn das Objekt nicht existiert oder wenn das Objekt kein TsButton ist, wirds genau an der stelle knallen:

Delphi-Quellcode:
main.form.plbox.findcomponent('plnr'+plid)as TsButton


Sowas ist vielleicht eher etwas was du suchst:

Delphi-Quellcode:
if Assigned(main.form.plbox.findcomponent('plnr'+plid)) then
  if (main.form.plbox.findcomponent('plnr'+plid) is TsButton) then
  begin

  end;

Gruß
Angos

Das leuchtet mir ein

Vielen Dank an alle!!!


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:48 Uhr.
Seite 2 von 2     12   

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