Виртуальная библиотека Delphi - [84]

Шрифт
Интервал

>begin

> bmUnChecked := TBitmap.Create;

> bmUnChecked.LoadFromFile('C:\Program Files\Borland\BitBtns\ALARMRNG.BMP');

> bmChecked := TBitmap.Create;

> bmChecked.LoadFromFile('C:\Program Files\Borland\BitBtns\CHECK.BMP');

> {Add the bitmaps to the item at index 1 in PopUpMenu}

> SetMenuItemBitmaps(PopUpMenu1.Handle,1,MF_BYPOSITION,BmUnChecked.Handle, BmChecked.Handle);

>end;


>procedure TForm1.FormDestroy(Sender: TObject);

>begin

> bmUnChecked.Free;

> bmChecked.Free;

>end;


>procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);

>var pt : TPoint;

>begin

> pt := ClientToScreen(Point(x, y));

> PopUpMenu1.Popup(pt.x, pt.y);

>end;


Вопрос:

Как узнать число кадров AVI файла, и выяснить как долго будет проигрываться этот файл?

Ответ:

В приведенном примере указано как получить эту информацию.

Пример:

>procedure TForm1.Button1Click(Sender: TObject);

>begin

> MediaPlayer1.TimeFormat := tfFrames;

> ShowMessage('Number of frames = ' + IntToStr(MediaPlayer1.Length));

> MediaPlayer1.TimeFormat := tfMilliseconds;

> ShowMessage('Number of milliseconds = ' + IntToStr(MediaPlayer1.Length));

>end;


Вопрос:

Как изменить число фиксированных колонок в TDbGrid?

Пример:

>procedure TForm1.Button1Click(Sender: TObject);

>begin

> TStringGrid(DbGrid1).FixedCols := 2;

>end;


Вопрос:

Некоторые компоненты баз данных (и среди них TDBGrid) никак не меняют визуальных свойств, когда к ним отключен доступ (disabled). Как это изменить програмно?

Ответ:

Ниже приведен пример, меняющий цвет шрифта на clGray, когда доступ к элементу управления (в данном случае TDBGrid) запрещен (disabled).

>procedure TForm1.Button1Click(Sender: TObject);

>begin

> DbGrid1.Enabled := false;

> DbGrid1.Font.Color := clGray;

>end;


>procedure TForm1.Button2Click(Sender: TObject);

>begin

> DbGrid1.Enabled := true;

> DbGrid1.Font.Color := clBlack;

>end;


Вопрос:

Как определить нажаты ли клавиши Shift, Alt, or Ctrl в какой-либо момент времени?

Ответ:

В приведенном примере показано как определить нажата ли клавиша Shift при выборе строчки меню. Пример также содержит функции проверки состояния клавиш Alt, Ctrl.

Пример:

>function CtrlDown : Boolean;

>var State : TKeyboardState;

>begin

> GetKeyboardState(State);

> Result := ((State[vk_Control] And 128) <> 0);

>end;


>function ShiftDown : Boolean;

>var State : TKeyboardState;

>begin

> GetKeyboardState(State);

> Result := ((State[vk_Shift] and 128) <> 0);

>end;


>function AltDown : Boolean;

>var State : TKeyboardState;

>begin

> GetKeyboardState(State);

> Result := ((State[vk_Menu] and 128) <> 0);

>end;


>procedure TForm1.MenuItem12Click(Sender: TObject);

>begin

> if ShiftDown then Form1.Caption := 'Shift'

> else Form1.Caption := '';

>end;


Вопрос:

Как изменить шрифта hint'а?

Ответ:

В примере перехватывается событие Application.OnShowHint и изменяется шрифт Hint'а.

Пример:

>type TForm1 = class(TForm)

> procedure FormCreate(Sender: TObject);

>private

> {Private declarations}

>public

> procedure MyShowHint(var HintStr: string; var CanShow: Boolean;var HintInfo: THintInfo);

> {Public declarations}

>end;

>var Form1: TForm1;


>implementation

>{$R *.DFM}


>procedure TForm1.MyShowHint(var HintStr: string; var CanShow: Boolean; var HintInfo: THintInfo);

>var i : integer;

>begin

> for i := 0 to Application.ComponentCount - 1 do if Application.Components[i] is THintWindow then with THintWindow(Application.Components[i]).Canvas do begin

>  Font.Name:= 'Arial';

>  Font.Size:= 18;

>  Font.Style:= [fsBold];

>  HintInfo.HintColor:= clWhite;

> end;

>end;


>procedure TForm1.FormCreate(Sender: TObject);

>begin

> Application.OnShowHint := MyShowHint;

>end;


Вопрос:

Есть ли в Delphi эквивалент функции SendKeys Visual Basic'а?

Ответ:

Ниже приведена процедура, позволяющаю отправлять нажатия в любой элемент управления (window control), способный принимать ввод с клавиатуры. Вы можете использовать эту технику чтобы включать клавиши NumLock, CapsLock и ScrollLock под Windows NT. Та же техника работает и под Windows 95 для CapsLock и ScrollLock но не работает для клавиши NumLock.

Обратите внимание, что приведены четыре процедуры: 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);


Еще от автора Неизвестный Автор
Галчонок

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Призраки ночи

В книге собраны предания и поверья о призраках ночи — колдунах и ведьмах, оборотнях и вампирах, один вид которых вызывал неподдельный страх, леденивший даже мужественное сердце.


Закат  вечности

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


mmmavro.org | День 131, Победа

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Песнь о Нибелунгах

…«Песнь о Нибелунгах» принадлежит к числу наиболее известных эпических произведений человечества. Она находится в кругу таких творений, как поэмы Гомера и «Песнь о Роланде», «Слово о полку Игореве» и «Божественная комедия» Данте — если оставаться в пределе европейских литератур…В. Г. Адмони.


mmmavro.org | День 132, Поэт

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Рекомендуем почитать
Pro Git

Разработчику часто требуется много сторонних инструментов, чтобы создавать и поддерживать проект. Система Git — один из таких инструментов и используется для контроля промежуточных версий вашего приложения, позволяя вам исправлять ошибки, откатывать к старой версии, разрабатывать проект в команде и сливать его потом. В книге вы узнаете об основах работы с Git: установка, ключевые команды, gitHub и многое другое.В книге рассматриваются следующие темы:основы Git;ветвление в Git;Git на сервере;распределённый Git;GitHub;инструменты Git;настройка Git;Git и другие системы контроля версий.



DirectX 8. Начинаем работу с DirectX Graphics

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Симуляция частичной специализации

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Обработка событий в С++

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Питон — модули, пакеты, классы, экземпляры

Python - объектно-ориентированный язык сверхвысокого уровня. Python, в отличии от Java, не требует исключительно объектной ориентированности, но классы в Python так просто изучить и так удобно использовать, что даже новые и неискушенные пользователи быстро переходят на ОО-подход.