powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / TCheckListBox
5 сообщений из 5, страница 1 из 1
TCheckListBox
    #32053033
tunknown
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!

в список с галками выводится что-то из базы
помечаются галки юзером и нужно разбирать, что он пометил и положить в базу

что-то типа

tempint:=0
if checked[0] then tempint:=tempint or $1
if checked then tempint:=tempint or $2
if checked then tempint:=tempint or $4
if checked then tempint:=tempint or $8
ParamByName().Value:=tempint

как это сделать автоматически, не разбирая руками список по одному?

устроило бы, если к каждой строке в TStrings можно было добавить не TObject с которым тоже можно, но много ручной работы, а строку, по которой можно получить эти самые $1..$8

PS это в некотором роде работа с константами
...
Рейтинг: 0 / 0
TCheckListBox
    #32053037
Фотография Luchkin Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tempint:= 0;
for nl:= Items.Count - 1 downto 0 do begin
tempint:= tempint shl 1;
tempint:= tempint or Byte(checked[nl]);
end;
Field.Value:= tempint
...
Рейтинг: 0 / 0
TCheckListBox
    #32053071
tunknown
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я забыл написать, что это нужно в общем виде, т.е. $1..$8 могут идти вразнобой и ограничены только int32. Поскольку в самом TCheckListBox нет никакой дополнительной информации кроме текста, то можно ссылаться на них только по порядковому номеру, а дальше по нему уже как-то руками вычислять реальные требуемы числа. А этого как раз и не хочется.

Нужна визуальная структура с данными

checked1,Constant1, text1
checked2,Constant2, text2
checked3,Constant3, text3

но где видимы только checked,text
желательно из стандартных контролов
...
Рейтинг: 0 / 0
TCheckListBox
    #32053320
al__r
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
ListBox.Items.AddObject('aaa', TObject($ 1 ));
ListBox.Items.AddObject('bbb', TObject($ 8 ));
.
.
.
mask :=  0 ;
for i :=  0  to ListBox.Ietms.Count -  1  do
 if ListBox.Checked[i] then
  mask := mask or integer(ListBox.Items.Objects[i]);
...
Рейтинг: 0 / 0
TCheckListBox
    #32053350
tunknown
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Видимо, я опять неправильно сформулировал...

Нужна визуальная структура с данными

boolean string string
--------------------------
checked1 Constant1 text1
checked2 Constant2 text2
checked3 Constant3 text3

но где видимы только checked,text
желательно из стандартных контролов

дело в том, что эти константы $1..$n имеют имена в базе и хотелось бы к ним обращаться по ним, т.к. их значения в процессе разработки могут изменииться

можно из TObject ссылаться на эту строку, но ее надо create, а потом destroy руками

или слишком много хочу?

на текущий момент использую TListView, но он визуально гораздо хуже TCheckListBox
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / TCheckListBox
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]