Вверх ↑
Этот топик читают: Гость
Ответов: 758
Рейтинг: 112
#1: 2009-10-28 14:02:47 ЛС | профиль | цитата
Подскажите, пожалуйста. Можно ли в MTStrTbl добавить столбец данных, который не виден но содержит данные. Также как NIdxIcon и NColorRow
К примеру, хочу скрыть столбец индексов БД в MTStrTbl, но иметь доступ к индексу при нажатии пользователя
карма: 1

0
Разработчик
Ответов: 4698
Рейтинг: 426
#2: 2009-10-28 14:09:15 ЛС | профиль | цитата
Можно, но пока только в конец МТ-потока(обязательно длина потока должна быть на n элементов больше, чем столбцов, n >= 1, в зависимости от кол-ва данных, которые вы используете)
карма: 10
1
Голосовали:miver
Ответов: 356
Рейтинг: 31
#3: 2010-06-17 16:53:58 ЛС | профиль | цитата
При Scroll=False количество показываемых колонок зависит от ColumnWidth.

Make(delphi)
ver(4.04 build 184)
Add(MainForm,2953706,399,203)
{
Width=269
Height=206
Position=1
}
Add(MTStrTbl,8302891,455,203)
{
Left=2
Top=4
Width=256
Height=60
Align=2
Name="1"
Columns=#1:0|1:1|1:2|1:3|1:4|1:5|1:6|
Scroll=1
ColumnWidth=33
}
Add(MTStrTbl,12325191,511,203)
{
Left=2
Top=75
Width=256
Height=60
Align=2
Name="2"
Columns=#1:0|1:1|1:2|1:3|1:4|1:5|1:6|
Scroll=1
ColumnWidth=30
}
Add(MTStrTbl,1443145,567,203)
{
Left=2
Top=146
Width=256
Height=60
Align=2
Name="3"
Columns=#1:0|1:1|1:2|1:3|1:4|1:5|1:6|
Scroll=1
ColumnWidth=28
}
карма: 0

0
Разработчик
Ответов: 26153
Рейтинг: 2127
#4: 2010-06-17 17:52:36 ЛС | профиль | цитата
olDjeka писал(а):
При Scroll=False количество показываемых колонок зависит от ColumnWidth

Обычной правкой кода исправить невозможно, видимо, так работает в KOL свойство lvoNoScroll
------------ Дoбавленo в 17.52:
Действительно, в табличном режиме работать не будет
MSDN писал(а):
LVS_NOSCROLL - ...This style is not compatible with the LVS_LIST or LVS_REPORT styles

Что для нас означает, что отключение скрола не совместимо со стилями -- lvsList, lvsDetail, lvsDetailNoHeader
карма: 22

1
Голосовали:olDjeka
Ответов: 26
Рейтинг: 6
#5: 2014-07-07 18:52:13 ЛС | профиль | цитата
Задача:
1.Создается таблица(MTStrTbl) добавлением столбцов.
2.Дальше вручную выставляется ширина столбцов (двигая границы на самой таблице)
3.Сохранить таблицу с параметрами столбцов
4.Загрузить таблицу с сохраненными параметрами столбцов.
Вопрос: Как сделать так чтоб сохранилась установленная движением границ ширина столбцов и потом загрузилась?

Add(MainForm,2953706,21,105)
{
Width=915
Height=529
}
Add(MTStrTbl,2452207,182,63)
{
Left=10
Top=60
Width=435
Height=411
Name="tab"
FlatScroll=1
ColumnClick=1
Redaction=0
Grid=0
}
Add(MST_Load,4029420,553,322)
{
FileName="2013.c"
MSTControl="tab"
}
Add(Button,11674927,280,147)
{
Left=730
Top=65
Width=125
Caption="Добавление столбца"
link(onClick,1115700:doData,[])
}
Add(Button,11181501,259,252)
{
Left=445
Top=145
Width=445
Caption="Сохраненяем"
link(onClick,4985552:doSave,[])
}
Add(MST_Save,4985552,413,252)
{
FileName="2013.c"
MSTControl="tab"
}
Add(Button,14797034,259,315)
{
Left=450
Top=190
Width=440
Caption="Открываем то что сохранили"
link(onClick,3285328:doEvent1,[])
}
Add(DoData,1115700,336,147)
{
link(onEventData,8206848:doColAction,[])
link(Data,15480744:Text,[])
}
Add(Edit,15480744,336,91)
{
Left=450
Top=65
Width=265
}
Add(MST_ColAction,8206848,420,147)
{
MSTControl="tab"
}
Add(Label,1428768,336,196)
{
Left=450
Top=110
Width=440
Height=22
Caption="Изменяем ширину столбцов в ручную - двигая за границы"
AutoSize=1
}
Add(Label,13754802,332,45)
{
Left=450
Top=30
Width=300
Height=17
Caption="Добавляем пару столбцов"
AutoSize=1
}
Add(Hub,3285328,315,315)
{
link(onEvent1,8104764:doClear,[(441,321)(441,286)])
link(onEvent2,4029420:doLoad,[])
}
Add(MST_Clear,8104764,553,280)
{
ClearAll=0
MSTControl="tab"
}


карма: 1

