Autor Beitrag
Karlson
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 2088



BeitragVerfasst: So 26.12.04 21:47 
...en Objekten?

Ja, die Frage steht ja schon da :)

Zum Problem: Ich habe ein TImage auf meiner Form, und 20 zur Laufzeit erstellte Panels. Diese Panels sollen hinter dem Image erscheinen. In der Ide kann man sowas ja mit "in den Vordergrund holen" usw. regeln, aber wie mache ich das bei dynamisch erstellten Objekten? Das einzige was ich wüsste wäre BringToFront, dass wäre bei meinem Fall aber eine ziemliche wurschtelei, gibts eine bessere Möglichkeit?
.Chef
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1112



BeitragVerfasst: So 26.12.04 21:51 
Hallo Stephanie, :twisted:

alternativ SendToBack, aber ich versteh noch nicht so ganz, warum das Wurschtelei ist?

Gruß,
Jörg

_________________
Die Antworten auf die 5 häufigsten Fragen:
1. Copy(), Pos(), Length() --- 2. DoubleBuffered:=True; --- 3. Application.ProcessMessages bzw. TThread --- 4. ShellExecute() --- 5. Keine Vergleiche von Real-Typen mit "="!
Karlson Threadstarter
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 2088



BeitragVerfasst: So 26.12.04 21:59 
Hallo .Chef,

Hättest du mal ein bisschen Code, ich versteh das nicht :oops:

lg stephanie.


Nein, Scherz ;)

Das Problem besteht darin, dass sich die Panels bewegen, es müsste also zunächst abgefragt werden, ob sich das Panel über dem Image, das als Rahmen der Form dient befindet. Hab das natürlich schon getestet, und den Code da über einen Timer laufen lassen, wodurch allerdings die Panels das flackern begannen. Doublebuffered kann ich auch Geschwindigkeitsgründen nicht benutzten...

Naja, es wäre eigentlich nicht so schlimm wenn es nicht gehen würde, aber: "Optik ist nunmal alles" ;)
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: So 26.12.04 22:05 
Ich glaub, da wird es ein Problem geben: TImage ist kein TWinControl und erscheint deshalb IMMER hinter den Panels.

Lösung: TImage auf ein (zusätzliches) Panel verfrachten und mit BringToFront oder TOPMOST-Status (Siehe WinAPI bzgl. Z-Order) in den Vordergrund holen.

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.

Für diesen Beitrag haben gedankt: BoerseMan79
Karlson Threadstarter
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 2088



BeitragVerfasst: Mo 27.12.04 00:46 
Stimmt, die Sache funktioniert nicht mit einem TImage(andersrum klappts aber, und so soll ja sein). Habs jetzt aber einfach so geregelt, dass das Panel unsichtbar gemacht wird, wenns in den Rahmenbereich kommt. Ist zwar keine gute Lösung aber immerhin!

danke!