Форум » GUI » Новая версия Расширенного релиза библиотеки MiniGUI (часть VI ) (продолжение) » Ответить

Новая версия Расширенного релиза библиотеки MiniGUI (часть VI ) (продолжение)

gfilatov: Начало темы находится здесь, а теперь АНОНС * АНОНС * АНОНС * АНОНС * АНОНС Готовится к опубликованию новая сборка №48, которая выйдет в конце недели. Если у Вас есть интересные наработки для включения в новый релиз, то сейчас самое удобное время для их отправки мне Кратко, что нового: - исправление обнаруженных ошибок и неточностей кода; - новый класс HEADERIMAGE для Grid и Browse; - свойство Address в Hyperlink может теперь открывать папку или файл на диске; - добавлен NOTABSTOP класс для Browse; - поддержка пользовательских компонентов (заимствована из оффициального релиза); - расширения и исправления в библиотеках TsBrowse и PropGrid; - обновлены сборки Харбор и HMGS-IDE; - новые и обновленные старые примеры (как обычно ).

Ответов - 300, стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 All

Haz: gfilatov2002 пишет: Подход понравился Это то , что выдернул из проекта и включил в отдельный пример, чтоб показать о чем речь. Сама идея тут понятна, но пример нужно доделать, этим займусь в ближайшее дни. В проекте работает до сих пор успешно, ошибки просматривать удобно и быстро. Что касается вывода сообщения пользователю , этим не заморачивался, просто пишу извини не получилось и войди заново. 😝

rvu: gfilatov2002 пишет: Пробуйте функцию hb_UAt() Также в Харборе есть такие дополнительные функции hb_ULeft() hb_URight() hb_ULen() и т.д. hb_URAT() нет.

SergKis: rvu Небольшой пример [pre2] #define _HMG_OUTLOG #include "hmg.ch" REQUEST HB_CODEPAGE_UTF8, HB_CODEPAGE_RU1251, HB_CODEPAGE_RU866 REQUEST DBFCDX *-----------------------------------------------------------------------------* FUNCTION Main() *-----------------------------------------------------------------------------* LOCAL cT, cF, n1, n2, t1, t2, t3, t4 SET CODEPAGE TO UNICODE cF := hb_Utf8ToStr("замена", "RU866") cT := hb_memoread("demo.txt") // текст RU866 n1 := At(cF, cT) n2 := RAt(cF, cT) t1 := left(cT, n1) t2 := subs(cT, n2) ? n1, t1 ? n2, t2 ? t3 := hb_StrToUtf8(t1, "RU866") t4 := hb_StrToUtf8(t2, "RU866") ? t3 ? t4 ? RETURN demo.txt. кодировка RU866 -------------------------------- 0 ··· 101 999 1 замена из ремф. замена на аналог из ремфонда 101 1 2 план. устан. ТО плановые установки ТО 101 1 3 возврат с пл.ус возврат с плановых установок 101 1 4 ремонт на месте ремонт на месте 86 1 5 установка в кв. установка в кв. клиента 101 4 6 дополн. услуги дополнительные услуги 101 5 7 монтаж по дог. монтаж АДС по договору польз. 101 2 8 установка под. установка в подъезде 33 4 9 замена а/у замена абон.устройств 101 1 10 замена инд.обор замена индивид. оборудования 101 1 11 установка в под 33 2 12 монтаж на под 33 2 13 установка в под установка в подъезде 33 4 14 установка в по. установка в подъезде 33 4 13 ремонт на месте ремонт на месте 33 1 14 33 0 11 замена замена оборудования 80 4 12 замена общая замена оборудования всего 86 1 13 86 0 [/pre2]


rvu: SergKis пишет: cF := hb_Utf8ToStr("замена", "RU866") У меня не только русский язык. У меня любой язык. И собрать свою Rat() легко можно из hb_UAt() и hb_ULen(). Тут важно определиться, что должно быть по определению в уникодной версии. Это пусть Григорий скажет.

SergKis: rvu пишет У меня не только русский язык. У меня любой язык Если у вас все базы в utf8, старых вариантов нет и в одном поле присутствуют все языки мира, то ф-ии utf8 в помощь. В др. случаях можно применять и однобайтовые варианты, переводя в utf8 только для контролов

gfilatov2002: rvu пишет: важно определиться, что должно быть по определению в уникодной версии. Конечно, опираемся на Unicode-функционал, который есть в Харборе. Если необходимая реализация отсутствует, то приходится восполнять пробел. rvu пишет: hb_URAT() нет. Эта функция находится в TODO листе Харбора. rvu пишет: собрать свою Rat() легко можно из hb_UAt() и hb_ULen(). Значит, надо идти по этому пути, поскольку дальнейшее развитие Харбора в большом тумане...

