المشاركات : 71
المواضيع 38
:
: 0
الإنتساب : Aug 2010
السلام عليكم
أنا الأن يصدد تعلم كيفية البحث عن كلمة بواسطة الدلفي و بدأت بكيفية عمل برنامج بسيط يقوم بالبحث عن كلمة في عنصر المفكرة و عندما يجد الكلمة يقوم بتحديدها بحثت في افنترنت عن الطريقة فوجدت أحد الإخوة وضع كود سورس لهذا البرنامج لكن للأسف لم لفهمه و بالتالي قلت لنفسي لما لا اضعه هنا في المنتدى كي يقوم بعض الأخوة شرحه لي من فضلكم فأنا بحاجة ماسة لفهم هذا الكود
الكود موجود في الصورة
كود :
http://img102.herosh.com/2011/09/06/688964853.jpg
المشاركات : 418
المواضيع 50
:
: 0
الإنتساب : Sep 2009
انسخ الكود واعرضة وليس صورة
تحياتي
المشاركات : 56
المواضيع 8
:
: 2
الإنتساب : Jun 2009
PHP كود :
var i:LongInt;
TextFind:string;
begin
for i := 0 to Length(Memo1.Lines.Text) - 1 do
begin
TextFind := Copy(Memo1.Lines.Text, i, Length(edit1.Text));
if TextFind = edit1.Text then
begin
Memo1.SetFocus;
Memo1.SelStart := i - 2;
Memo1.SelLength := Length(edit1.Text)+1;
break;
end;
end;
end;
كل من 1 user says قال شكرا ل phpbb3 على المشاركة المفيدة1 user says Thank You to phpbb3 for this post
• ع الحليم
المشاركات : 316
المواضيع 64
:
: 1
الإنتساب : Apr 2009
و عليكم السلام ورحمة الله
أنظر هذا الموضوع أخي

البحث في TMemo
http://www.delphi4arab.net/forum/showthr...p?tid=2584
المشاركات : 71
المواضيع 38
:
: 0
الإنتساب : Aug 2010
ها هو الكود اخي cargem علما ان البرنامج يحتو فقط على زر و عنصري memo و edit
PHP كود :
var
posm,posl,i,j : integer;
trouv:boolean;
begin
trouv:=false;
for i:=0 to memo1.lines.count do
begin
posl:=pos(edit1.text, memo1.lines[i]);
if posl<> o then
begin
posm:=0;
for j :=0 to i -1 do
posm:= pos + length(memo1.lines[j]);
posm:=posm +(i*2);
posm:=posm+ posl-1;
memo1.setfocus;
memo1.selstart:=posm;
memo1.sellength:=length(edit1.text);
trouv:=true;
messagebeep(0);
break;
end;
end;
if trouv= false then
showmessage('word not found');
messagebeep(0);
end;
المشاركات : 13
المواضيع 0
:
: 0
الإنتساب : May 2011
كود :
var
posm,posl,i,j : integer;
trouv:boolean;
begin
trouv:=false;
for i:=0 to memo1.lines.count do
begin
posl:=pos(edit1.text, memo1.lines[i]);
الخطأ // [color=Red]if posl<> o then[/color]
begin
posm:=0;
for j :=0 to i -1 do
posm:= pos + length(memo1.lines[j]);
posm:=posm +(i*2);
posm:=posm+ posl-1;
memo1.setfocus;
memo1.selstart:=posm;
memo1.sellength:=length(edit1.text);
trouv:=true;
messagebeep(0);
break;
end;
end;
if trouv= false then
showmessage('word not found');
messagebeep(0);
end;
الاصح
المشاركات : 71
المواضيع 38
:
: 0
الإنتساب : Aug 2010
المشاركات : 13
المواضيع 0
:
: 0
الإنتساب : May 2011
من فضلك وضح الذي لم تفهمه بالضبط
على العموم الكود فيه بعض الاخطاء
PHP كود :
for i:=0 to memo1.lines.count do
الاصح
PHP كود :
for i:=0 to memo1.lines.count -1 do
المشاركات : 418
المواضيع 50
:
: 0
الإنتساب : Sep 2009
كود :
var
posm, posl, i, j: integer;
trouv: boolean;
begin
trouv := false;
for i := 0 to Memo1.lines.count do // هنا تحسب عدد الاسطر
begin { posl = search in line }
posl := pos(Edit1.text, Memo1.lines[i]);
{ edit1.text تعبر عن الكلمة المراد البحث عنها في السطر المحدد ب memo1.lines[i] واذا وجدها فأنه يرجع قيمة عددية ثمتل رقم الحرف الاول من الكلمة الموجودة في السطر على ان يكون الترقيم من العدد 1 }
if posl <> 0 then { طبعا ضروري الاختبار في حالة وجدت الكلمة }
begin { posl = يحدد اول الكلمة }
// posm := 0; { posm = }
// for j := 0 to i - 1 do
//
// posm := posl + length(Memo1.lines[j]);
//
// posm := posm + (i * 2);
// posm := posm + posl - 1;
Memo1.setfocus; // يحدد بالتظليل
Memo1.selstart := posl -1 ;
Memo1.sellength := length(Edit1.text);
trouv := true; (* Switch ON *)
messagebeep(0);
break; // go out from loop
end;
end;
if trouv = false then
showmessage('word not found');
messagebeep(0);
end;
المشاركات : 418
المواضيع 50
:
: 0
الإنتساب : Sep 2009
المشكلة تكمن عندما يكون اكثر من كلمة في النص
دائما سيشر الى اول كلمة يجدها