Форум: "Начинающим";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];
Внизcheckbox в stringgrid Найти похожие ветки
← →
dis12345 © (2012-02-12 23:48) [0]на основе широко известного примера сделал чекбокс в stringgride, добавил кнопку добавления строки, удаления последней и текущей строк. Но когда количество строк превышает вертикальный размер области грида и появляется прокрутка - не происходит прокрутка чекбоксов, и свойство checked определяется неправильно. Не знаю, будет ли хорошим тоном вставить здесь весь текст исходника, укажу ссылку на проект http://narod.ru/disk/40523224001/CheckBoxInStrGr.rar.html
(212 кб) Если подскажите как это привести у работающему виду- буду очень благодарен :)
И еще один глюк- стоит уменьшить св-во stringgrid.height на 1 при добавлении строк- отрисовка вылетает....
← →
dis12345 © (2012-02-13 13:32) [1]жаль, что нет желающих подсказать......
← →
sniknik © (2012-02-13 13:50) [2]а что тут подсказывать? в "широко известном примере " проблема есть? ну вот, сравни, что не так, где накосячил. а проверять/трассировать за тебя твой код кому охота?
← →
Юрий Зотов © (2012-02-13 13:52) [3]Дык... а что тут можно подсказать? Судя по описанным Вами ошибкам, компонент этот напрочь глючный и надо или писать свой, или искать другой готовый.
← →
sniknik © (2012-02-13 13:52) [4]по поводу
> stringgrid.height - 1
а checkbox.height - 1 делаешь?
← →
sniknik © (2012-02-13 13:53) [5]> компонент этот напрочь глючный
не компонент, пример. а пример обычно не для использования, а для понимания как делать. самому.
← →
dis12345 © (2012-02-13 14:07) [6]Это не доп компонент-стандартный стрингрид и чекбокс.
В широко известном примере фиксированное кол-во строк и не изменяется, мне надо это значение корректировать (добавлять строку, удалять последнюю, и текущую).
Модифицировать пример для работы в случае когда появляется вертикальный scroll не смог....
Чекбокс создается как объект строки грида, но скроллом не прокручивается....
Подскажите что означает :
if (gdFocused in State) then
еслиб знал все основательно сам, не спрашивал бы советов гуру....
← →
sniknik © (2012-02-13 14:12) [7]> Подскажите что означает :
> if (gdFocused in State) then
проверка на то что рисуется ячейка "в фокусе", т.е. фактически текущая.
← →
Плохиш © (2012-02-13 15:15) [8]
> Подскажите что означает :
> if (gdFocused in State) then
Вот в справке всё расписано, что не понятно?
Der Typ TGridDrawState enthält Informationen, die mit der Darstellung der Gitterzelle zu tun haben.
Unit
Grids oder QGrids
Delphi-Syntax:
type TGridDrawState = set of (gdSelected, gdFocused, gdFixed);
C++ Syntax:
enum Grids__3 { gdSelected, gdFocused, gdFixed };
typedef Set<Grids_3, gdSelected, gdFixed> TGridDrawState;
Beschreibung
TGridDrawState enthält Statusinformationen für die Zelle eines Gitters, die dargestellt werden soll. TGridDrawState kann einen oder mehrere der folgenden Werte annehmen:
Wert Bedeutung
gdSelected Die Zelle ist aktuell ausgewählt.
gdFocused Die Zelle besitzt den Eingabefokus.
gdFixed Die Zelle befindet sich im festen Bereich des Gitters.
← →
dis12345 © (2012-02-13 15:21) [9]2 Плохиш
Спасибо, к большому сожалению нихт ферштейн совсем ничего :)
← →
Юрий Зотов © (2012-02-13 18:02) [10]> Это не доп компонент-стандартный стрингрид и чекбокс
Нехороший подход. Во-первых, создаются чекбоксы, а это лишний расход ресурсов. Во-вторых, очевидные проблемы со скроллом.
Лучше чекбоксы просто рисовать. Например, вот это не подойдет ли:
http://delphi.about.com/od/vclusing/l/aa072203a.htm
← →
sniknik © (2012-02-13 18:11) [11]> Лучше чекбоксы просто рисовать.
насколько знаю/смотрел демо примеры, там так и делается, создан только один, который активный.
но как сделано в его "широко известном примере" ... вопрос, т.к. не приведен, а что у него в коде, не смотрел, ибо не показатель, чего он там "набагокодил".
← →
Юрий Зотов © (2012-02-13 18:52) [12]
> sniknik © (13.02.12 18:11) [11]
> создан только один, который активный.
Тогда остается проблема со скролом.
Когда-то я делал DBGrid, у которого в ячейках могли быть и обычные кнопки, и переключатели, и радиокнопки, и чекбоксы. Вот этот компонент:
http://www.ee-enterprise.ru/i/?item=0
Так вот - там я все эти контролы именно рисовал (через DrawFrameControl) и обрабатывал клики по ним. Это гораздо проще, чем создавать в ячейках реальные контролы и мучиться со скроллом. И ресурсов жрет гораздо меньше.
← →
Ega23 © (2012-02-13 22:28) [13]TListView? TVirtualStringTree?
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.077 c