AGB  ·  Datenschutz  ·  Impressum  







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

Canvas und der Desktop

Ein Thema von Neutral General · begonnen am 2. Jan 2007 · letzter Beitrag vom 3. Jan 2007
Antwort Antwort
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Canvas und der Desktop

  Alt 2. Jan 2007, 14:28
Hi,

Ja ich weiß das es da schon viele Threads zu gibt aber das ist alles so nicht das Wahre...
Wie kann ich denn auf den Desktop schreiben? Weil GetDC(0) ist irgendwie nicht wirklich der Desktop. Weil bei GetDC(0) schreibt man praktisch auf das ganze Bild drauf. Ich will aber nur auf den Desktop (Hintergrund) malen.
Das zweite Problem ist das ich den Text den ich schreibe jede Sekunde (mindestens) löschen und neu schreiben muss. Und wenn ich da jede Sekunde InvalidateRect benutze dann wird der Benutzer (= Ich!-.-^^) irgendwann verrückt vom Flimmern....

Achja.. Ich weiß nicht 100% ob GetDesktopWindow das Handle des Desktops zurückgeben soll aber bei mir hat das noch nie funktioniert... Also GetDC(GetDesktopWindow) hat keinen Sinn...

Gruß
Neutral General
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
xaromz

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

Re: Canvas und der Desktop

  Alt 2. Jan 2007, 14:35
Hallo,

an das Hintergrundbild kommst Du nicht ran. Die einzige mir bekannte Mögichkeit ist GetDC(0). Ab Vista ist davon aber abzuraten, da einige Funktionen nicht mehr unterstützt werden (z. B. XOR), und die Zugriffe wesentlich langsamer geworden sind.
Die beste Möglichkeit wäre wohl ein transparentes Fenster, mit MSDN-Library durchsuchenUpdateLayeredWindow kann man da schon was machen.

Gruß
xaromz
I am a leaf on the wind - watch how I soar
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

Re: Canvas und der Desktop

  Alt 2. Jan 2007, 14:37
Mh ok danke, aber welches Layered Window will ich denn Updaten?
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
xaromz

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

Re: Canvas und der Desktop

  Alt 2. Jan 2007, 14:40
Hallo,
Zitat von Neutral General:
Mh ok danke, aber welches Layered Window will ich denn Updaten?
das, welches Du selbst erzeugst und auf dem Dein Text steht.

Gruß
xaromz
I am a leaf on the wind - watch how I soar
  Mit Zitat antworten Zitat
Benutzerbild von chaosben
chaosben

Registriert seit: 27. Apr 2005
Ort: Görlitz
1.358 Beiträge
 
Delphi XE2 Professional
 
#5

Re: Canvas und der Desktop

  Alt 2. Jan 2007, 14:42
Quick and Dirty um auf den "Desktop" zu malen:
Delphi-Quellcode:
var
  h : HWND;
  c : TCanvas;
begin
  h:=FindWindow('Progman',nil);
  h:=FindWindowEx(h,0,'SHELLDLL_DefView',nil);
  h:=FindWindowEx(h,0,'SysListView32',nil);
  c:=TCanvas.Create;
  c.Handle:=GetDc(h);
  c.Pen.Color:=clRed;
  c.TextOut(10,10,'HehOsdffsdfsdsdf');
end;
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)
  Mit Zitat antworten Zitat
xaromz

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

Re: Canvas und der Desktop

  Alt 2. Jan 2007, 14:48
Hallo,

auch damit malt man über alles drüber. (Edit: damit meine ich jetzt nur die Desktop-Icons.)

Gruß
xaromz
I am a leaf on the wind - watch how I soar
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#7

Re: Canvas und der Desktop

  Alt 2. Jan 2007, 14:51
Zitat von xaromz:
Hallo,

auch damit malt man über alles drüber. (Edit: damit meine ich jetzt nur die Desktop-Icons.)

Gruß
xaromz
Das ist nicht schlimm...
Habs jetzt erst ma anders gelöst (Mit ner Form und Transparent-Color und nem Label) aber werd das auch mal ausprobieren.. thx..

Gruß
Neutral General
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von JamesTKirk
JamesTKirk

Registriert seit: 9. Sep 2004
Ort: München
604 Beiträge
 
FreePascal / Lazarus
 
#8

Re: Canvas und der Desktop

  Alt 3. Jan 2007, 19:23
Hi!

Ich weiß ja nicht, ob du diese Diskussion mitverfolgt hast, aber hier habe ich eine Klasse gepostet, die das ganze mit DirectX, genauer DirectDraw7 erledigt. Die Klasse hat noch ein paar kleinere Problemchen (auf einigen Rechnern funzt sie nicht, da diese ein anderes Farbmodell (RGB <> YUV) verwenden und auch Screenshots wollen noch nicht), aber ich hoff einfach mal, dass sie bei dir funktioniert.
Und bevor du jetzt sagst "Och nee... kein DX...", kann ich dich trösten: Du übergibst der Klasse (insofern sie funzt -.-) einfach einen Device Context und lässt den Rest der Klasse erledigen. Falls du das ganze mit Hintergrundbild haben willst, musst du einfach (theoretisch) das Bild (verkleinert, da ich keine größere zu kopierende Auflösung als 800x600 empfehle ) in den anzuzeigenden DC bringen, da temporär das Hintergrundbild deaktivert und die Hintergrundfarbe auf eine möglichst seltene Farbe gesetzt wird (werden sollte).

Bei Problemen kannst dich an mich wenden...

(Ach ja: nicht getestet auf Vista )

Edit: Hab fast vergessen, dass ich mittlerweile eine leicht verbesserte Version der Klasse habe... Unten in der Unit ist ein kleines Beispiel zur Verwendung
Angehängte Dateien
Dateityp: zip overlayunit_195.zip (6,8 KB, 22x aufgerufen)
Sven
[Free Pascal Compiler Entwickler]
this post is printed on 100% recycled electrons
  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 01:47 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