Форум » [x]Harbour » Новичок » Ответить

Новичок

AdDa: Добрый вечер. Я впервые сталкиваюсь с данным языком и этой средой. Может кто показать, как создать обычный проект с простенькой программой скомпилировать и запустить ? И что лучше использовать, среду Harbour или CA Clipper ?

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

alkresin: CA Clipper - 16-разрядная среда, не развивавшаяся с 1995 года, так что, конечно, Harbour. Почитайте http://kresin.belgorod.su/rus/harbour.html .

rovix: Доброго времени суток. Недавно набрёл на информацию о существовании этого языка. Когда-то был недолгий опыт работы с клиппером, потом судьба разлучила нас :) Заинтересовался, скачал сборку HMG 3.1.1, установил и тут началось. В папке samples мелкие примеры с гуи вроде нормально компилятся и работают. Добрался до папки tutorial (меня в первую очередь, точнее, в основном интересует работа с базой данных) примеры, то не компилируются, то компилируются, но не работают. Перепробовал несколько версий (3.1.0, 3.0.46, 3.0.40, 3.0.20) и примеры tutor20, tutor21 и из папки sqlite одноимённый пример. Прописал пути к компилятору и hbmk2 (без этого даже компилировать не давала) Так вот в разных версиях по разному ... Когда говорил "не работают" выше по тексту, то имел ввиду поведение следующее, программа подразумевает, что изменённые в табличке(на форме) должны сохраняться в самом dbf-файле,а они не сохраняются, dbf-файл остаётся не изменённым. Нашёл версию, где скомпилированная программа правильно работает с dbf-файлом, но в этой версии компиляция проходит только если преварительно удалить ранее собранную программу (exe-файл) в протином случае при компиляции ругается на невозможность удалить этот файл. Короче полный абзац. При этом на форуме нет ни слова про такие проблемы :( Так что же у меня не так? Какая версия HMG считается стабильной? С чего же начать если хочется создавать гуи-программу для работы с базами данных? Сайт Кресина уже читал. Извиняюсь за сумбурность поста, но за две недели так и не удалось найти отправную точку для работы с харбуром, помогите

alkresin: Про HMG ничего не могу сказать. Если, как я понял, в ее сборку включен и сам Harbour, то это, на мой взгляд, не лучшая идея. Есть сам Harbour, его желательно брать с официального сайта, а есть к нему, в числе прочего, и разные GUI библиотеки, их тоже надо, я считаю, брать отдельно, чтобы сразу было четкое понимание структуры всего этого дела. Лично я порекомендовал бы свою HwGUI - но не буду настаивать. программа подразумевает, что изменённые в табличке(на форме) должны сохраняться в самом dbf-файле,а они не сохраняются, dbf-файл остаётся не изменённым. Нашёл версию, где скомпилированная программа правильно работает с dbf-файлом, Думаю, дело не в версии самой HMG, а в той программе - посмотрите код, сравните с новым. rovix пишет: но в этой версии компиляция проходит только если преварительно удалить ранее собранную программу (exe-файл) в протином случае при компиляции ругается на невозможность удалить этот файл Скорее всего, этот exe был у вас запущен, версия тут ни при чем. С чего же начать если хочется создавать гуи-программу для работы с базами данных? GUI - отдельно, базы данных - отдельно, одно с другим никак не связано. Попробуйте сначала без всякой GUI библиотеки написать что-нибудь для работы с БД - простую консольную программу на Харборе, точно такую, как если бы писали на Клиппере. А потом используйте наработанный код - чтение/поиск/добавление/изменение данных в выбранной вами GUI оболочке.


Andrey: AdDa пишет: Может кто показать, как создать обычный проект с простенькой программой скомпилировать и запустить ? Читайте раздел ДОКУМЕНТАЦИЯ, там много чего есть. Первые шаги смотрите - http://clipper.borda.ru/?1-6-0-00000002-000-0-0-1355737108

Панченко: Как вариант, можно посмотреть MiniGUI. gfilatov2002 пишет: Новый релиз библиотеки для компилятора BCC выложил на обновленном сайте по адресу: http://hmgextended.com/files/CONTRIB/hmg-2.1.9-setup.zip Также доступна полная сборка для компилятора MinGW по адресу: http://hmgextended.com/files/CONTRIB/hmg219-mingw.exe Новый релиз библиотеки для компилятора BCC перезалил также по адресу: http://minigui.mylivepage.ru/file/?fileid=8715 В папке Samples\Basic присутствуют примеры работы с БД с графическим интерфейсом. Все примеры рабочие! Удачи!

rovix: alkresin пишет: Про HMG ничего не могу сказать. Если, как я понял, в ее сборку включен и сам Harbour, то это, на мой взгляд, не лучшая идея. Есть сам Harbour, его желательно брать с официального сайта, а есть к нему, в числе прочего, и разные GUI библиотеки, их тоже надо, я считаю, брать отдельно, чтобы сразу было четкое понимание структуры всего этого дела. Лично я порекомендовал бы свою HwGUI - но не буду настаивать. Да HMG включает в себя всё необходимое с точки зрения создателя пакета для работы программиста. Я не против иметь чёткое понимание структуры, но где почитать как подключать ГУИ-библиотеки к чистому харбору? Какая должна быть структура папок? Я и чистый харбор пробовал и HwGUI, правда сказать сейчас где чего не получалось уже не получится - всё смешалось в голове, пакеты, версии...) цитата: программа подразумевает, что изменённые в табличке(на форме) должны сохраняться в самом dbf-файле,а они не сохраняются, dbf-файл остаётся не изменённым. Нашёл версию, где скомпилированная программа правильно работает с dbf-файлом, Думаю, дело не в версии самой HMG, а в той программе - посмотрите код, сравните с новым. Вот текст примера. Никаких, вроде бы, сложностей. [pre2]#include "hmg.ch" Function Main DEFINE WINDOW Win_1 ; AT 0,0 ; WIDTH 640 ; HEIGHT 480 ; TITLE 'Tutor 21: Data-Bound Controls Test' ; MAIN ; ON INIT OpenTables() ; ON RELEASE CloseTables() DEFINE TOOLBAR ToolBar_1 BUTTONSIZE 100,30 FLAT RIGHTTEXT BORDER BUTTON TOP ; CAPTION '&Top' ; PICTURE 'primero.bmp' ; ACTION ( DbGoTop() , Refresh() ) BUTTON PREVIOUS ; CAPTION '&Previous'; PICTURE 'anterior.bmp' ; ACTION ( DbSkip(-1) , Refresh() ) BUTTON NEXT ; CAPTION '&Next'; PICTURE 'siguiente.bmp' ; ACTION ( DbSkip(1) , if ( eof() , DbGoBottom() , Nil ) , Refresh() ) BUTTON BOTTOM ; CAPTION '&Bottom' ; PICTURE 'ultimo.bmp' ; ACTION ( DbGoBottom() , Refresh() ) BUTTON SAVE ; CAPTION '&Save' ; PICTURE 'guardar.bmp' ; ACTION ( Save() , Refresh() ) BUTTON UNDO ; CAPTION '&Undo' ; PICTURE 'deshacer.bmp' ; ACTION ( Refresh() ) END TOOLBAR @ 50,10 LABEL LABEL_1 VALUE 'Code:' @ 80,10 LABEL LABEL_2 VALUE 'First Name' @ 110,10 LABEL LABEL_3 VALUE 'Last Name' @ 140,10 LABEL LABEL_4 VALUE 'Birth Date:' @ 170,10 LABEL LABEL_5 VALUE 'Married:' @ 200,10 LABEL LABEL_6 VALUE 'Bio:' @ 50,200 TEXTBOX TEXT_1; FIELD TEST->CODE ; NUMERIC ; MAXLENGTH 10 @ 80,200 TEXTBOX TEXT_2; WIDTH 150 ; FIELD TEST->FIRST ; MAXLENGTH 30 @ 110,200 TEXTBOX TEXT_3; WIDTH 150 ; FIELD TEST->LAST ; MAXLENGTH 30 @ 140,200 DATEPICKER DATE_4 ; FIELD Test->Birth @ 170,200 CHECKBOX CHECK_5 ; CAPTION '' ; FIELD Test->Married @ 200,200 EDITBOX EDIT_6 ; FIELD Test->Bio ; HEIGHT 100 END WINDOW Win_1.Text_1.SetFocus ACTIVATE WINDOW Win_1 Return Nil Procedure Refresh Win_1.Text_1.Refresh Win_1.Text_2.Refresh Win_1.Text_3.Refresh Win_1.Date_4.Refresh Win_1.Check_5.Refresh Win_1.Edit_6.Refresh Win_1.Text_1.SetFocus Return Procedure Save Win_1.Text_1.Save Win_1.Text_2.Save Win_1.Text_3.Save Win_1.Date_4.Save Win_1.Check_5.Save Win_1.Edit_6.Save Return Procedure OpenTables USE TEST Return Procedure CloseTables USE Return[/pre2] Всё просто и понятно, но скомпилированная одной версией программа сохраняет изменённые данные, а в другой не сохраняет :( цитата: но в этой версии компиляция проходит только если преварительно удалить ранее собранную программу (exe-файл) в протином случае при компиляции ругается на невозможность удалить этот файл Скорее всего, этот exe был у вас запущен, версия тут ни при чем. Я бы тоже так сказал, если бы у меня кто-то спросил. Я смотрел и в процессах и вручную экзешники удаляются без проблем. цитата: С чего же начать если хочется создавать гуи-программу для работы с базами данных? GUI - отдельно, базы данных - отдельно, одно с другим никак не связано. Попробуйте сначала без всякой GUI библиотеки написать что-нибудь для работы с БД - простую консольную программу на Харборе, точно такую, как если бы писали на Клиппере. А потом используйте наработанный код - чтение/поиск/добавление/изменение данных в выбранной вами GUI оболочке. Пробовал и на простом харборе сделать консольную программу для простой работы с таблицей через browse() - таблица выводится, но нормально выводится только английский шрифт, с кирилическим шрифтом так и не получилось побороть хотя перепробовал все варианты найденные и на этом сайте и на других (ну по крайней мере, я так думаю, что всё перепробовал ). Кстати когда пробовал в ГУИ, то там проблему с кирилическим шрифтом решил сразу)

