11-11-2017, 02:44 PM
بسم الله الرحمن الرحيم
الصلاة والسلام عل رسول الله وعلى آله وصحبه أجمعين
ما هو الخطأ في هذه الملفات
أردت من هذا المثال أن أعمل برنامج يعمل على عدة اصدارات من دلفي مثلا
Delphi7 and Delphi 10.2
جعلت كل العناصر التي تتعامل مع ملفات قاعدة البيالنات في ملف دي ال ال
DLL
بدلفي 7
وجعلت البرنامج الذي يستدعي دي ال ال بدلفي 10.2
الاخطاء
عندما تضغط فوق الزر Afficher مرتين أو أكثر تظهر رسالة خطأ
اذا أدخلت معلومات الى قاعدة البيانات من دلفي 10.2 تظهر برموز غريبة
مشروع ملف دي ال ال بدلفي7
dll delphi 7 borland.rar
https://www.mediafire.com/file/m6mihm6xx...orland.rar
الملف التنفيذي بدلفي7 وملفات قاعدة البيانات
executable et base de donnee delphi7 b.rar
https://www.mediafire.com/file/qo1grmnhe...i7%20b.rar
الملف التنفيذي بدلفي10.2 وملفات قاعدة البيانات
executable et base de donnee delphi 10.2.rar
https://www.mediafire.com/file/a8tvgkaj3...2010.2.rar
بعض الاخطاء التي تظهر
Image.rar
https://www.mediafire.com/file/vq2i8885c.../Image.rar
المشروع بدلفي7
projet delphi 7 borland.rar
https://www.mediafire.com/file/iqe9hq6ii...orland.rar
المشروع بدلفي10.2
projet delphi 10.2.rar
https://www.mediafire.com/file/88m9p5l7a...2010.2.rar
ملف دي ال ال الكود
.
البرنامج بدلفي 10.2 الكود:
الصلاة والسلام عل رسول الله وعلى آله وصحبه أجمعين
ما هو الخطأ في هذه الملفات
أردت من هذا المثال أن أعمل برنامج يعمل على عدة اصدارات من دلفي مثلا
Delphi7 and Delphi 10.2
جعلت كل العناصر التي تتعامل مع ملفات قاعدة البيالنات في ملف دي ال ال
DLL
بدلفي 7
وجعلت البرنامج الذي يستدعي دي ال ال بدلفي 10.2
الاخطاء
عندما تضغط فوق الزر Afficher مرتين أو أكثر تظهر رسالة خطأ
اذا أدخلت معلومات الى قاعدة البيانات من دلفي 10.2 تظهر برموز غريبة
مشروع ملف دي ال ال بدلفي7
dll delphi 7 borland.rar
https://www.mediafire.com/file/m6mihm6xx...orland.rar
الملف التنفيذي بدلفي7 وملفات قاعدة البيانات
executable et base de donnee delphi7 b.rar
https://www.mediafire.com/file/qo1grmnhe...i7%20b.rar
الملف التنفيذي بدلفي10.2 وملفات قاعدة البيانات
executable et base de donnee delphi 10.2.rar
https://www.mediafire.com/file/a8tvgkaj3...2010.2.rar
بعض الاخطاء التي تظهر
Image.rar
https://www.mediafire.com/file/vq2i8885c.../Image.rar
المشروع بدلفي7
projet delphi 7 borland.rar
https://www.mediafire.com/file/iqe9hq6ii...orland.rar
المشروع بدلفي10.2
projet delphi 10.2.rar
https://www.mediafire.com/file/88m9p5l7a...2010.2.rar
ملف دي ال ال الكود
كود :
unit untDataModule;
interface
uses
SysUtils, Classes, DB, DBTables, Dialogs,Controls;
type
TDataModule1 = class(TDataModule)
private
public
end;
procedure db100(cd,nm,pnm: string); stdcall;
procedure dbOut100(sear: string; var cd,nm,pnm: string); stdcall;
function dbPassword(sear: string): boolean; stdcall;
procedure Add_dbPassword(Mot_de: string); stdcall;
procedure dbDEL100(sear: string); stdcall;
type
arryee= array of string; //ansistring widestring
procedure dbTable100(var cont: integer; var arrya, arrya1,arrya2: arryee);
stdcall;
var
DataModule1: TDataModule1;
// arry: array of arryee;
implementation
{$R *.dfm}
procedure db100(cd,nm,pnm: string); stdcall;
var
ffm: tTable;
begin
ffm := tTable.Create(nil);
try
ffm.Close;
ffm.TableName := 'person1.db';
ffm.Open;
ffm.Last;
ffm.Append;
ffm.FieldByName('Code').AsString := cd;
ffm.FieldByName('Nom').AsString := nm;
ffm.FieldByName('Porenom').AsString := pnm;
ffm.Post;
finally
ffm.Free;
end;
end;
procedure dbTable100(var cont: integer; var arrya, arrya1,arrya2: arryee);
stdcall;
var
tab10: TTable;
i: integer;
begin
i := 0;
tab10 := TTable.Create(nil);
try
tab10.Close;
tab10.TableName := 'person1.db';
tab10.Open;
cont := tab10.RecordCount;
SetLength(arrya,cont);
SetLength(arrya1,cont);
SetLength(arrya2,cont);
tab10.DisableControls;
try
tab10.First;
while not tab10.Eof do
begin
arrya[i] := tab10.FieldByName('Code').AsString;
arrya1[i] := tab10.FieldByName('Nom').AsString;
arrya2[i] := tab10.FieldByName('Porenom').AsString;
tab10.Next;
i := i + 1;
end;
finally
tab10.EnableControls;
end;
finally
tab10.Free;
end;
end;
function dbPassword(sear: string): boolean; stdcall;
var
tblPass: tTable;
begin
tblPass := tTable.Create(nil);
try
tblPass.Close;
tblPass.TableName := 'motdepass.db';
tblPass.Open;
if tblPass.Locate('Mot',sear,[]) then Result := true
else Result := false;
finally
tblPass.Free;
end;
end;
procedure Add_dbPassword(Mot_de: string); stdcall;
var
tblPass: tTable;
begin
tblPass := tTable.Create(nil);
try
tblPass.Close;
tblPass.TableName := 'motdepass.db';
tblPass.Open;
tblPass.First;
if tblPass.RecordCount>0 then tblPass.Append
else tblPass.Edit;
tblPass.FieldByName('Mot').AsString := Mot_de;
tblPass.Post;
finally
tblPass.Free;
end;
end;
procedure dbOut100(sear: string; var cd,nm,pnm: string); stdcall;
var
tblOut: tTable;
begin
tblOut := tTable.Create(nil);
try
tblOut.Close;
tblOut.TableName := 'person1.db';
tblOut.Open;
tblOut.Locate('Nom',sear,[]);
cd := tblOut.FieldByName('Code').AsString;
nm := tblOut.FieldByName('Nom').AsString;
pnm := tblOut.FieldByName('Porenom').AsString;
finally
tblOut.Free;
end;
end;
procedure dbDEL100(sear: string); stdcall;
var
tblDEL: tTable;
s1: string;
begin
tblDEL := tTable.Create(nil);
try
tblDEL.Close;
tblDEL.TableName := 'person1.db';
tblDEL.Open;
tblDEL.Locate('Nom',sear,[]);
s1 := tblDEL.FieldByName('Nom').AsString;
if MessageDlg('هل تريد حذف هذا الاسم '+
s1+' ?',mtWarning,[mbYes, mbNo],0)
= mrYes then tblDEL.Delete;
finally
tblDEL.Free;
end;
end;
exports db100 name 'dbin', dbOut100 name 'dbout',
dbTable100 name 'dbTab', dbPassword name 'Passwords',
Add_dbPassword name 'Add_dbPasswords', dbDEL100 name 'DEL100';
endالبرنامج بدلفي 10.2 الكود:
كود :
unit Unit3;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.Grids, Vcl.StdCtrls;
type
TForm3 = class(TForm)
Memo1: TMemo;
Button5: TButton;
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Button2: TButton;
Edit3: TEdit;
Edit2: TEdit;
Edit1: TEdit;
GroupBox2: TGroupBox;
Edit4: TEdit;
Button3: TButton;
Button1: TButton;
GroupBox3: TGroupBox;
Edit5: TEdit;
Button4: TButton;
StringGrid1: TStringGrid;
GroupBox4: TGroupBox;
Edit6: TEdit;
Button6: TButton;
procedure Button5Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
public
end;
procedure db100(cd,nm,pnm: string); stdcall;
external 'ProjectDLL.dll' name 'dbin';
procedure dbOut100(sear: string; var cd,nm,pnm: widestring); stdcall;
external 'ProjectDLL.dll' name 'dbout';
procedure Add_dbPassword(Mot_de: string); stdcall;
external 'ProjectDLL.dll' name 'Add_dbPasswords';
procedure dbDEL100(sear: string); stdcall;
external 'ProjectDLL.dll' name 'DEL100'; //; var s1,s2,s3: widestring
type
arryee1= array of widestring; //ansistring
procedure dbTable100(var cont: integer; var arrya, arrya1,arrya2: arryee1); stdcall;
external 'ProjectDLL.dll' name 'dbTab';
var
Form3: TForm3;
implementation
{$R *.dfm}
procedure TForm3.Button2Click(Sender: TObject);
begin
db100(Edit1.Text,Edit2.Text,Edit3.Text);
Edit1.Text:='';
Edit2.Text:='';
Edit3.Text:='';
Edit1.SetFocus;
end;
procedure TForm3.Button3Click(Sender: TObject);
var
a,b,c: widestring ; // ansistring
begin
dbOut100(Edit4.Text,a,b,c);
Edit1.Text:=a;
Edit2.Text:=b;
Edit3.Text:=c;
end;
procedure TForm3.Button4Click(Sender: TObject);
begin
Add_dbPassword(Edit5.Text);
end;
procedure TForm3.Button5Click(Sender: TObject);
var
arrya00, arrya11,arrya22: arryee1;
cont12: integer;
i1: integer;
begin
StringGrid1.Cells[1,0] := 'الرقم';
StringGrid1.Cells[2,0] := 'الاسم';
StringGrid1.Cells[3,0] := 'اللفب';
Memo1.Lines.Clear;
// if iii = 0 then
dbTable100(cont12,arrya00, arrya11,arrya22);
for i1 := 0 to 10 do
begin
if i1 < cont12 then
begin
Memo1.Lines.Add(arrya00[i1]+' '+arrya11[i1]+' '+arrya22[i1]);
StringGrid1.RowCount := cont12+1;
StringGrid1.Cells[1,i1+1] := arrya00[i1];
StringGrid1.Cells[2,i1+1] := arrya11[i1];
StringGrid1.Cells[3,i1+1] := arrya22[i1];
end;
end;
end;
procedure TForm3.Button6Click(Sender: TObject);
begin
dbDEL100(Edit6.Text);
end;
end.