Zitat:
Dann würde das Programm natürlich abschmieren, weil irgendwann eine Zugriffsverletzung stattfindet.
Fast.
Bei TStringList und Co. gibt es eine
Exception ala EListError (oder so), sobald der Index nicht verfügbar ist, also ein Indexfehler.
Die MemoAPI, bzw das interne TMemoStrings (TStrings) gibt immer einen Leerstring zurück.
Aber OK, eine Endlosschleife ist auch nicht besser.
Tipp:
Delphi-Quellcode:
MemoWortbaum.SelStart := SendMessage(MemoWortbaum.Handle, EM_LINEINDEX, Zeile, 0);
//aka
MemoWortbaum.SelStart := MemoWortbaum.Perform(EM_LINEINDEX, Zeile, 0);
Grade gesehn, SetCaretPos nutzt auch EM_LINEINDEX.
Delphi-Quellcode:
Memo.CaretPos := Point(0, Zeile); // X, Y aka Spalte, Zeile
Memo.SelLength := Length(MemoWortbaum.Lines[Zeile]);