AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte SnowScreenSaver

SnowScreenSaver

Ein Thema von Hador · begonnen am 23. Dez 2006 · letzter Beitrag vom 20. Jan 2008
Antwort Antwort
Benutzerbild von Hador
Hador
Registriert seit: 11. Dez 2004
Mir kam grad spontan der Einfall, das man dem Wetter draußen doch entgegenwirken und ein wenig Schneefall am Rechner simulieren könnte.
Deshalb habe ich mich mal kurz drangesetzt und einen kleinen Bildschirmschoner programmiert.

Er ist zwar relativ einfach gestrikt (keine Vorschau/Einstellungen) aber evtl. findet der eine oder andere ja doch gefallen an ihm.

EDIT:
Rechtschreibfehler -_-''

EDIT2:
Quellcode angehängt

EDIT3:
Ich habe doch noch 'n bissl weiter gebastelt: SnowScreenSaverTxt
Miniaturansicht angehängter Grafiken
snowscreensaver_742.jpg  
Angehängte Dateien
Dateityp: zip snowscreensaver_164.zip (253,8 KB, 67x aufgerufen)
Dateityp: zip snowscreensaver.src_529.zip (91,7 KB, 67x aufgerufen)
http://www.larskiesow.de

Computer gehorchen deinen Befehlen, nicht deinen Absichten.
 
Benutzerbild von xZise
xZise

 
Delphi 2009 Professional
 
#2
  Alt 23. Dez 2006, 15:48
Vorschläge:
- Eigenes "Schneefallbild"
- Mögliche Rotation des Bildes (optional)
- Dichte
- Schnelligkeit
Fabian
  Mit Zitat antworten Zitat
Ratte

 
Delphi 2005 Personal
 
#3
  Alt 23. Dez 2006, 17:08
weitere Idee: Bild in unterschiedlichen größen /mehrere Bilder
  Mit Zitat antworten Zitat
Florian H

 
Delphi 6 Professional
 
#4
  Alt 23. Dez 2006, 18:48
Arg störend ist für mich die zufällige Links-rechts-Bewegung der Flocken .. ein Frame nach links.. im nächstne nach rechts.. usw .. ich fänds schon wenn du für jede Flocke ne eher geschwungene Bewegung machst.. also so ein langsames hin- und herschweben anstatt einem 1px-links/rechts-Zuckeln ...

grüßli
flo
Florian Heft
  Mit Zitat antworten Zitat
Benutzerbild von trifid
trifid
 
#5
  Alt 23. Dez 2006, 19:02
>Mir kam grad spontan der Einfall,
http://www.codeproject.com/gdi/FallingSnow.asp
  Mit Zitat antworten Zitat
Benutzerbild von Hador
Hador

 
Turbo Delphi für Win32
 
#6
  Alt 23. Dez 2006, 19:34
@trifid: kannte ich noch nicht.

Da das eigentlich nur 'n kleines Tool für zwischendurch sein sollte um mich von meinem Problem mit den Indys/ICS' abzulenken möchte ich das Tool eigentlich nicht großartig weiterentwickeln. Ich hänge den Quellcode mal an, so das jeder das Programm nach belieben erweitern kann.

Quellcode
Lars Kiesow
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

 
Delphi 2009 Professional
 
#7
  Alt 23. Dez 2006, 21:38
Hej danke

Ich habe jetzt schon einiges umgesetzt (eigene Geschwindigkeit, nicht mehr als 255 Objekte, verschiedene Größen), aber irgendwie wird das nicht so richtig was Obwohl es eigentlich fast dein Code ist ^^ Ich muss mal gucken Was ich da falsch gemacht habe

[edit]Ah Ein fall von Copy&Waste [/edit]
Fabian
  Mit Zitat antworten Zitat
23. Dez 2006, 23:18
Dieses Thema wurde von "Matze" von "Freeware" nach "Open-Source" verschoben.
Mittlerweile Open-Source.
Benutzerbild von Hador
Hador

 
Turbo Delphi für Win32
 
#9
  Alt 25. Dez 2006, 19:07
So ich habe doch noch ein wenig weitergebastelt.
Statt Bildern habe ich jetzt Text genommen (Standardmäßig: *) und nicht mehr für jede Flocke ein TImage.
Das erhöht die Performance um ein vielfaches.
Ferner habe ich auch ein kleines Konfigurationsmenü eingebaut.

Auch will ich noch auf diesen Thread aufmerksam machen, in dem xZise an dem Projekt weiterarbeitet.
Angehängte Dateien
Dateityp: zip snowscreensavertxt.src_197.zip (8,8 KB, 20x aufgerufen)
Dateityp: zip snowscreensavertxt.bin_122.zip (219,4 KB, 29x aufgerufen)
Lars Kiesow
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

 
Delphi 12 Athens
 
#10
  Alt 20. Jan 2008, 07:21
wenn du schon auf Try-Finaly verzichtest, dann doch bitte "richtig".


Delphi-Quellcode:
RegOpenKeyEx(HKEY_CURRENT_USER, 'Software\Microsoft\Windows\CurrentVersion\'
             + 'Explorer\Shell Folders', 0, KEY_READ, hk);
RegQueryValueEx(hk, 'AppData', nil, @RegType, nil, @BufSize);
GetMem(Buf, BufSize);
RegQueryValueEx(hk, 'AppData', nil, @RegType, Buf, @BufSize);
RegCloseKey(hk); // man könnte ja auch ml versuchen den Key
                  // zu schließen, den man auch geöffnet hat ;)
if (RegType = REG_SZ) and (BufSize > 1) then
begin
  SetLength(Txt, BufSize);
  CopyMemory(@Txt[1], Buf, BufSize);
  //FreeMem(Buf); << hier hast du es
  PC := PAnsiChar(Txt);
  Result := PC + '\';
end;
FreeMem(Buf); // << hier wär's besser
sonst wird der Speicher nicht freigegeben, wenn der Eintrag nicht existiert.

ach ja, hat sich Delphi eigentlich nicht wegen des Results gemeldet?
(des kann undefiniert sein)

PS: REG_EXPAND_SZ wäre auch möglich


Delphi-Quellcode:
function TSnowScreen.GetAppData: string;
var
  hk: HKEY;
  RegType: DWord;
  BufSize: Cardinal;
  Buf: PAnsiChar;
begin
  Result := '';
  if RegOpenKeyEx(HKEY_CURRENT_USER, 'Software\Microsoft\Windows\'
    + 'CurrentVersion\Explorer\Shell Folders', 0, KEY_READ, hk) then
  begin
    RegQueryValueEx(hk, 'AppData', nil, @RegType, nil, @BufSize);
    if BufSize > 0 then
    begin
      GetMem(Buf, BufSize);
      RegQueryValueEx(hk, 'AppData', nil, @RegType, Buf, @BufSize);
      if RegType = REG_SZ then Result := IncludeTrailingBackslash(Buf);
      FreeMem(Buf);
    end;
  end;
  RegCloseKey(hk);
end;
aber statt der Registry leg ich dir mal ein MSDN-Library durchsuchenExpandEnvironmentStrings ans Herz.
(wer weiß ob MS den Reg-Pfad nicht irgendwann ändert)
Delphi-Quellcode:
var Buf: array[0..MAX_PATH] of Char;
begin
  ExpandEnvironmentStrings('%AppData%\SnowScreenSaver.cfg', @Buf, MAX_PATH);
  Result := PChar(@Buf);
end;
  Mit Zitat antworten Zitat
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 21:49 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