Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

как найти на форме другого приложения 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 на нужный...


Наверх

Титульная страница Поиск, карта сайта Написать письмо