Easy Delphi XE6 FireMonkey управляет TListBox и TStringGrid

Как получить столбцы в TListBox FireMonkey, а затем получить значения из столбцов для строк TListBox. Я использую этот подход:

vListRow := 'Col1Stuff' + '^I' + 'Col2Stuff';

Это НЕ дает мне Col1Stuff в 1-м столбце и Col2Stuff во 2-м столбце.

В качестве альтернативы я попробовал элемент управления TStringGrid Firemonkey, но следующий подход также не работает:

vStringGrid.Cells[0,1] := 'Привет'; vStringGrid.Cells[0,2] := 'Там';

Это ничего не помещает в TStringGrid.

Какие-нибудь советы?


person Bruce Long    schedule 12.06.2014    source источник


Ответы (1)


Для TListBox используйте символ табуляции (#9):

ListBox1.Items.Add('Column A' + #9 + 'Column B');

Чтобы получить значения, вам придется проанализировать их обратно, используя символ табуляции в качестве разделителя (разделителя). Однако обычно более эффективно и читабельно использовать ItemIndex.

Поскольку вы выполняете прямую конкатенацию, вы можете даже опустить «+» (но вы также должны удалить начальный и конечный пробелы:

ListBox1.Items.Add('Column A'#9'Column B');

Для TStringGrid используйте редактор элементов, чтобы добавить два TStringColumns в сетку. Затем вы можете получить доступ к свойству Cells для чтения/записи значений — обратите внимание, что на Cells ссылаются значения [column, row]:

StringGrid1.Cells[0, 1] := 'Column A';   // Column 0, Row 1
StringGrid1.Cells[1, 1] := 'Column B';   // Column 1, Row 1
person Ken White    schedule 12.06.2014
comment
Спасибо, Кен. Я самостоятельно обнаружил свою ошибку с TStringGrid. Я не знал о символе табуляции для TListBox, но я не хочу использовать строковые операции для извлечения значений столбцов в TListBox, поэтому TStringGrid — лучший вариант. - person Bruce Long; 16.06.2014