Autor Beitrag
Määx
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 123



BeitragVerfasst: So 08.09.13 15:44 
Hallo zusammen,

ich habe eine Zeitleiste erstellt, die per Timer alle paar Sekunden wächst. Dies wird in einem Panel via Graphix.drawLine() umgesetzt. Zwischendurch male ich kleine Bildchen auf die Zeitleiste wenn etwas bestimmtes passiert ist. Manchmal habe ich jedoch das Problem, dass die Timeline über das Bildchen gemalt wird. Also habe ich ein zweites Panel über das erste gelegt, den Hintergrund auf Transparent gesetzt und auf das zweite Panel die Bildchen gemalt. Leider wird die Timeline nun nicht mehr angezeigt.
Was mache ich falsch? Oder kann ich es einfacher machen? Kann ich vll direkt im Graphics-Objekt in zwei Ebenen zeichnen?

Vielen Dank für eure Hilfe
Määx
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4700
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: So 08.09.13 16:27 
Winforms?

Wenn ja sei dir bewusst das Winforms keine Transparenz beherrscht. Transparenz bedeutet nicht "zeige das was unter mit liegt und male drüber" sondern "nimm anstatt meiner Backcolor die Backcolor meines ParentControls". Wenn du mehrere Graphikobjekte hast die du übereinander zeichnen willst solltest du die selber auf dem gleichen Control malen.
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: So 08.09.13 16:30 
Hallo,

ich nehme an, du benutzt WinForms?
WinForms unterstützt keine Transparenz bei Controls, sondern nur auf die Form bezogen.

Deiner Beschreibung nach zeichnest du aber falsch, d.h. du solltest sämtliche Zeichenoperationen im Paint-Ereignis durchführen. Und dort kannst du dann ja selber entscheiden, in welcher Reihenfolge gezeichnet wird, s.a. Zeichnen in Windows-Forms-Programmen (Paint/OnPaint, PictureBox).

Edit: ah, zu spät (oder "2 Dumme - eine Antwort" :lol: )
Määx Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 123



BeitragVerfasst: Mo 09.09.13 08:58 
Halo zusammen,

erstmal vielen Dank für die Antworten. Ich habe das mit Absicht aus der OnPaint Methode wieder rausgenommen, da ich dachte, dass es nicht so viel Sinn macht jedesmal das gesamte Panel neu zu zeichnen, sondenr ausreicht immer nur das bild drüber zu legen bzw die Zeitleiste zu verändern. Aber wenn das der korrekte Weg ist und WinForms keine Transparents (ist ja interessant und war mir bisher auch nicht klar! Danke!) unterstützt werde ich es mal entsprechend herbivores Anleitung umsetzen

Vielen Dank
Määx