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

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

Как управлять табуляцией в Memo-компоненте?

Как управлять табуляцией в Memo-компоненте?

Для этого необходимо поставить свойство “WantTabs” в “True”.
Теперь для управления шириной табуляции необходимо вызвать API-функцию SendMessage.
В последнем параметре функция ожидает указатель на массив с элементами типа
Word, в котором указаны позиции в единицах экрана. Для примера вызов функции
с указанием двух позиций табуляции:

procedure TForm1.FormCreate(Sender:TObject);
const
  Tabs: array[0..1] of Word = (4, 8);
begin
  SendMessage(Memo1.Handle, EM_SetTabStops, 2, LongInt(@Tabs));
end;

Как можно опросить различные параметры системы?

Как можно опросить различные параметры системы, например количество
свободных ресурсов?

Для получения параметров системы существует множество различных API-функций.
Для того, чтобы узнать количество свободных ресурсов, – достаточно вызова
следующей API-функции:


Variable := GetFreeSystemResources(GFSR_SYSTEMRESOURCES);

Другие функции опроса параметров системы (описаны в системе помощи):
GetWinFlags, SystemParametersInfo, GetDeviceCaps и GetFreeSpace.

Для 32-bit систем необходимо вызывать GetSystemMetrics, GetSystemInfo
и SystemParametersInfo.

Системные сообщения (сокращения)

Системные сообщения (сокращения)

BM  - ButtonMode
BN  - Button
BS  - ButtonStyle
CB  - ComboBox
CBN - Combo Box Notifications
CBS - ComboBoxStyle
EM  - EditMessage
ES  - EditStyle
FM  - FileManager
LB  - ListBox
LBN - ListBox Notifications
LBS - ListBoxStyle
MB  - MessageButton (Typen)
PS  - PenStyle
SB  - ScrollBar
SBS - ScrollBarStyle
SM  - SystemMetrics
SPI - SystemParametersInfo
WM  - WindowMessage
WS  - WindowStyle

Как сделать отступ в Memo?

Как сделать отступ в 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;

Как создать и вызвать модальную форму?

Как создать и вызвать модальную форму?

Модальные формы довольно часто выгоднее (с точки зрения использования памяти)
временно создавать, и после того, как форма была вызвана, отработан и закрыт,
- освободить его из памяти. В противном случае Delphi-приложение может быть
настоящим “пожирателем памяти”. Примерно так может выглядеть вызов такой
формы:


ModalForm := TModalForm.Create(Self);
try
  ModalForm.ShowModal;
finally 
  ModalForm.Free;
end;