delphi4arab منتديات دلفي للعرب

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

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

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


كود :
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.
وضعتها تحت 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;
(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;

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

[صورة: 669125648.jpg]للاسف مازال المشكل كما في الصورة
سلام عليكم
الخلل في الدالة اخي تحقق جيدا عليك بإرجاع ordinal

كود :
result := result+inttohex(ord(s[i]),2);
اخي الكريم الدالة مجربة سابقا في عدة برامج لكن مع الدلفي 11 يعطيني هذه الاخطاء
السلام عليكم

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

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

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. 
ملاحظة : ليس من الضروري الاعلان عن الاجراءات والدوال في التبويب 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.

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