استفسار عن الجملة المشروطه if
#31
بهذا التابع لست بحاجة لفحص الحروف الكبيرة والصغيرة:
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
بالتوفيق.
الرد
#32
استاذ كاش واحد انا لا اقصد حالة الاحرف هذا كان مثال

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

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

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

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

النتيجه

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

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

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

بارك الله فيك تمت التجربه الموضحه بنجاح والحمد لله
قل إن صلاتي ونسكي ومحياي ومماتي لله رب العالمين
الرد
#35
فهمت مثالك أخي وأردت فقط أن أضيف 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 
الرد
#36
التابع لا يعمل مع Delphi Xe ولا Delphi 2010

ويعمل مع Delphi 7

ما الحل
قل إن صلاتي ونسكي ومحياي ومماتي لله رب العالمين
الرد
#37
على السريع :
PHP كود :
var
Dlp,DLP:Integer;
begin
Dlp
:=Pos('Delphi',Edit1.Text);
DLP:=Pos('DELPHI',Edit1.Text);
if 
Dlp<>0 or DLP<>0 then 
//افعل ماتريد
end; 
الرد
#38
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 اسم

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

كنت اود كود ويتم وضع الاسماء كلها في كود واحد لو امكن
قل إن صلاتي ونسكي ومحياي ومماتي لله رب العالمين
الرد
#39
جرب هدا
كود :
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));


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


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم