Автор | Сообщение |
|
| |
Пост N: 402
Зарегистрирован: 12.11.06
|
|
Отправлено: 11.11.21 13:47. Заголовок: Технические вопросы по смене версии xHarbour на современную
Как конкретизация вопросов по теме: http://clipper.borda.ru/?1-4-0-00001352-000-0-0-1636542981 Поставил себе xHarbour самой свежей сборки. Попытался собирать программы - конечно выявилось несколько откровенных ошибок кода программ, которые исправил, а далее сборки производились без проблем... Однако появились ошибки/косяки времени исполнения, которые буду озвучивать в данной теме и надеюсь на Ваше участие в их исправление... Пожалуйста помогите "кто, чем может"
|
|
|
Ответов - 27
, стр:
1
2
All
[только новые]
|
|
|
| |
Пост N: 403
Зарегистрирован: 12.11.06
|
|
Отправлено: 11.11.21 13:56. Заголовок: №1. Проблема с функц..
№1. Проблема с функцией HB_gtInfo терминала WVT. Раньше заголовок окна с иконкой отражался корректно и для этого использовалась универсальная процедура * Замена заголовка окна Win и вставка исходника на С PROC pWind(cTxt,cIconFile) LOCA hW cIconFile := IF(cIconFile == NIL, "", cIconFile ) /* Блок для терминала Win SetConsoleTitle(Alltrim(cTxt)) hW := FindWindow(Alltrim(cTxt)) DeleteCloseButton(hW) // Перекодировка строки в UTF-8 WAIT HB_STRTOUTF8([АРМ кладовщика, менеджера, бухгалтера + производство. Версия 1.993 Весна 2013г.]) */ /* Блок для терминала WVT */ HB_gtInfo( HB_GTI_WINTITLE, HB_OEMTOANSI(cTxt) ) // Заголовок окна // Добавляю иконку к головному окну. IF !Empty(cIconFile) HB_gtInfo( HB_GTI_ICONFILE, cIconFile ) // Иконка из файла ресурсов ENDI RETU Код терминала gtwvt.c радикально поменялся и сейчас ни иконка не отражается, а заголовок "pWind(cgMyIdEga+" ("+cgObosName+")"+Spac(10)+cpCapt,"hle.ico")", cpCapt="УС Лэнд:ЕГАИС (УСЕга)... Версия 11 ноября 2021 г." при каждом запуске программы меняяется и отражается сокращенно до нескольких символов Что мне нужно поменять? З.Ы. И цветовая гамма поменялась "черный на красный" - почему?
|
|
|
|
| |
Пост N: 7470
Зарегистрирован: 17.05.05
|
|
Отправлено: 11.11.21 14:04. Заголовок: AndreyZh пишет: HB_..
AndreyZh пишет: цитата: | HB_gtInfo( HB_GTI_ICONFILE, cIconFile ) // Иконка из файла ресурсов |
| это не из ресурса а из файла на диске. У меня так в Harbour без X Hb_GtInfo( HB_GTI_ICONRES , cIconRes ) Что касается палитры , не знаю как в X а в Harbour попробуй сделать так Hb_GtInfo( HB_GTI_PALETTE,{0, 8716288, 34048, 8750336, 133, 8716421, 34181, 13027014, 6316128, 16711680, 6356832, 16777056, 2490616, 16736511, 65535, 16777215})
|
|
|
|
| |
Пост N: 404
Зарегистрирован: 12.11.06
|
|
Отправлено: 11.11.21 14:12. Заголовок: Dima палитра восстан..
Dima палитра восстановилась... а как с русским текстом заголовка? с иконкой у меня какой-то косяк нарисовался - поразбираюсь
|
|
|
|
| |
Пост N: 7471
Зарегистрирован: 17.05.05
|
|
Отправлено: 11.11.21 14:16. Заголовок: Андрей не знаю как в..
Андрей не знаю как в X в Harbour без всяких перекодировок делаю так hb_GTInfo( HB_GTI_WINTITLE, "~-=Проверка=-~ ") кодовая страница у меня установлена hb_cdpSelect( "RU866" ) и терминал WVT (WVG)
|
|
|
|
| |
Пост N: 405
Зарегистрирован: 12.11.06
|
|
Отправлено: 11.11.21 14:32. Заголовок: Dima не помогает... ..
Dima не помогает... Думал что данная библиотека одна для Harbour & xHarbour. Может что подскажет... в С как "свинья в апельсинах" Старый модуль case HB_GTI_WINTITLE: { char * szTitle = NULL; if( hb_gt_wvt_GetWindowTitle( pWVT->hWnd, &szTitle ) ) pInfo->pResult = hb_itemPutCPtr( pInfo->pResult, szTitle, strlen( szTitle ) ); else pInfo->pResult = hb_itemPutC( pInfo->pResult, NULL ); if( hb_itemType( pInfo->pNewVal ) & HB_IT_STRING ) hb_gt_wvt_SetWindowTitle( pWVT->hWnd, hb_itemGetCPtr( pInfo->pNewVal ) ); break; } Новый модуль case HB_GTI_WINTITLE: pInfo->pResult = HB_ITEMPUTSTR( pInfo->pResult, pWVT->lpWindowTitle ); if( hb_itemType( pInfo->pNewVal ) & HB_IT_STRING ) { hb_strfree( pWVT->hWindowTitle ); pWVT->lpWindowTitle = HB_ITEMGETSTR( pInfo->pNewVal, &pWVT->hWindowTitle, NULL ); if( pWVT->hWnd ) SetWindowText( pWVT->hWnd, pWVT->lpWindowTitle ); } break;
|
|
|
|
| |
Пост N: 7472
Зарегистрирован: 17.05.05
|
|
Отправлено: 11.11.21 14:41. Заголовок: hb_GTInfo( HB_GTI_WI..
hb_GTInfo( HB_GTI_WINTITLE....... объявлено после установки кодовой страницы или до ?
|
|
|
|
| |
Пост N: 406
Зарегистрирован: 12.11.06
|
|
Отправлено: 11.11.21 15:06. Заголовок: Dima пишет: hb_GTIn..
Dima пишет: цитата: | hb_GTInfo( HB_GTI_WINTITLE....... объявлено после установки кодовой страницы или до ? |
|
После
|
|
|
|
| |
Пост N: 407
Зарегистрирован: 12.11.06
|
|
Отправлено: 11.11.21 16:59. Заголовок: Dima сейчас слабал о..
Dima сейчас слабал отдельную, очищенную от всего программу только для теста hb_GTInfo - заголовок на русском и иконка отражается правильно... Буду изучать, что в программах не соответствует данным "эталонам": #include "hbgtinfo.ch" * --------------------------------------------------------------------------------------------------- * Головной модуль программы PROC Main() LOCA nW:=0, nH:=0 // Глобальные системные установки пакета. SET DATE GERMAN SET DELE ON SET ESCA ON SET SCOR OFF SET WRAP ON SET CENT ON // Руссифицирую - работа с кириллецей REQUEST HB_CODEPAGE_RU866 HB_SetCodePage("RU866") // Блок для терминала WVT - якобы быстрее работает в Win98 ANNOUNCE HB_GTSYS REQUEST HB_GT_WVT REQUEST HB_GT_WVT_DEFAULT HB_gtInfo( HB_GTI_CLOSABLE, .F. ) // Блокирую крестик HB_gtInfo( HB_GTI_CODEPAGE,255 ) // Кодовая страница HB_gtInfo( HB_GTI_FONTNAME, "Lucida Console" ) // Шрифт экрана HB_gtInfo( HB_GTI_FONTQUALITY, 3 ) // Наилучшее качество шрифта. // Размер шрифта (максимальный) подбираю в зависимости от разрешения. Иной порядок НЕ РАБОТАЕТ nW := 1280/wvt_GetScreenWidth() // Коеф для ширины экрана nH := 1024/wvt_GetScreenHeight() // Коеф для высоты экрана HB_gtInfo( HB_GTI_FONTWIDTH, 15/nW ) // 1 15 (16)| На полный HB_gtInfo( HB_GTI_FONTSIZE, 36/nH ) // 2. 36 Шрифт размер (38)| экран с размером // Определяю сразу окно 25*80 символов, иначе нужна дополнительная настройка SetMode(25,80) //*** Отрисовываю заголовок окна Hb_GtInfo( HB_GTI_PALETTE,{0, 8716288, 34048, 8750336, 133, 8716421, 34181, 13027014, 6316128, 16711680, 6356832, 16777056, 2490616, 16736511, 65535, 16777215}) HB_gtInfo( HB_GTI_WINTITLE, HB_OEMTOANSI(" Заголовок окна Windows и иконка") ) // Заголовок окна HB_gtInfo( HB_GTI_ICONFILE, "test.ico" ) // Иконка текущего каталога CLS WAIT "ТЕСТ - Нажмите любую клавишу" Inkey(0) RETU
|
|
|
|
| |
Пост N: 7473
Зарегистрирован: 17.05.05
|
|
Отправлено: 11.11.21 19:40. Заголовок: AndreyZh пишет: Dim..
AndreyZh пишет: цитата: | Dima сейчас слабал отдельную, очищенную от всего программу только для теста hb_GTInfo |
| Все правильно AndreyZh пишет: цитата: | HB_gtInfo( HB_GTI_FONTQUALITY, 3 ) |
| я ставлю 4 , так как с 3 , шрифт погрызанный какой то (присмотрись) AndreyZh пишет: цитата: | HB_gtInfo( HB_GTI_WINTITLE, HB_OEMTOANSI(" Заголовок окна Windows и иконка") ) |
| Странно , у меня и без HB_OEMTOANSI все нормально показывает , правда в Harbour AndreyZh пишет: Работает WVG_setmode(25,80) // не нравится название , придумай своё :) Func WVG_setmode(nrow,ncol) local ret:=.f. hb_gtInfo( HB_GTI_FONTWIDTH,5) hb_gtInfo( HB_GTI_FONTSIZE,8) SetMode(nRow,nCol) hb_gtInfo( HB_GTI_FONTWIDTH, INT(HB_GtInfo(HB_GTI_DESKTOPWIDTH) /nCol) ) hb_gtInfo( HB_GTI_FONTSIZE, INT(HB_GtInfo(HB_GTI_DESKTOPHEIGHT) /nRow)) ret:=SetMode(nRow,nCol) cls return ret
|
|
|
|
| постоянный участник
|
Пост N: 7121
Зарегистрирован: 12.09.06
|
|
Отправлено: 12.11.21 09:30. Заголовок: Для терминалки делал..
|
|
|
|
| |
Пост N: 408
Зарегистрирован: 12.11.06
|
|
Отправлено: 12.11.21 12:25. Заголовок: Andrey пишет: Может..
Andrey пишет: Скачал, но можно очень кратко - чем эти разработки могут быть полезными?
|
|
|
|
|
| |
Пост N: 409
Зарегистрирован: 12.11.06
|
|
Отправлено: 12.11.21 14:11. Заголовок: Dima Andrey Спасибо ..
Dima Andrey Спасибо за содействие! Однако - в проблеме, обрисованной выше не я дурак, а глюк xHarbour, а возможно и Harbour, т.к. hb_GTInfo скорее всего очень близко по поведению. Авось будет полезно? 1. Когда прямо пишу текст в заголовок окна, пусть даже через свою функцию pWind("Заголовок","hle.ico") он отражается корректно... прямо, как в тестовом примере 2. Когда передаю выражение возвращающее корректное символьное значение. В программе: pWind(cgMyIdEga+" ("+cgObosName+")"+Spac(10)+cpCapt,"hle.ico") отражается козябяка… и более того программа остаётся в памяти после выхода и мешает повторной сборке 3. Если до вызова описания заголовка с выражение вызову отражение (активацию) русского языка... т.е. последовательность: @ 0,0 SAY "Рус" pWind(cgMyIdEga+" ("+cgObosName+")"+Spac(10)+cpCapt,"hle.ico") Всё отражается корректно Причем, если вызываю @ 0,0 SAY " ", то это не влияет на уборку козябяков Результат на скрине: На двух картинках проверка - HB_gtInfo( HB_GTI_FONTQUALITY, х ) на верхней с 3 (чуть толще, как мне кажется), а на второй с 4... Попробую проверить читабельность на юзерах … и продолжу искать грабельки в свежем компиляторе
|
|
|
|
| постоянный участник
|
Пост N: 3941
Зарегистрирован: 17.02.12
|
|
Отправлено: 12.11.21 14:27. Заголовок: AndreyZh В WVT став..
AndreyZh В WVT ставлю для лат. языка ( hb3.2 ) hb_gtInfo( HB_GTI_CODEPAGE, 866 ) hb_cdpSelect( "LV866" ) hb_gtInfo( HB_GTI_ICONRES, 1001) ... МиниГуи hb_cdpSelect("LV866") ; hb_setTermCP("LV866") prg тексты в кодировке LV866 набираю в hbedit.exe (своя сборка с LV866) Для RU866 должно быть похоже, наверно PS все ANNOUNCE HB_GTSYS REQUEST HB_GT_WVT REQUEST HB_GT_WVT_DEFAULT и т.д. делаю до FUNCTION Main() может это не важно, но как то в одном месте, не разбрасывая по коду, удобнее по мне
|
|
|
|
| |
Пост N: 410
Зарегистрирован: 12.11.06
|
|
Отправлено: 12.11.21 14:39. Заголовок: Как можно понять, гд..
Как можно понять, где ошибка компиляции? - лог: Подскажите плиз? Lines 2647, Functions/Procedures 9, pCodes 18684 xHarbour 1.2.3 Intl. (SimpLex) (Build 20201212) Copyright 1999-2020, http://www.xharbour.org http://www.harbour-project.org/ Compiling 'PRINTUPD.PRG'... Generating C source output to 'OBJ\OBJA\PRINTUPD.c'... Done. Building object module for 'OBJ\OBJA\PRINTUPD.c' using C compiler 'BCC32' as defined in 'c:\xharbour\bin\harbour.cfg'... Exec: BCC32 -c -D__EXPORT__ -IC:\XHB7432\include -d -LC:\XHB7432\lib -oOBJ\OBJA\PRINTUPD.obj OBJ\OBJA\PRINTUPD.c Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland OBJ\OBJA\PRINTUPD.c: Done. Deleting: "OBJ\OBJA\PRINTUPD.c" Done. Lines 1733, Functions/Procedures 4, pCodes 9883 xHarbour 1.2.3 Intl. (SimpLex) (Build 20201212) Copyright 1999-2020, http://www.xharbour.org http://www.harbour-project.org/ Compiling 'SCHPRINT.PRG'... 1 error No code generated
|
|
|
|
| |
Пост N: 411
Зарегистрирован: 12.11.06
|
|
Отправлено: 12.11.21 14:44. Заголовок: Подскажите пожалуйст..
Подскажите пожалуйста - может некую опцию компилятора включить?
|
|
|
|
| |
Пост N: 412
Зарегистрирован: 12.11.06
|
|
Отправлено: 12.11.21 15:24. Заголовок: Проблемные модули пр..
Проблемные модули прогнал через harbour /ic:\xharbour\include /s SCHPRINT.PRG каждый... Может быть есть более простой способ?
|
|
|
|
| |
Пост N: 414
Зарегистрирован: 12.11.06
|
|
Отправлено: 16.11.21 10:48. Заголовок: Писец подкрался неза..
Писец подкрался незаметно... Размещаю наблюдение, как информацию для размышления. Т.к. постоянно нужно помогать пользователям с проблемами оставил сборку системы на "старом" xHb, как оказалось не настолько старом 1.2.1 от 2010, ну и "развлекаюсь" доделками и тестированием режимов в сборке системы на xHb 1.3.1 от 12.2020г. Система на DBF+NTX и очень быстрая при работе с БД. Советы по SQL не интересны, т.к. работаем через "удаленный рабочий стол" и было очень много сравнений скорости, как с 1С MSSQL, так и запросами в отчетных системах. Очень случайно, выискивая косяки увидел, как показалось, что новый xHb работает с БД медленнее? Провел замеры на долгих операциях построения сложных отчетов, где размер анализируемой БД в 5 раз превышает размер Ram и оказался в шоке... По всем видам отчетов программа на "новом" xHb работает на 33% медленнее, а это бесконечно тормознее, учитывая огромные мои усилия по увеличению быстродействия системы! Доказательство на одном из отчетов на скрине... и думаю мало кто пытался так сравнивать инструменты?
|
|
|
|
| |
Пост N: 7481
Зарегистрирован: 17.05.05
|
|
Отправлено: 16.11.21 15:39. Заголовок: Время в чём чч:мм ил..
Время в чём чч:мм или мм:cc ?
|
|
|
|
| |
Пост N: 415
Зарегистрирован: 12.11.06
|
|
Отправлено: 16.11.21 17:43. Заголовок: Dima пишет: минуты..
Dima пишет: цитата: | Время в чём чч:мм или мм:cc ? |
|
минуты и секунды... к счастью нет "часовых" отчетов и режимов. БД производства - от 1000 до 1700 отгрузок в сутки
|
|
|
|
| |
Пост N: 7482
Зарегистрирован: 17.05.05
|
|
Отправлено: 17.11.21 22:22. Заголовок: AndreyZh Остатки на..
AndreyZh Остатки на дату , не простой отчёт (в плане построения по времени ) , 2-3 минуты для построения это нормально. У меня уходит больше времени: кол-во складских карточек около 50 000 + общий движняк по ним в другой базе лежит и там 10 лямов движухи записей. Тут конечно важно как структура базы устроена.... Покажи примерно как устроена складская картотека у тебя и как примерно строится отчет , в том числе остатки на дату , движение за дату, ну если не сложно
|
|
|
Ответов - 27
, стр:
1
2
All
[только новые]
|
|