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




Пост 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: 2477
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 09.07.25 18:57. Заголовок: SergKis Спасибо, по..


SergKis
Спасибо, посмотрю, конечно.

P.S. Пример очень лаконичный и насыщенный.
Вот его краткое описание, сгенерированное ИИ:

 цитата:
 
/*
* Demonstrates the use of two TBrowse objects to display data from two related DBF files.
*
* Purpose:
* This function creates a main window containing two TBrowse objects. Each TBrowse displays data from a different DBF file ("CUSTOMER2" accessed via aliases CUST1 and CUST2).
* The TBrowse objects are related through a relation set up between the DBF files.
* The function demonstrates how to use the _TBrowse() function to manage multiple TBrowse objects within a single window and how to switch focus between them using the TAB key.
* It also shows how to handle the ESCAPE key to exit edit mode or close the window.
* The function uses temporary DBF files created in memory to filter the data displayed in each TBrowse (one showing records where RecNo() % 2 != 0, the other where RecNo() % 2 == 0).
*
* Notes:
* The function relies on the Sets_TSB() function to configure the TBrowse objects.
* The CUSTOMER2.DBF file must exist in the same directory as the executable.
* The temporary DBF files are deleted when the window is closed.
*/



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




Пост N: 8006
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 10.07.25 05:43. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Вот его краткое описание, сгенерированное ИИ:


Это надо поставить в начале примера !
Иначе непонятно что это за пример...

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




Пост N: 4780
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 10.07.25 08:08. Заголовок: gfilatov2002 Добави..


gfilatov2002
Добавил в пример более широкую информацию в Title окна и SuperHeader тсб (просьба Андрея), + почистил код немного
Положил на ftp
PS
Для понимания о чем речь (кому интересно), пример demo8.prg тут Скрытый текст


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




Пост N: 2478
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 10.07.25 13:10. Заголовок: SergKis пишет: Поло..


SergKis пишет:

 цитата:
Положил на ftp


Большое спасибо!

Andrey пишет:

 цитата:
Это надо поставить в начале примера


Добавил комментарии в код (см. ниже)
Скрытый текст


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




Пост N: 4781
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 10.07.25 14:28. Заголовок: gfilatov2002 пишет ..


gfilatov2002 пишет
 цитата:
  * STATIC FUNCTION Select2Mem(lMode, cFld)  
*
* Creates a temporary in-memory DBF file containing records from the current work area based on a filter condition.
*
* Parameters:
* lMode (LOGICAL): If .T., selects records where RecNo() % 2 == 0. If .F., selects records where RecNo() % 2 != 0.
...


Это место я поменял для индикации и более гибкого отбора на
 
STATIC FUNCTION Select2Mem(bMode, cFld)
LOCAL nOld := Select()
LOCAL aRecs := {}, cAls := Alias()
LOCAL cFile := "mem:" + cAls, nFld, aRec, nRec
Default cFld := "CUSTNO"

IF IsChar( bMode ) ; bMode := &("{|| "+bMode + " }")
ENDIF

DO EVENTS
nFld := FieldPos(cFld)
GO TOP
DO WHILE !EOF()
DO EVENTS
nRec := iif( EVal( bMode ), RecNo(), 0 )

IF nRec > 0
AAdd(aRecs, { FieldGet(nFld), Deleted() })
ENDIF
SKIP
ENDDO
...

т.е. можно задавать, например, в Main
LOCAL cSel1 := "'BOX' $ upper(ADDR1)" //"RecNo() %2 != 0"
LOCAL cSel2 := ...
получим отбор из других, заданных условий
PS
Можно задавать поля для колонок тсб, переменные
oTsb1:aSelFld := NIL // FieldNames relation, array
oTsb2:aSelFld := NIL // FieldNames relation, array
например
oTsb1:aSelFld := {"COUNTRY", "STATE", "CITY", "COMPANY", "ADDR1"}
oTsb2:aSelFld := {"COUNTRY", "STATE", "CITY", "COMPANY", "ADDR1"}

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




Пост N: 2479
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 10.07.25 15:19. Заголовок: SergKis пишет: Это ..


SergKis пишет:

 цитата:
Это место я поменял


Поправил описание функции следующим образом:

 цитата:
 
/*
* STATIC FUNCTION Select2Mem(bMode, cFld)
*
* Creates a temporary in-memory DBF file containing records from the current work area based on a filter condition.
*
* Parameters:
* bMode (BLOCK): A code block (closure) that defines the filter condition. It should evaluate to .T. for records to be included in the temporary DBF.
* cFld (CHARACTER, optional): The field to copy to the new DBF. Defaults to "CUSTNO".
*
* Returns:
* CHARACTER: The alias of the newly created in-memory DBF file (e.g., "mem:ALIAS").
*
* Purpose:
* This function is used to create temporary DBF files in memory that contain a subset of the data from an existing DBF file.
* This allows for filtering and displaying specific records in TBrowse objects without modifying the original DBF file.
* The function iterates through the records in the current work area, applies the filter condition defined by the bMode code block, and copies the specified field (cFld) and deletion status to the new in-memory DBF.
* The new DBF file is created with a single field named "ROWID" of type Numeric.
* This function is crucial for creating dynamic views of data based on specific criteria.
*
* Notes:
* The function uses the dbDrop() function to delete any existing DBF file with the same alias before creating the new one.
* The function uses dbCreate() to create the new in-memory DBF file.
* The function uses dbAppend() and FieldPut() to add records to the new DBF file.
* The function uses dbDelete() to mark records as deleted in the new DBF file if they were deleted in the original DBF file.
* The function restores the original work area after creating the new DBF file.
* The bMode parameter *must* be a valid code block that can be evaluated in the context of the current work area.
*/



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




