Вверх ↑
Ответов: 4621
Рейтинг: 746
#1: 2021-11-12 13:18:13 ЛС | профиль | цитата
Если речь идёт об draw dll, то в пакете Android делал так:
var 
Initialized: boolean = false;

// Индексы свойств (чтобы не искать при каждой перерисовке)
PropWidth,
PropHeight,
PropText,
PropHint: integer;


procedure Init(PRec:PParamRec; var ed:pointer; DTools:PDrawTools); cdecl;
function SearchIndex(const name:string):integer;
begin
result := 0;
while lowercase(PRec^[result].name) <> lowercase(name) do
inc(result);
end;
begin
if Initialized then exit;

PropWidth := SearchIndex('Width');
PropHeight := SearchIndex('Height');
PropText := SearchIndex('Text');
PropHint := SearchIndex('Hint');

Initialized := true;
end;

procedure Draw(PRec:PParamRec; ed:pointer; dc:HDC); cdecl;
var C: PCanvas;
R: TRect;
Width, Height: integer;
Text, Hint : string;
begin

Width := integer(PRec[PropWidth].Value^);
Height := integer(PRec[PropHeight].Value^);
Text := string(PRec[PropText].Value^);
Hint := string(PRec[PropHint].Value^);

C := NewCanvas(dc);
SetRect(R, 4, 2, Width - 8, Height - 4);
with C^ do
begin

.....
карма: 26

0
Редактировалось 2 раз(а), последний 2021-11-12 15:05:55