![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
как найти на форме другого приложения Toolbar или toolbutton
graY © (2004-02-02 18:25:00)ghb gjvjob FindWindowEx(Form1.Handle,0,'TToolBar','ToolBar') не ищется как и FindWindoц('TToolBar','ToolBar')
akvilon (2004-02-20 23:22:00) [1]Когда толбаров много можно отбирать по количеству кнопочек на них
типа так:
i := SendMessage(hTToolBar, TB_BUTTONCOUNT, ...)
лелика (2004-02-19 15:18:00) [2]а не проще ли если это твоя форма
with Form1 do begin
for I := 0 to ComponentCount -1 do begin
if Components[I] is TToolBar then
TToolBar(Components[I]).xz
pegu (2004-02-06 15:25:00) [3]EnumChildWindows тебе поможет
r9000 (2004-02-06 13:24:00) [4]Да чего-то непонятно? Функция FindWindowEx(H,0,'TToolBar','ToolBar') для ToolBar не работает, а для Button хорошо отрабатывает.Функция FindWindowEx(H, 0, 'TToolBar', nil)) конечно работет, но что делать если несколько ToolBar-ов, как с ними работать(даже функция FindWindowEx(H, 0, nil, 'ToolBar1') не работает )? Что делать? Пример >ppcat тоже на это не отвечает?
graY (2004-02-06 06:12:00) [5]Удалено модератором
Примечание: Веди себя вежливо
ppcat (2004-02-05 12:20:00) [6]graY, Качни маленький проект-заготовку, разберешься.
http://www.ppcat.hotbox.ru/myprgs/AlienWindows.zip
Rouse_ (2004-02-05 11:45:00) [7]
procedure TForm1.Button1Click(Sender: TObject);
var
H: HWND;
begin
H := FindWindow(nil, 'ToolBar_Test_Form'); // Ищем окно с именем 'ToolBar_Test_Form'
if H <> 0 then
Caption := IntToStr(FindWindowEx(H, 0, 'TToolBar', nil)); // Ищем окно с именем класса TToolBar
end;
Также последнюю строку можно изменить на:
Caption := IntToStr(FindWindowEx(H, 0, nil, 'ToolBar1'));
Для поиска по названию окна
Rouse_ (2004-02-05 11:41:00) [8]> [4] Marlyn (04.02.04 14:15)
Ты хоть сам понял что сказал?
Для начала посмотри хелп и глянь какие параметры нужно менять для поиска по названию класса, а какие для поиск по названию окна...
После этого сделай как я написал и проверь...
HWND FindWindow(
LPCTSTR lpClassName, // pointer to class name
LPCTSTR lpWindowName // pointer to window name
);
HWND FindWindowEx(
HWND hwndParent, // handle to parent window
HWND hwndChildAfter, // handle to a child window
LPCTSTR lpszClass, // pointer to class name
LPCTSTR lpszWindow // pointer to window name
);
Так вот TButton - это название класса, а Button1 - это название окна...
Прочуствуй разницу, и не делай как не нужно...
GrayFace (2004-02-04 14:34:00) [9]Станет. И большинство компонент станет. graY, попробуй nil вместо 'ToolBar', как посоветовал Rouse_.
Marlyn (2004-02-04 14:15:00) [10]тебе же gray русским язаком обьяснил что тип ТTOOLBAR не ищется ясен пень что форму хоть Button назови от этого она TButton не станет.
Rouse_ (2004-02-03 08:58:00) [11]В качестве примера:
Создал тестовое приложение, Caption у формы сделал ToolBar_Test_Form
После этого создаю другое приложение, в нем пишу следующий код:
procedure TForm1.Button1Click(Sender: TObject);
var
H: HWND;
begin
H := FindWindow(nil, 'ToolBar_Test_Form');
if H <> 0 then
Caption := IntToStr(FindWindowEx(H, 0, 'TToolBar', nil));
end;
В результате в заголовке увидим Хэндл тулбара из перого приложения.
Желаю успехов.
ЗЫ: Внимательно прочитай хэлп по этим функциям, там все предельно ясно описано...
graY (2004-02-03 07:34:00) [12]в том то и фишка что не ищет скоко не пытался
Rouse_ (2004-02-02 18:42:00) [13]> FindWindowEx(Form1.Handle,0,'TToolBar','ToolBar')
Так ты ищешь на своей форме, замени Form1.Handle на нужный...