Читаем Виртуальная библиотека Delphi полностью

Обратите внимание, что приведены четыре процедуры: SimulateKeyDown() — эмулировать нажатие клавиши (без отпускания), SimulateKeyUp() — эмулировать отпускание клавиши, SimulateKeystroke() — эмулировать удар по клавише (нажатие и отпускание) и SendKeys(), позволяющие Вам гибко контролировать посылаемые сообщения клавиатуры.

SimulateKeyDown(), SimulateKeyUp() и SimulateKeystroke() получают коды виртуальных клавиш (virtural key) (вроде VK_F1). Процедура SimulateKeystroke() получает дополнительный параметр, полезный при эмуляции нажатия PrintScreen. Когда этот параметр равен нулю весь экран будет скопирован в буфер обмена (clipboard). Если дополнительный параметр равен 1 будет скопированно только активное окно.

Четыре метода "button click" демонстрируют использование: ButtonClick1 — включает capslock, ButtonClick2 — перехватывает весь экран в буфер обмена (clipboard), ButtonClick3 — перехватывает активное окно в буфер обмена (clipboard). ButtonClick4 — устанавливает фокус в Edit и отправляет в него строку.

Пример:

procedure SimulateKeyDown(Key : byte);

begin

 keybd_event(Key, 0, 0, 0);

end;

procedure SimulateKeyUp(Key : byte);

begin

 keybd_event(Key, 0, KEYEVENTF_KEYUP, 0);

end;

procedure SimulateKeystroke(Key : byte; extra : DWORD);

begin

 keybd_event(Key,extra,0,0);

 keybd_event(Key,extra,KEYEVENTF_KEYUP,0);

end;

procedure SendKeys(s : string);

var

 i : integer;

 flag : bool;

 w : word;

begin

 {Get the state of the caps lock key}

 flag := not GetKeyState(VK_CAPITAL) and 1 = 0;

 {If the caps lock key is on then turn it off}

 if flag then SimulateKeystroke(VK_CAPITAL, 0);

 for i := 1 to Length(s) do begin

  w := VkKeyScan(s[i]);

  {If there is not an error in the key translation}

  if ((HiByte(w) <> $FF) and (LoByte(w) <> $FF)) then begin

   {If the key requires the shift key down - hold it down}

   if HiByte(w) and 1 = 1 then SimulateKeyDown(VK_SHIFT);

   {Send the VK_KEY}

   SimulateKeystroke(LoByte(w), 0);

   {If the key required the shift key down - release it}

   if HiByte(w) and 1 = 1 then SimulateKeyUp(VK_SHIFT);

  end;

 end;

 {if the caps lock key was on at start, turn it back on}

 if flag then SimulateKeystroke(VK_CAPITAL, 0);

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

 {Toggle the cap lock}

 SimulateKeystroke(VK_CAPITAL, 0);

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

 {Capture the entire screen to the clipboard}

 {by simulating pressing the PrintScreen key}

 SimulateKeystroke(VK_SNAPSHOT, 0);

end;

procedure TForm1.Button3Click(Sender: TObject);

begin

 {Capture the active window to the clipboard}

 {by simulating pressing the PrintScreen key}

 SimulateKeystroke(VK_SNAPSHOT, 1);

end;

procedure TForm1.Button4Click(Sender: TObject);

begin

 {Set the focus to a window (edit control) and send it a string}

 Application.ProcessMessages;

 Edit1.SetFocus;

 SendKeys('Delphi Is RAD!');

end;

Вопрос:

Я загружаю TImageList динамически. Как сделать картинки из TImageList прозрачными?

Ответ:

См. ответ.

Пример:

procedure TForm1.Button1Click(Sender: TObject);

var

 bm : TBitmap;

 il : TImageList;

begin

 bm := TBitmap.Create;

 bm.LoadFromFile('C:\DownLoad\TEST.BMP');

 il := TImageList.CreateSize(bm.Width,bm.Height);

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных