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 Anzeige- / Erstellungsreihenfolge v. Controls (https://www.delphipraxis.net/114391-anzeige-erstellungsreihenfolge-v-controls.html)

OG Karotte 24. Mai 2008 14:58


Anzeige- / Erstellungsreihenfolge v. Controls
 
Hallo,

ich habe auf einer Form ein TImage und ein TEdit. Nun möchte ich, das das TImage auf dem TEdit liegt (nur optisch) und bei Bedarf (Code) sichtbar ist. Eigentlich war ich der Meinung, das ich mit den Menüpunkten "Nach vorne setzen" bzw. "Nach hinten setzen" die Anzeige- / Erstellungsreihenfolge beeinflussen kann. Dem ist aber anscheinend nicht so, denn das TImage liegt optisch immer hinter dem TEdit. Eine abgeleitete Klasse möchte ich auch nicht bilden. Geht das noch irgendwie anders ?

Phoenix 24. Mai 2008 15:07

Re: Anzeige- / Erstellungsreihenfolge v. Controls
 
Ai... joa. Das bringt so seine Probleme mit sich.
Das liegt (glaub ich spontan) daran, dass das Image keine 'Window'-Komponente ist.

Lege das Image mal testweise auf ein TPanel und packe das nach vorne / über das Edit.

OG Karotte 24. Mai 2008 15:16

Re: Anzeige- / Erstellungsreihenfolge v. Controls
 
Na siehe da: und es funzt :bounce1:

Danke Phoenix

Phoenix 24. Mai 2008 15:22

Re: Anzeige- / Erstellungsreihenfolge v. Controls
 
Noch ganz kurz zum Hintergrund:
Die meisten Controls (Edits, Buttons, das Panel eben auch) sind eigene Fenster im Sinne der Windows API. Das heisst, dieses Control wird direkt von Windows gezeichnet und als eigenes Fenster behandelt was Nachrichten angeht. Und hier greift eben auch die Erstellungsreihenfolge um die Ebenen wie die Fenster übereinander liegen zu bestimmen.

TImage allerdings ist kein Fenster in diesem Sinne, sondern zeichnet seinen Inhalt auf die Zeichenfläche seines 'Parent'-Controls. Das war vorher eben immer das Form - jetzt mit dem Panel als Parent kann man das Image aber auch über das Edit legen.


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