PSP: Текст программы, который вы показали, это пример DATA_BOUND из комплекта MiniGui. У меня он работает.

rovix: а какая версия MiniGUI стоит?

Andrey: rovix пишет: Пробовал и на простом харборе сделать консольную программу для простой работы с таблицей через browse() - таблица выводится, но нормально выводится только английский шрифт, с кирилическим шрифтом так и не получилось побороть хотя перепробовал все варианты найденные и на этом сайте и на других (ну по крайней мере, я так думаю, что всё перепробовал Слушайте, это даже смешно.... Кто здесь на сайте присутствует, у того проблем с русским языком в терминалке НЕТ ! Выкладывайте свой код программы, покажем где и что добавить нужно. И указывайте, на чем собираете (версию) компилятора. MiniGui - работает с базами на любом языке ! Проблем вообще не наблюдаю.

Dima: Andrey пишет: Слушайте, это даже смешно... Да ни чего смешного ..... Andrey пишет: Выкладывайте свой код программы +1

alkresin: rovix пишет: как подключать ГУИ-библиотеки к чистому харбору? Какая должна быть структура папок? Все гораздо проще :). Все зависит от инструмента, которым вы строите свою программу. Раз вы имели дело с HwGUI, то там были bat файлы, в которых содержатся команды вызова компилятора Harbour, С компилятора и линкера. Вот там, в этом bat файле надо указать правильный путь к библиотекам Harbour и GUI библиотекам, где бы они ни находились. В случае с HMG - понятия не имею, чем там строятся программы, но наверняка и там можно где-то пути указать. rovix пишет: Вот текст примера. Никаких, вроде бы, сложностей. Хм... Могу предположить, что сохранение производится в строках Win_1.Text_1.Save, но как реализован этот Save - кто его знает... Если это где-то внутри HMG, то, может, действительно в вашей версии ошибка была. Именно поэтому для начинающего это, мне кажется, не лучший вариант. Вы еще не научились работать с БД, используя родные средства Клиппера/Харбора, а вам уже подсовывают оболочки, где эти родные средства глубоко упрятаны. Я смотрел и в процессах и вручную экзешники удаляются без проблем. Может, там используется make-система и exe не удалялся потому, что дата его создания больше, чем даты создания объектных файлов и prg ? Пробовал и на простом харборе сделать консольную программу для простой работы с таблицей через browse() - таблица выводится, но нормально выводится только английский шрифт, с кирилическим шрифтом так и не получилось А в какой кодировке данные в dbf, 866 или 1251 ?

gustow: Посмотрите, если интересно - некогда начал [да забросил :( ] "курс молодого бойца по Harbour MiniGUI" (собственно, расширенный вариант MiniGUI.chm) (там хотя бы "начало начал" есть - но до работы с базами не добрался); может быть, поможет "самые азы" освоить, хоть самые первые приложения на МиниГУИ сделать - дальше проще будет, можно уже разбираться по примерам (хотя бы начиная с \MiniGUI\SAMPLES\BASIC).

rovix: программа проста до безобразия: [pre2] REQUEST HB_CODEPAGE_RU866 REQUEST HB_CODEPAGE_RU1251 HB_CDPSelect( "RU866" ) PROCEDURE MAIN() LOCAL aStruct SET DELETED OFF CLEAR SCREEN USE test.dbf CODEPAGE "RU866" BROWSE() RETURN [/pre2] Компилирую с помощью hbmk2 (Harbour Make (hbmk2) 3.0.0 (Rev. 16951))

rovix: gustow пишет: Посмотрите, если интересно - некогда начал [да забросил :( ] "курс молодого бойца по Harbour MiniGUI" (собственно, расширенный вариант MiniGUI.chm) (там хотя бы "начало начал" есть - но до работы с базами не добрался); может быть, поможет "самые азы" освоить, хоть самые первые приложения на МиниГУИ сделать - дальше проще будет, можно уже разбираться по примерам (хотя бы начиная с \MiniGUI\SAMPLES\BASIC). Спасибо, с простыми примерами входящими в состав пакета HMG у меня получается, но поскольку не получается элементарная операция углубляться как-то не резонно.

gustow: rovix , вот давайте-ка на Вашем примере (разбирая по шагам) и начнем делать "Harbour + MiniGUI для чайников"! Вы - как раз очень подходящий "объект" для "сравнительно честного разбора полетов" ;) Можно это (наверное, даже лучше будет) в отдельную ветку форума вынести (ну, или здесь продолжить)... Сначала четко (и кратко; то, что у сценаристов в кино называется "синопсис") сформулируйте задачу: "я хочу сделать прогу, которая будет делать вот это!.." (что-то простое для начала). И - поехали "по шагам"! (на каждом этапе не оставляя "за спиной" неясностей "на потом" - чтобы четко понимать, зачем мы делаем или пишем вот то-то или то-то...) Итак - ЦЕЛЬ (функционал) СОЗДАНИЯ ПРОГРАММЫ? (к примеру, "Телефонный справочник" ;) )

rovix: Согласен, это будет здорово. Телефонный справочник, очень даже подойдёт.

gustow: rovix , в общем, теперь ВЫ - главный "пинатель" и "шило в заднице" в этой теме :)) (в хорошем смысле!) Теребите "ветеранов" и "гуру", пока в каждом конкретном этапе не остается для ВАС "белых пятен" (для создания данного простого приложения - "навороты" будете изучать и осваивать потом!). Итак, вопросы?.. И - будем фиксировать каждй шаг в Викиучебнике "для чайников за 5 минут", да? (как у какого-нибудь Аристотеля, в виде "диалогов") Или?.. З.Ы. Сразу предупреждаю относительно себя: я пользую HMG + BCC ("стандартную поставку Григория Филатова"). Если для Вас желательно использовать компилятор mingw - у меня лично опыта работы с ним нет (или мизерно мало) и лично я буду менее полезен. Но, надеюсь, НЕ только я буду принимать участие в роли (хотя б относительного) "ветерана", а и другие?.. ;)

rovix: Для того, чтобы осознанно выбрать BCC или MinGW нужно знать преимущества и недостатки каждого из них. На текущий момент мне абсолютно всё равно каким компилятором пользоваться. Было только одно соображение в пользу MinGW, он более свежий, а значит, теоретически, лучше. HMG скачал по ссылке в этом топике 2.1.9, BCC тоже стоит. Подходит?

Andrey: gustow пишет: программа проста до безобразия: REQUEST HB_CODEPAGE_RU866 REQUEST HB_CODEPAGE_RU1251 HB_CDPSelect( "RU866" ) PROCEDURE MAIN() LOCAL aStruct SET DELETED OFF CLEAR SCREEN USE test.dbf CODEPAGE "RU866" BROWSE() RETURN HB_CDPSelect( "RU866" ) - Убрать совсем вверху и внести в функцию MAIN(). Этот оператор должен включать русскую кодовую страницу 866, а так у вас остается английская кодовая страница и на экране из-за этого "кракозябы" !

