10-01-2009, 11:18 AM
moh__ كتب :هل يعتبر هذا الكود الذي وشعته صحيح اخي ؟
PHP كود :if( key in ['a'..'z'] ) and ( key in ['A'..'Z'] )
ألا يجب استخدام الكلمة or بدل من استخدام كلمة and ؟
لأن عند استخدام ال and يجب ان يتحقق كلا الشرطين...
أولا: معك حق أخي هذا الكود هو لشرط يتحقق إذا تم الضغط على أحد الأحرف الصغيرة وفي نفس الوقت أحد الأحرف الكبيرة وهذا لا يمكن أن يتحقق؟؟؟
والصواب أن يكتب:
PHP كود :
if( key in ['a'..'z'] ) or ( key in ['A'..'Z'] ) then
ثانيا: لقد قدم الأخ المشرف الكود المختصر وهو الذي أراه مناسبا:
PHP كود :
if UpCase(key) in ['A'..'Z'] then
ShowMessage('it is a : '+key);
moh__ كتب :اما الثانية فشوي معقدة :eek:
يعني ماذا يفعلهو للأحرف الكبار ؟PHP كود :UpCase(key)
طيب ما هو العكس ؟
تستعمل UpCase لتحويل الحرف (Char) إلى حرف كبير، وهناك دوال كثيرة مشابهة لها.
والعكس هو LowerCase لكنها تستعمل مع العبارات النصية (String) وبالتالي يكون استعمالها كما يلي:
PHP كود :
if pchar(LowerCase(key))^ in ['a'..'z'] then
ShowMessage('it is a : '+key);
moh__ كتب :ثانيا ما فائدة الكودان كان هناك يوجدPHP كود :UpCase(key)التي تشير الى احرف كبار؟PHP كود :in ['A'..'Z']
طبعا لا فائدة منها، فإذا استعملت UpCase يمكنك الاستغناء عن الشرط الثاني.
.
moh__ كتب :نعم اخواني بارك الله فيكم...
اذا اردت انا انه مثلا عند الضغط على اي زر في الكيبورد يكون حرفا فسيتم اظهار
showmessage الى المستخدم...
وإذا أردت إدراج الرموز (مثل: ~#/*-+$^ù*...)، إليك هذا الكود:
PHP كود :
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
if not (key in ['0'..'9']) then
ShowMessage('it is a : '+key);
end;
PHP كود :
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
case UpCase(key) of
'A'..'Z': ShowMessage(key + ' is a letter');
'0'..'9': ShowMessage(key+' is a Number');
else ShowMessage(key+' is a Symbole');
end;
end;

