Вверх ↑
Этот топик читают: Гость
Разработчик
Ответов: 26067
Рейтинг: 2121
#16: 2022-07-13 14:15:17 ЛС | профиль | цитата
ric писал(а):
А IC завернуть в компонент нельзя?

Я не собирался его добавлять в палитру, тк используется нестандартное обращение к хинтам. Пока используй IC, тк он более универсальный в плане совместимости со схемами. Да и со старыми хинтами еще разобраться надо, тк они странно ведут себя в Win10

Редактировалось 1 раз(а), последний 2022-07-13 14:17:17
карма: 22

0
Ответов: 245
Рейтинг: 4
#17: 2022-07-13 14:23:14 ЛС | профиль | цитата
Добро
карма: 1

0
Разработчик
Ответов: 26067
Рейтинг: 2121
#18: 2022-07-17 17:48:55 ЛС | профиль | цитата
ric, доступен новый патч с нужным тебе компонентом для MTStrTbl -- MST_HDHints. Ссылка на описание добавлений в патч со ссылкой на сам патч -- https://forum.hiasm.com/post/312021. Некритическое исправление MST_HDHints -- https://forum.hiasm.com/getfile/39520

Редактировалось 5 раз(а), последний 2022-07-17 19:53:20
карма: 22

0
Ответов: 15
Рейтинг: 0
#19: 2024-04-22 12:06:11 ЛС | профиль | цитата
Не знаю нужно ли создавать новую тему но у меня вопрос по сабжу.
Что нужно сделать чтобы не пропадали флажки состояния когда подключается DrawManager.
В обычном режиме без DrawManager все флажки видны и нормально переключаются. Как только я подключаю DrawManager флажки пропадают но работают и переключаются нормально их просто не видно.
Может кто-нибудь подскажет куда копать?

Add(MainForm,2953706,21,105)
{
Width=491
Height=281
link(onCreate,4040733:doEnum,[])
}
Add(MTStrTbl,9500370,127,189)
{
@Color=43775
Width=475
Height=242
Align=5
Font=[MS Sans Serif,12,1,0,1]
Name="SetsTable"
HintManager="Hint Main"
Layout="Main Vert"
HeightScale=50
Columns=#12:Column-1=150|12:Column-2=150|12:Column-3=150|
FlatScroll=1
ColumnWidth=800
ColumnClick=1
ColorItems=0
CheckBoxes=0
Grid=0
DrawManager="MainTableDM"
Point(doVisible)
Point(onResize)
Point(ItemAtPos)
Point(onDblClick)
}
Add(StrList,2857598,119,63)
{
Strings=#19:На первую свободную|22:На последнюю свободную|23:После последней занятой|13:На кнопку № 1|13:На кнопку № 2|13:На кнопку № 3|13:На кнопку № 4|13:На кнопку № 5|0:|
}
Add(ArrayEnum,4040733,133,119)
{
link(onItem,14070962:doMTString,[])
link(Array,2857598:Array,[])
}
Add(MT_String,14070962,203,105)
{
Delimeter="§"
link(onResult,8719645:doRowAction,[])
}
Add(MST_RowAction,8719645,252,105)
{
@Color=43775
MSTControl="SetsTable"
Point(Index)
}
Add(MST_DrawManager,12218750,22,161)
{
@Color=43775
Name="MainTableDM"
SingleString=0
TabGrid=0
TabGridFrame=0
Gradient=0
GradientColor=32768
}

карма: 0
Время верстки: %cr_time% Текущее время: %time%
0
Ответов: 700
Рейтинг: 145
#20: 2024-04-22 13:47:58 ЛС | профиль | цитата
MKey писал(а):
Как только я подключаю DrawManager флажки пропадают но работают и переключаются нормально их просто не видно.
Может кто-нибудь подскажет куда копать?

Даже не знаю что сказать. У меня всё переключается, чек-боксы не пропадают.
Возможно тебе нужно обновить компоненты до последней ревизии - 2405
DrawManager_test.png

Редактировалось 1 раз(а), последний 2024-04-22 13:49:43
карма: 15

0
Ответов: 15
Рейтинг: 0
#21: 2024-04-22 14:43:02 ЛС | профиль | цитата
у меня получается так:
это с подключенным DrawManager
это с отключенным DrawManager
Компоненты обновил до 2406, без изменений. Может быть из за Win10 x64
карма: 0
Время верстки: %cr_time% Текущее время: %time%
0
Ответов: 2201
Рейтинг: 675
#22: 2024-04-22 17:41:18 ЛС | профиль | цитата
MKey, а не про эту тему речь: https://forum.hiasm.com/topic/68262/2
карма: 11

