Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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&#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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.065 c
2-1333447731
Цукор5
2012-04-03 14:08
2013.03.22
Объединение мелких файлов в один большой


15-1339690335
alexdn
2012-06-14 20:12
2013.03.22
asp.net


15-1335731403
Юрий
2012-04-30 00:30
2013.03.22
С днем рождения ! 30 апреля 2012 понедельник


15-1342466570
MsGuns
2012-07-16 23:22
2013.03.22
Умер Джон Лорд


2-1329812260
jacksotnik
2012-02-21 12:17
2013.03.22
Маска ввода





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский