On-line: гостей 1. Всего: 1 [подробнее..]
АвторСообщение
модератор




Пост N: 699
Зарегистрирован: 25.05.05
ссылка на сообщение  Отправлено: 29.01.08 13:59. Заголовок: Новая версия Расширенного релиза библиотеки MiniGUI (часть VI ) (продолжение)


Начало темы находится здесь, а теперь

АНОНС * АНОНС * АНОНС * АНОНС * АНОНС

Готовится к опубликованию новая сборка №48, которая выйдет в конце недели.
Если у Вас есть интересные наработки для включения в новый релиз, то сейчас самое удобное время для их отправки мне

Кратко, что нового:

- исправление обнаруженных ошибок и неточностей кода;
- новый класс HEADERIMAGE для Grid и Browse;
- свойство Address в Hyperlink может теперь открывать папку или файл на диске;
- добавлен NOTABSTOP класс для Browse;
- поддержка пользовательских компонентов (заимствована из оффициального релиза);
- расширения и исправления в библиотеках TsBrowse и PropGrid;
- обновлены сборки Харбор и HMGS-IDE;
- новые и обновленные старые примеры (как обычно ).




Спасибо: 5 
ПрофильЦитата Ответить
Ответов - 129 , стр: 1 2 3 4 5 6 7 All [только новые]


moderator




Пост N: 2465
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 01.07.25 17:44. Заголовок: SergKis пишет: надо..


SergKis пишет:

 цитата:
надо в ф-ях сделать


Поправил, пример отработал после этого нормально.
Благодарю за помощь

Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 2466
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 02.07.25 12:58. Заголовок: На английском форуме..


На английском форуме задали вопрос о том, как динамически изменить встроенный комбо при редактировании грида.

Написал такую функцию и пример для проверки (см. ниже).

Скрытый текст


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4771
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 02.07.25 13:35. Заголовок: А не проще формирова..


А не проще, формировать новый массив для комбо и помещать его новый адрес на место старого ?
Это один запрос к базе\серверу ... Когда использовал GRID (правда очень давно не пользуюсь) так и делал, записей в комбо не много, как правило

Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 2467
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 02.07.25 13:43. Заголовок: SergKis пишет: форм..


SergKis пишет:

 цитата:
формировать новый массив для комбо и помещать его новый адрес на место старого


Да, именно так и сделано.
Возможно, я не совсем понял, что значит помещать новый адрес на место старого.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4772
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 02.07.25 14:05. Заголовок: gfilatov2002 пишет В..


gfilatov2002 пишет
 цитата:
Возможно, я не совсем понял, что значит помещать новый адрес на место старого


Примерно так
aCBox := mySelect(...)
_HMG_aControlMiscData1[ i ][ 13 ] := aCBox
или _HMG_aControlMiscData1[ i ][ 13 ] := mySelect(...)
правда точно не помню назначения в _HMG_aControlMiscData1[ i ] для комбо

Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 2468
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 02.07.25 14:48. Заголовок: SergKis пишет: Прим..


SergKis пишет:

 цитата:
Примерно так


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

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4773
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 02.07.25 15:26. Заголовок: gfilatov2002 Пример..


gfilatov2002
Пример хороший и сделан правильно, но, по мне, это плохая схема использования комбо в жизни GRID, т.к. item-ы при вводе требуют валидности, да и замена всего массива требует проверки изменения item-ов (они были ?). Комбо в GRID это оч. редко или совсем не меняемые справочники типа {"муж.","жен."}, должности, отделы, ... +, когда комбо ячейка в фокусе, то оч. легко случайно, клавишей, сменить значение в ячейке и мышкой уйти на др. ячейку и не заметить этого.
По мне это пример, как не надо работать с комбо

Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 2469
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 02.07.25 15:33. Заголовок: SergKis пишет: По м..


SergKis пишет:

 цитата:
По мне это пример, как не надо работать с комбо


Поддерживаю!

SergKis пишет:

 цитата:
Комбо в GRID это оч. редко или совсем не меняемые справочники


Полностью согласен.

P.S. Я просто ответил на вопрос на форуме...

Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 2470
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 02.07.25 16:57. Заголовок: Всем кому это интересно...


Написал такой пример для проверки новой функции HMG_LISTTIMERS().

Скрытый текст

