Вот код
program Test_Kol;
uses
kol,
windows;
const
faY = 32;
var
MainForm : PControl;
fbBut : array of PControl;
colBut : Integer;
IniFileName : AnsiString;
function MyMax(const A, B: Integer): Integer;
begin
if A > B then Result := A
else Result := B;
end;
procedure ButtonMyClick(Dummy : Pointer; Sender : PControl);
begin
Text2Clipboard(Sender.Caption);
MsgOK( 'Hello! ' + Sender.Caption);
end;
procedure MainIniWork(Write: Boolean);
var
Ini : PIniFile;
sec : PStrList;
i, tmp, fiCol, fiRow,
ic, ir, ih, iw :Integer;
b : Boolean;
begin
tmp := -1;
fiCol := 0;
fiRow := 0;
Ini := OpenIniFile(IniFileName);
Ini.Section := 'Form';
if Write then begin
Ini.Mode := ifmWrite;
end;
MainForm.Top := Ini.ValueInteger('Top', MainForm.Top);
MainForm.Left := Ini.ValueInteger('Left', MainForm.Left);
ih := Ini.ValueInteger('ButHeight', 45);
iw := Ini.ValueInteger('ButWidth', 129);
if not Write then begin
b := Ini.ValueBoolean('Hints', True);
sec := NewStrList;
Ini.GetSectionNames(sec);
for i := 0 to sec.Count - 1 do if sec.Items[i] = 'Form' then tmp := i;
if tmp > -1 then begin
sec.Delete(tmp);
end;
colBut := sec.Count;
SetLength(fbBut, colBut);
for i := 0 to colBut - 1 do begin
Ini.Section := sec.Items[i];
ic := Ini.ValueInteger('Col', 0);
ir := Ini.ValueInteger('Row', 0);
fbBut[i] := NewButton(MainForm, Ini.ValueString('Caption', 'Отсутствует надпись'));
fbBut[i].SetPosition(4 + (ic * iw), 4 + (ir * ih));
fbBut[i].SetSize(iw, ih);
fbBut[i].ResizeParent;
fbBut[i].OnClick := TOnEvent(MakeMethod(nil, @ButtonMyClick));
fiCol := MyMax(fiCol, ic);
fiRow := MyMax(fiRow, ir);
end;
MainForm.SetClientSize(8 + ((fiCol + 1) * iw), 8 + ((fiRow + 1) * ih));
sec.Free;
end;
Ini.Free;
end;
procedure MainDestroy(Dummy: Pointer; Sender: PObj);
begin
MainIniWork(True);
end;
begin
IniFileName := ChangeFileExt(ParamStr(0), '.ini');
Applet := NewApplet('Данные в буфер');
MainForm := NewForm(Applet, 'To');
MainForm.Visible := False;
MainForm.CreateWindow;
MainIniWork(False);
MainForm.OnDestroy := TOnEvent(MakeMethod(nil, @MainDestroy));
MainForm.Show;
Run(Applet);
SetLength(fbBut, 0);
Applet.Free;
IniFileName := '';
end.
В ини файле типа такого
[Form]
Top=575
Left=2
Hints=1
ButHeight=45
ButWidth=129
High=0
[b1]
Caption=ИНН
Value=1234567890
Col=0
Row=0
[b2]
Caption=КПП
Value=0987654321
Col=0
Row=1
[b3]
Caption=БИК
Value=04687921
Col=0
Row=2
[b4]
Caption=БАНК
Value=Банк какойто
Col=0
Row=3
[b5]
Caption=Кор Счет
Value=3654789654123654
Col=0
Row=4
должны создаться пять кнопок в ряд,
а на месте кнопок прямоугольниками с видом под формой.
да и при закрытии формы в полях Left и Top цифры которые прочитались при создании формы из ини файла
а если добавляю OnMove и вывожу в Caption параметры лефт и топ то при закрытии формы все ок сохраняется если он мув не обрабатываю то косячина какаято непонятная.
так и не понял как эти лефт и топ действуют.
так же не понял как включить туллтип говорит что нету свойства хинт
вот решил перевести утилитку с VCL на KOL вроде все просто а грабли везде.