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 CreateMessageDialog Buttons in GridPanel packen (abschließende Frage) (https://www.delphipraxis.net/190976-createmessagedialog-buttons-gridpanel-packen-abschliessende-frage.html)

a.def 24. Nov 2016 22:15

CreateMessageDialog Buttons in GridPanel packen (abschließende Frage)
 
Ich erzeuge in meinem Programm mit CreateMessageDialog() einen Dialog.
Ich mache den selber, da ich meinen Buttons eigene Beschriftungen und vieles mehr anbieten möchte. Die Positionierung der Buttons funktioniert ebenfalls einwandfrei, wenn es auch einen ganz kleinen wenig umständlich ist.

Da kam mit das TGridPanel in den Sinn.
Also zur Laufzeit eines in der Prozedur erzeugt, wo ich auch den Dialog erzeuge, Rows, Columns, Width, Height und Top Left angepasst.
Soweit sogut. Das Grid war genau da wo es sein sollte.

Dann kam der spannende Moment:
Delphi-Quellcode:
// Button des CreateMessageDialog-Dialogs ins Grid packen
for i := 0 to MsgDialog.ControlCount - 1 do
 begin
  if MsgDialog.Controls[i] is TButton then
   begin
    with TButton(MsgDialog.Controls[i]) do
     begin
      // viel Code und am Ende ...
     end;
     
    TButton(MsgDialog.Controls[i]).Parent := MsgDlgGridPanel;
   end;
 end;
Die Zeile in der das Parent des Buttons geändert wird resultiert in einer Zugriffsverletzung.

Das mit dem GridPanel lasse ich jetzt komplett sein, da meine aktuelle Lösung gut genug ist.

Die abschließende Frage ist für mich aber: warum kann man das Parent eines Buttons eines mit CreateMessageDialog erzeugten Dialogs nicht ändern?


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