Вопрос:
Как узнать размеры TComboBox с показанным выпадающим списком до показа списка?
Ответ:
На событии FormShow пошлите
сообщение CB_SHOWDROPDOWN в ComboBox дважды – один раз чтобы заставить список
выпасть, второй – чтобы убрать его. Затем пошлите сообщение CB_GETDROPPEDCONTROLRECT,
передав в качестве параметра адрес TRect. TRect будет содержать экранные кординаты
прямоугольника описывающего ComboBox вместе с выпавшим списком. Затем Вы можете
вызвать ScreenToClient чтобы преобразовать экранные кординаты в координаты клиентской
области окна. Read the rest of this entry »
Как сделать отступ в 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;
Поля в 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;
Как копировать и вставлять Bitmap через буфер обмена?
Некоторые функции для копирования и вставки Bitmap-объектов через буфер
обмена.
function CopyClipToBuf(DC: HDC; Left, Top,
Width, Height: Integer; Rop: LongInt;
var CopyDC: HDC;
var CopyBitmap: HBitmap): Boolean;
var
TempBitmap: HBitmap; Read the rest of this entry »
Как установить количество цветов в системной палитре?
Функция GetNumColors возвращает количество цветов для актуально выбранного
разрешения экрана.
function GetNumColors: LongInt;
var
BPP: Integer;
DC: HDC; Read the rest of this entry »