gustow: rovix пишет: Подходит? Вполне! (для меня, по крайней мере ;) пользую то же самое). В общем-то, от компилятора (BCC или mingw), думаю, мало что зависит в данном случае: просто берем "филатовскую" сборку HMG для соотв.компилятора, а батники для сборки примеров (надеюсь - поскольку mingw-шную сборку не смотрел) не отличаются, и в исходниках проги (которую мы пишем) разницы (не [должно] быть) никакой.

gustow: Andrey пишет: gustow пишет: _Я_ писал это??? О___о :))

Andrey: gustow пишет: _Я_ писал это??? О___о :)) Это форум сбоит, я просто цитату сделал....

Andrey: rovix пишет: программа проста до безобразия: Вот рабочий пример на МиниГуи - http://files.mail.ru/717B630330424576A84C633D8B6858C7

rovix: Andrey пишет: HB_CDPSelect( "RU866" ) - Убрать совсем вверху и внести в функцию MAIN(). Этот оператор должен включать русскую кодовую страницу 866, а так у вас остается английская кодовая страница и на экране из-за этого "кракозябы" ! Спасибо, так заработало!

rovix: Andrey, спасибо за пример программы и работает и компилируется - буду разбираться дальше.

rovix: gustow пишет: батники для сборки примеров а кнопка "Скомпилировать и запустить" в IDE HMG некорректно работает, собирать обязательно нужно с помощью батника?

gustow: rovix пишет: в IDE HMG Хе-хе! ;) Я как раз и предлагаю обойтись на первых порах (в самых первых примитивных приложениях) без HMG IDE (чтобы прочувствовать, зачем мы пишем каждую строчку). "Вижуалить" много ума не надо - только как "школа" (на первых уроках) это развращает и "расслабляет мозги" на весь дальнейший путь (имхо, конечно)... ;) А вот написать (в "тупом" FARовском редакторе) руками .PRG-файл из 20 строчек, понять, зачем каждый символ, потом запустить элементарный батник из одной строчки - и получить работающее 32-битное "родное" виндовое приложение со всеми "оконными делами"... это хороший стиль для начала, ящитаю ;)

rovix: написать 20 строк в текстовом редакторе не проблема когда знаешь, что писать. "Свижуаленный" текст содержит только минимум информации, всё равно все управляющие директивы (если они нужны) вставлять придётся руками. Вот только где взять список директив, чтобы понять какая нужна в том или ином случае? Под директивами я подразумеваю заклинания типа request, #define , #include, set . На основании своего жизненного опыта я могу прокомментировать практически весь код из примера, который прислал Andrey (ну, правда, часть подсмотрел ранее в последние пару недель пока пытался найти точку отсчёта. Но это когда программа готова, а вот написать такое с нуля.... Ничего подобного мне не попадалось за всё это время поисков в интернете. Нигде не попалось, что версия HMG 3.х.х экспериментальная, примеры там ну просто аховские, да ещё и не работают. Да, я не сказал, в начале, что пользуюсь IDE входящим в поставку пакета. Короче можно долго ещё жалиться на судьбу, давайте двигаться дальше. Чего будем делать дальше? Я сочиняю программу и прошу подсказки когда что-то не получается? Кстати, по поводу элементарного батника из одной строки - имеется ввиду батник вызывающий батник compile из папки bath с передачей ему полученных параметров?

Andrey: rovix пишет: Нигде не попалось, что версия HMG 3.х.х экспериментальная, примеры там ну просто аховские, да ещё и не работают. Бери МиниГуи от Филатова, там больше примеров и более всего понятней, да и помощи проси здесь на форуме в разделе GUI. Бери и используй для работы сначала стандартную связку BCC + MiniGui ! Моя начальная дока по МиниГуи - http://clipper.borda.ru/?1-6-0-00000003-000-0-0-1355737585 Вот новые примеры по МиниГуи, которые я делаю - http://files.mail.ru/F0321CE2BC214FC8994412485BB100C4 rovix пишет: Кстати, по поводу элементарного батника из одной строки - имеется ввиду батник вызывающий батник compile из папки bath с передачей ему полученных параметров? Да это так ! Напиши (нарисуй) какую программу делаешь. Подскажем как реализовать.

