AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

GetMessage Problem?

Ein Thema von schöni · begonnen am 22. Okt 2005 · letzter Beitrag vom 5. Nov 2005
Antwort Antwort
Seite 2 von 2     12   
delphifan2004

Registriert seit: 26. Nov 2004
Ort: Dresden
274 Beiträge
 
Delphi 10.3 Rio
 
#11

Re: GetMessage Problem?

  Alt 4. Nov 2005, 20:29
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
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#12

Re: GetMessage Problem?

  Alt 4. Nov 2005, 21:07
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.
  Mit Zitat antworten Zitat
schöni

Registriert seit: 23. Jan 2005
Ort: Dresden
445 Beiträge
 
Delphi 7 Personal
 
#13

Re: GetMessage Problem?

  Alt 5. Nov 2005, 15:03
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.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 05:21 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz