AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte [Freeware] SnowSaver - Neue Version v. 01.12.
Thema durchsuchen
Ansicht
Themen-Optionen

[Freeware] SnowSaver - Neue Version v. 01.12.

Ein Thema von patti · begonnen am 21. Nov 2007 · letzter Beitrag vom 4. Dez 2007
 
Popov
(Gast)

n/a Beiträge
 
#30

Re: [Freeware] SnowSaver - Neue Version v. 26.11.

  Alt 27. Nov 2007, 02:53
Vielleicht noch paar Tipps und Verbesserungsvorschläge.

Zuerst eine Kleinigkeit die kaum Aufwand bedeutet. Wenn man im Explorer sich die Eigenschaften deines Screensavers anguckt, dann steht unter "Beschreibung" der Dateiname deines Bildschirmschoners ohne die Endung. Das ist keine Katastrophe, aber in der Regel haben Bildschirmschoner hier eine Bezeichnung. Der Text der in den Eigenschaften als Beschreibung dient ist eine der Versionsinfos. Diese kann man in Projektoptionen unter Versionsinfo angeben. Der Betreffende Punkt ist "Beschreibung". Schreib dort eine Bezeichnung die unabhängig vom Dateinamen sein kann.

Eine zweite etwas größere Kleinigkeit ist die fehlende Vorschau im Prieviewfenster unter "Eingenschaften von Anzeige" > "Bildschirmschoner". Das Prieviewfenster kann entweder das Fenster des Bildschirmschoners sein, das etwas modifiziert beim Parameter /p abgespielt wird, oder ein eigenes Fenster. Bei der ersten Methode muß man einiges abfangen. So darf das Fenster nicht bei Tastendrücken und Mausbewegungen beendet werden und muß auch auf einer kleinen Fläche noch gut aussehen. Also keine 100 Flocken im Minifenster. Die andere Möglichkeit ist ein Extrafenster. Hier kann man einfach auch nur ein Bild von einer Flocke zeigen. Bei dir wird momentan ein schwarzer Bildschirm angezeigt. Da fehlt also etwas.

Hier paar Zeilen:

Delphi-Quellcode:
      'P': begin
             Application.Initialize;
             Application.CreateForm(TPreviewForm, PreviewForm);
             Application.Run;
               end;
Zum richtigen ansteuern in der Projektdatei.

Delphi-Quellcode:
procedure ScreenSaverPreview(Form: TForm);
var
  OldStyle: Integer;
  hWnd: THandle;
  Rec: TRect;
begin
  with Form do
  begin
    hWnd := StrToIntDef(ParamStr(2), 0);
    GetWindowRect(hWnd, Rec);
    SetBounds(0, 0, Rec.Right - Rec.Left, Rec.Bottom - Rec.Top);

    BorderStyle := bsNone;

    Windows.SetParent(Handle, hWnd);

    OldStyle := GetWindowLong(Handle, GWL_STYLE);
    SetWindowLong(Handle, GWL_STYLE, (OldStyle and not WS_POPUP) or WS_CHILD or WS_VISIBLE);
  end;

end; {Popov}

procedure TPreviewForm.FormCreate(Sender: TObject);
begin
  ScreenSaverPreview(Self);


end;
Hier ist alles was du für das Previewfenster brauchst. Es holt den Parameter, wandelt den um, paßt die Fenstergröße an, setzte das Parentfenster usw. Das Einzige was du noch machen mußt ist verhindern, daß das Fenster in der Taskleiste angezeigt wird und das Fenster mit einem Inhalt füllen.
  Mit Zitat antworten Zitat
 


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 11:19 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