s:=m1[i]; t.Writestring('memo1_L'+inttostr(i+1), s);
end;
t.WriteInteger('scrollbar1_position', scrollbar1_position);
t.closekey; m1.Free;
t.Free;
end;
procedure Load1(var edit1_text: pchar; var mm1: pchar; var scrollbar1_position: integer); export; stdcall;
// Считывание данных из реестра
var path_pr, nfile, s,m: string; t: tregistry; i,k,l: integer; m1,edit: tstrings;
begin
m1:=TStringList.Create;
t:=tRegistry.Create;
t.RootKey:=HKEY_CURRENT_USER;
t.OpenKey('\Software\is-302\tsn-12', true);
m1.text:='';
try
edit1_text:=pchar(t.Readstring('edit1_text'));
except
edit1_text:='????';
end;
try
k:=t.readInteger('memo1_count');
for i:=0 to k-1 do begin
s:= t.readstring('memo1_L'+inttostr(i+1));
m1.Add(s);
end;
except
end;
mm1:=pchar(m1.text);
try
l:= t.readInteger('scrollbar1_position'); scrollbar1_Position:=l;
except
end;
t.closekey; m1.Free; t.Free;
end;
procedure Clear1(var edit1_text: pchar; var mm1: pchar; var scrollbar1_position: integer); export; stdcall;
// Очистка данных
begin
edit1_text:=''; mm1:=''; scrollbar1_position:=0;
end;
exports Clear1, Save1, Load1;
begin
end.
1.4. Пример использования расширенной библиотеки DLL
unit Unit1;
…
var
Form1: TForm1;
procedure Save1(edit1_text: pchar; mm1: pchar; scrollbar1_position: integer); stdcall; external 'repa.dll';
procedure Load1(var edit1_text: pchar; var mm1: pchar; var scrollbar1_position: integer); stdcall; external 'repa.dll';