Wenn die Anordnung symmetrisch wäre, würde es das ganze vereinfachen. Du musst gar nicht alle Kombos in einem Array speichern.
Obwohl eine TObjectlist wäre möglich, dann könntest du über die Objektreferenz direkt auf die Komponente zugreifen und würdest auch nicht so viel Speicher mehr verbrauchen.
Zurück zu meinem Ansatz:
Mit FindWindow dein Fenster suchen und dann mit EnumChildWindows iterieren und deine Kombos zusammensuchen. Die jeweils näheste speichern und wenn dudurch bist, zu ihr hinspringen.
Edit: ob du links oder rechts suchst ist ja dann einfach zu unterscheiden
Edit2:
Mal schnell in C++ zusammengeschrieben, finde ich in meinem Fenster beide Handles der Buttons.
Code:
#include <iostream>
#include <windows.h>
using namespace std;
BOOL CALLBACK EnumChildProc(HWND hwnd, LPARAM lParam)
{
cout << "hwnd_child = " << hwnd << endl;
return TRUE;
}
int _tmain(int argc, _TCHAR* argv[])
{
HWND wnd = FindWindow(NULL, L"Form4");;
if(wnd != INVALID_HANDLE_VALUE)
{
EnumChildWindows(wnd, EnumChildProc, 0);
}
system("PAUSE");
return 0;
}
Nun kannst deren Position bestimmen
Lars S.
Wer nicht mit der Zeit geht, geht mit der Zeit.