rvu: SergKis пишет: В др. случаях можно применять и однобайтовые варианты, переводя в utf8 только для контролов Я пробовал с русским, писал об этом: rvu пишет: msginfo(HB_STRTOUTF8(UPPER(HB_UTF8TOSTR('abcабв',"RU1251")),"RU1251")) Но и это не вышло. Не знаю почему. Там контролы используются, кроме вывода?

SergKis: rvu пишет Но и это не вышло Upper() в unicode переводит ТОЛЬКО английские буквы, потому и не вышло. Другой функционал разделен по именам ф-й.

rvu: gfilatov2002 пишет: Значит, надо идти по этому пути, поскольку дальнейшее развитие Харбора в большом тумане... А что с его развитием вообще? И что с Минигуи Роберто Лопеса? Как я понял там финальная версия 3.4.3? Я смотрел англоязычный форум, вроде, какая-то версия 3.4.4. существует, но я ее не смотрел. Она рабочая? Есть смысл ее ставить и смотреть?

rvu: SergKis пишет: Upper() в unicode переводит ТОЛЬКО английские буквы, потому и не вышло. Для любых кодировок? Тогда понятно. Я же переводил в STR.

gfilatov2002: rvu пишет: что с его развитием вообще? Этого не знает никто, поскольку форум разработчиков Харбора давно молчит. rvu пишет: что с Минигуи Роберто Лопеса? Его никто не поддерживает на постоянной основе. rvu пишет: какая-то версия 3.4.4. существует Уже есть версия 3.5 с минимальными улучшениями. rvu пишет: Она рабочая? Есть смысл ее ставить и смотреть? Да, она рабочая, но, конечно, содержит небольшие ошибки, которые периодически всплывают у пользователей. Смысл посмотреть всегда есть, а вдруг понравится Вывод: если не будет мотивации для разработки (материальной и моральной), то судьба любого дела будет под вопросом.

rvu: gfilatov2002 пишет: собрать свою Rat() легко можно из hb_UAt() и hb_ULen(). Значит, надо идти по этому пути, поскольку дальнейшее развитие Харбора в большом тумане... Function valRat Parameters Pr1,Pr2 If hb_UAt(Pr1,Pr2)=0 Return 0 Endif Return hb_ULen(Pr2)-hb_UAt(Pr1,Pr2)+1 Вы подобные вещи будете у себя включать? Это пустяк, но могут быть посложнее функции. И, наверное, их надо не под зарезервированными именами делать, не hb_URAT(). Так как это имя может потом использоваться в изначальном Харборе.

rvu: gfilatov2002 пишет: Уже есть версия 3.5 с минимальными улучшениями. А ссылку дадите, чтобы самому не искать? gfilatov2002 пишет: если не будет мотивации для разработки (материальной и моральной) Моральная очень даже есть - пользуемся (ничего, что я за всех?)

SergKis: rvu пишет hb_ULen(Pr2)-hb_UAt(Pr1,Pr2)+1 Это если Pr1 встречается 1 раз, если nn раз ? Как в примере выше

rvu: SergKis пишет: Это если Pr1 встречается 1 раз, если nn раз ? Ну вот. Я просто ни разу не использовал ее кроме первого вхождения. Но, кстати, посмотрел Help: SYNTAX RAT(<cSearch>, <cTarget>) --> nPosition ARGUMENTS <cSearch> is the character string to be located. <cTarget> is the character string to be searched. RETURNS RAT() returns the position of <cSearch> within <cTarget> as an integer numeric value. If <cSearch> is not found, RAT() returns zero. Вот где точно неправильно! — If <cSearch> is not found, RAT() returns zero. Добавил: Function valRat Parameters Pr1,Pr2 If hb_UAt(Pr1,Pr2)=0 Return 0 Endif Return hb_ULen(Pr2)-hb_UAt(Pr1,Pr2)+1

SergKis: rvu Зачем городить огород Поищите в hb src\* по Alt+F7 в Far *.c "hb_func( hb_U" посмотрите список найденного, там будет hb_Utf8Rat(...) Используйте в примере выше[pre2] ? n1, t1 ? n2, t2 ? "hb_Utf8Rat", hb_Utf8Rat("замена", hb_StrToUtf8(cT, "RU866")) ? [/pre2]

gfilatov2002: rvu пишет: ссылку дадите click here

rvu: SergKis пишет: "hb_Utf8Rat", hb_Utf8Rat("замена", hb_StrToUtf8(cT, "RU866")) Мне не только русский нужен.

SergKis: rvu пишет Мне не только русский нужен. Вы реально думаете, что ф-ии hb_U...() только для русского языка

rvu: Смутило: hb_StrToUtf8(cT, "RU866") А зачем тогда в примере перекодировку писать? SergKis пишет: Зачем городить огород Григорий написал: gfilatov2002 пишет: Эта функция находится в TODO листе Харбора.



полная версия страницы