Hallo!
@Olli: Habe das mit SetWindowPos jetzt so gemacht:
Delphi-Quellcode:
procedure TCustomForm.Show;
var ahdc: HDC;
//von mir dazugebaut
begin
LAYOUTTRACE('
TCustomForm.Show for %s:%s', [
Name, ClassName]);
ahdc := GetDC(ahdc);
//von mir dazugebaut
if not Assigned(Wnd)
then
begin
CreateWnd;
// !!!: Doesn't handle a set initial size yet
SendEvent(TCalcSizesEventObj.Create(Self));
Wnd.SetMinMaxClientSize(MinSize, MaxSize);
Wnd.SetClientSize(DefSize);
Rectangle(ahdc,0,0,MaxSize.cx,MaxSize.cy);
SetWindowPos(TGDIWindow(Wnd).Handle,HWND_TOP,Left,Top,DefSize.cx,DefSize.cy,SWP_FRAMECHANGED
or SWP_DRAWFRAME
or SWP_NOCOPYBITS);
//Ohne SWP_NOCOPYBITS gleiches Verhalten
end;
ReleaseDC(TGDIWindow(Wnd).Handle,ahdc);
//von mir dazugebaut
FVisible := True;
FWnd.Show;
end;
Das führt leider nicht zum Erfolg.
Kann es sein, das der Fehler wegen nicht korrekt initialisieten Variablen innerhalb der Methoden auftritt?
Ich habe Warnungen, das X,Y Variablen, die in Methoden eingeführt wurden nicht initialisiert sind. Wird meine nächste Aktion, solchen Variablen einen Anfanswert zu geben.
Ausserdem erhalte ich jetzt, eigenartiger Weise nach Start der exe in Delphi die Fehlermeldung:
[Fataler Fehler] Ausgabedatei 'C:\Programme\Borland\Delphi7\Projects\Agraphic\wi dgettest.exe' kann nicht erstellt werden
Was ist da wieder los? Das seltsame daran ist, das die Syntaxprüfung OK ist [keine Fehler]. Warum kann dann die EXE nicht erstellt werden?
Damit der Topf nicht explodiert, lässt man es ab und zu mal zischen.