Einzelnen Beitrag anzeigen

Benutzerbild von hitzi
hitzi

Registriert seit: 2. Jan 2003
Ort: Eibau
768 Beiträge
 
Delphi 2010 Professional
 
#1

EnumChildWindows gibt unterschiedliche Reihenfolge zurück

  Alt 18. Okt 2006, 09:22
Hallo,

ich hab ein kleines Programm geschrieben, was das Rendern mehrerer Tile mit Terragen vereinfacht. Es simuliert dabei einfach die Usereingaben. Das funktioniert auch einwandfrei, nur ein User hat damit Probleme. Bei ihm funktionieren zwei Renderdurchgänge, doch beim dritten werden plötzlich - ohne das Terragen geschlossen wurde - teilweise neue Handles für die Controls und noch schlimmer eine andere Reihenfolge der Controls von EnumChildWindows zurückgegeben.

Syntax: Handly; Classe; ControlID

Beispiele - siehe weiter unten in einem weiteren Beitrag von mir.

Das Windowhandle vom Hauptfenster ist in beiden Fällen gleich. Wieso wird eine andere Reihenfolge und neue Handles zurückgegeben, ohne dass das Programm geschlossen wurde? Bei anderen Usern und auch bei mir tritt dieser Effekt nicht auf und es werden bei jedem Durchlauf immer die gleichen Handles und die gleiche Reihenfolge zurückgegeben.

Hier noch die die EnumProc:
Delphi-Quellcode:
function EnumProc(wnd: HWND; Lines: TStrings): BOOL; stdcall;
var buf : array[0..255] of char;
begin
  Result := True;
  GetClassName(wnd, buf, SizeOf(buf) - 1);
  Lines.Add(Format('%d,%s,%d', [wnd, buf, GetDlgCtrlID(wnd)])); //Lines ist eine TStringlist
end;
Danke schonmal ...
Thomas
Besucht doch mal http://www.hitziger.net
  Mit Zitat antworten Zitat