delphi4arab منتديات دلفي للعرب
اين اكتب ال fonction في دلفي لكي استدعيها وقت الحاجة - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15)
+--- الموضوع : اين اكتب ال fonction في دلفي لكي استدعيها وقت الحاجة (/showthread.php?tid=12122)

الصفحات: 1 2


اين اكتب ال fonction في دلفي لكي استدعيها وقت الحاجة - blackhole - 24-10-2022

السلام عليكم ورحمة الله وبركاته 
حاليبا اصنع برنامج و عندي بعض ال fonction اريد ادخالها الى البرنامج واستدعائها كلما اقتضت الحاجة فاين اضعها داخل البرنامج نفسه وشكرا جزيلا مسبقا


RE: اين اكتب ال fonction في دلفي لكي استدعيها وقت الحاجة - Mr.DOS - 24-10-2022

سلام عليكم

ان كنت تريد استعمالها على نفس الفورم ضعها تحت private
ان كنت تريد من خارج الفورم (تناديها من اي فورم على البرنامج) ضعها تحت public
ونفس الشيئ مع المتغيرات و الثوابت .


RE: اين اكتب ال fonction في دلفي لكي استدعيها وقت الحاجة - Delphi4Us - 24-10-2022

وعليكم السلام ورحمة الله

باي مكان من المشروع وكما تكتب الاجراءات الاخرى


كود :
unit Unit1; interface uses    Forms, Dialogs; type    TForm1 = class(TForm)      procedure FormCreate(Sender: TObject);    end; var    Form1: TForm1; implementation {$R *.dfm}// Include form definitions // A small procedure procedure InLineProc; begin    ShowMessage('Hello World'); end; procedure TForm1.FormCreate(Sender: TObject); begin   // Call our little in line procedure    InLineProc; end; end.



RE: اين اكتب ال fonction في دلفي لكي استدعيها وقت الحاجة - blackhole - 24-10-2022

وضعتها تحت public عطاتني خطا
public


function StrToHex(S: String): String;
var I: Integer;
begin
Result:= '';
for I := 1 to length (S) do
Result:= Result+IntToHex(ord(S[i]),2);
end;


{ Public declarations }
end;


RE: اين اكتب ال fonction في دلفي لكي استدعيها وقت الحاجة - larbiparadox - 24-10-2022

(24-10-2022, 05:31 PM)blackhole كتب : وضعتها تحت  public  عطاتني خطا
public


  function StrToHex(S: String): String;
var I: Integer;
begin
  Result:= '';
  for I := 1 to length (S) do
    Result:= Result+IntToHex(ord(S[i]),2);
end;


{ Public declarations }
  end;

لا يقصد وضعها كاملة ، التعريف بها فقط (السطر الاول فقط) ، أما كاملة ضعها بعد كل التعريفات


RE: اين اكتب ال fonction في دلفي لكي استدعيها وقت الحاجة - blackhole - 24-10-2022

تماما بارك الله فيكم جميعا

[صورة: 669125648.jpg]للاسف مازال المشكل كما في الصورة


RE: اين اكتب ال fonction في دلفي لكي استدعيها وقت الحاجة - Mr.DOS - 24-10-2022

سلام عليكم
الخلل في الدالة اخي تحقق جيدا عليك بإرجاع ordinal

كود :
result := result+inttohex(ord(s[i]),2);



RE: اين اكتب ال fonction في دلفي لكي استدعيها وقت الحاجة - blackhole - 25-10-2022

اخي الكريم الدالة مجربة سابقا في عدة برامج لكن مع الدلفي 11 يعطيني هذه الاخطاء


RE: اين اكتب ال fonction في دلفي لكي استدعيها وقت الحاجة - S.FATEH - 25-10-2022

السلام عليكم

راجع دورة دلفي و قسم المبتدئين...

ضع الكلاس الذي تنتمي اليه الدالة قبل اسم الدالة

function TForm1.StrToHex

PHP كود :
unit Unit1;

interface

uses
  Winapi
.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs;

type
  TForm1 
= class(TForm)
  private
    function StrToHex(S: string): string;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

function 
TForm1.StrToHex(S: string):string;
var 
i: integer;
begin
  Result 
:= '';
  for i := 1 to length(s) do
    Result := Result + IntToHex(ord(s[i]), 2);
end;

end. 



RE: اين اكتب ال fonction في دلفي لكي استدعيها وقت الحاجة - Delphi4Us - 25-10-2022

ملاحظة : ليس من الضروري الاعلان عن الاجراءات والدوال في التبويب Public او حتى Privte ويمكنك وضعها مباشرة في الوحدة 
واستدعائها بشكل طبيعي

كود :
unit Unit1; interface uses   Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,   Vcl.Controls, Vcl.Forms, Vcl.Dialogs; type   TForm1 = class(TForm)   private       public       end; var   Form1: TForm1; implementation function  StrToHex(S: string):string; var i: integer; begin   Result := '';   for i := 1 to length(s) do     Result := Result + IntToHex(ord(s[i]), 2); end; end.

ملاحظة اخرى : اي حدث او برمجة تريدها ان ترى ةتصل هذا النوع من التعريف للاجراءات والدوال يجب ان تكون تحته
بمعنى اذا كان حدث استدعاء هذه الدالة فوقها فلن يتعرف عليها