Delphi-PRAXiS

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 Caption eines dyn. erzeugten Panels wird nicht angezegt (https://www.delphipraxis.net/19608-caption-eines-dyn-erzeugten-panels-wird-nicht-angezegt.html)

lkz633 6. Apr 2004 00:26


Caption eines dyn. erzeugten Panels wird nicht angezegt
 
Hallo,

ich habe folgenden(gekuerzten) Code:

Code:
  for i:=0 to anzahl_panels -1 do begin
    panels[i]:= tpanel.create(fdirectsync);
    with panels[i] do begin
      name:= 'Panels'+inttostr(i);
      caption:= '';
      parent:= fdirectsync.ScrollBox1;
      hint:= adoquery.FieldDefs.Items[i].FieldClass.ClassName;
      if (hint='TAutoIncField') and (adoquery=dm_data.aq_target) then
        Caption:= 'Einem AutoInc - Feld kann kein Wert zugewiesen werden';
    end;
Das klappt auch so, nur die Caption wird nicht angezeigt, obwohl beim Debuggen in diese Zeile gesprungen wird.
Aendere ich jedoch die 2.Zeile zu panels[i]:= tpanel.create(fsourcetarget) um, so klappt es. (Das will ich aber eigentlich nicht, da ich dann 100 FindComponent Prozeduren umschreiben muss). Der Code stammt aus der Unit von fsourcetarget.

Wiso wird die Caption so nicht angezeigt?

Gruss und Dank
lkz633

kiar 6. Apr 2004 00:34

Re: Caption eines dyn. erzeugten Panels wird nicht angezegt
 
hallo,
habe mal deinen code überflogen.

in caption steht nichts drin?
Delphi-Quellcode:
caption:= '';
raik

Robert_G 6. Apr 2004 00:57

Re: Caption eines dyn. erzeugten Panels wird nicht angezegt
 
Sorry, aber :lol:
Entweder du hast dich vertippt, oder nochmal :lol:

lkz633 6. Apr 2004 08:11

Re: Caption eines dyn. erzeugten Panels wird nicht angezegt
 
hallo,

in der vorletzen Zeile kommt doch nochmal ein Caption

lkz633

s14 6. Apr 2004 08:18

Re: Caption eines dyn. erzeugten Panels wird nicht angezegt
 
Hallo,
wenn die Bedingung nicht stimmt wird aber in die Caption nicht geschrieben!!

Gruß
s14

lkz633 6. Apr 2004 08:22

Re: Caption eines dyn. erzeugten Panels wird nicht angezegt
 
Danke fuer eure Antworten, aber bitte lest doch das Posting genau, bevor Ihr solche Antworten gebt.

Gruss lkz633

Shylock 6. Apr 2004 08:31

Re: Caption eines dyn. erzeugten Panels wird nicht angezegt
 
Moin Moin.

Ich vermute das Problem liegt wirklich am Konstruktor des Panels. Er verlangt nach einem Owner. Das Panel scheint sich anders zu verhalten, wenn nicht der "richtige" Owner angegeben wurde. Das Argument, nicht alle 100 FindComponent Methoden umzuschreiben kann ich so nicht gelten lassen:

1. Wenn du 100 mal eine Methode hast, die das gleiche/ähnliche macht, solltest du überlegen, wie du sie zusammenfassen/zentralisieren kannst. Denn eine so große Verteilung von ähnlichem Code steigert die Gefahr von Bugs und ist kein guter Stil.
2. Jede Arbeit hat auch ihre Schattenseiten :-)
3. Suchen/Ersetzen (sollte man mit Vorsicht einsetzen)

Warum sich das Panel so verhält, kann ich aus dem Stehgreif auch nicht sagen. Aber ich werd mich mal kundig machen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:08 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