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/)
-   -   Frage zu TRelativePanel (https://www.delphipraxis.net/189506-frage-zu-trelativepanel.html)

Der schöne Günther 20. Jun 2016 09:45

Frage zu TRelativePanel
 
  1. Setze ein TRelativePanel auf ein Formular
  2. Platziere darin ein TMemo
  3. Schalte beim Memo AlignLeftWithPanel = True
  4. Drücke F9
  5. Erhalte Zugriffsverletzung und abstürzendes Programm

Versucht in 10 Seattle und 10.1 Berlin. Mache ich hier etwas falsch oder ist das as designed?

Uwe Raabe 20. Jun 2016 10:02

AW: Frage zu TRelativePanel
 
Zitat:

Zitat von Der schöne Günther (Beitrag 1340607)
Mache ich hier etwas falsch oder ist das as designed?

Weder noch - das ist schlicht und einfach ein Bug. Das AlignControls darf natürlich erst dann aufgerufen werden, wenn die Child-Controls alle schon erzeugt sind.

Workaround: Setze die Eigenschaft erst im FormCreate (nicht schön, ich weiß).
Delphi-Quellcode:
var
  idx: Integer;
begin
  idx := RelativePanel1.ControlCollection.IndexOf(Memo1);
  RelativePanel1.ControlCollection[idx].AlignLeftWithPanel := true;
end;
Machst du dafür einen Eintrag auf Quality Portal?

Der schöne Günther 20. Jun 2016 10:05

AW: Frage zu TRelativePanel
 
Alles klärchen, mache ich heute noch. Also lag es nur an der Erstellungsreihenfolge der Komponenten? Ich hatte es nur kurz ausprobiert, bei einem Label schien es immer zu funktionieren, bei einem Memo nie.

Uwe Raabe 20. Jun 2016 12:06

AW: Frage zu TRelativePanel
 
Zitat:

Zitat von Der schöne Günther (Beitrag 1340610)
Also lag es nur an der Erstellungsreihenfolge der Komponenten? Ich hatte es nur kurz ausprobiert, bei einem Label schien es immer zu funktionieren, bei einem Memo nie.

Interessanterweise funktioniert es auch mit einem TEdit und mit vielen anderen Controls. Solltest du in dem QP vielleicht erwähnen, daß es womöglich nur bei einem TMemo auftritt.

Mit der Erstellungsfolge hat das offenbar gar nichts zu tun, sondern damit daß das TMemo bereits beim Laden der DFM ein AlignControls auslöst. Ganz pragmatisch könnte man das ja auch einfach abfangen.

Der schöne Günther 20. Jun 2016 18:27

AW: Frage zu TRelativePanel
 
Bitte sehr: https://quality.embarcadero.com/browse/RSP-15281


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