Форум: "Основная";
Текущий архив: 2003.12.12;
Скачать: [xml.tar.bz2];
ВнизКак узнать имя класса окна по его Handle ? Найти похожие ветки
← →
GreySerg (2003-12-01 17:21) [0]Как узнать имя класса окна по его Handle ?
← →
Семен Сорокин (2003-12-01 17:25) [1]а как узнать фио человека по его паспортному номеру?
никак.
← →
PVOzerski (2003-12-01 17:27) [2]И тем не менее - API-функция GetClassName...
← →
Семен Сорокин (2003-12-01 17:29) [3]:)
упс, недопонял вопрос, сорри
← →
GreySerg (2003-12-01 18:12) [4]почему-то GetClassName возвращает 0 , а на ShowMessage(SysErrorMessage(GetLastError)); говорит Оperation compleeted successfully.
← →
Юрий Зотов (2003-12-01 18:14) [5]Приведите код - как Вы вызываете GetClassName.
← →
Skier (2003-12-01 18:19) [6]Это имеется в виду ?
1) function FindControl(Handle: HWnd): TWinControl;
2) TObject.ClassName
← →
GreySerg (2003-12-01 18:21) [7]Вот код:
procedure TfrmDecisionResults.N14Click(Sender: TObject);
var
S: PAnsiChar;
begin
if GetClassName(PopupMenu1.WindowHandle, S, 255)<>0 then
ShowMessage(S)
else ShowMessage(SysErrorMessage(GetLastError));
end;
← →
Юрий Федоров (2003-12-01 18:23) [8]Память под буффер (S: PAnsiChar) должна быть выделена перед вызовом GetClassName.
Вариант - S: Array[Byte] of Char;
← →
GreySerg (2003-12-01 18:29) [9]> Юрий Федоров ©
точно, забыл совсем :-)
← →
GreySerg (2003-12-01 18:33) [10]Тогда почему PopupMenu1.WindowHandle = хэндлу Application , а не
контрола , из которого вызвано Popup меню
(у меня ShowMessage(S) выдаёт TApplication) ?
← →
PVOzerski (2003-12-01 18:35) [11]Мой любимый вариант:
var s:shortstring;
..
byte(s[0]):=GetClassName(hwnd,@s[1],255);
Только вот что можно так получить от PopupMenu? Практика показывает: TApplication, теория: меню - не окно.
← →
Юрий Федоров (2003-12-01 18:48) [12]constructor TPopupMenu.Create(AOwner: TComponent);
begin
...
FWindowHandle := Application.Handle;
...
end;
...
procedure TControl.SetPopupMenu(Value: TPopupMenu);
begin
FPopupMenu := Value;
if Value <> nil then
begin
Value.ParentBiDiModeChanged(Self);
Value.FreeNotification(Self);
end;
end;
То есть никаких следов на то, что PopupMenu1.WindowHandle указывает на что-то другое...
По другому и быть не может, так как у нескольких T(Win)Control может быть один TPopupMenu
← →
GreySerg (2003-12-01 19:13) [13]спасибо всем
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.12.12;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.045 c