Вопрос: нужен ли такой пример в поставке библиотеки?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 8004
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 03.07.25 02:25. Заголовок: Да пускай будет ! :..


Да пускай будет !

Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 2471
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 03.07.25 09:31. Заголовок: Andrey пишет: пуска..


Andrey пишет:

 цитата:
пускай будет


Спасибо за отклик!

Ниже приведена окончательная версия этого примера:
Скрытый текст


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4775
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 03.07.25 10:35. Заголовок: gfilatov2002 Чем ф-..


gfilatov2002
Чем ф-я aTm := HMG_LISTTIMERS() лучше aTm := HMG_GetFormControls(ThisWindow.Name, "TIMER" ) ?
Есть ли в ней имя таймера для пакетной работы типа
cForm := ThisWindow.Name
FOR EACH cTm IN HMG_GetFormControls(cForm, "TIMER" )
? cForm, cTm, This.&(cTm).Interval, , This.&(cTm).Enabled
...

Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 2472
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 03.07.25 10:56. Заголовок: SergKis пишет: Чем ..


SergKis пишет:

 цитата:
Чем ф-я aTm := HMG_LISTTIMERS() лучше aTm := HMG_GetFormControls(ThisWindow.Name, "TIMER" ) ?


Дело не в том, что лучше, а что хуже. Это просто еще одна возможность для работы с таймерами.
Кстати, функция HMG_LISTTIMERS() не привязана к конкретному окну (как HMG_GetFormControls(ThisWindow.Name, "TIMER" ) ), а показывает все активные таймеры, которые установлены в данный момент в программе.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4776
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 03.07.25 11:40. Заголовок: gfilatov2002 пишет п..


gfilatov2002 пишет
 цитата:
показывает все активные таймеры


т.е. Enabled == .T. , а Enabled == .F. нет ?

 цитата:
функция HMG_LISTTIMERS() не привязана к конкретному окну




Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 2473
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 03.07.25 11:56. Заголовок: SergKis пишет: т.е...


SergKis пишет:

 цитата:
т.е. Enabled == .T. , а Enabled == .F. - нет


Именно так

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4777
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 03.07.25 14:55. Заголовок: gfilatov2002 пишет И..


gfilatov2002 пишет
 цитата:
Именно так


Это мало что дает, т.е. снимок не отражает картину, особенно, если таймеры короткие (100 - 300 мс) и они на время работы блока кода ставятся Enable := .F. и потом .T. (все таймеры исп. этот механизм) Что то определить по таким данным ф-ии сложно. Возможно, надо, что бы ф-я возвращала все таймера назначенные в программе с их тек. соостоянием Enable ?

Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 2474
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 04.07.25 09:52. Заголовок: SergKis пишет: Что ..


SergKis пишет:

 цитата:
Что то определить по таким данным ф-ии сложно.


Так как основное использование этой функции - для отладки кода, то можно временно убрать Enable := .F. в режиме отладки.
Но это уже вопросы конкретной реализации работы таймеров...

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4778
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 04.07.25 10:42. Заголовок: gfilatov2002 пишет в..


gfilatov2002 пишет
 цитата:
временно убрать Enable := .F. в режиме отладки


Зачем такая канитель, тем более, что это для отладки (ставить Enable := .T. надо для каждого таймера, его блока кода) ?
Проще получать весь список "TIMER" и иметь в массиве элемент Enabled для анализа, возможно, имя таймера и имя окна (дополнительно к handle)
PS
Такой массив можно использовать и для управления таймерами (включать\выключать их работу), а не только для отладки

Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 2475
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 07.07.25 17:12. Заголовок: Всем кому это интересно,,,


Выложил первое обновление для сборки 25.07 Update 1

Что нового:
- исправление обнаруженных ошибок;
- добавлены две новые функции (на уровне Си-кода) для проверки наличия секций и ключей в ини-файлах:

 цитата:

IsINISectionExists( cSection, cIniFile ) -> .T. / .F.
IsINIKeyExists( cSection, cKey, cIniFile ) -> .T. / .F.


- добавлены комментарии в код библиотеки и некоторых примеров.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4779
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 09.07.25 18:48. Заголовок: gfilatov2002 Положи..


gfilatov2002
Положил на ftp пример работы _TBrowse(...) с отборами\выборками из базы

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 129 , стр: 1 2 3 4 5 6 7 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 12
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет