Autor Beitrag
mmmichael
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 06.11.05 13:23 
Tach!

Ich hab ein Shape und will es zur lz vor alles andere bringe. also scheib ich Shape1.BringToFront;
nur.. es geht nicht! Mein Shape ist immer noch hinter allem statt davor! Dies ist mit suspekt...

wieso kann man ein shape nicht in den vordergrund bringen? oder mach ich was falsch?
a_roca
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Mo 07.11.05 17:11 
Möglicherweise hast Du in dem Formular noch andere Komponenten, die über deiner TShape - Komponente liegen. Das passiert gerne, wenn man das Objekt auf ein Panel malen will aber dieses vorher nicht angeklickt hat und damit direkt aufs Formular setzt. Wenn dem nicht so ist, dann erhält das, was darüber ist, irgendwie anschließend den Focus. Da müste man den konkreten Quelltext und vor allem das Formular haben.

Wenns gar nicht will, dann schick mal die beiden Datein.

mfG

ARO
Tilman
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1405
Erhaltene Danke: 51

Win 7, Android
Turbo Delphi, Eclipse
BeitragVerfasst: Mo 07.11.05 17:18 
user profile iconmmmichael hat folgendes geschrieben:

wieso kann man ein shape nicht in den vordergrund bringen?

Es geht
user profile iconmmmichael hat folgendes geschrieben:
oder mach ich was falsch?

dazu musst du mal deinen Code schicken!
mmmichael
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 08.11.05 16:16 
also viel quelltext gibts da nicht ( vor allem nicht viel quelltext wo man was falschmachen könnte).

Bin grad nicht an meinem PC aber das sieht etwas so aus:

Timer mit:
ausblenden Delphi-Quelltext
1:
2:
3:
Shape1.BringToFront;
Shape1.left := {mauscursorposition}.left;
Shape1.top := {mauscursorposition}.top;

ich will das einfach mit der maus rumschieben. bloß hab ich ein paar kleine 20x20 große panele (so 400 an der zahl) :wink: und das will einfach nicht DAVOR!
Tilman
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1405
Erhaltene Danke: 51

Win 7, Android
Turbo Delphi, Eclipse
BeitragVerfasst: Di 08.11.05 17:32 
Aha, das ist genau das Problem! TPanel ist von TWinControl abgeleitet, und Shape (TGraphicControl) geht da niemals davor! Lösung: entweder du benutzt was anderes statt TPanel, oder aber du setzt deine Shapes jeweils in einen "TPanel Container". Dann benutzt du bringToFront von der "Container"-Panel-Komponente.
mmmichael
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 08.11.05 17:56 
ah. danke!
frage: warum denn bitte um alles in der welt kann man ein normales shape nicht vor panels bringen? ich meine das ist doch vollkommen unlogisch (zumindest für mich...) dass delphi sowas nicht zulässt!
Das ist ja als würde man verbieten buttons vor images zu setzen oder oder edits vor shapes!!! :?
Tilman
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1405
Erhaltene Danke: 51

Win 7, Android
Turbo Delphi, Eclipse
BeitragVerfasst: Di 08.11.05 18:00 
Also wenn ich es richtig verstanden habe ist ein Panel in Windows im prinzip wie ein Fenster, ein TShape dagegen nur eine Grafik auf einem Fenster. Daher ist das Shhape auf dem Form von einem anderen Fenster (dem Panel) verdeckt. Wenn das Shape selbst in einem Panel steckt, kann es seinerseits andere Panels verdecken. Soweit ich weiß haben Komponenten ohne Fensterhandle (Label,Speedbutton,Shape...) weniger Speicherbedarf als solche mit Fensterhandle (Static,Button,Panel...)

// Edit:
wenn du dir in der Delphi-Hilfe den Eintrag zu einem Steuerelement anschaust kannst du die beiden Typen in der "History" erkennen: sind sie von TWinControl abgeleitet haben sie Fensterhandle, von TGraphicControl haben sie KEIN Fensterhandle.
mmmichael
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 08.11.05 19:04 
Na gut... :?
Aber auf jeden Fall Danke für die Hilfe! :D
mmmichael