0
Ответов: 2201
Рейтинг: 675
#23: 2024-04-22 20:20:51 ЛС | профиль | цитата
MKey, предыдущий вопрос снимаю, дело не в нем. Чисто для тестирования:
1. Выделите элемент MST_DrawManager (Менеджер пользовательской отрисовки MTStrTbl) и нажмите Ctrl + F. Откроется код элемента.
2. Найдите строку (Ctr + F):
BitBlt(DC, ARect.Left, ARect.Top, wb, hb, Bitmap.Canvas.Handle, shift, 0, SRCCOPY);  
Ориентировочна 395 (если у вас включена нумерация строк в редакторе), такая строка в коде одна, не ошибетесь.
3. Замените ARect.Left на 5, должно получится вот так:
BitBlt(DC, 5, ARect.Top, wb, hb, Bitmap.Canvas.Handle, shift, 0, SRCCOPY);  
4. Сохраните изменения в коде (Ctrl + S).
5. Запустите выложенную вами схему для тестирования.
Результат?

Редактировалось 2 раз(а), последний 2024-04-22 20:51:24
карма: 11

0
Ответов: 15
Рейтинг: 0
#24: 2024-04-22 22:18:50 ЛС | профиль | цитата
Да! это оно!
Всё работает отлично, так как и должно быть.
Огромное спасибо!
карма: 0
Время верстки: %cr_time% Текущее время: %time%
0
Ответов: 2201
Рейтинг: 675
#25: 2024-04-22 22:42:31 ЛС | профиль | цитата
MKey, это я пока костыль вставил, чтоб проверить. Пока не понятно почему у Gunta работает, а у нас двоих нет.
Из того что вижу у себя, то в строке:
ARect.Right := BRect.Left;
Происходит присвоение данных слишком большого значения. Данные в BRect заносятся только если if Assigned(SmIList) then:
BRect := ARect;
а так там "шальные" числа. Вот и рисуется checkbox далеко вправо. Пока не все понятно, надо смотреть.

nesco, может посмотришь где собака зарыта?

Редактировалось 1 раз(а), последний 2024-04-22 22:43:58
карма: 11

0
Ответов: 700
Рейтинг: 145
#26: 2024-04-23 10:18:31 ЛС | профиль | цитата
sla8a писал(а):
Пока не понятно почему у Gunta работает, а у нас двоих нет

Сейчас проверил на другом рабочем компьютере (Win10/64). Всё также работает, чек-боксы не пропадают...
карма: 15

0
Ответов: 2201
Рейтинг: 675
#27: 2024-04-23 10:25:45 ЛС | профиль | цитата
Внес в файл hiMST_DrawManager.pas (скачать) изменения (помечено описанием fix).
Хорошо можно протестировать на файле идущем в примерах:

\Elements\delphi\Example\Forms\MTStrTbl\With_EditCtrl.sha

До внесения правок если отключить иконки (у MTStrTbl (MT таблица строк) свойство SmallIconsManager (Менеджер маленьких иконок) установить = empty. То пропадает отрисовка checkbox-ов.

Внесенные правки в файл исправляют эту ошибку и корректная отрисовка checkbox-ов происходит как с отключенными иконками, так и с включенными. Так же checkbox-ы рисуются как стандартыне если StateIconsManager (Менеджер иконок состояния) = empty, так и подключенные StateIconsManager = check.

Gunta, а как у вас работает данный пример без внесенных правок и с отключенными иконками? Рисуются checkbox-ы правильно?

Редактировалось 4 раз(а), последний 2024-04-23 10:45:55
карма: 11

0
Ответов: 700
Рейтинг: 145
#28: 2024-04-23 12:05:07 ЛС | профиль | цитата
sla8a писал(а):
а как у вас работает данный пример без внесенных правок и с отключенными иконками? Рисуются checkbox-ы правильно?

Да, без видимых проблем.
С иконками
test With_EditCtrl.png
Без иконок
test With_EditCtr without icons.png

Редактировалось 1 раз(а), последний 2024-04-23 12:10:52
карма: 15

0
Ответов: 2201
Рейтинг: 675
#29: 2024-04-23 13:04:33 ЛС | профиль | цитата
Gunta писал(а):
без видимых проблем
Вот это и странно. Если бы проблема была у всех, то можно было бы решать о внесении изменений в файл. А то получается у некоторых не работает, у других работает.
У меня точно так же не отрисовывает как и у MKey. Тестировал на двух компьютерах, на обоих Win10/64 и ревизия рабочей копии HiAsm: 2406.
Gunta, а мой файл с правками тестировали? Если нет, то по возможности. На предмет хуже не стало отрисовывать.
карма: 11

0
Ответов: 700
Рейтинг: 145
#30: 2024-04-23 13:20:06 ЛС | профиль | цитата
sla8a писал(а):
мой файл с правками тестировали? Если нет, то по возможности. На предмет хуже не стало отрисовывать.

Переименовал свой и скопировал в папку Elements\delphi\code\ файл hiMST_DrawManager.pas с твоими правками.
Разницы не увидел. Также всё работает и ничего не пропадает.

Стоп.... Появился другой косяк. При редактировании в ячейке текст сдвигается вниз и треть не видно.
test With_EditCtr redaction.png

Редактировалось 3 раз(а), последний 2024-04-23 13:25:40
карма: 15

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