![]() |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
![]() ![]() |
![]() |
Tan |
![]()
Сообщение
#1
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 559 Пол: Мужской Реальное имя: Бруно Репутация: ![]() ![]() ![]() |
Поискал по форуму, нашёл много информации по данному объекту, но всё же остались некоторые вопросы. В данном компоненте у меня есть 3 колонны (они не меняются). Перввый столбик номер элемента списка, второй - товар в магазине (тип стринг), 3й - цена товара типа integer. У меня есть процедура добавления товара в список, осталось реализовать её визуально с помощью данного компонента. Есть глобальная переменная (допустим N), которая отвечает за количество элементов в списке. При добавлении элемента она величивается, а при удалении сответственно уменьшается. С организацией данного цикла проблем не возникает :
for k := 1 to N doНо изначально я установил количество рядов = 5, а если товара больше то скролл вниз не появляется (вроде инспектор просмотрел, ничего хорошего не вышло). Получается так что клетки по идее заполняются в цикле но увидеть их пользователь не может. Сообщение отредактировано: Tan - 27.04.2007 16:29 -------------------- Цитата Imagination is more important than knowledge. Albert Einstein |
Scorp_Freeman |
![]()
Сообщение
#2
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 68 Пол: Мужской Реальное имя: Сергей Репутация: ![]() ![]() ![]() |
Цитата рядов = 5, а если товара больше то скролл вниз не появляется а ты програмно увеличивай и кол-во строк стрингрида( они сами не добавляются), например так: inc(StringGrid1.RowCount) и dec(StringGrid1.RowCount) |
Tan |
![]()
Сообщение
#3
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 559 Пол: Мужской Реальное имя: Бруно Репутация: ![]() ![]() ![]() |
спасибо, но с inc ошибку выдаёт, а
StringGrid1.RowCount := StringGrid1.RowCount + 1работает как надо! -------------------- Цитата Imagination is more important than knowledge. Albert Einstein |
Tan |
![]()
Сообщение
#4
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 559 Пол: Мужской Реальное имя: Бруно Репутация: ![]() ![]() ![]() |
А как можно удалить строку стрингрида через её порядковый номер ?
-------------------- Цитата Imagination is more important than knowledge. Albert Einstein |
volvo |
![]()
Сообщение
#5
|
Гость ![]() |
procedure SGDeleteRow(SG:TStringGrid; RowToDelete:Integer); © MBo Вызывать, например, так: ... |
Tan |
![]()
Сообщение
#6
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 559 Пол: Мужской Реальное имя: Бруно Репутация: ![]() ![]() ![]() |
Спасибо в который раз! Разобравшись с этим, появился ещё вопрос, а как выделить N - нный ряд StringGrid`а ? Знаю, что есть встроенная функция Selection, но там мне непонятен параметр с типом TGridRect.
-------------------- Цитата Imagination is more important than knowledge. Albert Einstein |
volvo |
![]()
Сообщение
#7
|
Гость ![]() |
На самом деле все достаточно просто (это, кстати, свойство, а не функция) - ты указываешь границы выделяемой области, и ...
procedure TForm1.Button5Click(Sender: TObject); |
Tan |
![]()
Сообщение
#8
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 559 Пол: Мужской Реальное имя: Бруно Репутация: ![]() ![]() ![]() |
С этим разобрался, а можно ли сделать так, чтобы если элемент находится в ряду, который ниже видимого и пользователь его не видет, то чтобы при выделении, описанном выше, автоматически прокручивалось до этого элемента (нечто подобное поиску в worde) ?
-------------------- Цитата Imagination is more important than knowledge. Albert Einstein |
volvo |
![]()
Сообщение
#9
|
Гость ![]() |
Добавь
к предыдущему коду, и будет тебе та строка, которая выделена - верхней... |
Tan |
![]()
Сообщение
#10
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 559 Пол: Мужской Реальное имя: Бруно Репутация: ![]() ![]() ![]() |
Спасибо всем, всё понял!
Сообщение отредактировано: Tan - 28.04.2007 10:08 -------------------- Цитата Imagination is more important than knowledge. Albert Einstein |
Tan |
![]()
Сообщение
#11
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 559 Пол: Мужской Реальное имя: Бруно Репутация: ![]() ![]() ![]() |
Появился небольшой вопросик, а можно как - то одной командой (ака .Clear) очистить StringGrid ??
-------------------- Цитата Imagination is more important than knowledge. Albert Einstein |
volvo |
![]()
Сообщение
#12
|
Гость ![]() |
Одной командой - вряд ли... Можно попробовать так - одним циклом:
for I := 0 to StringGrid1.RowCount - 1 do |
![]() ![]() |
![]() |
Текстовая версия | 28.07.2025 5:04 |