Последнее обновление:
November 20, 2017

Есть мысль... Жми, напиши!
Delphi

Все, что связано с Delphi

FindControl в dll (Delphi)

Что бы получить ссылку на объект через handle есть стандартная функция (FindControl) но она зависит от Hinstance, и в dll уже работать не будет, исправленный вариант:
[ccl lang=»delphi» ]function myFindControl(Handle: HWnd): TWinControl;
var
AtomText: array[0..31] of Char;
ControlAtom: TAtom;
begin
ControlAtom := GlobalAddAtom(
StrFmt(AtomText, «ControlOfs%.8X%.8X», [GetModuleHandle(nil),
GetWindowThreadProcessId(Handle, nil)]));
Result := Pointer(GetProp(Handle, MakeIntAtom(ControlAtom)));
GlobalDeleteAtom(ControlAtom);
end;[/cc]
[ratings]

Views :

1162

TBitmap из 24 в 32 бит

[cc lang=»delphi»]
procedure BuildCopy24to32(_B_in: TBitmap; var _B_out: TBitmap);
const
MaxPixelCountA = MaxInt div sizeof(TRGBQuad);
MaxPixelCount = MaxInt div sizeof(TRGBTriple);
type
PRGBArray = ^TRGBArray;
TRGBArray = array [0 .. MaxPixelCount — 1] of TRGBTriple;
PRGBAArray = ^TRGBAArray;
TRGBAArray = array [0 .. MaxPixelCountA — 1] of TRGBQuad;
var
x, y: Integer;
RowOut: PRGBAArray;
RowIn: PRGBArray;
begin
_B_out.Width := _B_in.Width;
_B_out.Height := _B_in.Height;
for y := 0 to _B_in.Height — 1 do
begin
RowOut := _B_out.ScanLine[y];
RowIn […]

Views :

2764

Установка каретки в определенное положение в TMemo и в других контролах.

[ratings]
Procedure setline(memo:TMemo;Linepos,charpos:integer);
Begin
with memo do
begin
selstart:=perform(EM_LineIndex,LinePos,charpos)+charpos;
perform(EM_ScrollCaret,0,0);
SetFocus;
end;
end;

Views :

2065