Kezdőoldal » Számítástechnika » Programozás » Hogy lehet delphi-ben keresni...

Hogy lehet delphi-ben keresni egy tmemo-ban?

Figyelt kérdés

Azt szeretném, hogy egy gomb megnyomásával jelezze, hogy

egy Memo1-ben van e egy adott szó.

Pl: Memo1 tartalma: mcnashdáháEZASZÓjlkdgasdbiaud

és ha rákeresek 'EZASZÓ' akkor megtalálja, kiadja van e benne(true/false).

Kérem segítsenek, nagyon fontos lenne.



2014. márc. 2. 19:12
 1/5 coopper ***** válasza:

Szia.


Több módszer is van.


1. Ha a memóban lehet a kijelölést használni akkor, kijelölteted az egész memót (Form1.Memo1.SelectAll), majd használod a pos függvényt result:=pos (KeresoSzo,Form1.Memo1.SelText))<>0;


2. A memo sorai elérhetőek a következő módon :


1. sor: Form1.Memo1.Lines[0]

2. sor: Form1.Memo1.Lines[1]


Utolsó sor : Memo1.Lines.Count-1.


stb.

Ha egy ciklussal végigmész a sorokon, akkor soronként használhatod a a pos függvényt.


Sok sikert.

Üdv.

2014. márc. 2. 19:41
Hasznos számodra ez a válasz?
 2/5 A kérdező kommentje:

Köszönöm, ez elég hasznos, de nem vagyok hozzá elég profi.

Esetleg egy konkrét kódot nem tudsz küldeni(procedure-tól az end;-ig)?

üdv.

2014. márc. 3. 13:12
 3/5 coopper ***** válasza:

Szia.


Ami kell a formra :


1 db Tmemo

1 db Tedit

1 db Button


Egy függvény (A memmóban keresi az editor szövegét) és egy procedure (gombnyomás procedurája) :


Function MemoKereses:boolean ;

Begin

_ _ _Form1.Memo1.SelectAll;

_ _ _Result:=pos (Form1.Edit1.Text,Form1.Memo1.SelText)<>0;

End ;


procedure TForm1.Button1Click(Sender: TObject);

begin

_ _ _if MemoKereses then begin

_ _ _ _ _ showmessage (Form1.Edit1.Text+' megtalálható a szövegben');

_ _ _end

_ _ _Else Begin

_ _ _ _ _ showmessage (Form1.Edit1.Text+' NINCS benne a szövegben');

_ _ _End ;

end;


Sok sikert.

Üdv.

2014. márc. 3. 13:30
Hasznos számodra ez a válasz?
 4/5 coopper ***** válasza:

Második változat (ciklusos):


Function MemoKereses:boolean ;

Var i : longint ;

Begin

_ _ _Result:=False;

_ _ _I:=-1;

_ _ _while (not (Result) and (I<Form1.Memo1.Lines.Count-1)) do begin

_ _ _ _ _ I:=I+1;

_ _ _ _ _ Result:=pos (Form1.Edit1.Text,Form1.Memo1.Lines[I])<>0;

_ _ _end ;

End ;



Sok sikert.

Üdv.

2014. márc. 3. 13:38
Hasznos számodra ez a válasz?
 5/5 A kérdező kommentje:
Nagyon köszönöm, már sikerült!
2014. márc. 3. 16:47

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!