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

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

Как “быструю подсказку” (Hints) сделать многострочной?

Как “быструю подсказку” (Hints) сделать многострочной?

Необходимо создать соответствующую компоненту которая показывает “быструю
подсказку” (Hints) с более чем одной строкой. Компонента наследуется от
TComponent и называется TMHint. Hint-текст можно задавать следующим образом:
“Строка 1@Строка 2@Строка 3″. Символ ‘@’ используется как разделитель строк.
Если Вам нравится другой символ – измените свойство Separator. Свойство
Active указывает на активность (TRUE) или неактивность (FALSE) “многострочности”.


unit MHint;
interface

uses

  SysUtils, WinTypes, WinProcs, Messages,

  Classes, Graphics, Controls, Forms, Dialogs; Прочитать остальную часть записи »

Поля в 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;

Как “заставить” форму не разворачиваться из иконки?

Как “заставить” форму не разворачиваться из иконки?

Для этого необходимо перехватить сообщение “WM_QUERYOPEN”. Для этого необходимо
объявить соответствующую процедуру в private-области.


{ объявление процедуры в классе TMainForm }
procedure WMQueryOpen(var Msg: TWMQueryOpen); message WM_QUERYOPEN;
 

{ ... и ее реализация }
procedure TMainForm.WMQueryOpen(var Msg: TWMQueryOpen);
begin
  Msg.Result := 0;
end;

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

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

Если свойство BorderStyle установленно в значение bsSizeable, то размер
формы можно уменьшать или увеличивать. Иногда, чтобы показывать все необходимые
элементы на форме, необходимо установить минимальные размеры формы? Следующая
процедура позволяет ограничить размеры формы.

type
  TForm1 = class(TForm)
    procedure wmGetMinMaxInfo(var Msg : TMessage); message wm_GetMinMaxInfo;

procedure TForm1.wmGetMinMaxInfo(var Msg : TMessage); 

begin
  PMinMaxInfo(Msg.lParam)^.ptMinTrackSize.X := 600;
  PMinMaxInfo(Msg.lParam)^.ptMinTrackSize.Y := 350;
end;

Как выяснить дату последнего изменения файла?

Как выяснить дату последнего изменения файла?

Для выяснения даты последнего изменения файла можно воспользоваться следующей
функцией:


function GetFileDate(FileName: string): string;

var
  FHandle: Integer;

begin
  FHandle := FileOpen(FileName, 0);
  try
    Result := DateTimeToStr(FileDateToDateTime(FileGetDate(FHandle)));
  finally
    FileClose(FHandle);
  end;
end;