AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Die Position von einem Window auf seinem Parent ermitteln
Thema durchsuchen
Ansicht
Themen-Optionen

Die Position von einem Window auf seinem Parent ermitteln

Offene Frage von "rey003"
Ein Thema von rey003 · begonnen am 2. Jan 2007
Antwort Antwort
Benutzerbild von rey003
rey003

Registriert seit: 31. Aug 2005
Ort: Sachsen ;-)
46 Beiträge
 
Delphi 2006 Architect
 
#1

Die Position von einem Window auf seinem Parent ermitteln

  Alt 2. Jan 2007, 10:42
Hallo Leute,
zunächst ersteinmmal allen ein gesundes neues Jahr!
Ich habe mal wieder eine Frage für euch!
Ich möchte die Position von einem Window auf einem anderen Window(seinem Parent) ermitteln um das richtige Rect für InvalidateRect zu bekommen!
Da ich das ziemlich oft machen muss, stresst meine jetztige Lösung doch ganz schön die CPU!
Also hier erstmal meine bisherige Lösung:
Delphi-Quellcode:
var
  HKButtons : array [0..6] of HWND;

...

procedure KButtonsClick(wnd: HWND);
var
  i : integer;
  PRect: TRect;
  Rect: TRect;
  R: TRect;
begin
  for I := 0 to 7 - 1 do
   begin
     if HKButtons[i] = wnd then
      begin
       GetWindowRect(GetParent(HKButtons[i]),PRect);
       GetWindowRect(HKButtons[i],Rect);
       R.Left:= Rect.Left-PRect.Left;
       R.Top:= Rect.Top-PRect.Top;
       R.Right:= R.Left + (Rect.Right - Rect.Left);
       R.Bottom:= R.Top + (Rect.Bottom - Rect.Top);

       SendMessage(HKButtons[i],WM_DSIMAGESETICON ,hIcon2,0);
       InvalidateRect(GetParent(HKButtons[i]),@R,true);
       Break;
      end;
   end;
end;
Ich habe mir für nonVCL eine kleine "Komponente" geschrieben die Bilder anzeigen und der man z.b.: eine onClick Procedure zuweisen kann! Das Oben ist eine OnClick-Procedure für mehrere (aber gleiche) Komponenten! Nun ändere ich beim Click das Bild in der Komponente und zeichne sie neu!
Da ich diese Art von Proceduren auch noch für MouseEnter und MouseLeave habe ist meine CPU-Auslastung, wenn ich schnell über die Komponenten gehe, nicht unter 25%! (bei 2,56 GH)
Nun zu meiner Frage, kann man das Berechnen irgendwie vereinfachen?
In der PSDK hab ich leider nichts gefunden!
Daniel S.
  Mit Zitat antworten Zitat
Antwort Antwort


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 14:31 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