Мой DELPHI – Программирование

Всё для программера

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

Вопрос:
Как узнать число кадров 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;

Как разместить маленькие картинки в компоненте TPopUpMenu?

Вопрос:
Как разместить маленькие картинки в компоненте TPopUpMenu?

Ответ:

В приведенном примере
показано как это сделать с использованием функции Windows API SetMenuItemBitmaps().
Эта функция получает handle popup menu, позицию строчки меню куда будет помещена
картинка, и два дескриптора(handles) на две картинки (одна из них – картинка
которая будет показана когда строка меню доступна, вторая – когда строка меню
недоступна). Прочитать остальную часть записи »

Вопрос:

При перемещении фокуса
ввода клавишей Tab чтобы переместить его в RadioGroup нужно нажать клавишу Tab
дважды если какой нибудь пункт RadioGroup уже выбран, но только один раз если
не выбран. Можно ли сделать поведение RadioGroup логичным?

Ответ:

Установка свойства RadioGroup’ы
TabStop в false должна решить эту проблему – поскольку клавиша tab будет продолжать
работать – перемещаясь сразу на выделенный пункт RadioGroup.

Как выполнить какой-то процесс тогда, когда пользователь не работает с моим приложением?

Вопрос:
Как выполнить какой-то процесс тогда, когда пользователь не работает с моим приложением?

Ответ:
Создайте процедуру, которая будет вызываться при событии Application.OnIdle.

Обьявим процедуру:
{Private declarations}
procedure IdleEventHandler(Sender: TObject; var Done: Boolean);

В разделе implementation опишем поцедуру:

procedure TForm1.IdleEventHandler(Sender: TObject; var Done: Boolean);
begin
	{Do a small bit of work here}
	Done := false;
end;

В методе Form'ы OnCreate - укажем что наша процедура вызывается на событии
Application.OnIdle.

Application.OnIdle := IdleEventHandler;

Событие OnIdle возникает
один раз – когда приложение переходит в режим “безделья” (idle). Если в обработчике
переменной Done присвоить False событие будет вызываться вновь и вновь, до тех
пор пока приложение “бездельничает” и переменной Done не присвоенно значение
True.

Можно ли рисовать на рамке формы?

Вопрос:
Можно ли рисовать на рамке формы?
Ответ:
Обрабатывайте событие WM_NCPAINT. В примере рамка обводится красной линией
толщиной в 1 пиксел. Прочитать остальную часть записи »