Форум » [x]Harbour » Ряд вопросов по языку » Ответить

Ряд вопросов по языку

Dimka: 1. есть ли документация по Harbour на русском языки или на анлийском но полностью))) 2. есть ли в языке "сырые" строки. то есть форматирование вида "а[%d, %d]=%d" % {i, j, x} ? 3. как пользоваться оператором $ применительно к различным типам данных, не только строкам. 4. насколько развито ооп? есть ли наследование и т.д. 5. можно ли переопределять операторы? 6. какие существую функции для работы с Hash-ами? 7. вопрос по миниджиюай. есть ли менеджер размещения? то есть класс, который облегчает размещение виджетов(компонент) на форме?

Ответов - 45, стр: 1 2 3 All

Петр: 1) нет. 2) функции Sql_sprintf, StrFormat ( contrib\hbmisc.lib) 3) см. п.5 4) достаточно развито , есть в т.ч. и множественное, конструкторы, деструкторы в наличии; 5) перегрузка операторов возможна 6) много разных EXTERNAL HB_HASH EXTERNAL HB_HHASKEY EXTERNAL HB_HPOS EXTERNAL HB_HGET EXTERNAL HB_HSET EXTERNAL HB_HDEL EXTERNAL HB_HKEYAT EXTERNAL HB_HVALUEAT EXTERNAL HB_HPAIRAT EXTERNAL HB_HDELAT EXTERNAL HB_HKEYS EXTERNAL HB_HVALUES EXTERNAL HB_HFILL EXTERNAL HB_HCLONE EXTERNAL HB_HCOPY EXTERNAL HB_HMERGE EXTERNAL HB_HEVAL EXTERNAL HB_HSCAN EXTERNAL HB_HCASEMATCH EXTERNAL HB_HAUTOADD EXTERNAL HB_HALLOCATE EXTERNAL HB_HDEFAULT EXTERNAL HB_HSETAUTOADD EXTERNAL HB_HSETCASEMATCH 7) MiniGUI не обьектная библиотека и такого класса конечно же нет, но в поставке есть пример как размещать пользовательские контролы на форме.

Dimka: 1. очень плохо. что читать, кроме примеров? 3. как использовать $ с числами, не перегружая? 5. как выглядит перегрузка операторов? можно примеры?

Петр: 1. Справочники по Clipper, xHarbour и самое главное исходники Harbour. 3. $ это так критично ? Чем AScan( {1, 2, 4}, 2 ) не устраивает? 5. Примерно так #include "hbclass.ch" create class tString VAR cValue METHOD New(cText) INLINE ::cValue := cText, self OPERATOR "=" ARG cArg INLINE ::cValue = cArg OPERATOR "==" ARG cArg INLINE ::cValue == cArg OPERATOR "!=" ARG cArg INLINE ::cValue != cArg OPERATOR "<" ARG cArg INLINE ::cValue < cArg OPERATOR "<=" ARG cArg INLINE ::cValue <= cArg OPERATOR ">" ARG cArg INLINE ::cValue > cArg OPERATOR ">=" ARG cArg INLINE ::cValue >= cArg OPERATOR "+" ARG cArg INLINE ::cValue + cArg OPERATOR "-" ARG cArg INLINE ::cValue - cArg OPERATOR "$" ARG cArg INLINE ::cValue $ cArg OPERATOR "[]" ARG nIndex INLINE iif( pcount()>2, ; ::cValue := stuff( ::cValue, nIndex, 1, hb_pvalue(3) ), ; substr( ::cValue, nIndex, 1 ) ) endclass


Dimka: 3. тем, что вот такая запись 2 $ {1, 2, 3} выглядит лучше, чем такая: empty(AScan( {1, 2, 4}, 2 ) )

gfilatov: Петр пишет: в поставке есть пример как размещать пользовательские контролы на форме Он находится в папке minigui\samples\Advanced\ControlPos

Петр: Dimka пишет: тем, что вот такая запись 2 $ {1, 2, 3} выглядит лучше, чем такая: empty(AScan( {1, 2, 4}, 2 ) ) Очень серьезный аргумент. Если вам нравиться запись в стиле 2 $ {1, 2, 3} или 2 IN {1, 2, 3}, то используйте ее, предварительно перекомпилировав Harbour c C_USR= -DHB_EXTENSION. P.S. Извиняюсь, включив xhb.ch и подключив xhb.lib

