Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Handle -> TObject


Fienix - Do 30.08.12 11:59
Titel: Handle -> TObject
wie mach ich aus einem Handle wieder ein TObject?

ich will eine Hilfe einbauen, aber ich kann nicht jeder Komponente die Context ID hinzufügen, zu aufwändig.
deshalb will ich anhand von meiner Komponente von wo die Hilfe aufgerufen wird entscheiden welche Hilfe aufgerufen wird.
den Klassenname krieg ich schon mit GetClassNameW raus, aber das bringt mich noch nicht weiter :cry:



Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
procedure TForm.WndProc(var msg: TMessage);

  procedure _GetControlHelp(ChildHandle: THandle; ContextId: Integer);
  var aName: array [0..255of Char;
      OwnContextId : integer;
  begin
    GetClassNameW(ChildHandle, aName, 256);
{
    if TObject().classname .... 
      then OwnContextId := ...;   
}

    Application.HelpContext(OwnContextId )
 // Application.HelpKeyword('Test');
  end;

begin
  case msg.Msg of
    WM_HELP: _GetControlHelp(PHelpInfo(msg.LParam)^.hItemHandle, PHelpInfo(msg.LParam)^.dwContextId);             
  end;
  inherited;
end;


bummi - Do 30.08.12 12:14


Delphi-Quelltext
1:
2:
    c := FindControl(ChildHandle);
    if Assigned(c) then Showmessage(c.Name);


Fienix - Do 30.08.12 12:48

verdammt, mit sowas einfachen hätt ich nun wirklich nicht gerechnet :shock:

aber trotzdem Danke!!