![]() |
SnowScreenSaver
Liste der Anhänge anzeigen (Anzahl: 3)
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: ![]() |
Re: SnowScreenSaver
Vorschläge:
- Eigenes "Schneefallbild" - Mögliche Rotation des Bildes (optional) - Dichte - Schnelligkeit |
Re: SnowScreenSaver
weitere Idee: Bild in unterschiedlichen größen /mehrere Bilder
|
Re: SnowScreenSaver
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 |
Re: SnowScreenSaver
|
Re: SnowScreenSaver
@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. ![]() |
Re: SnowScreenSaver
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 :D [/edit] |
DP-Maintenance
Dieses Thema wurde von "Matze" von "Freeware" nach "Open-Source" verschoben.
Mittlerweile Open-Source. :) |
Re: SnowScreenSaver
Liste der Anhänge anzeigen (Anzahl: 2)
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 ![]() ![]() |
Re: SnowScreenSaver
wenn du schon auf Try-Finaly verzichtest, dann doch bitte "richtig".
Delphi-Quellcode:
sonst wird der Speicher nicht freigegeben, wenn der Eintrag nicht existiert.
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 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:
aber statt der Registry leg ich dir mal ein
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; ![]() (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; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:55 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