Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.03.22;
Скачать: CL | DM;

Вниз

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&#228;lt Statusinformationen f&#252;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&#228;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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.063 c
2-1332909299
Pcrepair
2012-03-28 08:34
2013.03.22
Способ управления сложным проектом


15-1346949003
Опять я
2012-09-06 20:30
2013.03.22
Вопрос по Яндекс-почте.


2-1342205003
vasa777
2012-07-13 22:43
2013.03.22
сплойт


15-1341037128
AV
2012-06-30 10:18
2013.03.22
Хватит сыпать на пол?


2-1334754032
andrewtitoff
2012-04-18 17:00
2013.03.22
Картинки в массив и обратно