المشاركات : 2,293
المواضيع 157
:
: 81
الإنتساب : Dec 2008
بهذا التابع لست بحاجة لفحص الحروف الكبيرة والصغيرة:
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
ثم ضعه ضمن المفضلة لديك 
بالتوفيق.
المشاركات : 367
المواضيع 54
:
: 506
الإنتساب : Jan 2011
استاذ كاش واحد انا لا اقصد حالة الاحرف هذا كان مثال
لكن اقصد كلمات مختلفه
مثلا ان يكون النص DELPHI والاخر ELARAPY
على سبيل المثال في حدث OnChange لل Edit
المراد اذا كان النص يحتوي Delphi او ELARAPY
النتيجه
كود :
Button1.Enabled:=False;
قل إن صلاتي ونسكي ومحياي ومماتي لله رب العالمين
المشاركات : 2,293
المواضيع 157
:
: 81
الإنتساب : Dec 2008
أخي الكريم، لم أقصد ذلك
الدالة AnsiContainsText تقوم بالتحقق من سلسلة نصية فيما إذا كانت محتواة داخل سلسلة أخرى
قصدت أن التابع يقوم بتلك المقارنة دون الأخذ بعين الاعتبار حالة الأحرف:
PHP كود :
uses
StrUtils;
...
if AnsiContainsText(Edit1.Text, 'delphi') or AnsiContainsText(Edit1.Text, 'ELARAPY') then
Button1.Enabled := False;
وبالتالي لا داعي للمقارنة مع delphi ثم DELPHI أو Delphi كلهم سواء...
بالتوفيق.
المشاركات : 367
المواضيع 54
:
: 506
الإنتساب : Jan 2011
تمت التجربه بنجاح
استاذي حضرتك لم تفهم مشكلتي
مشكلتي اني كنت أود التحقق من اكثر من سلسه نصيه ولم اتمكن من كتابه الشيفرة المضبوطه
بارك الله فيك تمت التجربه الموضحه بنجاح والحمد لله
قل إن صلاتي ونسكي ومحياي ومماتي لله رب العالمين
المشاركات : 2,293
المواضيع 157
:
: 81
الإنتساب : Dec 2008
25-04-2011, 11:14 PM
(آخر تعديل لهذه المشاركة: 26-04-2011, 06:11 PM بواسطة kachwahed.)
فهمت مثالك أخي وأردت فقط أن أضيف 
تابع آخر للتسهيل أكثر:
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
المشاركات : 367
المواضيع 54
:
: 506
الإنتساب : Jan 2011
التابع لا يعمل مع Delphi Xe ولا Delphi 2010
ويعمل مع Delphi 7
ما الحل
قل إن صلاتي ونسكي ومحياي ومماتي لله رب العالمين
المشاركات : 240
المواضيع 16
:
: 0
الإنتساب : Dec 2008
على السريع :
PHP كود :
var
Dlp,DLP:Integer;
begin
Dlp:=Pos('Delphi',Edit1.Text);
DLP:=Pos('DELPHI',Edit1.Text);
if Dlp<>0 or DLP<>0 then
//افعل ماتريد
end;
المشاركات : 367
المواضيع 54
:
: 506
الإنتساب : Jan 2011
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 اسم
ثانيا الاسماء عربيه
كنت اود كود ويتم وضع الاسماء كلها في كود واحد لو امكن
قل إن صلاتي ونسكي ومحياي ومماتي لله رب العالمين
المشاركات : 240
المواضيع 16
:
: 0
الإنتساب : Dec 2008
جرب هدا
كود :
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));
والسلام عليكم
المشاركات : 2,293
المواضيع 157
:
: 81
الإنتساب : Dec 2008
إقتباس :التابع لا يعمل مع Delphi Xe ولا Delphi 2010
بلى أخي الكريم فقط ينبغي إضافة المكتبة StrUtils ضمن الـ Uses
والأفضل مع الإصدارات التي ذلك استخدام IndexText بنفس الطريقة:
PHP كود :
if IndexText(Edit1.Text, ['delphi', 'elarapy']) >= 0 then
Button1.Enabled := False;
إقتباس :وهذا النص عبارة عن اسماء اشخاص ولكن ليس اسم او اثنين بل حوالي 20 اسم
20 اسم! كان عليك أن تقول ذلك منذ البداية...
لا أنصح بمثل هذه الطريقة لأجل ذلك الغرض
استخدام جدول من قاعدة بيانات.
بالتوفيق.