![]() |
Auf dem Desktop ''malen''
Hallo, wie kann ich auf dem Desktop ''malen'' mit Canvas, bei einer Mausbewegung
ich hab Delphi3 Pro! Danke im Voraus tschau |
Diese Prozedur zeichnet eine Linie auf dem Desktop
Delphi-Quellcode:
var
dc : hdc; begin dc := GetDc(0); MoveToEx(Dc, 0, 0, nil); LineTo(Dc, 300, 300); end; |
und wie geht das dauerhaft?
Habe auch son Prog. wo direkt auf dem desk gezeichnet wird!
Fragen! Wie kann ich das dauerhaft einrichten! Warum funkst bei mir doch die moveto funk. nit? (delphi6 enterp., winxp) :shock: @wardz |
Dauerhaft einrichten wird wohl nicht gehen, da bei jedem Neuzeichnen des Desktops alles wieder verschwiednen wird von dir.
|
Zitat:
besteht nicht die Möglichkeit ein transparentes Fenster über den gesamten Desktop zu legen und dann auf diesem zu zeichnen? Quasie wie eine durchsichtige Folie. |
Das ginge, nur was machst du mit Windows9x? :wink:
|
Zitat:
|
Das is natürlich auch ne elegante Lösung :lol:
Ne im Ernst, aber wenn er ein transparentes Fenster nimmt, verschwindet alles, was drin is, sobald er das Programm beendet und das is auch nich optimal. :wink: |
Wird dir genauso passieren, wenn du es schaffst, dass er permanet auf dem Desktop bleibt und du Windows beendet und wieder startest.
dann mu0ß du es beim Beenden des Programms eben speichern und beim Öffnen wieder laden. :wink: |
Noch was, was gegen ein Transparentes fenster spricht. Wenn die Zeichnung immer zu sehen sein soll, dann muss das Programm ja immer im Vordergrund sein...was wiederum heißt, dass man keine anderen Programme mehr bedienen kann. Also nich so doll...
|
Zitat:
Hintergrund: Bei ein einem Vortrag oder einer Schulung kann dann der Vortragende schnell mal einen bestimten Bereich (z.B. einen Menüpunkt oder einen Eintrag in einer Excel-Tabelle) dadurch hervorheben das er einen roten Kreis darum malt. Es ist also nur für eine temporäre Zeichnung notwendig. Zu diesem Zeitpunkt muss ja kein anderes Programm bedient werden. Mit der ESC-Taste soll das Fenster dann wieder verschwinden und es kann normal weiter gemacht werden. |
Achso..ich dachte, du wolltest ein dauerhaftes Bild über den Desktop malen.
|
Re: Auf dem Desktop ''malen''
hab noch ne frage: hat jemand ne ahnung, wie ich das machen muss, wenn ich mit der maus zeichnen will. irgendwie klappt das bei mir nicht. der fängt an einer ganz anderen stelle zu malen an, als an der ich geklickt habe
|
Re: Auf dem Desktop ''malen''
Überprüfst du auch die richtigen Mauskoordinaten? Du darfst nicht die absoluten Koordinaten abfragen, sondern musst die Mauskoordinaten relativ zur linken oberen Ecke des Forms finden. Evtl. kannst du ja mal Form1.Left bzw. Form1.Top von Mouse.CursorPos.x bzw. Mouse.CursorPos.y abziehen
Greetz alcaeus |
Re: Auf dem Desktop ''malen''
Wenn du den desktop zu dem Zeitpunkt nicht klickbar machen willst kannst du auch einfach einen Screenshot machen bei dem Hotkey und den dann als zeichenfläche anbieten
|
Re: Auf dem Desktop ''malen''
whiteboard/smartboard software hat das auch
einfach mal bei google nach webster oder smartboard (beides firmen) suchen ps:die webster software ist schlechter als die von smartboard. ich weiß das, weil wir bei uns in jeder klasse von den neuen räumen ein smartboard/whiteboard haben. zuerst muit websterboards und jetzt mit smartboardboards, weil die auflösung dabei viel besser war |
Re: Auf dem Desktop ''malen''
ich steig immer noch nicht so ganz durch :|
wo muss ich den programmcode fürs Zeichnen einfügen, damit ich auch auf dem desktop zum malen anfangen kann? bis jetzt hab ich nur auf der form klicken und dann erst hinausmalen können. |
Re: Auf dem Desktop ''malen''
Hier mal nen Sourceschnippsel, sollte alles selbsterklärend sein
Delphi-Quellcode:
[...]
type TForm1 = class(TForm) [...] FMDown: Boolean; { Private declarations } [...] procedure TForm1.FormCreate(Sender: TObject); begin Brush.Style := bsClear; end; procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin if FMDown then Canvas.LineTo(x, y); end; procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin fMDown := True; Canvas.MoveTo(x, y); end; procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin fMDown := False; end; |
Re: Auf dem Desktop ''malen''
das mit dem zeichnen mit der klappt, aber ich glaube wir haben aneinander vorbeigeredet.
wenn ich zum zeichnen anfangen will muss ich auf der Form klicken, damit ich malen kann. Ich kann nicht einfach irgendwo am Desktop ansetzen und dann ne Linie ziehen. Gibts da ne Möglichkeit, das so einzustellen? |
Re: Auf dem Desktop ''malen''
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:32 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz