Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Vorschau eines Bildschirmschoners (https://www.delphipraxis.net/83089-vorschau-eines-bildschirmschoners.html)

xZise 27. Dez 2006 10:09


Vorschau eines Bildschirmschoners
 
Ich habe eine Frage zum Paramter "/P":
Soll dieser Paramter sagen, dass der Bildschirmschoner im kleinen Fenster vom Anzeigendialog angezeigt werden soll?

Dann hätte ich eine Frage: Wie kann ich das realisieren?

turboPASCAL 27. Dez 2006 15:10

Re: Vorschau eines Bildschirmschoners
 
Zitat:

Zitat von xZise
Ich habe eine Frage zum Paramter "/P":
Soll dieser Paramter sagen, dass der Bildschirmschoner im kleinen Fenster vom Anzeigendialog angezeigt werden soll?

Ja.

Hinter dem Parameter "P" steht noch das Handle des Fensters auf dem dann dein Fenster erscheinen kann/soll.
zB.:
Delphi-Quellcode:
FormX.ParentWindow := StrToInt(ParamStr(2));

Sunlight7 27. Dez 2006 15:18

Re: Vorschau eines Bildschirmschoners
 
Delphi-Quellcode:
FormX.ParentWindow := StrToIntDef(ParamStr(2), 0);
Sonst krachts, wenn es wer mit dem Parameter /P startet :wink:

SirThornberry 27. Dez 2006 15:26

Re: Vorschau eines Bildschirmschoners
 
Warum sollte es da krachen? Zudem ist es glaub ich besser es kracht als das man sich einfach wundert das gar nix passiert weil keine Fehlermeldung kommt.

DGL-luke 27. Dez 2006 15:38

Re: Vorschau eines Bildschirmschoners
 
"0" ist der "Desktop", SirT. Also absolut fail-safe.

Sunlight7 27. Dez 2006 16:03

Re: Vorschau eines Bildschirmschoners
 
Otto Normalbürger kann mit der Fehlermeldung " '' ist kein gültiger Integerwert" eh nix Anfangen, also warum ihn damit Nerven, wenn mans gleich abfangen kann?

SirThornberry 27. Dez 2006 16:23

Re: Vorschau eines Bildschirmschoners
 
weil er sich dann an den Hersteller wenden kann. Viel schlimmer finde ich wenn der Bildschirmschoner dann gleich auf Vollbild läuft weil der falsche Parent angegeben wurde. Vor allem weiß der Endnutzer dann auch sofort das es sich um einen Fehler handelt und nicht das es Absicht ist.

Sunlight7 27. Dez 2006 17:07

Re: Vorschau eines Bildschirmschoners
 
Eigentlich hatt' ich eher an sowas gedacht, schreib' ich mal zur Vervollständigung dazu :)

Delphi-Quellcode:
Wnd := StrToIntDef(ParamStr(2), 0);
If Wnd<>0 then
   FormX.ParentWindow := Wnd else begin
      ShowMessage('Hmm, da stimmt was mit dem Parameter net...');
      Application.Terminate;
      Exit;
   end;

SirThornberry 27. Dez 2006 18:35

Re: Vorschau eines Bildschirmschoners
 
das kommt einer ordentlichen Lösung schon näher wobei dann TryStrToInt angebrachter wäre

Sunlight7 27. Dez 2006 18:39

Re: Vorschau eines Bildschirmschoners
 
Aber auch nur dann, wenn die Delphi Version TryStrToInt kennt... :wink:

xZise 28. Dez 2006 10:13

Re: Vorschau eines Bildschirmschoners
 
Danke @ all ;)

@ Try...: Ich habe TD ;) Ich denke, dass sollte Try... besitzen ^^

[edit]Ich habe ein paar Fragen:
1.: Wie schaffe ich es im Fenster zu "Maximieren"?
2.: Wie macht man es, dass sich der Bildschirmschoner nicht beendet, wenn ich die Maus bewege, aber dass er sich trotzdem beenden lässt?
3.: Wie komme ich an die Höhe ran?
4.: Wie kann ich die Bilder resizen? Geht es über
Delphi-Quellcode:
BMP.Canvas.StrechDraw(Rect(0,0, X, Y), BMP
? Wie kriege ich dann "TJPGImage" resized?[/edit]

Sunlight7 28. Dez 2006 17:43

Re: Vorschau eines Bildschirmschoners
 
'n Abend!

1. Wozu? Siehe Punkt 3
2. Ich mach das mit MSDN-Library durchsuchenIsWindow und MSDN-Library durchsuchenIsWindowVisible wenn das Parent Fenster vom Anzeige Dialog nicht mehr da ist, dann beenden.
3. MSDN-Library durchsuchenGetWindowRect und Left, Top auf 0 setzen
4. Ja, Du könntest es auch auf ein Canvas zeichen, und das dann mit StretchDraw resizen

Grüßle!

xZise 29. Dez 2006 10:36

Header & Footer
 
Hi Sunlight7

Zitat:

Zitat von Sunlight7
2. Ich mach das mit MSDN-Library durchsuchenIsWindow und MSDN-Library durchsuchenIsWindowVisible wenn das Parent Fenster vom Anzeige Dialog nicht mehr da ist, dann beenden.

Und wie ist das mit dem Settingsdialog?
Weil da müsste sich das auch beenden ;) Oder meckert die "IsWindowsVisible"-Funktion rum, wenn dass Fenster überdeckt wirkt bzw. nicht im Vordergrund ist?

[edit]Öhm:
Zitat:

Zitat von The MSDN Help
Because the return value specifies whether the window has the WS_VISIBLE style, it may be nonzero even if the window is totally obscured by other windows.

[/edit]

Zitat:

Zitat von Sunlight7
1. Wozu? Siehe Punkt 3
[...]
3. MSDN-Library durchsuchenGetWindowRect und Left, Top auf 0 setzen

Funzt ;) Danke

Zitat:

Zitat von Sunlight7
4. Ja, Du könntest es auch auf ein Canvas zeichen, und das dann mit StretchDraw resizen

Hat sich inzwischen erledigt ;)

Mit freundlichen Grüßen
xZise

Sunlight7 29. Dez 2006 17:30

Re: Header & Footer
 
'n Abend!

Zitat:

Zitat von xZise
Und wie ist das mit dem Settingsdialog?
Weil da müsste sich das auch beenden ;) Oder meckert die "IsWindowsVisible"-Funktion rum, wenn dass Fenster überdeckt wirkt bzw. nicht im Vordergrund ist?

Nö warum?
Eigentlich sollte man den SettingsDialog mit ShowModal zeigen, sodass der User bei Eigenschaften von Anzeige gar net auf OK, oder Abbrechen klicken kann, bevor er den Dialog zumacht.

Zitat:

Zitat von xZise
[edit]Öhm:
Zitat:

Zitat von The MSDN Help
Because the return value specifies whether the window has the WS_VISIBLE style, it may be nonzero even if the window is totally obscured by other windows.

[/edit]

Probiers, es funkt dennoch.

Grüßle!

xZise 29. Dez 2006 20:54

Re: Vorschau eines Bildschirmschoners
 
Es funktioniert!

(lol ;) Aber isso :D)

Sunlight7 29. Dez 2006 20:58

Re: Vorschau eines Bildschirmschoners
 
Sag ich doch :mrgreen:


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