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

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

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

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

Dimka: решил отказаться от Winreport ввиду скромных возможностей))) пишу сам генератор отчетов))) есть такой код: ... START DOC START PAGE @ 10, 10, 100, 100 draw text "бла бла бла" style DT_LEFT END PAGE END DOC ... в style задаются параметры отображения строки в прямоугольнике. если написать "style DT_CALCRECT", то строка рисоваться не будет, а функция win api, которая вызывается, вернет прямоугольник, в который эта строка должна поместиться. конечно же ничего не возвращается. каковы минмиальные действия, чтобы этого добиться?

SADSTAR2: Править библиотеку. См. мой постинг в ветке MiniGUI или http://ssmessages.by.ru/hbprint1.html

Dimka: спасибо. вашу тему читал, исправления делал)))


SADSTAR2: И какой результат?

Dimka: как определить функцию с необязательными параметрами?

Pasha: Dimka пишет: как определить функцию с необязательными параметрами? Что имеется в виду ? При вызове функции любой фактический параметр может быть опущен В теле функции при этом надо проверять: if xParN <> nil Если имеется в виду переменное число параметров, то см. tests\varparam.prg

Dimka: примерное такое. function fun(param1, param2, param3=1, param4=2) ... return 1 fun(5, 6) fun(5, 6, 7) tests\varparam.prg у меня нет. harbour\minigui

Pasha: Dimka пишет: tests\varparam.prg у меня нет. harbour\minigui См. каталог [x]Harbour\tests Dimka пишет: function fun(param1, param2, param3=1, param4=2) Используй стандартный прием Clipper/Harbour: #include "common.ch" ... function fun(param1, param2, param3, param4) default ; param3 to 1,; param4 to 2

Dimka: можно ли сделать так чтобы все имена, определяемые внутри функции или метода, были локальными?

Dimka: SADSTAR2 пишет: И какой результат? не знаю как поиметь результат вызова функции drawtext.

Dimka: как передаются параметры в функцию? создаются копии фактических параметров, которые и передаются? если да, то как передать указатель и работать потом с такими параметрами?

Pasha: Dimka пишет: как передаются параметры в функцию? создаются копии фактических параметров, которые и передаются? если да, то как передать указатель и работать потом с такими параметрами? Массивы и обьекты классов передаются по ссылке, переменные остальных типов данных - по значению, т.е. создаются копии фактических параметров Чтобы передать параметр по ссылке, надо указать символ @ перед именем фактического параметра: p1 := 0 func1(@p1, @p2) ? p1 // результат - 1 ... function func1(p1, p2) p1 := 1 retu nil

Dimka: а хеши, надо полагать, тоже по ссылке. есть ли в харбор аналог Python-овского метода хешей - get? то есть get(hash, x, default) вернет hash[x], если x - ключ hash, или default, если нет такого ключа.

Петр: Dimka пишет: есть ли в харбор аналог Python-овского метода хешей - get? Нет function PyGet( hash, x, default ) return iif( hb_HHasKey(hash, x), hash[x], default )

Петр: Dimka пишет: можно ли сделать так чтобы все имена, определяемые внутри функции или метода, были локальными? function test() local a, b, c local xyz .. RTFM

Dimka: Петр пишет: function PyGet( hash, x, default ) return iif( hb_HHasKey(hash, x), hash[x], default ) Спасибо, я уже написал. Петр пишет: function test() local a, b, c local xyz я имел ввиду, без local. то есть все определяемые имена по умолчанию считаются локальными. имхо, так гораздо удобнее и правильнее. Петр пишет: RTFM ссылку, пожалуйста.

Петр: Dimka пишет: имхо, так гораздо удобнее и правильнее Я так не считаю. Явное объявление переменных и использование ключей компиляции позволяют лучше контролировать программу. Не забывайте, что Harbour наследник Clipper, а не какого либо другого языка. Поэтому использует синтаксис и правила Clipper. Поэтому и RTFM Документацию по Clipper, в т.ч. и руссифицированую можете найти на сайте этого форума.

Dimka: а как красиво записать длинную строку (s="Длинная предлинная строка. Длинная предлинная строка. Длинная предлинная строка. Длинная предлинная строка. Длинная предлинная строка. Длинная предлинная строка." ) так чтобы она помещалась на экране редактора. конкатенация - не красиво.

Dimka: ОМГ!!! я тут узнал, что в харборе для работы с dbf нет запросов. есть лишь простейшие операции поиска, фильтрации и никакой релятивисткой алгебры!!!!!!!!! как же вы с ними работаете. я в шоке.

gfilatov: Dimka пишет: в харборе для работы с dbf нет запросов А никто не заставляет работать только с dbf форматом. Вы можете использовать бесплатные MySQL/PosgreSQL/SQLite/FireBird и т.п.



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