gustow: rovix пишет: Ничего подобного мне не попадалось за всё это время поисков в интернете. Я в своем (заброшенном) "курсе молодого бойца" на narod.ru (собственно, расширенном Help'е MinGUI.chm) как раз такой процесс и начал описывать (писание "руками" и "с нуля"): именно что "пока не отвлекаясь на детали (какие вообще есть #define, #include и пр.)", а - для начала - говоря "пока что эти строчки просто скопируй, зачем они нужны - разберемся позже, когда первые простейшие приложения научишься создавать". Насчет rovix пишет: версия HMG 3.х.х экспериментальная, примеры там ну просто аховские, да ещё и не работают. не знаю - пользуюсь тем, что Григорий выкладывает; да, возможно, в некоторых случаях там что-то и не работает из примеров, но BASIC - работает вроде бы всё, и так, как должно работать. Я же предложил (как мне кажется, правильную) последовательность: "пункт 1й - ВЫ кратко описываете, что хотите построить - какое по ФУНКЦИОНАЛУ приложение, начальные/граничные условия..." и т.д. Если хотите, чтобы процесс "написания чайниковского мануала параллельно написанию приложения" был построен как-то по-другому - предлагайте (или кто-то пусть предложит) как. "Искусство программирования Дональда Кнута в 3-х толстенных томах" или керниган-ричевское "Программирование на С" писать не собираюсь (времени-сил-способностей не имею)... ;) Хотя если кто-то напишет - с удовольствием (и, надеюсь, с пользой для себя) почитаю.

rovix: Телефонный справочник. Главное окно: На форме выведен список телефонных номеров отсортированный по фамилии. Поля в телефонном справочнике: -ТелНомер: строка, 7 символов, принимаются только цифры; -МобНомер: мобильный номер, строка, 15 символов, принимаются только цифры; -Фамилия: строка 30 символов; -Имя: строка 20 символов; -Отчество: строка, 30 символов; -Адрес: строка, 100 символов; -Место работы: строка, 100 символов; -Примечание: строка, 100 символов. На форме присутствуют кнопки: -Добавить: добавить контакт; -Изменить: изменить контакт,выскакивает модальное окно с полями входящими в БД (карточка клиента); -Удалить: удалить контакт, естественно переспросив пользователя; -Поиск: поиск контакта по любому полю имеющемуся в таблице; -Печать: печать текущей телефонной карточки; -Выход: выход из телефонного справочника. Кроме этого, форма реагирует на нажатия клавиш: -Ctrl+A: добавить контакт; -Ctrl+E: изменить контакт; -Ctrl+F: поиск; -Ctrl+P: печать; -Ctrl+X: выход из справочника; -Ctrl+Y: удалить контакт. Примерно такой вод телефонный справочник. Вообщем-то для учебных целей можно, конечно же, часть этого функционала убрать или упростить, например, сделать поиск только по фамилии.

gfilatov2002: rovix пишет: Телефонный справочник. В первом приближении поставленную задачу покрывает пример из папки minigui\samples\Basic\BROWSE_8 По шагам: 1) создайте базу данных требуемой структуры 2) откомпилируйте вышеуказанный пример с помощью батника Compile.bat 3) откройте в запущенной программе ранее созданную базу Вот и все

rovix: Andrey, а для чего используется в твоём первом примере вывод в гриде через массив, а не напрямую из таблицы? Для защиты исходного содержимого файла или так быстрее работает форма? Мне кажется, что при таком подходе расходы памяти при работе программы будут выше, а время отображения формы больше, чем при работе напрямую с таблицей. Как пример очень интересно, однако интересно с какой целью это можно использовать.

Andrey: rovix пишет: Andrey, а для чего используется в твоём первом примере вывод в гриде через массив, а не напрямую из таблицы? Для защиты исходного содержимого файла или так быстрее работает форма? Это же конечно просто пример. Показ работы с 2-мя базами в различной кодовой страницы и вывод на ОДНУ форму ! rovix пишет: Мне кажется, что при таком подходе расходы памяти при работе программы будут выше, а время отображения формы больше, чем при работе напрямую с таблицей. Да, это так. Но в качестве примера можете поставить 2 самые большие ваши базы и написать, сколько "откушала" программа на МиниГуи у системы. Я думаю многим будет интересно !

