AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Canvas Bewegen (schnee programm)
Thema durchsuchen
Ansicht
Themen-Optionen

Canvas Bewegen (schnee programm)

Ein Thema von hedie · begonnen am 2. Jan 2008 · letzter Beitrag vom 4. Jan 2008
Antwort Antwort
Seite 1 von 2  1 2      
hedie

Registriert seit: 12. Dez 2005
Ort: Schweiz
1.024 Beiträge
 
Delphi XE6 Starter
 
#1

Canvas Bewegen (schnee programm)

  Alt 2. Jan 2008, 14:10
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

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
Angehängte Grafiken
Dateityp: bmp snow_161.bmp (90 Bytes, 86x aufgerufen)
Claudio
Tu was du nicht lassen kannst
- http://endasmedia.ch
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#2

Re: Canvas Bewegen (schnee programm)

  Alt 2. Jan 2008, 14:16
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.
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
hedie

Registriert seit: 12. Dez 2005
Ort: Schweiz
1.024 Beiträge
 
Delphi XE6 Starter
 
#3

Re: Canvas Bewegen (schnee programm)

  Alt 2. Jan 2008, 14:18
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

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
Claudio
Tu was du nicht lassen kannst
- http://endasmedia.ch
  Mit Zitat antworten Zitat
hedie

Registriert seit: 12. Dez 2005
Ort: Schweiz
1.024 Beiträge
 
Delphi XE6 Starter
 
#4

Re: Canvas Bewegen (schnee programm)

  Alt 2. Jan 2008, 23:37
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
Claudio
Tu was du nicht lassen kannst
- http://endasmedia.ch
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Canvas Bewegen (schnee programm)

  Alt 2. Jan 2008, 23:49
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
  Mit Zitat antworten Zitat
hedie

Registriert seit: 12. Dez 2005
Ort: Schweiz
1.024 Beiträge
 
Delphi XE6 Starter
 
#6

Re: Canvas Bewegen (schnee programm)

  Alt 2. Jan 2008, 23:52
Habe für die horizontale Positionierung auch

Screen.width verwendet...

Hmmm ok ich werds mal versuchen...

Also brauch ich gar keine canvas?
Claudio
Tu was du nicht lassen kannst
- http://endasmedia.ch
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Canvas Bewegen (schnee programm)

  Alt 3. Jan 2008, 00:00
Also Deine Flocken haben sich auf meinem Desktop "eingebrannt"
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
  Mit Zitat antworten Zitat
hedie

Registriert seit: 12. Dez 2005
Ort: Schweiz
1.024 Beiträge
 
Delphi XE6 Starter
 
#8

Re: Canvas Bewegen (schnee programm)

  Alt 3. Jan 2008, 00:02
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
Claudio
Tu was du nicht lassen kannst
- http://endasmedia.ch
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Canvas Bewegen (schnee programm)

  Alt 3. Jan 2008, 00:07
Vielleicht liegt´s an meinem Vista?
Schlimmstenfalls musst Du mir einen neuen Bildschirm schicken

Viel Spaß
stahli
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Canvas Bewegen (schnee programm)

  Alt 4. Jan 2008, 11:51
hedie, schau mal hier:

Webseiten-Titel

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

stahli
  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 06:14 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