![]() |
Create(Self) undefiniert?
Hallo mit folgender Procedur sollen Buttons auf ein Panel
gezeichnet werden. Die PRoc ist aber keiner Komponente zugeordnet, sonder wird wie eine funktion aufgerufen. Nun meldet der Compiler das "Self undefiniert" sei? Warum? Eine Nebenfrage, wenn die Buttons neugezeichnet werden sollen müssen die "alten" gelöscht werden. Wie wird dies bewerkstelligt?
Delphi-Quellcode:
Grüße
procedure buttonsetzen(setzq:TADOQuery);
var j,spalte,zeile: Integer; aBut:TXiButton; begin setzq.Close; setzq.SQL.Clear; setzq.SQL.Add('SELECT * FROM buttons ORDER BY posit'); setzq.Open; setzq.First; j:=0; while not setzq.Eof do begin Spalte := j mod 6; Zeile := j div 6; aBut:=TXiButton.Create(Self); aBut.Parent:=panelen.pans.FindComponent(setzq.fieldbyname('eben_name').AsString)as TPanel; aBut.Visible:=True; aBut.Left:=Spalte*115; aBut.Top:=Zeile*45; aBut.Width:=113; aBut.Height:=43; aBut.ShowHint:=True; aBut.Font.Size:=setzq.fieldbyname('fogr').AsInteger; //aBut.Font.Style:=[fsbold]; aBut.Hint:=setzq.fieldbyname('anzeige').asString; aBut.ColorScheme:=GetCoSche(setzq.fieldbyname('farbe').AsString); aBut.Caption:=setzq.fieldbyname('anzeige').AsString; aBut.Tag:=setzq.FieldByName('wert').AsInteger; //aBut.OnClick:=p1_1click; setzq.Next; inc(j); end; end; |
Re: Create(Self) undefiniert?
Ausserhalb einer Klasse gibt es natürlich kein Self
|
Re: Create(Self) undefiniert?
Danke für die Antwort.
Was aber dann? Name des Form auf dem die Buttons kreiert werden? |
Re: Create(Self) undefiniert?
Also entweder Nil, das Formular oder die Prozedur zur Methode machen (am Besten)
|
Re: Create(Self) undefiniert?
Welche Methode eignet sich am besten?
Wie im 2. Teil der Frage gesagt: die buttons müssen zwangsläufig während der Laufzeit auch mal neu gezeichnet werden. Wie zerstört man die Buttons am Besten, bevor sie mit der gleichen procedure (wie oben) neu gezeichnet werden? Wie müsste obiger Procedure aussehen? Danke für die Antworten |
Re: Create(Self) undefiniert?
Zitat:
Zitat:
|
Re: Create(Self) undefiniert?
Was meinst du mit umwandeln?
Was und wie? Da die Positionen der Buttons sich ändern können müssen aller neu gezeichnete werden. Die Buttons haben als parent ein Panel, kann das vielleicht eine Rolle spielen? Fakt ist, dass mit obiger Procedure nicht nur Buttons neu, sondern auch wieder gezeichnet werdem sollen, nämlich dann wenn eine Änderung in der Anzahl oder Position der Button vorgenommen wurde. |
Re: Create(Self) undefiniert?
Verwalte die Buttons doch in einem Array, dann musst du bei Änderungen nur auf die einzelnen Buttons zugreifen und deren Position ändern.
|
Re: Create(Self) undefiniert?
Zitat:
Delphi-Quellcode:
procedure TForm1.buttonsetzen(setzq:TADOQuery);
Zitat:
Ich würde das Erzeugen und Verschieben trennen. |
Re: Create(Self) undefiniert?
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:31 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