AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Canvas - BringToFront gesucht

Ein Thema von Reinhardtinho · begonnen am 26. Mai 2008 · letzter Beitrag vom 26. Mai 2008
Antwort Antwort
Benutzerbild von Reinhardtinho
Reinhardtinho

Registriert seit: 26. Feb 2007
411 Beiträge
 
Delphi 5 Enterprise
 
#1

Canvas - BringToFront gesucht

  Alt 26. Mai 2008, 12:57
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
Ich habe viel von meinem Geld für Alkohol, Weiber und schnelle Autos ausgegeben ... Den Rest habe ich einfach verpraßt.

George Best - 22.05.1946 - 25.11.2005 - nordirischer Fußballspieler
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.852 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Canvas - BringToFront gesucht

  Alt 26. Mai 2008, 12:58
TCanvas ist keine Komponente. Nimm eine TPaintBox oder ein TImage.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Canvas - BringToFront gesucht

  Alt 26. Mai 2008, 13:03
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.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Reinhardtinho
Reinhardtinho

Registriert seit: 26. Feb 2007
411 Beiträge
 
Delphi 5 Enterprise
 
#4

Re: Canvas - BringToFront gesucht

  Alt 26. Mai 2008, 13:18
Ich versuche mich gerade an einer Lösung des Problems.

Ich habe auch einen Ansatz über Canvas das ganze zu zeichnen.

Delphi-Quellcode:
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;
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.

Diese Rechtecke sollen aber auf der Oberfläche des Programms gezeichnet werden, also unabhänig davon, ob da ein weiteres Steuerelement drunterliegt oder nicht.
Ich habe viel von meinem Geld für Alkohol, Weiber und schnelle Autos ausgegeben ... Den Rest habe ich einfach verpraßt.

George Best - 22.05.1946 - 25.11.2005 - nordirischer Fußballspieler
  Mit Zitat antworten Zitat
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#5

Re: Canvas - BringToFront gesucht

  Alt 26. Mai 2008, 13:27
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]
42
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.904 Beiträge
 
Delphi 12 Athens
 
#6

Re: Canvas - BringToFront gesucht

  Alt 26. Mai 2008, 13:43
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.
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Canvas - BringToFront gesucht

  Alt 26. Mai 2008, 13:44
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.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#8

Re: Canvas - BringToFront gesucht

  Alt 26. Mai 2008, 13:57
Zitat von Luckie:
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.
Ich hab mir den Link auch schon vorher angesehen. Besitze aber kein MS Word 2003 und habe nur verstanden, dass es eine Art Animation sein soll. Das du auf ein animiertes Fenster verweist hab ich auch bemerkt. Das scheint bei Lorenz nur nicht so zu sein, oder er hat es nicht verstanden.

Gruß oki

[edit] Ich hol mir hier auch mal meine Rechtschreibfehler zurück. Vielleicht kann ich die woanders noch gebrauchen. [/edit]
42
  Mit Zitat antworten Zitat
Benutzerbild von Reinhardtinho
Reinhardtinho

Registriert seit: 26. Feb 2007
411 Beiträge
 
Delphi 5 Enterprise
 
#9

Re: Canvas - BringToFront gesucht

  Alt 26. Mai 2008, 14:04
Dank Luckie's Lösung geändert.
Ich habe viel von meinem Geld für Alkohol, Weiber und schnelle Autos ausgegeben ... Den Rest habe ich einfach verpraßt.

George Best - 22.05.1946 - 25.11.2005 - nordirischer Fußballspieler
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:25 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz