Главная страницаОбратная связьКарта сайта

Z-порядок при каждом показе диалога


// Там не листбокс, а EDIT, но суть точно та же. Чтобы получить текст, а не
// записать его, надо просто использовать Get вместо Set. Судя по тому, что
// программа уже 2 года работает без малейших проблем, Z-порядок при  каждом
// показе диалога один и тот же.

program Project1;

uses 
 Windows, Messages;

const 
 Title1 = "Установка связи";
 Title2 = "Удаленное соединение";
 Login = "...";
 Password = "...";

var 
 Wnd: HWND;
 Control: array [0..127] of char;

procedure TypeTextIntoNextEdit(AText:string);
begin
 repeat // Ищем следующее в Z-порядке окно класса EDIT
   Wnd := GetWindow(Wnd, GW_HWNDNEXT);
   GetClassName(Wnd, Control, SizeOf(Control))
 until Control = "Edit";
 SendMessage(Wnd, WM_SETTEXT, 0, Integer(PChar(AText))) // Вводим текст
end;

begin
 Wnd := FindWindow(nil, Title1);  // Это окно самого диалога
 if Wnd = 0 then                  // Если не найдено, ищем другой диалог 
 begin
   Wnd := FindWindow(nil, Title2);
   if Wnd = 0 then Exit;
 end;
 Wnd := GetWindow(Wnd, GW_CHILD); // Это верхний комбобокс
 TypeTextIntoNextEdit(Login);     // Вводим логин
 TypeTextIntoNextEdit(Password)   // Вводим пароль
end.


Обсудить статью на форуме


Если Вас заинтересовала или понравилась информация по разработке на Delph - "Z-порядок при каждом показе диалога", Вы можете поставить закладку в социальной сети или в своём блоге на данную страницу:

Так же Вы можете задать вопрос по работе этого модуля или примера через форму обратной связи, в сообщение обязательно указывайте название или ссылку на статью!
   


Copyright © 2008 - 2023 Дискета.info