Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi TImages Orginazieren (https://www.delphipraxis.net/69205-timages-orginazieren.html)

qb-tim 11. Mai 2006 17:25


TImages Orginazieren
 
Hi,

Ich habe in einem meiner Programme so um die dreißig schon im Form erstellten TImages. Diese werden hin und wieder mit unterschiedlichen Bildern "gefüllt". Mein Problem ist jetzt:

Wie ändere ich die Reihenfolge* (in der "Tiefe") der TImages?

*d.h. Ein TImage ist "vor" oder "hinter" einen anderen...

Klaus01 11. Mai 2006 17:28

Re: TImages Orginazieren
 
kannst Du da nicht mit

Image1.bringToFront
Image1.SentToBack
Image1.show

oder

Image1.hide

arbeiten?

Grüße
Klaus

qb-tim 12. Mai 2006 11:27

Re: TImages Orginazieren
 
Kommt drauf am was die Befehle die du gennant hast bewirken...

Image1.bringToFront
Image1.SentToBack

die hören sich vielversprechen an - ich probier sie mal heute Abend aus. Dann sage ich ob es funzt oder net. :???:

Muetze1 12. Mai 2006 12:06

Re: TImages Orginazieren
 
Korrektur: SendToBack;

Mike07 30. Sep 2008 16:15

Re: TImages Orginazieren
 
ich habe das gleiche Problem!

Image1.bringToFront
Image1.SentToBack

bewirken nur, dass das Image-Feld ganz nach hinten oder ganz nach vorne gesetzt wird...

Wenn ich aber jetzt mehrere Image-Felder habe, die sich überlagern, dann würde ich gerne die Reihenfolge bestimmen können (wer was überdeckt)!
Gibt es da vielleicht Funktionen, die die Komponente eine Ebene nach vorne/hinten verschiebt?

turboPASCAL 30. Sep 2008 17:18

Re: TImages Orginazieren
 
Nein. Dazu gibt es keine Funktion, da musst du selbst dran.

Du musst die Images der Reihe nach, also nach deiner Sortierung durch gehen und diese Nachvorn setzen.

Hawkeye219 30. Sep 2008 18:27

Re: TImages Orginazieren
 
Hallo,

leider haben die VCL-Macher keinen direkten Aufruf der entsprechenden Routine vorgesehen. Mit einem nicht ganz OOP-konformen Zugriff auf die protected Methode SetChildOrder geht es so:

Delphi-Quellcode:
type
  TWinControlShadow = class (TWinControl);

procedure SetControlIndex (aControl: TControl; aIndex: Integer);
begin
  with TWinControlShadow(aControl.Parent) do
    if (aIndex > 0) then
      SetChildOrder (aControl, ControlCount - aIndex)
    else if (aIndex < 0) then
      SetChildOrder (aControl, -aIndex - 1);
end;
Ein positiver Indexwert gibt die k-te Position von oben an; das oberste Element ist also an Position 1.
Ein negativer Indexwert kennzeichnet die k-te Position von unten; das unterste Element ist also an Position -1.

Gruß Hawkeye

Mike07 8. Okt 2008 12:59

Re: TImages Orginazieren
 
Danke für die Antwort!
Es hat wohl funktioniert.
Wieso ist die Methode denn nicht OOP-konform?


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