AGB  ·  Datenschutz  ·  Impressum  







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

Neuzeichnen von Controls

Ein Thema von Chris P · begonnen am 27. Aug 2006 · letzter Beitrag vom 11. Mär 2010
Antwort Antwort
Seite 1 von 2  1 2      
Chris P

Registriert seit: 8. Mär 2004
230 Beiträge
 
Delphi 7 Enterprise
 
#1

Neuzeichnen von Controls

  Alt 27. Aug 2006, 20:11
Hi Leute,

ich habe folgende Frage:

Wie kann man, wenn man auf einen Device Context gezeichnet hat, diesen auffordern sich neu zuzeichnen?
Zum Beispiel, wenn man auf den Desktop zeichnet.

Mit SendMessage und WM_PAINT?
Ich habe dies probiert, aber trotzdem zeichnet sich das Fenster nicht neu.
Man sieht immer noch die Spuren des Zeichnens ...
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Neuzeichnen von Controls

  Alt 27. Aug 2006, 23:53
[msdn]Invalidate*[/msdn]

InvalidateRect gibts, es sollte sicher auch InvalidateWindow geben.....
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Neuzeichnen von Controls

  Alt 28. Aug 2006, 07:20
meines Wissens gibt es kein InvalidateWindow was auch nicht notwendig ist da man bei Invalidate das Handle des Fensters übergibt
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Vjay

Registriert seit: 2. Dez 2003
Ort: Berlin/Eschede
481 Beiträge
 
Delphi 7 Professional
 
#4

Re: Neuzeichnen von Controls

  Alt 28. Aug 2006, 09:15
Klar gibts die, hier:

Delphi-Quellcode:
procedure invalidateWindow( const handle: integer);
begin
 invalidateRect( handle, NIL, false);
end;
und wieder ein sinnloser Kommentar mehr.
Wer später bremst ist eher tot.
  Mit Zitat antworten Zitat
Chris P

Registriert seit: 8. Mär 2004
230 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Neuzeichnen von Controls

  Alt 28. Aug 2006, 09:56
Danke erstmal...

Also mein eigentliches Vorhaben:

Unterhalb des Cursors soll in einem Rechteck der vergrößerte Auschnitt angezeigt werden,
über dem sich gerade der Mauszeiger befindet. So eine Art Bildschirmlupe.

Bewege ich den Zeiger so wird das Rechteck hinterhergezogen. Soweit so gut.
Nur sieht man die Spur des Rechtecks.

Das Rechteck zeichne ich auf den Desktop DC und das Zoomen funktioniert auch schon.
Wenn man nun bei jeder Mausbewegung InvalidateRect(...) aufruft, flackert das Bild sehr.


Gibt es da eine bessere Methode?
  Mit Zitat antworten Zitat
Vjay

Registriert seit: 2. Dez 2003
Ort: Berlin/Eschede
481 Beiträge
 
Delphi 7 Professional
 
#6

Re: Neuzeichnen von Controls

  Alt 28. Aug 2006, 16:54
Naja,

ich weiss nicht wie dein Programm aufgebaut ist, aber die meisten Programme, die irgendetwas mit dem "Bildschriminhalt" anstellen, machen am Anfang einen Screenshot und arbeiten dann mit diesem Bitmap.

Sprich du erstellt dein eigenes Fenster über allen anderen Fullscreen und darin kannst du dann ja nach belieben rummalern.
Wer später bremst ist eher tot.
  Mit Zitat antworten Zitat
Chris P

Registriert seit: 8. Mär 2004
230 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Neuzeichnen von Controls

  Alt 29. Aug 2006, 20:01
Ziel ist es kein eigenes Fenster zu haben sondern immer unterhalb des
Cursors zu zeichen, egal über welchem Fenster er sich befindet...
  Mit Zitat antworten Zitat
Chris P

Registriert seit: 8. Mär 2004
230 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: Neuzeichnen von Controls

  Alt 2. Sep 2006, 10:51
Hat keiner eine Idee?
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#9

Re: Neuzeichnen von Controls

  Alt 2. Sep 2006, 11:13
Hallo Chris P,

vielleicht kannst du dir bei diesem Projekt einige Anregungen holen.

Gruß Hawkeye
  Mit Zitat antworten Zitat
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#10

Re: Neuzeichnen von Controls

  Alt 2. Sep 2006, 11:13
Hallo,

statt auf dem Desktop zu zeichnen, solltest Du ein Fenster erstellen, dass immer hinter dem Cursor herläuft, und auf dieses zeichnen. Damit hast Du keine Probleme mehr.

Gruß
xaromz
I am a leaf on the wind - watch how I soar
  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 18:22 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