На форме есть 2 listbox и memo, что я пытаюсь сделать на андроид приложение- Есть некая база в memo в ней строки вида "#0 Гостиница 1", "#0 Гостиница 2","#1 Ресторан 1", "#1 Ресторан 2" и т.д. Listbox1 выступает как меню навигации в нем так же есть Префикс в названии строки "#0 Гостиницы", "#1 Рестораны".
Пытаюсь в lstbox2 вывести результат по событию OnItemClick -
Проверяет если номер нажатой строки совпадает с префиксом строки в Listbox (номер ищу по второму символу) т.е. с "#0" получаю просто "0" то в listbox2 выводился из базы Memo список строк начинающихся с #0.
Так вот - У меня вышло получить номер нажатой строки в listbox1 "МЕню навигации" но не могу вывести результат с мемо... помогите
procedure TForm1.ListBox1ItemClick(const Sender: TCustomListBox;
const Item: TListBoxItem);
var
n, i: integer;
s, k, t, d: string;
begin
n := ListBox1.ItemIndex;
k := ListBox1.Items[ListBox1.ItemIndex];
if length(k) = 1 then
s := k
else
s := k[2];
if n = strtoint(s) then
begin
ListBox2.Clear;
for i := 0 to Memo1.Lines.Count - 1 do
t := Memo1.Lines[i];
if length(t) = 1 then
t := d
else
t := d[2];
if t = inttostr(n) then
ListBox1.Items.Add(Memo1.Lines[i]);
end;
end;
ОТВЕТ Может кому понадобится:
procedure TForm1.ListBox1ItemClick(const Sender: TCustomListBox;
const Item: TListBoxItem);
var
n, i: integer;
s, k, c, v, d: string;
begin
ListBox2.Clear;
n := ListBox1.ItemIndex;
k := ListBox1.Items[ListBox1.ItemIndex];
if length(k) = 1 then
s := k
else
s := k[2];
if n = strtoint(s) then
begin
for i := 0 to Memo1.Lines.Count - 1 do
begin
v := Memo1.Lines.Strings[i];
if length(v) = 1 then
c := v
else
begin
c := v[2];
if c = s then
begin
d := Memo1.Lines.Strings[i];
ListBox2.Items.Add(d);
end;
end;
end;
end;
end;