Autor Beitrag
Rool
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 211



BeitragVerfasst: Mo 19.05.03 17:38 
Hab jetzt den TOpenDialog 'gesubclasst' und brauch jetzt in der WndProc von Dem Dialog das Handle von der Liste, wo man die Dateien auswählt. Wie bekomme ich das?
Oder gibt es in der WndProc eine Message, wenn der Benutzer mit der rehten Maustaste auf die Liste kickt?

_________________
MFG Rool
Pascal
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 155

Win 98, Win XP
Delphi 2005, Delphi 5
BeitragVerfasst: Di 20.05.03 22:04 
Ich weiß nicht ob ich das richtig verstanden hab', aber das Handle kann man mit der 2.procedure über den Classname und den mit der ersteren procedure herausfinden.
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
procedure Tform1.ShowHwndAndClassName(CrPos: TPoint);
var
  hWnd: THandle;
  aName: array [0..255of Char;
begin
  hWnd := WindowFromPoint(CrPos);
  Label1.Caption := 'Handle :  ' + IntToStr(hWnd);

  if Boolean(GetClassName(hWnd, aName, 256)) then
    Label2.Caption := 'ClassName :  ' + string(aName)
  else
Label2.Caption := 'ClassName :  not found';
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  Handle: THandle;
begin
  Handle := FindWindow(PChar('syslistview32'),nil);
  end;

In diesem Fall ist als classname 'syslistview32', was bei mir der Klassenname der Auswahlliste ist
Rool Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 211



BeitragVerfasst: Mi 21.05.03 13:49 
Titel: ..
da kann man aber jeden listview finden, der gerade exisitiert...

Hab rausgefunden, dass man mit:

ausblenden Quelltext
1:
2:
wndDlg := GetParent(Handle); // handle vom dialog.
wndCtrl := GetDlgItem(wndDlg,lst1);  //handle von der Liste

=> Dabei ist lst1 eine in der Unit 'Dlgs' definierte Konstante.

Hab jetzt aber das Problem, dass ich nicht weiss, wann ich dieses Handle abfragen soll. Wenn ich das in
WM_INITDIALOG
mache, kann ich z. B. den Listview verschieben etc. Später aber, wenn ich z. B. darauf zeichnen will, hat das Listview ein anderes Handle. Das ist etwas, was ich überhaupt nicht verstehe!

_________________
MFG Rool
Pascal
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 155

Win 98, Win XP
Delphi 2005, Delphi 5
BeitragVerfasst: Mi 21.05.03 15:10 
Da kenne ich mich leider nicht aus.
Es sei denn der Dialog ist zufällig im Vordergrund und man kennt seine Position. dann könnte man ja einfach mit Windowfrompoint(point(x,y)) arbeiten. Aber das ist wahrscheinlich nicht das was du brauchst
Rool Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 211



BeitragVerfasst: Do 22.05.03 17:02 
Titel: ..
würde natürlich auch gehen, aber das geht ja genauso wenig beim laden des dialogs

_________________
MFG Rool