Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Canvas Bewegen (schnee programm) (https://www.delphipraxis.net/105927-canvas-bewegen-schnee-programm.html)

hedie 2. Jan 2008 13:10


Canvas Bewegen (schnee programm)
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo

Ich möchte ein Programm schreiben, welches Fallender Schnee auf dem Gesamten (!) Desktop simuliert

Habe dazu mal diesen Code zusammengebastelt:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  h : HWND;
  c : TCanvas;
  i:tbitmap;
begin
  i:=tbitmap.Create;
  i.LoadFromFile('snow.bmp');
  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.Draw(100,100,i);
  //c.TextOut(100,100,'HehOsdffsdfsdsdf');
end;
Die Schneeflocke ist angehängt :D

Nun bräuchte ich ein paar Tipps oder Code schnipsel wie ich die Schneeflocken animieren kann

Und was ich machen muss damit sie bei Objekten wie zb Fenster oder Icons liegen bleiben...

Danke schonmal

Liebe Grüsse
Claudio

turboPASCAL 2. Jan 2008 13:16

Re: Canvas Bewegen (schnee programm)
 
Das kannst du dir zB. dort abgucken: SnowScreenSaver

//Edit: Hm, das ist kein gutes Beispiel wie ich nun feststellen muss.
Es ist nicht notwendig die Recourcen ständig im Timer zuladen. Einmal
laden im FormCreate reicht.

hedie 2. Jan 2008 13:18

Re: Canvas Bewegen (schnee programm)
 
Danke...

Damit hätte ich mal die Bewegung

Jetzt muss ich noch das Ansetzen irgendwie realisieren :)

//////Edit

Also mit dem empfohlenen Screen Saver komme ich nicht wirklich zurecht...

Ich sehe nicht, wo genau die Flocken bewegt werden....


Hier hab ich noch die erste EXE.... Was haltet ihr von den Flocken?

Habe den Timer auf 50 und mit

Delphi-Quellcode:
random(Screen.height);
mache ich den zufall, bei mir kommen die Flocken aber nie nach ganz recht, is das bei euch auch so?

Hier die EXE in meinem Filestore LINK

hedie 2. Jan 2008 22:37

Re: Canvas Bewegen (schnee programm)
 
Hab gesehen, das bies jetzt nur jemand die Datei heruntergeladen hat....

Hat jemand einen Tipp für mich wie ich diese Flöckchen bewegen könnte??

Der edit hat ja gezeigt, das der screensaver nich das beste beispiel war :?

Danke schonmal

stahli 2. Jan 2008 22:49

Re: Canvas Bewegen (schnee programm)
 
Hallo Hedie,

für die horizontale Positionierung müsstest Du Screen.Width verwenden.

Zum Bewegen der Flocken musst Du sicherlich Objekte erzeugen (TImage?) und in einer Liste verwalten. Dann kannst Du über einen Timer deren Positionen ändern.
Ich würde das erst mal in einem Formular ausprobieren.

Wie Du solche Objekte auf den Desktop setzen kannst und vor allem auch noch offene Fenster(-Bereiche) ermitteln kannst ... keine Ahnung.
Ist aber eine interessante Aufgabe :-)

stahli

hedie 2. Jan 2008 22:52

Re: Canvas Bewegen (schnee programm)
 
Habe für die horizontale Positionierung auch

Delphi-Quellcode:
Screen.width
verwendet...

Hmmm ok ich werds mal versuchen...

Also brauch ich gar keine canvas?

stahli 2. Jan 2008 23:00

Re: Canvas Bewegen (schnee programm)
 
Also Deine Flocken haben sich auf meinem Desktop "eingebrannt" :cry:
Das Hintergrundbild wird ja erst wieder bei einem Neustart geladen, denke ich.
Der Weg ist also nicht optimal.

Wenn man auf einen Canvas zeichnet muss man ggf. selbst dafür sorgen, dass die Aktion wieder rückgängig gemacht wird (such mal hier nach Linie und Gummiband).

Wenn man Komponenten instanziert und positioniert kann man diese leicht in einer Liste verwalten und diese dann verschieben obder auch wieder freigeben.

Wenn Du keine besseren Tipps enhältst würde ich das Ganze erst mal mit Komponenten in einer Formularanwendung umsetzen.
Später kannst Du das Ganze dann evtl. auf den Desktop "auslagern".


stahli

hedie 2. Jan 2008 23:02

Re: Canvas Bewegen (schnee programm)
 
ok ich versuche mal mein bestes....

Merkwürdig das die sich bei dir eingebrannt haben....

Sobald ich bei mir ein fenster drüber leg, sind die wieder weg

stahli 2. Jan 2008 23:07

Re: Canvas Bewegen (schnee programm)
 
Vielleicht liegt´s an meinem Vista?
Schlimmstenfalls musst Du mir einen neuen Bildschirm schicken ;-)

Viel Spaß
stahli

stahli 4. Jan 2008 10:51

Re: Canvas Bewegen (schnee programm)
 
hedie, schau mal hier:

Webseiten-Titel

... könnte auch interessant sein für Dich.

stahli


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:12 Uhr.
Seite 1 von 2  1 2      

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