AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Auf Desktop zeichnen

Ein Thema von KahPee · begonnen am 28. Jun 2010 · letzter Beitrag vom 28. Jun 2010
Antwort Antwort
Seite 1 von 2  1 2   
Benutzerbild von KahPee
KahPee

Registriert seit: 12. Mai 2009
214 Beiträge
 
Turbo Delphi für Win32
 
#1

Auf Desktop zeichnen

  Alt 28. Jun 2010, 11:42
Hallo,

ich habe vor ein Programm zu programmieren was ermöglicht direkt auf dem Desktop zu zeichnen. "zu zeichnen" bedeutet ich möchte einfache Zeichenfunktionen wie Linien, Freihandzeichnungen, Ellipsen und Rechtecke zeichnen. Wie man dies auf einem TBitmap macht (Canvas) weiß ich auch schon und habe ich auf schon mehrfach angewendet. In meinem konkreten Fall geht es jetzt aber darum nicht auf eine vorbereitete Zeichenfläche zu zeichnen sondern direkt auf dem Desktop. Damit meine ich, dass ich wenn ein z.b.: Firefox-Fenster geöffnet habe ich direkt auf das Fenster zeichnen können möchte (Die Toolleiste bleibt im Vordergrund und Zeichenfunktion ist an-/ausschaltbar, damit auch noch die normale Bedienung des Programms möglich ist).
Hat jemand eine Idee wie man das "Globales" Zeichnen realisieren könnte?

Schon mal vielen Dank im Voraus

mfg KahPee

Geändert von KahPee (28. Jun 2010 um 11:48 Uhr) Grund: nur eine Frage pro Thread ;)
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

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

AW: Auf Desktop zeichnen

  Alt 28. Jun 2010, 11:44
Kannst du bitte für deine zweite Frage ein neues Thema eröffnen und diese aus dem ersten Beitrag entfernen? (Bei uns gilt: Pro Thema nur eine Frage) Danke
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#3

AW: Auf Desktop zeichnen

  Alt 28. Jun 2010, 12:02
Delphi-Quellcode:
var
  DC : HDC;
  Canvas : TCanvas;
begin

      DC := GetWindowDC(GetDesktopWindow());
      try
        Canvas := TCanvas.Create();
        try
          Canvas.Handle := DC;
          Canvas.Pen.Color := clLime;
          Canvas.Rectangle(1,1,100,100);
        finally
          Canvas.Free;
        end;
      finally
        ReleaseDC(0, DC);
      end;

end
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von KahPee
KahPee

Registriert seit: 12. Mai 2009
214 Beiträge
 
Turbo Delphi für Win32
 
#4

AW: Auf Desktop zeichnen

  Alt 28. Jun 2010, 12:36
Hey vielen Dank, das war ja gar nicht so schwer. Allerdings habe ich festgestellt, das das erzeugte rechteck sehr "flüchtig" ist. Wenn man die Maus über die Taskleiste oder aber über Minimieren/Maximieren und andere flächen bewegt verschwindet das rechteck gleich wieder. Kann man irgendwie erzwingen, dass das Rechteck nicht bei solchen Ereignissen verschwindet (denke mal es handelt sich um Prozeduren à la Repaint oder so)

Geändert von KahPee (28. Jun 2010 um 12:44 Uhr)
  Mit Zitat antworten Zitat
blackfin
(Gast)

n/a Beiträge
 
#5

AW: Auf Desktop zeichnen

  Alt 28. Jun 2010, 12:59
Wernn das Fremd-Fenster sich neuzeichnet, sind deine schönen Rechtecke natürlich wieder weg.
Als Ausweg gibts dann nur, die Neuzeichnungs-Message des Fremd-Fensters zu hooken und deinen Zeichen-Code direkt danach auszuführen, immer dann, wenn sich das Fremd-Fensteer neu zeichnen will.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
39.650 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Auf Desktop zeichnen

  Alt 28. Jun 2010, 13:36
Oder man legt ein transparentes Fenster über alles und zeichnet darin "nichttransparent" das Gewünschte ein.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014
  Mit Zitat antworten Zitat
blackfin
(Gast)

n/a Beiträge
 
#7

AW: Auf Desktop zeichnen

  Alt 28. Jun 2010, 13:39
Dann muss man aber irgendwie noch das "Durchklicken" emulieren, oder nicht?
Und nicht nur das...Eingabefelder, Scrollleisten usw...

Naja, kommt drauf an, wofür das eigentlich gedacht ist. Wenns ein Bildschirmschoner sein soll, dann dürfte das ja keine Probleme machen, aber sonst sind die Fenster unter dem transparenten ja gesperrt.

Geändert von blackfin (28. Jun 2010 um 13:43 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.400 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Auf Desktop zeichnen

  Alt 28. Jun 2010, 13:45
IIRC ist das aber mit WS_EX_LAYERED in den Griff zu bekommen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
blackfin
(Gast)

n/a Beiträge
 
#9

AW: Auf Desktop zeichnen

  Alt 28. Jun 2010, 13:54
Huh?...*googlegoogle*....wusste ich gar nicht, dass es sowas gibt

Wieder was gelernt
Aber ist die Eigenschaft fürs Durchklicken dann nicht eher WS_EX_TRANSPARENT?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.400 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: Auf Desktop zeichnen

  Alt 28. Jun 2010, 14:00
Die Kombination von beiden macht' s Hab da einen alten Thread wiedergefunden: http://www.delphipraxis.net/544575-post.html#633055
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 08:54 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf