type
TForm1 = class(TForm)
Edit1: TEdit;
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
procedure Edit1Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Edit1Change(Sender: TObject);
begin
end;
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not(Key in ['ء'..'ي',' ', #8]) then
begin
Key := #0;
Beep;
end;
end;
end.
دلفي 7
كود :
type
TForm1 = class(TForm)
Edit1: TEdit;
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not(Key in ['Á'..'í',' ', #8]) then
begin
Key := #0;
Beep;
end;
end;
end.
الأخ ELARAPY هناك فرق بين Char في إصدارات دلفي (2009 فما فوق) الداعمة لـ Unicode
و Char في إصدارات دلفي (2007 وما تحت) غير الداعمة للـ Unicode أي ANSI فقط.
للاستزادة: http://www.delphi4arab.net/forum/showthr...p?tid=2144
بالتوفيق.
TF6M كتب :- نفذ هذا الكود في الـ Delphi 7 & Delphi 2010 و لاحظ الفرق :
بعد التجربه الرسائل مختلفه
دلفي 7
Size Of Char Type : 1 Byt, 256 Character
دلفي 2010
Size Of Char Type : 2 Byt, 65536 Character
ما فهمته هو وجود اختلاف في الكومبايلر حسب الكود اللي حضرتك وضعته
لكن ما لم افهمه هو من اين اعرف مثل هذه الاكواد من حيث الاصدارات حتى استخدم مثل هذا الكود
بمعنى حضرتك حددت فرجن 20 وبنيت عليه القاعده
مين اين اتيت برقم الفرجن 20 وما السبب الذي يجعل الكوبايلر لا يقوم بمعالجه كود لكومايلر اخر ؟
هذه موجهات المترجم Compiler Directives أو Preprocessor directives كما يسميها البعض
هدفها تغيير سلوك المترجم حسب الكود
هناك قيم معرفة مسبقا في دلفي منها، قيمة لمعرفة الإصدار:
PHP كود :
The following standard conditional symbols tell you which compiler is used: