Вопрос: Как обновить список дисков компонента TDriveComboBox, учитывая, что могуд быть подключены/отключены сетевые диски и произведена "горячая замена" plug&play дисков? Ответ: Следующий пример вызывает защищенный (protected) метод класса TDriveComboBox BuildList() для регеирации списка дисков. (использовая так наз. "class cracer") Read the rest of this entry »
Тэги ‘var’
Вопрос: Как среагировать на минимизацию-максимизацию формы перед тем как произойдет изменение размера формы? Ответ: В примере перехватывается сообщение WM_SYSCOMMAND. Если это сообщение говорит о минимизации или максимизации формы - пищит динамик. Read the rest of this entry »
Вопрос: Можно ли использовать иконку как картинку на кнопке TSpeedButton? Ответ: Можно. См. пример. Пример: uses ShellApi;
Вопрос: Можно ли сделать так чтобы TStringGrid автоматически изменял ширину колонок, чтобы вместить самую длинную строчку в колонке? Ответ: См. пример. Read the rest of this entry »
Вопрос: Как заставить TEdit не 'пикать' при нажатии недопустимых клавиш? Ответ: Перехватите событие KeyPress и установите key = #0 для недопустимых клавиш. Пример:
Вопрос: Как программно определить, что приложение работает под Windows NT? Ответ:см. пример Read the rest of this entry »
Вопрос: Как узнать о нажатии "non-menu" клавиши в момент когда меню показано? Ответ: Создайте обработчик сообщения WM_MENUCHAR. Read the rest of this entry »
Вопрос:
Можно ли обратиться к колонке или строке grid’а по заголовку?
Ответ:
В следующем примере приведены
две функции: GetGridColumnByName() и GetGridRowByName(), которые возвращают
колонку или строку, имеющую заданный заголовок (caption). Read the rest of this entry »
Вопрос:
Как разместить прозрачную надпись на TBitmap?
Пример:
procedure TForm1.Button1Click(Sender: TObject);
var
OldBkMode : integer;
begin
Image1.Picture.Bitmap.Canvas.Font.Color := clBlue;
OldBkMode := SetBkMode(Image1.Picture.Bitmap.Canvas.Handle,TRANSPARENT);
Image1.Picture.Bitmap.Canvas.TextOut(10, 10, ‘Hello’);
SetBkMode(Image1.Picture.Bitmap.Canvas.Handle,OldBkMode);
end;
Как сделать отступ в Memo?
С помощью API-функции SendMessage можно задать поля в Memo-компоненте. Если
необходимо, например, сделать отступ в 20 пикселей слева то можно это сделать
следующим образом:
var Rect: TRect; begin SendMessage( Memo1.Handle, EM_GETRECT, 0, LongInt(@Rect)); Rect.Left:= 20; SendMessage(Memo1.Handle, EM_SETRECT, 0, LongInt(@Rect)); Memo1.Refresh; end;