AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Bildschirmschoner programmieren: Previewfenster?
Thema durchsuchen
Ansicht
Themen-Optionen

Bildschirmschoner programmieren: Previewfenster?

Ein Thema von Neg · begonnen am 20. Feb 2004 · letzter Beitrag vom 29. Dez 2005
 
tobster

Registriert seit: 19. Sep 2003
Ort: Schmalkalden
92 Beiträge
 
Delphi XE Starter
 
#3

Re: Bildschirmschoner programmieren: Previewfenster?

  Alt 17. Mai 2004, 18:55
Also an dieser Stelle kann ich doch spontan weiterhelfen, bin nämlich gerade an derselben Stelle, bzw. ein Schritt weiter, weil ich zwar das Preview angezeigt, aber nicht wieder automatisch WEG bekomme...

Hier erst mal, wie ich im DPR auf die Parameter reagiere (Nix wildes soweit):

Delphi-Quellcode:
begin
 if ParamCount > 0 then begin
  showmessage(paramstr(1));
  if (ParamStr(1) = '/s') or (ParamStr(1) = '/S') then begin
   Application.Initialize;
   Application.Title := 'Spectrum Clock';
   Application.CreateForm(Tfrm_ScrSave, frm_ScrSave);
   Application.Run;
  end else if (copy(ParamStr(1),1,2) = '/c') or (copy(ParamStr(1),1,2) = '/C') then begin
   Application.Initialize;
   Application.Title := 'Spectrum Clock';
   Application.CreateForm(Tfrm_Config, frm_Config);
   Application.Run;
  end else if (copy(ParamStr(1),1,2) = '/p') or (copy(ParamStr(1),1,2) = '/P') then begin
   Application.Initialize;
   Application.Title := 'Spectrum Clock';
   Application.CreateForm(Tfrm_preview, frm_preview);
   Application.Run;
  end;
 end;
end.
Wie gesagt, alles recht einfach! Im OnCreate-Ereignis vom Preview-Fenster kommt nun folgendes:

Delphi-Quellcode:
procedure Tfrm_preview.FormCreate(Sender: TObject);
var dispHWND: HWND;
    lngStyle: LongInt;
    DispRec: TRECT;
begin
 dispHWND := strtoint(paramstr(2));
 windows.GetClientRect(dispHWND, DispRec);
 lngStyle := GetWindowLong(frm_Preview.handle, GWL_STYLE);
 lngStyle := lngStyle or WS_CHILD;
 SetWindowLong(frm_Preview.handle, GWL_STYLE, lngStyle);
 windows.SetParent(frm_Preview.handle, dispHWND);
 SetWindowLong(frm_Preview.handle, GWL_HWNDPARENT, dispHWND);
 windows.SetWindowPos(frm_Preview.handle, HWND_TOP, 0, 0, DispRec.Right, DispRec.Bottom,
              SWP_NOZORDER Or SWP_NOACTIVATE Or SWP_SHOWWINDOW);
end;
Der Rest bleibt dir und deinem Bildschirmschoner überlassen. Wenn mir jetzt jemand im Gegenzug helfen könnte, wie man automatisch das Fenster wieder schliessen kann, wenn der Nutzer zum Bleistift, einen anderen Schoner auswählt, wäre ich auch um ein Vielfaches glücklicher!
Ciao
  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 08:40 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 by Thomas Breitkreuz