01-03-2017, 06:45 PM
السلام عليكم
اريد ارسال integer و array of byte باستخدام هذه الوحدة وعجزت صراحة عن تعديلها فارجوا تعديلها مع شرح بسيط حتى استطيع تعديلها حسب الحاجة بارك الله فيكم هذه هي الوحدة
unit shared;
interface
uses
Windows;
type
TSettings = record
Msg: array of string;
test1:array [0..32767] of Byte;
test2:array [0..32767] of Byte;
i:integer;
end;
PSettings = ^TSettings;
const
RC_SETTINGS = 'CFG';
function WriteSettings(Filename: PChar; Settings: PSettings): Boolean;
function ReadSettings(var Settings: PSettings): Boolean;
implementation
function WriteSettings(Filename: PChar; Settings: PSettings): Boolean;
var
hResource: Thandle;
begin
Result := False;
hResource := BeginUpdateResource(Filename, False);
if hResource <> 0 then
begin
if UpdateResource(hResource, RT_RCDATA, RC_SETTINGS, 0, @Settings.Msg[1],
PDWORD(DWORD(Settings.Msg) - 4)^ + 1) then
Result := True;
EndUpdateResource(hResource, False);
end;
end;
function ReadSettings(var Settings: PSettings): Boolean;
var
hResInfo: HRSRC;
hRes: HGLOBAL;
begin
Result := False;
hResInfo := FindResource(hInstance, RC_SETTINGS, RT_RCDATA);
if hResInfo <> 0 then
begin
hRes := LoadResource(hInstance, hResInfo);
if hRes <> 0 then
begin
New(Settings);
Settings^.Msg := PChar(LockResource(hRes));
Result := True;
end;
end;
end;
end.
اريد ارسال integer و array of byte باستخدام هذه الوحدة وعجزت صراحة عن تعديلها فارجوا تعديلها مع شرح بسيط حتى استطيع تعديلها حسب الحاجة بارك الله فيكم هذه هي الوحدة
unit shared;
interface
uses
Windows;
type
TSettings = record
Msg: array of string;
test1:array [0..32767] of Byte;
test2:array [0..32767] of Byte;
i:integer;
end;
PSettings = ^TSettings;
const
RC_SETTINGS = 'CFG';
function WriteSettings(Filename: PChar; Settings: PSettings): Boolean;
function ReadSettings(var Settings: PSettings): Boolean;
implementation
function WriteSettings(Filename: PChar; Settings: PSettings): Boolean;
var
hResource: Thandle;
begin
Result := False;
hResource := BeginUpdateResource(Filename, False);
if hResource <> 0 then
begin
if UpdateResource(hResource, RT_RCDATA, RC_SETTINGS, 0, @Settings.Msg[1],
PDWORD(DWORD(Settings.Msg) - 4)^ + 1) then
Result := True;
EndUpdateResource(hResource, False);
end;
end;
function ReadSettings(var Settings: PSettings): Boolean;
var
hResInfo: HRSRC;
hRes: HGLOBAL;
begin
Result := False;
hResInfo := FindResource(hInstance, RC_SETTINGS, RT_RCDATA);
if hResInfo <> 0 then
begin
hRes := LoadResource(hInstance, hResInfo);
if hRes <> 0 then
begin
New(Settings);
Settings^.Msg := PChar(LockResource(hRes));
Result := True;
end;
end;
end;
end.