Einzelnen Beitrag anzeigen

Popov
(Gast)

n/a Beiträge
 
#6

Re: Eine Frage die nur die Glaskugel beantworten werden kann

  Alt 17. Nov 2007, 23:09
Also ich hab noch ein wenig experimentiert und weiß jetzt etwas mehr. Entgegen dem was ich zuerst geschrieben habe, daß auch das Hauptfenster und Konfiguration-Fenster nicht beendet werden, stellte sich heraus, daß beide durchaus beendet werden. Allerdings wird nach dem Beenden eines der beiden Fenster in Eigenschaften von Anzeige der Screensaver erneut mit dem /P Parameter für das Previev gestartet. Es sah also nur so aus als ob das Hauptfenster oder Konfiguration-Fenster nicht beenden würde.

Der Schuldige Part ist also Preview.

Also hab ich alzaimar Empfehlung bis ins Extreme getrieben und hab alles bis auf das Preview Fenster gelöscht. Sogar die Projektdatei hat keinen Extracode.

Delphi-Quellcode:
uses
  SysUtils,
  Forms,
  uPreview in 'uPreview.pas{Preview};

{$R *.RES}

begin
  Application.Initialize;
  Application.CreateForm(TPreview, Preview);
  Application.Run;
end.
Das Previefenster hat nur noch eine Prozedur:

Delphi-Quellcode:
procedure TPreview.FormCreate(Sender: TObject);
var
  hWnd: THandle;
  Rec: TRect;
begin
  hWnd := StrToIntDef(ParamStr(2), 0);
  GetWindowRect(hWnd, Rec);
  SetBounds(0, 0, Rec.Right - Rec.Left, Rec.Bottom - Rec.Top);

  BorderStyle := bsNone;

  Windows.SetParent(Self.Handle, hWnd);
end;
Noch weniger geht nicht. Das Ganze wird korrekt im Preview Monitor angezeigt, nur nicht beendet. So in etwa, zumindest den zweiten Code, habe ich in jeder meiner BS. Keine Ahnung was hier anders ist.
  Mit Zitat antworten Zitat