Dimka: насмотрелся пример Samles\Advanced\Report_Interpreter\ решил заюзать. не нашел нигде описание процедуры Winrepint. ни гугл, ни янденкс, ни справка, ни исходники(:-D) не знают о такой. 1. где взять описание? 2. что из себя представляет текст ReportS.mod из примера? обычный код харбора или нет? 3. что такое [Declare]80/PREV (из *.mod)? 4. можно ли использовать в шаблоне несколько бд? 5. сохранятся ли возможности группировки при использовании массивов? 6. откуда берутся переменные m (m->npag), NLINE (@NLINE, 0 SAY ...) ? слишком много магии. 7. можно ли заюзать подряд 2 winrepint для создания 1 документа? и если можно, то как? или каким-либо другим образом реализовать вызов 1 шаблона из другого.

gfilatov: Dimka пишет: не нашел нигде описание процедуры Winrepint А в папке minigui\Doc файл WinReport.chm не догадался посмотреть?

Dimka: жду ответы на вопросы с номерами 5 и 7. можно ли исполнить код winreporta не из файла, а из строки?

gfilatov: Dimka пишет: можно ли исполнить код winreporta не из файла, а из строки? Нет, только из файла с описанием отчета. Если требуется использовать описание отчета в коде программы, то для этого существует команда DO REPORT. Пример использования: DO REPORT; TITLE 'INFORME DE ARTISTAS DE CINE | segundo titulo'; HEADERS {'','','',''} , {'SIMPLE','APELLIDO','DOBLE','INGRESOS'} ; FIELDS {'code','last','BIO','incoming'} ; WIDTHS {10,20,26,14} ; TOTALS {.F.,.F.,.F.,.T.} ; NFORMATS {'','','','@E 99,999,999.99'} ; WORKAREA Test ; LPP 55 ; CPL 77 ; LMARGIN 3 ; TMARGIN 3 ; PAPERSIZE DMPAPER_A4 ; PREVIEW ; SELECT ; MULTIPLE ; GROUPED BY 'first' ; HEADRGRP 'Name'

Dimka: короче задача стоит следующим образом. надо из нескольких баз и массивов сваять 1 отчет для распечатки с предпросмотром. использование winreporta обуславливается возможностью переноса таблицы при разрыве строки с сохранением заголовка. выравнивание текста и т.д. Winreport мне здесь не поможет? убирается ли вотермарк? если его так можно назвать))))

Петр: Dimka пишет: короче задача стоит следующим образом. Фу ты блин, а я уже думал, что тут экзамен устроили Где вы там водяные знаки увидели, может быть splash ?

Dimka: ну квадратик в правом нижнем углу.

Петр: Вам доступен весь код - правьте как хотите и пользуйтесь

Pasha: Dimka пишет: что вот такая запись 2 $ {1, 2, 3} выглядит лучше в xHarbour это реализовано. Предложите перенести поддержку массивов в операции HB_P_INSTRING какому-нибудь Harbour-девелоперу

Dimka: Петр пишет: Вам доступен весь код - правьте как хотите и пользуйтесь это уже хак. не тру.

Петр: Pasha пишет: в xHarbour это реализовано. В Harbour это реализовано, нужно просто использовать xhb.lib (xhb.ch). Предложение сделать это по умолчанию (кстати, предложенное Пржемеком) не набрало голосов в поддержку, демократия

Петр: Dimka пишет: это уже хак. Это не хак, а Open Source. В знак благодарности, или по доброте душевной, можете усовершенствовать код и предложить его сообществу, например, устраните мерцание в превью

Dimka: так мне кто-нибудь ответит на этот вопрос? надо из нескольких баз и массивов сваять 1 отчет для распечатки с предпросмотром. желание использовать winreport обуславливается возможностью переноса таблицы при разрыве страницы с сохранением заголовка. выравнивание и перенос текста и т.д. Winreport мне может в этом помочь?

Dimka: и как быть, если какая-то часть отчетов общая и ее необходимо использовать повторно? отходить от принципа DRY тоже не тру.



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