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

Пример:

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.

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

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