Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Bildschirmschoner Preview (https://www.delphipraxis.net/186749-bildschirmschoner-preview.html)

DelphiUser123 25. Sep 2015 18:30

Bildschirmschoner Preview
 
Hallo liebe Delphi Freunde,
ich habe Ähnliches schon woanders gepostet, aber hier ist wohl mehr los in der Bude.

Habe einen tollen Screensaver kreiert. Der einzige Schwachpunkt: Die Miniatur Vorschau im Einstellungsfenster klappt nicht. Die Vorschau soll lediglich das Firmenlogo zeigen.

Zuletzt habe ich folgendes probiert:
Delphi-Quellcode:
If ParamStr(1) = '/p' Then begin

 ParentWnd:= _StrToInt(ParamStr(2)); // _StrToInt ist oben definierte Funktion mit Val(...)
 Windows.GetWindowRect(ParentWnd, WndRect);


 Form5.WindowHandle:= ParentWnd;   //geht nicht

// Form5.Top:= WndRect.Top;
// Form5.Left:=WndRect.Left;

// Form5.Width:=152;
// Form5.Height:=112;


 Form5.Image2.Visible:=true;

 UpdateWindow(ParentWnd);
 Refresh;
Was ich bis dato hinbekommen habe ist ein Formular das genau in das Preview Fenster hinein passt und auch an dieser Stelle des Einstellungsdialoges erscheint: ABER als seperates Window.
Viele Versuche (auch mit Canvas.Create, TBitmap.Create) führten zwar zu fehlerfreiem Compilieren jedoch blieb der Preview Bereich schwarz.

Vielen Dank für Tipps

Sir Rufo 25. Sep 2015 18:45

AW: Bildschirmschoner Preview
 
Crossposts bitte verlinken
http://forum.delphi-treff.de/index.p...iatur-Vorschau

HolgerX 25. Sep 2015 18:49

AW: Bildschirmschoner Preview
 
Versuche es mal so ;)
Delphi-Quellcode:
If ParamStr(1) = '/p' Then begin

 ParentWnd:= _StrToInt(ParamStr(2)); // _StrToInt ist oben definierte Funktion mit Val(...)
 Windows.GetWindowRect(ParentWnd, WndRect); // Größe Vorschaufenster holen

 Form5.SetBounds(0, 0, WndRect.Right - WndRect.Left, WndRect.Bottom - WndRect.Top); // Größe des eigenen Vorschaufensters anpassen
 Form5.BorderStyle := bsNone; // Wir wollen ja keinen Fensterrahmen

 Windows.SetParent(Form5.Handle, ParentWnd); // Parent setzen
So wird DEIN Fenster im Vorschaufenster angezeigt und Du musst nicht (wie bei Delphi-Treff geschrieben) in einem 'Fremden' Fenster rummalen !!

DelphiUser123 26. Sep 2015 18:24

AW: Bildschirmschoner Preview
 
Danke HolgerX! Hat wunderbar geklappt mit dem Parent Befehl.
Der Link bei Delphi- Treff war auch aufschlussreich @DeddyH, ich habe auch einen Befehl von dort übernommen (IsWindowVisible...) für das Abschalten beim p Modus.
Gruss


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