Alternative zu 'BringToFront'

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
baba
Beiträge: 265
Registriert: Mi 4. Apr 2007, 17:47

Alternative zu 'BringToFront'

Beitrag von baba »

Moin, moin,

G_System.PanelAktiv ist der Name eines Panel, auf dem mehrere Objekte platziert sind. (Hiervon habe ich mehrere)

P_Message ist ein neues TPanel - dies möchte ich nun ganz nach vorne auf das Panel G_System.PanelAktiv setzen.

Code: Alles auswählen

P_Message.Parent  := (FindComponent(G_System.PanelAktiv) as TPanel);
P_Message.BringToFront;
P_Message.Visible := True;
Es bleiben immer wieder Objekte in der Reihenfolge vor dem Panel P_Message.BringToFront; sichtbar.

Auch wenn ich .BringToFront; mehrfach aufrufe, kommt das Panel niemals ganz nach vorne. :evil:

Was mach ich falsch?

Baba.

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: Alternative zu 'BringToFront'

Beitrag von Christian »

Alternativ könntest einfach den ganzen anderen kram verstecken ist vllt sinvoller für deine Anwendung erklärt aber nicht warum das nicht funktioniert.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

baba
Beiträge: 265
Registriert: Mi 4. Apr 2007, 17:47

Re: Alternative zu 'BringToFront'

Beitrag von baba »

Christian hat geschrieben:Alternativ könntest einfach den ganzen anderen kram verstecken ist vllt sinvoller für deine Anwendung erklärt aber nicht warum das nicht funktioniert.
... ja, diese Idee hatte ich auch schon. Das Panel soll aber wie ein Fenster a la ShowMessage() (Welches auf einem WinMobile, nur die erste Zeile und von dieser nur die oberen zwei Drittel darstellt) erscheinen. Eine Funktion wie .BringToBackground oder ähnlich habe ich nicht gefunden. Ich habe ein Fenster mit 40 Festtasten (Button), einem 10ner-Block und einigen weiteren Komponenten, alle bleiben hinter dem Panel, nur ein Button legt sich davor. Dieser wird wie alle anderen erstellt, steht jedoch ziehmlich weit unten im Formular-Source. Lazarus muß also so etwas wie einen Prioritäts-Anzeige-Zähler mitführen und diesem Button immer die höchste Anzeige verpassen. Ich glaube da muß ich ansetzen. (So eine Art Tab-Reihenfolge, nur eben für die Anzeige)

Es kann auch sein, daß .BringToFront einfach nicht alle Komponenten berücksichtigt und so bleiben immer wieder einige vorne.

Gruß
Baba.

monta
Lazarusforum e. V.
Beiträge: 2809
Registriert: Sa 9. Sep 2006, 18:05
OS, Lazarus, FPC: Linux (L trunk FPC trunk)
CPU-Target: 64Bit
Wohnort: Dresden
Kontaktdaten:

Re: Alternative zu 'BringToFront'

Beitrag von monta »

Wahrscheinlich schon gelöst...aber egal.

Das Gegenteil von BringToFront ist SendToBack.

Welche Komponenten bleiben denn vorne? Sind die auch wirklich auf dem Panel plaziert? Ich hab das auch in einem Programm mit verschiedenen DB-Komponenten, Buttons usw. auf Panels und mit BringToFront würd das ganze immer korrekt nach vorne gesetzt. Wie sieht es aus, wenn du den Button in ein Panel packst?
Johannes

Antworten