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

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

Как заставить TMediaPlayer проигрывать одно и тоже бесконечно?

Вопрос:
Как заставить TMediaPlayer проигрывать одно и тоже бесконечно? AVI например?
Ответ:
В примере AVI файл проигрывается снова и снова - используем событие MediaPlayer'а Notify

Пример:

procedure TForm1.MediaPlayer1Notify(Sender: TObject);
begin
	with MediaPlayer1 do
		if NotifyValue = nvSuccessful then
			begin
				Notify := True;
				Play;
			end;
end;

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

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

Ответ:

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

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

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

procedure TForm1.Button1Click(Sender: TObject);
begin
	TStringGrid(DbGrid1).FixedCols := 2;
end;

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

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

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

Ответ:
Создайте процедуру, которая будет вызываться при событии 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.