Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Textsuche in Memo


Ulli - So 17.11.02 13:59
Titel: Textsuche in Memo
Ich habe das Beispiel zum FindDialog der Delphi Hilfe verwendet. Leider kriege ich es nicht zum laufen.




Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
procedure TForm2.SuchenClick(Sender: TObject);
begin
  FindDialog1.Position := Point(Memo1.Left + Memo1.Width, Memo1.Top);
   FindDialog1.Execute;
end;
procedure TForm2.FindDialog1Find(Sender: TObject);         
var
  FoundAt : LongInt;
   StartPos, ToEnd : Integer;
begin
  with Memo1 do
   begin
    if SelLength <> 0 then
       StartPos := SelStart + SelLength
     else
       StartPos := 0;
        ToEnd := Length(Text) - StartPos;
        FoundAt := FindText(FindDialog1.FindText,StartPos,ToEnd,[stMachCase]); {Hier kommt bei mir die Fehlermeldung "Inkomptible Typen"}

       if FoundAt <> -1 then
         begin
           SetFocus;
            SelStart := FoundAt;
            SelLength := Length (FindDialog1.FindText);
          end;
   end;
  
end;


Ist wahrscheinlich nur ne kleinigkeit aber irgend wie klemmt´s heute ein bischen bei mir.

Ulli :?


Keldorn - So 17.11.02 14:28

Hallo

2,5 Kleinigkeiten :

1. ich hab hier jetzt nur delphi3 - wenn sich am memo nichts geändert hat, kennt es die methode findtext nicht, ein richedit (wie im beispiel) :wink: aber schon.

2. kleiner schreibfehler [stMatchCase]

2.5:

Quelltext
1:
2:
3:
       else
         StartPos := 0;
         ToEnd := Length(Text) - StartPos;
ich find die Einrückung ab Toend hier total verwirrend, da die codezeilen nicht mehr zum If-Block gehören.

Mfg Frank


Ulli - So 17.11.02 16:00

Hallo Keldorn

Thema Einrückung vergessen wir mal da das nur ein Versuch ist.

Den Schreibfehler habe ich behoben.

Dann habe ich das Memo durch ein RichEdit ersetzt bekomme aber an der selben stelle die Fehlermeldung.
Der Cursor bleibt in Zeile FoundAT nach FindDialog.FindText, stehen und die Fehlermeldung lautet "Inkompatible Typen TObjekt und String".

Ulli :?:


Keldorn - So 17.11.02 17:57

*schulterzuck*

ich hab deinen Code genau wie er was in ein projekt kopiert und ausprobiert. bei mir kommt kein fehler!

wenn es nicht viel ist, poste mal den kompletten Code der unit

ansonsten klick mal "Projekt erzeugen" im Projektmenu - manchmal is komisch ...

Frank