0
файлы: 1code_33952.txt [998B] [499]
Ответов: 2267
Рейтинг: 676
#6: 2014-07-07 19:04:40 ЛС | профиль | цитата
Dseren, ваш код не отправился, перелезайте.
карма: 11

0
Ответов: 26
Рейтинг: 6
#7: 2014-07-07 21:20:28 ЛС | профиль | цитата
Перезалил. Дело в том, что при сохранении не сохраняется измененна ширина, а сбрасывается до 80 (по умолчанию).
карма: 1

0
Ответов: 1343
Рейтинг: 31
#8: 2014-07-07 22:13:46 ЛС | профиль | цитата
Dseren писал(а):
Перезалил. Дело в том, что при сохранении не сохраняется измененна ширина, а сбрасывается до 80 (по умолчанию).



в свойствах компонента настрой сохранение
карма: 2

0
Ответов: 2267
Рейтинг: 676
#9: 2014-07-08 00:25:05 ЛС | профиль | цитата
Rysik, вы свои слова схемой подкрепите.
Dseren, подождите когда автор (nesco) элементов подойдет.
карма: 11

0
Разработчик
Ответов: 26153
Рейтинг: 2127
#10: 2014-07-08 02:33:40 ЛС | профиль | цитата
Фигня тут была, а не схема
Насколько я понял, то это просто не реализовано в данном наборе элементов, и из рассыпухи тоже не получается реализовать нормально. Единственное, что можно сделать, так это попытаться допилить MST_Save
карма: 22

0
Ответов: 26
Рейтинг: 6
#11: 2014-07-08 09:42:30 ЛС | профиль | цитата
nesco, допилите или переходить на StringTableMT, который сохраняет измененную ширину?
карма: 1

0
Ответов: 16884
Рейтинг: 1239
#12: 2014-07-08 11:45:07 ЛС | профиль | цитата
Dseren писал(а):
nesco, допилите или переходить на StringTableMT, который сохраняет измененную ширину?
1. Зачем сохранять ширину колонки, если есть

Add(MST_ColAction,13834131,686,161)
{
@Color=16777130
Action=9
MinColWidth=30
MaxColWidth=300
Index=-1
MSTControl="tab"
}
?
Dseren писал(а):
Сохранить таблицу с параметрами столбцов
Зачем сохранять всю таблицу, если можно сохранить только ID в виде ОДНОЙ строки (списка) 1,3,5,6,12 , а потом простым запросом:
SELECT * FROM <таблица> WHERE id IN (%1); где %1 - сохранённая строка, воспроизвести состояние прошлого сеанса работы с БД.

Иметь скрытую колонку(по типу скрытой колонки в ComboBox) было бы неплохо.
Всё остальное от незнания (или непонимания) принципа и методов работы с БД.
Попутный вопрос: Нахрена сохранять то, что есть в БД ?

Повторюсь:
Работая с БД, ты работаешь с таблицей в БД, а StringTable, MTStrTbl и др. - это просто окошко для наблюдения за своими действиями.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 26
Рейтинг: 6
#13: 2014-07-08 12:18:20 ЛС | профиль | цитата
Tad, И как привязать этот элемент к РУЧНОМУ изменению ширины столбцов, схему пожалуйста? Со слов nesco я понял, что в стандартных элементах не предусмотрено такое изменение ширины.
Если собственно, я таки правильно понимаю то второй части вы говорите, что необходимо сохранить только строку с параметрами(собственно это и делается), а потом к ней подключать собственно базу? Но я собственно об этом еще раз повторюсь как в Ручную (наглядно) задать ширину столбцов, в которые будут вставлены данные из базы при следующем подключении? (Пример, если не сложно)
карма: 1

0
Ответов: 16884
Рейтинг: 1239
#14: 2014-07-08 13:56:59 ЛС | профиль | цитата
А зачем "вручную" если есть автомат ?

Пример: ставишь MST_ColAction на поле редактора схем, выделяешь его и жмёшь F1. И смотришь два примера про "как подключить" и "как работать"

А вот для выложенной тобой схемы:

Add(MTStrTbl,2452207,532,343)
{
Left=10
Top=60
Width=435
Height=411
Name="tab"
FlatScroll=1
ColumnClick=1
Redaction=0
Grid=0
}
Add(MST_Load,4029420,532,399)
{
FileName="2013.c"
MSTControl="tab"
}
Add(Button,14797034,441,399)
{
Left=450
Top=190
Width=440
Caption="Открываем то что сохранили"
link(onClick,3285328:doEvent1,[])
}
Add(Hub,3285328,497,399)
{
link(onEvent1,4029420:doLoad,[])
link(onEvent2,13834131:doColAction,[(518,412)(518,447)])
}
Add(MST_ColAction,13834131,532,441)
{
@Color=16777130
Action=9
MinColWidth=30
MaxColWidth=300
Index=-1
MSTControl="tab"
}


карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26153
Рейтинг: 2127
#15: 2014-07-08 14:31:24 ЛС | профиль | цитата
Tad писал(а):
Иметь скрытую колонку(по типу скрытой колонки в ComboBox) было бы неплохо.

Скрытых данных в MTstrTbl можно иметь неограниченное количество
карма: 22

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)