AGB  ·  Datenschutz  ·  Impressum  







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

Desktop Canvas Clear ?

Ein Thema von ebber · begonnen am 9. Apr 2007 · letzter Beitrag vom 20. Apr 2007
Antwort Antwort
Seite 1 von 2  1 2      
ebber

Registriert seit: 31. Okt 2006
243 Beiträge
 
#1

Desktop Canvas Clear ?

  Alt 9. Apr 2007, 21:15
Hallo

ich habe so was auf den Desktop gezeichnet

Delphi-Quellcode:

var
DP: TCanvas;
begin
  DP := TCanvas.Create;
  DP.Handle := GetDC(0);
  DP.font.Height:=(40);
  DP.font.Name:=('Verdana');
  DP.font.Color:=(cllime);
  DP.font.Style:=[fsBold];
  DP.TextOut(round(Screen.width/2-150),round(Screen.height/2+Screen.height/4),'Laustärke :'+inttostr(100-round(100/72*Form2.Trackbar1.position))+' %');
  ReleaseDC(0, DP.Handle);
  DP.Handle := 0;
  DP.Free;
end;

wie bekomme ich das wieder weg ?

MfG
  Mit Zitat antworten Zitat
Benutzerbild von bitsetter
bitsetter

Registriert seit: 17. Jan 2007
1.169 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Desktop Canvas Clear ?

  Alt 9. Apr 2007, 22:00
Hallo,

versuche es doch mal hiermit:
Der Desktop wird neu gezeichnet
Gruß bitsetter
"Viele Wege führen nach Rom"
Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
  Mit Zitat antworten Zitat
ebber

Registriert seit: 31. Okt 2006
243 Beiträge
 
#3

Re: Desktop Canvas Clear ?

  Alt 9. Apr 2007, 22:09
Mit

invalidaterect(windowfromdc(0), nil, false); würde es gehen aber der ganze Desktop flimmert dann immer kurz auf.

Könnte man es vielleicht mit transparenter Farbe übermalen ? Ich hab das mit clnone probiert aber dann wird es schwarz.

MfG
  Mit Zitat antworten Zitat
ebber

Registriert seit: 31. Okt 2006
243 Beiträge
 
#4

Re: Desktop Canvas Clear ?

  Alt 20. Apr 2007, 14:49
Das muss doch irgendwie gehen oder ? Vielleicht wenn man das anders draufzeichnet ?

Oder kann man wenigstens nur einen Teil des Desktops neuzeichen ?

MfG
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#5

Re: Desktop Canvas Clear ?

  Alt 20. Apr 2007, 14:55
Denken hilft. Ich wuerde mal InvalidateRect in der Win32-Hilfe nachschlagen. Fuer irgendwas muss der Namensbestandteil "Rect" doch gut sein.
  Mit Zitat antworten Zitat
ebber

Registriert seit: 31. Okt 2006
243 Beiträge
 
#6

Re: Desktop Canvas Clear ?

  Alt 20. Apr 2007, 15:43
Gibt es keine andere möglichkeit ? Wer eine Logitech Tastatur hat, die hat ja auch so eine Anzeige auf dem Desktop und da geht das auch gut ?

---

Ich habe das jetzt gemacht aber irgendwie wills nicht gehen.

Delphi-Quellcode:

var rectnz:PRect;

begin

rectnz.Top:=5;
rectnz.Bottom:=10;
rectnz.Left:=5;
rectnz.Right:=20;

invalidaterect(windowfromdc(0), rectnz, false);
Was habe ich falsch gemacht ?

MfG
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

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

Re: Desktop Canvas Clear ?

  Alt 20. Apr 2007, 15:47
wenn ich es mit den obirgen koordinaten für die Textausgabe vergleiche würde ich sagen es liegt an dem bereich den du neu zeichnen lässt.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#8

Re: Desktop Canvas Clear ?

  Alt 20. Apr 2007, 15:50
Der Code ist ja auch falsch.
Delphi-Quellcode:
var
  rectnz: TRect;
begin
  rectnz.Top:=5;
  rectnz.Bottom:=10;
  rectnz.Left:=5;
  rectnz.Right:=20;
  InvalidateRect(WindowFromDC(0), @rectnz, false);
  Mit Zitat antworten Zitat
ebber

Registriert seit: 31. Okt 2006
243 Beiträge
 
#9

Re: Desktop Canvas Clear ?

  Alt 20. Apr 2007, 16:01
Es ging nicht weil ein Fehler kam nicht weil es da nicht neugezeichnet wurde.
So geht es zwar ohne Fehler, aber irgendwie wird immer noch der ganze Desktop neugezeichnet und es flimmert weiterhin kurz auf.


Zitat:

msdn:

Parameters

hWnd
[in] Handle to the window whose update region has changed. If this parameter is NULL, the system invalidates and redraws all windows, and sends the WM_ERASEBKGND and WM_NCPAINT messages to the window procedure before the function returns.
Hat es vielleicht was damit zu tun ?


MfG
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

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

Re: Desktop Canvas Clear ?

  Alt 20. Apr 2007, 16:22
Zitat:
...Wer eine Logitech Tastatur hat, die hat ja auch so eine Anzeige...
da ist es auch viel einfacher. Man nimmt einfach ein Form, setzt die TransparentColor auf die Farbe des Forms und setzt Alphablend auf True.
Somit wird alles Transparent/durchklickbar was die Farbe TransparentColor hat.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  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