Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi GetMessage Problem? (https://www.delphipraxis.net/55538-getmessage-problem.html)

delphifan2004 4. Nov 2005 19:29

Re: GetMessage Problem?
 
Hallo Schöni!

Eine Message kannst Du absetzen, die das Neuzeichnen des Fensters veranlasst. Suggeriere dem Fenster, das es verschoben wurde, und zwar, sowohl nach dem Verschieben, als auch nach Größenänderung oder Zoom.

@Tipp: Wenn noch weitere Fragen dazu, Neuer Thread. Wenn widgettest.exe ein Fenster zeigt, ist der Thread-Titel falsch!

Delphifan2004

Olli 4. Nov 2005 20:07

Re: GetMessage Problem?
 
Zitat:

Zitat von schöni
Gibt es eine Möglichkeit, eine Message abzuschicken, die dem Fenster sagt "Du bist schon verschoben worden, also zeichne den Hintergrund des Clientbereiches? Eine ebensolche Message müßte dann auch bei Größenänderung und Zoom abgeschickt werden.

SetWindowPos() wäre da möglich. Das schickt implizit auch nur eine Nachricht.

schöni 5. Nov 2005 14:03

Re: GetMessage Problem?
 
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?


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:34 Uhr.
Seite 2 von 2     12   

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-2025 by Thomas Breitkreuz