rovix: Подскажите, а что команда EVAL требует каких-то предварительных пасов для своего использования? Включил в текст программы EVAL - в ответ получил ошибку: [pre2]--------------------------- Program Error --------------------------- Error BASE/1004 No exported method: EVAL Called from (b)EVAL(0) Called from MAIN(5) --------------------------- ОК --------------------------- [/pre2] чтобы это могло значить?

rovix: может не по тому пути иду :( Стоит задача получить значение контрола на форме(чекбокса) получив его имя из составляющих, то есть есть несколько контролов с именем типа Check_XXX, Check_YYY и так далее. Как получить значение не указывая прямо win1.Check_XXX.Value, подставляя полученное программным путём XXX или YYY?

PSP: rovix, вы бы показали, что там Eval должен съэвалить... )))

rovix: ну что-то типа: [pre2] ... var1="XXX" state := eval("win1.Check_" + var1 + ".Value") if (state == .T.) ... else ... endif [/pre2]

rovix: набрёл здесь на форуме на статью про макроподстановку (&) для clipper, почти получилось, но чуть-чуть не хватает теории его применения относительно minigui

Dima: rovix пишет: state := eval("win1.Check_" + var1 + ".Value") Цитата из NG Сlipper [pre2] EVAL() Выполняет блок кода. ------------------------------------------------------------------------------ Синтаксис EVAL(<блок кода>,[<список аргументов>]) --> значение последнего выражения [/pre2]

rovix: Dima пишет: EVAL() Выполняет блок кода. Я пробовал [pre2]eval("state := win1.Check_" + var1 + ".Value") [/pre2] Но, ошибка одна и та же "No exported method: EVAL" В примерах есть такой пример ? eval(1) и здесь всё равно "No exported method: EVAL" Потому и спросил.

PSP: Eval в общем случае выглядит примерно так: Eval( { || <что-то выполняется> } ) В вашем случае Eval, имхо, не подходит. Равно как и макроподстановка (&). Используйте GetProperty.

Andrey: Я вообще не понял... Это ветка про Харбор или МиниГуи ?

rovix: PSP, спасибо

rovix: Andrey, да это скорее minigui чем harbour,. но я ж новичок потому и нет ещё четкой градации...

rvu: Давно занимаюсь консольной программой на xHarbour. А сейчас возможен новый проект, но нужно уже GUI. Тут я тоже совсем новичок, ничего не знаю. Для начала: MiniGUI с xHarbour тоже можно использовать? Или в такой связке могут проблемы быть?

Andrey: rvu пишет: Для начала: MiniGUI с xHarbour тоже можно использовать? Или в такой связке могут проблемы быть? Да, можно ! Проблем никаких нет. Но нужно собирать программы МиниГуи с ключом для библиотеки хХарбор. Как, уже не помню. Если это принципиально, то у Григория спросите. Пишите вопросы (открывайте тему) в разделе МиниГуи - http://clipper.borda.ru/?0-1 Инструкции для перехода на МиниГуи смотреть здесь - http://clipper.borda.ru/?1-6-0-00000003-000-0-0-1359816425 Некоторые вопросы по переходу на МиниГуи здесь - http://files.mail.ru/8C1543C557AE48628B8DF9BA475E985C Если программа пишется заново, то не собирайте её для хХарбора, лучше уже сразу на Харборе. Совместимость одинакова, просто чтобы не париться с ключами сборки.

rvu: Andrey пишет: Если программа пишется заново, то не собирайте её для хХарбора, лучше уже сразу на Харборе. хХарбор.орг бесплатный. А Харбор ведь покупать надо? Или как?

Andrey: rvu пишет: А Харбор ведь покупать надо? Или как? С какого перепугу ? http://harbour-project.sourceforge.net/ Читаем сайт: Overview The Harbour Project is a Free Open Source Software effort to build a multiplatform Clipper language compiler. Harbour consists of the xBase language compiler and the runtime libraries with different terminal plugins and different databases (not just DBF). Для работы с МиниГуи качать его не нужно... Харбор уже есть в поставке МиниГуи, т.е. готовый комплект разработчика, лицензия тоже там есть ! Дерзайте и все у вас получиться !



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