Пост N: 4784
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 14.07.25 11:53. Заголовок: gfilatov2002 Положи..


gfilatov2002
Положил на ftp пример аналог demo8, но работа тсб без индексов и set relation.
Кому интересно demo9.prg тут Скрытый текст


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




Пост N: 2480
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 14.07.25 12:20. Заголовок: SergKis пишет: Поло..


SergKis пишет:

 цитата:
Положил на ftp пример


Большое спасибо, обязательно посмотрю...

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




Пост N: 2481
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 15.07.25 12:01. Заголовок: SergKis Еще раз бла..


SergKis
Еще раз благодарю за новый пример.

Ниже - его прокомментированная версия:
Скрытый текст


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



Пост N: 392
Зарегистрирован: 03.12.08
ссылка на сообщение  Отправлено: 16.07.25 11:56. Заголовок: Доброго дня всем фор..


Доброго дня всем форумчанам . Давно не писал на Clipper/Harbour , а вот теперь снова понадобилось кой чего автоматизировать ...
Подскажите , где сейчас находятся дистрибутивы Hаrbour и MiniGui ? Хочу установить всё для работы на новом компьютере .

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




Пост N: 8122
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 16.07.25 12:26. Заголовок: Softlog86 пишет: По..


Softlog86 пишет:

 цитата:
Подскажите , где сейчас находятся дистрибутивы Hаrbour и MiniGui ? Хочу установить всё для работы на новом компьютере .


http://hmgextended.com/download.html

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




Пост N: 2482
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 27.07.25 18:03. Заголовок: Всем, кому это интересно...


Завершена подготовка новой сборки 25.08, которая будет опубликована на следующей неделе.

Кратко, что нового:
Скрытый текст


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




Пост N: 2483
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 30.07.25 09:29. Заголовок: Всем, кому это интересно...


Выложил новую сборку 25.08

Стандартная версия click here

ПРО-версия (архив под паролем) click here

Желаю всем хорошего дня!

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




Пост N: 2485
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 16.08.25 17:45. Заголовок: Обновил HMGS-IDE 1.4..


Обновил HMGS-IDE 1.4.4.8 по адресу:

http://www.hmgextended.com/files/HMGS-IDE/ide.zip

Что нового:

 цитата:

*Fixed : Incorrect double save of Tree control in TAB after modifying the form. Bug reported by Varga Zsolt


Желаю всем хороших выходных.

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





Пост N: 256
Зарегистрирован: 17.10.05
ссылка на сообщение  Отправлено: 17.08.25 11:01. Заголовок: Menu


Григорий, спасибо за новую версию!
Перешел с версии 25.05 и обратил внимание, что картинки в меню поменяли фон.
У меня в моих менюшках фон стал и белый и малиновый и черный..
Посмотреть пример - miniGui\SAMPLES\BASIC\MENU_Picture:


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




Пост N: 2486
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 17.08.25 20:21. Заголовок: krutoff пишет: карт..


krutoff пишет:

 цитата:
картинки в меню поменяли фон


Благодарю за сообщение!

Вернул прежний вид картинок в меню:

Исправление будет включено в следующую сборку.

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




Пост N: 8035
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 09.09.25 13:57. Заголовок: Версия МиниГуи 25.06..


Версия МиниГуи 25.06Pro
MsgDebug() портит текущий АЛИАС базы !!!
   ? ProcNL(), ALIAS()  // вернет "User2Log" 
MsgDebug("меню фильтра - { cStr, cFilter, cSort }", ALIAS() )
? ProcNL(), ALIAS() // вернет ""

Оказывается и AlertInfo() тоже портит текущий АЛИАС базы !!!
   ? ProcNL(), ALIAS(), INDEXORD()   
AlertInfo("TEST !" )
? ProcNL(), ALIAS(), INDEXORD()
Вернёт:
>>> MYTSBFILTER(941) => user2tsb.prg USER2LOG 3
>>> MYTSBFILTER(944) => user2tsb.prg '' 0

И MsgInfo("Test " + ALIAS() + " " + HB_NtoS(INDEXORD())) - аналогично портит алиас

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




Пост N: 8036
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 10.09.25 11:18. Заголовок: Выяснил, что при зап..


Выяснил, что при запуске программы эти функции не портят алиас, но потом при открытии базы (стандартное открытие и создание индексов),
начинается чехарда с этим алиасом, после вывода на экран - теряется алиас.
Где и что происходит - не понимаю ?

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




Пост N: 2487
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 12.09.25 09:35. Заголовок: Всем кому это интересно...


Выложил новую сборку 25.09

Смотрите список изменений этой версии в файле doc\changelog.txt

Стандартная версия click here

ПРО-версия (архив под паролем) click here

Желаю всем хорошего дня!


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




Пост N: 8041
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 12.09.25 22:48. Заголовок: Обратите внимание на..


Обратите внимание на пример - SAMPLES\Advanced\Tsb_array_report
Проба одного расчёта разными методами.
Отчёт по базе 2 млн. записей (1404 Мб. на диске HDD) считается за:  
SCOPE - время счёта 00:00:10.711 (10 секунд) - потрясающая скорость
DoWhile -> Array - время счёта 00:00:57.393 - это тоже отличная скорость
SCOPE + FILTER - время счёта 00:02:02.459
Условная индексация - время счёта 01:08:17.608


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

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