Einzelnen Beitrag anzeigen

Optiplex

Registriert seit: 5. Mär 2008
131 Beiträge
 
Delphi 2005 Personal
 
#34

Re: Fenster nicht minimieren

  Alt 6. Nov 2008, 08:09
Hallo Julius,
Ich habe den Code nach deinen Vorgaben verändert, aber leider bekomme ich immer noch 2 Fehlermeldungen beide in der selben Zeile.

E2003 Undefinierter Bezeichner: 'NewWndProc'
E2010 Inkompatible Typen: 'Pointer' und 'Integer'

er kennt nicht NewWndProc egal ob mit oder ohne @ ich habe auch probiert mit Cardinal( @ NewWndProc)
irgendwie scheint hier noch was zu fehlen

Delphi-Quellcode:
   const DTM_Raise=WM_User+83;

type
  TForm2 = class(TForm)

  end;

var
  Form2: TForm2;
  OldwndProc:Pointer;
  progmanhandle:Thandle;

implementation

procedure TForm2.FormCreate(Sender: TObject);
begin
  progmanhandle:=findwindow('Progman','Program Manager');
  OldwndProc:=Setwindowlong(progmanhandle,GWL_WNDPROC,@NewWndProc);
end;

function NewWndProc(hWnd:HWND;uMsg:Uint;wparam:WParam;lParam:LPARAM):Lresult;
begin
  if (uMsg=DTM_RAISE) then begin
// sleep(3000);
  end else CallwindowProc(Oldwndproc,hwnd,umsg,wparam,lparam);
end;
Hallo Oliver,
es ist auf jeden Fall sehr nützlich zu wissen durch welche Vorgaben man dieses Verhalten des Fensters erreichen kann, nur das Fenster steht dann ständig im Vordergrund, das ist für den Einsatzbereich für den du das Programm geschrieben hast OK. Für mein Programm kann ich das leider nicht gebrauchen. Ich habe gesehen, dass du im Menu den Punkt Immer im Vordergrund hast, deshalb war ich der Meinung dass man das Topmost ein und ausschalten kann, doch beim durchtesten konnte ich das Fenster nicht in den Hintergrund bekommen. Vielleicht können wir mit dem Ansatz von Oliver und der Erkenntnis, dass das Fenster in den Vordergrund gebracht werden muss, das Verhalten des Fensters so manipulieren, dass es nicht ständig OnTop ist. Das könnte ich mir auch im deinem Programm vorstellen.

Hallo Jurai,
dein Ansatz das Problem zu lösen ist weit überzogen, da wir niemanden in seine rechten beschränken wollen sondern nur das Verhalten eines Fensters ändern.

Gruss Dieter
  Mit Zitat antworten Zitat