Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Zufalls-Bild-auswähler-und-mit-Kalender-verseher-und-als-HG (https://www.delphipraxis.net/58888-zufalls-bild-auswaehler-und-mit-kalender-verseher-und-als-hg.html)

Seras 14. Dez 2005 10:11


Zufalls-Bild-auswähler-und-mit-Kalender-verseher-und-als-HG
 
Liste der Anhänge anzeigen (Anzahl: 2)
Moin,

ich habe vor einiger Zeit mal ein Tool geschrieben das folgendes macht:
In einem Vorgegebenen Ordner wird ein Bild per Zufall ausgewählt.
Dieses Bild wird auf die Größe des Desktops skaliert. Anschließend wird unten rechts ein Kalender eingefügt, in dem die Wochenenden und der aktive Tag farbig markiert sind, und das sogar dreisprahig.
Zum guten Schluß wird das Wallpaper als "wallpaper.bmp" gesetzt und als Windows Hintergrund genommen.
(Bitte beachten: Eine vorhandene Wallpaper.bmp wird ohne Nachfrage überschrieben)

Hilfetext:
Code:
D:\Delphi\Wallpaper>Wallpaper.exe -h

Random Wallpaper Generator - Version 1.1.1
(c) 2005 Michael Stum, [url]http://www.Stum.de[/url]

PARAMETERS:
-h Display this help message
-p Specify path for pictures (Default: My Pictures)
-t Specify Type of Text to add (0: No Text, 1: Add Calendar)
-f Specify font to Use (Default: Lucida Console)
-s Specify font-style: b, i, bi (bold, italic, bold and italic)

TEXTTYPE 1 (Add Calendar) OPTIONS:
-w Specify weekend as 2 Numbers for first and last day (Default: 67 - Saturday and Sunday)
-l Specify language to use (EN (default), DE, FR)

EXAMPLE: Wallpaper.exe -p"C:Wallpapers" -t1 -f"Courier New" -sbi -lFR -w23
Will look in C:\Wallpapers, adds calendar, uses Courier New in Bold
and Italic as Font, uses French Text and sets the Weekend to Tuesday-Wednesday
Es ist eigentlich relativ selbsterklärend. Man kann den Kalender auch ausschalten (-t0) und nur einen Zufallshintergrund nehmen. Ich hatte die Option etwas flexibel gestaltet um auch mal andere Sachen einzufügen (Beispiel: Per Indy die neusten Delphi-News von eineer Webseite auslesen und die Headlines einfügen), habe das aber nie weiter verfolgt.

Optimierungsbedarf? Naja, ich versuche, das Ding so klein wie möglich zu halten. Wirklich "Benötigt" wird GraphicEx und Graphics32, aber ich habe ansonsten einfach zu viele Units meiner Meinung nach.
Die Unit "Forms" kann zum Beispiel raus, dann müsste aber die Zeile "WallpaperImage.Bitmap.SetSize(Screen.Width,Screen .Height);" raus (diese Zeile ändert die Größe des Eingangsbildes auf die größe des Desktops) oder durch eine Funktion ersetzt werden, die ohne die Forms-Unit die Desktop.Auflösung besorgt.
Die Unit Graphics könnte wahrscheinlich auch raus, die ist nur drin weil Delphi sonst bei "fsItalic" meckert. Wahrscheinlich lässt sich das auch durch eine Zahl ersetzen.
jclshell (Jedi Code Library) ist nur aus bequemlichkeit drin, damit ich den "Eigene Bilder"-Ordner bekommen kann. Das lässt sich wahrscheinlich auch mit WindowsAPI-Funktionen lösen.

Damals wollte ich mich nicht lange damit herumschlagen und habe einfach die Units in die uses-Klausel gepackt.

Und zu guter letzt fehlt mir noch eine Möglichkeit zu cheken, ob eine bestimmte Schriftart auch existiert.


Naja, genug der Rede. Sourcecore (Veröffentlicht unter MPL 1.1) und ein Beispielbild im Anhang.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:38 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