![]() |
Canvas - BringToFront gesucht
Hi,
ich möchte mit Hilfe von Canvas etwas auf mein Formular zeichnen. Wenn dort aber andere Komponenten liegen, wird die Zeichnung unterhalb dieser ausgeführt. Gibt es eine Möglichkeit, oben drauf zu zeichnen? Danke und MFG Lorenz |
Re: Canvas - BringToFront gesucht
TCanvas ist keine Komponente. Nimm eine TPaintBox oder ein TImage.
|
Re: Canvas - BringToFront gesucht
Als Canvas wird die Fläche von Fenstern bezeichnet, auf die man zeichnen kann. Du kannst dir einen Canvas (dt: Leinwand) wie eine Leinwand vorstellen. Schaltflächen, Texteingabefelder usw. besitzen auch eine Leinwand. Wenn du also solche Kontrollelemente auf deinem Fenster hast, ist das als wenn du mehrere Leinwände übereinander gelegt hast. Zeichnest du auf der untersten, wird dies natürlich von den darüber liegenden überdeckt. Du musst dir also was anderes einfallen lassen bzw. dein Konzept überarbeiten.
Nähere Informationen wären sehr hilfreich, um dir bei der Lösung deines Problems zu helfen. |
Re: Canvas - BringToFront gesucht
Ich versuche mich gerade an einer Lösung des
![]() Ich habe auch einen Ansatz über Canvas das ganze zu zeichnen.
Delphi-Quellcode:
Bei einem leeren Formular ist das kein Problem, aber bei mir liegen viele andere Elemente wie Panels, ListBoxen, etc. auf dem Formular, so dass man gar nichts sieht.
procedure TForm1.Button1Click(Sender: TObject);
var i : Integer; begin with Canvas do begin Pen.Color := clBlack; Pen.Style := psSolid; Brush.Style := bsClear; end; (* of with *) for i := 1 to 5 do begin Canvas.Rectangle(50 + (i * 50), 50 + (i * 50), self.Width - (50 + (i * 50)), self.Height - (50 + (i * 50))); Sleep(100); self.Refresh; end; (* of for *) end; Diese Rechtecke sollen aber auf der Oberfläche des Programms gezeichnet werden, also unabhänig davon, ob da ein weiteres Steuerelement drunterliegt oder nicht. |
Re: Canvas - BringToFront gesucht
Hi Reinhardtinho,
ich glaube du hast zwie Post's übersehen (die meiner Vorredner). Wenndu auf den Canvas zeichnest ist das alles schön und gut, enthält dein Container (Formular) aber weitere Componenten, so werden sie beim neu zeichnen des Containers "über den Canvas" gezeichnet. Immer in der Reihenfolge Owner -> Child. Somit wird dein Zeichnen zwar ausgeführt, kurz danach die anderen Komponenten aber darüber gezeichnet. Übriegens, dein Link hilft mir gar nicht weiter. Wie schon gesagt, der Ansatz ist falsch. Wenn, dann mußt du eine weitere Komponente in den Vordergrund bringen und in dieser zeichnen. Gruß oki [edit] Fehler raus, Ergänzung rein! [/edit] |
Re: Canvas - BringToFront gesucht
evtl. kannst du das die Paint Methode überschreiben so das alles wie du es brauchst läuft...ich denke allerdings nicht das
du weist was du da tust. vielleicht macht es mehr Sinn wenn du sagst warum du über den Buttons malen willst...vielleicht haben wir dafür eine gut Lösung. |
Re: Canvas - BringToFront gesucht
Der Grund steht in seinem letzten Posting verlinkt. Wenn ihr mal auf den Link klicken würdet, könntet ihr das Problem nachvollziehen und dazu noch in den Genuss einer Lösung von mir kommen. ;)
|
Re: Canvas - BringToFront gesucht
Zitat:
Gruß oki [edit] Ich hol mir hier auch mal meine Rechtschreibfehler zurück. Vielleicht kann ich die woanders noch gebrauchen. [/edit] |
Re: Canvas - BringToFront gesucht
Dank Luckie's
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:45 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz