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

نسخة كاملة : استفسار عن الجملة المشروطه if
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2 3 4 5
بهذا التابع لست بحاجة لفحص الحروف الكبيرة والصغيرة:
PHP كود :
if AnsiContainsText(Edit1.Text, 'delphi') then Button1.Enabled := False; 
التابع AnsiContainsStr يقوم بنفس العمل غير أنه حساس (sensitive) تجاه حالة الأحرف (Upper/Lower Case)
انظر الموقع:
PHP كود :
http://www.delphibasics.co.uk/RTL.asp?Name=AnsiContainsText 
ثم ضعه ضمن المفضلة لديك Smile
بالتوفيق.
استاذ كاش واحد انا لا اقصد حالة الاحرف هذا كان مثال

لكن اقصد كلمات مختلفه

مثلا ان يكون النص DELPHI والاخر ELARAPY

على سبيل المثال في حدث OnChange لل Edit

المراد اذا كان النص يحتوي Delphi او ELARAPY

النتيجه

كود :
Button1.Enabled:=False;
أخي الكريم، لم أقصد ذلك
الدالة AnsiContainsText تقوم بالتحقق من سلسلة نصية فيما إذا كانت محتواة داخل سلسلة أخرى
قصدت أن التابع يقوم بتلك المقارنة دون الأخذ بعين الاعتبار حالة الأحرف:
PHP كود :
uses
  StrUtils
;
...
if 
AnsiContainsText(Edit1.Text, 'delphi') or AnsiContainsText(Edit1.Text, 'ELARAPY') then
    Button1
.Enabled := False; 
وبالتالي لا داعي للمقارنة مع delphi ثم DELPHI أو Delphi كلهم سواء...
بالتوفيق.
تمت التجربه بنجاح

استاذي حضرتك لم تفهم مشكلتي

مشكلتي اني كنت أود التحقق من اكثر من سلسه نصيه ولم اتمكن من كتابه الشيفرة المضبوطه

بارك الله فيك تمت التجربه الموضحه بنجاح والحمد لله
فهمت مثالك أخي وأردت فقط أن أضيف Smile
تابع آخر للتسهيل أكثر:
PHP كود :
if AnsiIndexText(Edit1.Text, ['delphi', 'elarapy']) >= 0 then
    Button1
.Enabled := False; 
المزيد عنه:
PHP كود :
http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/delphivclwin32/StrUtils_AnsiIndexText.html 
التابع لا يعمل مع Delphi Xe ولا Delphi 2010

ويعمل مع Delphi 7

ما الحل
على السريع :
PHP كود :
var
Dlp,DLP:Integer;
begin
Dlp
:=Pos('Delphi',Edit1.Text);
DLP:=Pos('DELPHI',Edit1.Text);
if 
Dlp<>0 or DLP<>0 then 
//افعل ماتريد
end; 
mohfa كتب :على السريع :
PHP كود :
var
Dlp,DLP:Integer;
begin
Dlp
:=Pos('Delphi',Edit1.Text);
DLP:=Pos('DELPHI',Edit1.Text);
if 
Dlp<>0 or DLP<>0 then 
//افعل ماتريد
end; 

لكن هذا سكون الكود كبير جدا لاني أحاول امنع ال Button من التفعيل في حالة وجود نص في ال edit

وهذا النص عبارة عن اسماء اشخاص ولكن ليس اسم او اثنين بل حوالي 20 اسم

ثانيا الاسماء عربيه

كنت اود كود ويتم وضع الاسماء كلها في كود واحد لو امكن
جرب هدا
كود :
function FindMe(S: string): boolean; //add as much strings as you want to this Static array const Me: array[1..3] of string = ('delphi','Delphi','DELPHI'); var i: integer; begin for i := 1 to 3 do begin // SameText is Case insensitive . result := SameText(S,Me[i]); if result // if True then break; // Stop the For Loop end; end;

للتجربة :
كود :
button2.Enabled:=FindMe(trim(edit1.Text));


والسلام عليكم
إقتباس :التابع لا يعمل مع Delphi Xe ولا Delphi 2010
بلى أخي الكريم فقط ينبغي إضافة المكتبة StrUtils ضمن الـ Uses
والأفضل مع الإصدارات التي ذلك استخدام IndexText بنفس الطريقة:
PHP كود :
if IndexText(Edit1.Text, ['delphi', 'elarapy']) >= 0 then
    Button1
.Enabled := False; 
إقتباس :وهذا النص عبارة عن اسماء اشخاص ولكن ليس اسم او اثنين بل حوالي 20 اسم
20 اسم! كان عليك أن تقول ذلك منذ البداية...
لا أنصح بمثل هذه الطريقة لأجل ذلك الغرض
استخدام جدول من قاعدة بيانات.
بالتوفيق.
الصفحات : 1 2 3 4 5