AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Canvas Zeichnet nicht
Thema durchsuchen
Ansicht
Themen-Optionen

Canvas Zeichnet nicht

Ein Thema von p80286 · begonnen am 2. Jan 2017 · letzter Beitrag vom 2. Jan 2017
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#1

Canvas Zeichnet nicht

  Alt 2. Jan 2017, 14:22
Eine blöde Frage, aber ich weiß nicht was ich falsch mache.

Mein Programm läuft in Form1 und ich bin auf die gute Idee gekommen, ein paar Daten in der Zeitlichen Abfolge auf Form2 anzuzeigen.
Also etwa so:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  PaintMydata;
end;

....

procedure TForm2.FormPaint(Sender: TObject);
begin
  PaintMyData;
end;
Wen ich den Debugger frage, alles wird ausgeführt, nur angezeigt wird nichts (Form2 hat nicht den Focus!)

Erst wenn ich ein anderes Fenster über Form2 hin und her bewege, oder wenn ich Form2 verkleinere/vergrößere, dann wird in den vorher verdeckten Bereichen etwas angezeigt.
(ich zeichne direkt auf das Form.Canvas)

was mache ich da falsch?

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.110 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Canvas Zeichnet nicht

  Alt 2. Jan 2017, 14:25
Ersetze den Inhalt von Button1Click doch mal durch Invalidate() bzw. Repaint()
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#3

AW: Canvas Zeichnet nicht

  Alt 2. Jan 2017, 14:52
Warum?
Das ist das initiale Zeichnen, bzw. sollte es sein.
Wahrscheinlich kommt das OnPaint von Form2 recht schnell, aber wenn nicht kann ich gut verstehen, das es einen leeren Bildschirm gibt.
Auch ja das hab ich vergessen, Form2 ist bis auf den Rand schwarz, das Löschen am Anfang der Zeichenroutine scheint zu funktionieren.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.336 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Canvas Zeichnet nicht

  Alt 2. Jan 2017, 15:28
Beschreib mal noch genauer, was Du genau machst und was (nicht) klappt.
Vielleicht Demo-Projekt?

Ich hatte mal - wenn ich Dich richtig verstehe - etwas ähnliches genutzt.
Schau mal hier http://www.delphipraxis.net/175033-f...-schlecht.html ab #30 und hier in Aktion: http://youtu.be/iBi6SM3fjEs
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#5

AW: Canvas Zeichnet nicht

  Alt 2. Jan 2017, 16:06
Bin z.Zt auffe Arbeit und die Sourcen liegen zu Hause.
Aber ganz simpel
Delphi-Quellcode:
Canvas.drawline
Canvas.moveto

usw.
und wie oben beschrieben, sobald ich mit einem anderen Fenster darüber "wische" taucht alles auf

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
10.993 Beiträge
 
Delphi 12 Athens
 
#6

AW: Canvas Zeichnet nicht

  Alt 2. Jan 2017, 16:29
Ich schlage vor, du hältst dich an den Rat von Günther und schreibst:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Invalidate;
end;

....

procedure TForm2.FormPaint(Sender: TObject);
begin
  PaintMyData;
end;
Wenn ich das richtig in Erinnerung habe, entscheidet seit einigen Versionen Windows selbst wann etwas dargestellt wird und bemüht dazu in diesem Fall den OnPaint-Event des Forms.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#7

AW: Canvas Zeichnet nicht

  Alt 2. Jan 2017, 16:31
das isn Argument!
OK dann wird ich das nachher mal ausprobieren.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.336 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Canvas Zeichnet nicht

  Alt 2. Jan 2017, 16:32
Ich bin nicht sicher, aber vermutlich muss der Formular(canvas)inhalt auch noch in den Screen kopiert werden und dafür braucht Windows einen Anlass.

Möglicherweise verhält sich Deine Anwendung auch unter verschiedenen Systemen unterschiedlich - je nach Grafikeinstellungen.

Hast Du den Tipp von Günther mal probiert?
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#9

AW: Canvas Zeichnet nicht

  Alt 2. Jan 2017, 16:46
Zitat:
Hast Du den Tipp von Günther mal probiert?
Das wird funktionieren vorausgesetzt

Canvas.drawline
Canvas.moveto

bzw.. PaintMyData;

befindet sich im OnPaint Event der Form
was durch Invalidate aufgerufen wird.

gruss

Geändert von EWeiss ( 2. Jan 2017 um 16:50 Uhr)
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
3.896 Beiträge
 
Delphi 12 Athens
 
#10

AW: Canvas Zeichnet nicht

  Alt 2. Jan 2017, 18:08
Fehlt da nicht Canvas.BeginScene .EndScene ?

Rollo
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 04:44 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