![]() |
Dynamisch erzeugte Panels und Controls
Hallo zusammen,
ich habe mal wieder ein kleines Problem. Ich erzeuge mit einer ObjectList eine flexible Anzahl von Panels, mit darauf liegenden SpinButtons und Editboxen. Jetzt habe ich das Problem, dass in dem SpinButton Event nicht die dazugehörige Editbox finde. Hatt mit jemand eine Idee, wie das in Griff bekommen könnte? anbei mal der Code, wie ich die Panels etc. erstelle:
Delphi-Quellcode:
Danke
{Instanz einer ObjectList erstellen}
MyControls := TObjectList.Create(true); {Visiualisierung starten} for n := 0 to high(Mydata) - 1 do begin {Panel malen} NewPanel := TJvPanel.Create(BOT_BEST_PANEL); with NewPanel do begin Top := YPOS; Left := XPOS + (n * (intPanelWidth + intPanelOffsetX)); Width := intPanelWidth; Height := intPanelHeight; Parent := BOT_BEST_PANEL; ParentBackground := true; end; {Edit malen} NewEdit := TLabeledEdit.Create(NewPanel); with NewEdit do begin Top := EDITYPOS; Left := EDITXPOS; Width := EDITWidth; Height := EDITHeight; Parent := NewPanel; Editlabel.Caption := mydata[n].caption; text := FloatToStr(mydata[n].default); end; {SpinButton malen } NewSpinBtn := TJvSpinbutton.Create(NewPanel); with NewSpinBtn do begin Top := SPINBTNYPOS; Left := (XPOS+intPanelWidth)-(EDITXPOS+SPINBTNWidth); Width := SPINBTNWidth; Height := SPINBTNHeight; Parent := NewPanel; OnBottomClick := MyBottomClick; OnTopClick := MyTopClick; end; |
Re: Dynamisch erzeugte Panels und Controls
Zitat:
Grüsse Frank :coder: |
Re: Dynamisch erzeugte Panels und Controls
Hallo,
so in etwa könnte es gehen:
Delphi-Quellcode:
procedure TForm1.MyTopClick(Sender: TObject); Var i : Integer; begin If Sender is TJvSpinbutton then with Sender as TJvSpinbutton do begin for i := 0 To Parent.ControlCount - 1 do begin If Parent.Controls[i] Is TLabeledEdit then begin ShowMessage('Da ist er ja: ' + Parent.Controls[i].Name); end; end; end; end; |
Re: Dynamisch erzeugte Panels und Controls
Dafür gibt es die Eigenschaft "Tag".
Einfach beim Spinedit den Zeiger auf das Editfeld eintragen und bei Bedarf wieder auslesen: Beim Initialisieren:
Delphi-Quellcode:
Dann später im Event:
with NewSpinBtn do begin
... Tag := Integer(NewEdit); ... end;
Delphi-Quellcode:
procedure TForm1.MyBottomClick(Sender: TObject);
begin ... TLabeledEdit(Pointer((Sender as TJvSpinbutton).Tag))).Text := IntToStr((Sender as TJvSpinbutton).Value); ... end; |
Re: Dynamisch erzeugte Panels und Controls
Ok, mit einem Link.
Dann schaue ich mir das mal an. Oder kannst du mir das kurz erklären. Wäre nett. Danke. |
Re: Dynamisch erzeugte Panels und Controls
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:47 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