procedure MemoFiles(Line: double);
var
L:double;
begin
Form1.ListBox1.ItemIndex := Line;
if Form1.ListBox1.Items.Strings[(Form1.ListBox1.ItemIndex)] = '' then
Form1.Memo1.Lines.Add('Анализ завершен.')
else
Form1.Memo1.Lines.Add('Анализ ' + Form1.ListBox1.Items.Strings[(Form1.ListBox1.ItemIndex)]);
L := Line + 1;
MemoFiles (L);
end;
Автоматическая построчная работа с ListBox в Delphi
Требуется выполнить однотипные операции с каждой из строк, например автоматически поочередно отредактировать и добавить их в поле Memo1.
В голову приходит код на подобии:
Код:
Проблема в том, что ListBox1.ItemIndex не может быть равен текстовому значению Line, а только любому цифровому.
Вопрос в том, как автоматически переводить строки для последующей обработки?
var i: integer; Line : string;
begin
for i:= 0 to ListBox1.Count-1 do begin
Line := ListBox1.Items.Strings;
// здесь делаем что-то с текстом
Memo1.Lines.Add(Line);
end;
а если нужен текст из определённой строки листбокса и он известен, то делаем так:
uses messages;
var Line : string;
begin
ListBox1.Perform(LB_SELECTSTRING,-1,longint(Pchar('Здесь искомый текст')));
Line:=ListBox1.Items.Strings[ListBox1.ItemIndex];
// делаем что-то с текстом
Memo1.Lines.Add(Line);
end;