AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Reihenfolge von TImages
Thema durchsuchen
Ansicht
Themen-Optionen

Reihenfolge von TImages

Ein Thema von Minz · begonnen am 26. Mai 2003 · letzter Beitrag vom 26. Mai 2003
Antwort Antwort
Minz

Registriert seit: 19. Dez 2002
476 Beiträge
 
#1

Reihenfolge von TImages

  Alt 26. Mai 2003, 13:42
Hallösche,

weiß jemand, wie die Reihenfolge von TImages organisiert wird?

Also wenn ich 2 Images habe, wie kann ich dann festlegen (auch
nachträglich) das Image2 über Image1 gemalt wird und umgekehrt.

Am Anfang ist die Reihenfolge glaub ich die Reihenfolge, in der
die Images erstellt wurden oder?

Vielen Dank schonmal
Minz
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#2
  Alt 26. Mai 2003, 13:55
Im Quelltext das Image, welches "oben" sein soll mit Image1.BringToFront; ansteuern, im Form-Designer mit der rechten Maustaste auf das Bild klicken und den entsprechenden Befehl aus dem PopUp-Menü benutzen.

[Edit]......[/Edit]
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Minz

Registriert seit: 19. Dez 2002
476 Beiträge
 
#3
  Alt 26. Mai 2003, 13:58
Danke, habs noch nicht getestet, aber mir scheint,
dass es dann mit mehreren übereinanderliegenden Images Probleme
geben könnte.

Wenn ich dann 3 Images habe, und den 3. bringtofront mache,
dann liegt der vermutlich über image1 und image2.

Was ist wenn ich den nur eine Ebene höher haben möchte,
also Reihenfolge: von 3 2 1 auf 2 3 1
1 soll nachwievor oben liegen.
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#4
  Alt 26. Mai 2003, 14:52
Die direkten Methoden zum Neu-Ordnen (SetZOrder und SetZOrderPosition) sind leider nicht erreichbar, da diese als protected bzw. als private deklariert sind. Aber folgende Funktion sollte helfen.
Delphi-Quellcode:
procedure MoveControlUpInZOrder(Sender: TObject);
var
  I, Curr: Integer;
  Control: TControl;
  List: TList;
begin
  if Sender is TControl then
  begin
    // sender kann z-order ändern
    Control := Sender as TControl;
    // sender ist einer Control (zur Darstellung) zugeordnet
    if Control.Parent = nil then
      // nee
      Exit;
    // position der control ermitteln
    Curr := -1;
    for I := 0 to Pred(Control.Parent.ControlCount) do
      if Control.Parent.Controls[I] = Sender then
      begin
        Curr := I;
        Break;
      end;
    if Curr < 0 then
      // hm, position nicht gefunden
      Exit;
    List := TList.Create;
    try
      for I := Curr + 2 to Pred(Control.Parent.ControlCount) do
        // die restlichen controls merken
        List.Add(Control.Parent.Controls[I]);
      // control nach vorne bringen
      Control.BringToFront;
      for I := 0 to Pred(List.Count) do
        // die restlichen controls wieder vorholen
        TControl(List[I]).BringToFront;
    finally
      List.Free;
    end;
  end;
end;
......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Minz

Registriert seit: 19. Dez 2002
476 Beiträge
 
#5
  Alt 26. Mai 2003, 15:02
Hi schonmal Danke,

sehe ich das jetzt richtig?

Ich muss dafür folgendes machen:

type TmeinImage=class(TImage)

und füge die Prozedur MoveControlUpInZOrder als Methode
hinzu.

Dann kann ich:

var Bild1: TmeinImage

Bild1.MoveControlUpInZOrder verwenden.

Sag bitte ja
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#6
  Alt 26. Mai 2003, 15:09
Nein

Du kannst die Prozedure direkt einsetzen und für alle Controls nutzen. Etwas ausführlicher habe ich es mal eben hier beschrieben: http://www.delphipraxis.net/viewtopic.php?t=5746

......

P.S. Wenn noch Fragen bestehen, weiterhin diesen Thread nutzen.
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:41 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