Форум » Clipper » Кто-нибудь пишет на CA-Visual Object 2.7 ? » Ответить

Кто-нибудь пишет на CA-Visual Object 2.7 ?

Гость:

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

Гость: А вопрос такой. Хочу перенести свои Clipper-программы на Visual Objects. Стоит или нет?

Гость: А что, некому что сказать?

gfilatov: Гость пишет: некому что сказать? Я никогда не писал на CA-Visual Object, но знаю, что это равносильно переписыванию Клиппер-программ практически "с нуля". Поэтому рекомендую обратить Ваше внимание на 32-разрядный Клиппер-совместимый компилятор Харбор (http://www.harbour-project.org/).


Гость: Обратил внимание и мало, пока, о чем говорит. А посмотреть, где-нибудь, можно, как выглядит приложение (фрагментик) после этого Harbour?

Гость: gfilatov пишет: Я никогда не писал на CA-Visual Object, но знаю, что это равносильно переписыванию Клиппер-программ практически "с нуля". Поэтому рекомендую обратить Ваше внимание на 32-разрядный Клиппер-совместимый компилятор Харбор а в разделе форума » [x]Harbour » Список "серьезных" приложений на (x)Harbour Сергей Р. пишет Если делать консольное приложение , то работы (программа без крутых наворотов) на пять минут . А вот если использовать GUI , то там переделывать и переделывать , и еще раз переделывать . на что gfilatov отвечает Согласен на все сто! gfilatov! Так в чем разница затратов при переносе Clipper-программ в Visual Objects и в Harbour?

MikeP: Долго выбирал на что "переехать" с Clipper'а. Решился на CAVO. Если бы не сайт http://cavo.narod.ru/ не знаю, возможно и не получилось бы. (Что-то умер он в последнее время). А так начал с книги Колонина и пошло-поехало потихоньку. Примеры смотрел, документацию читал. Конечно, не все сразу, но... Да, практически все переписывалось заново, только алгоритмы клипперные использовал. Все остальное - с нуля. На "въезжание" ушла пара месяцев. Но когда что-то поймешь, все идет довольно быстро. В итоге - не жалею. Все работает, все нормально. Единственное, что не победил - это печать из винды. Наверное можно и нужно, но руки не доходят. Печатаю через формирование символьного файла и затем копирование его на принтер. Принтера беру только лазерные, аппаратно русифицированые, LPT-шные.

gfilatov: Гость пишет: Так в чем разница затратов при переносе Clipper-программ в Visual Objects и в Harbour? Это зависит от постановки задачи портирования Если устраивает консольный режим работы программы (по типу Фара), то Вы просто перекомпилируете программу под Харбором, и получаете на выходе полноценное 32-разрядное приложение (но без графической обертки). Если же требуется получить на выходе программу, внешне ничем не отличающуюся от любой другой Виндовой программы, то потребуется переделывать интерфейс. Например, так: /* * Contactos * (C) 2003 Roberto Lopez roblez@ciudad.com.ar */ /* Файл 'minigui.ch' должен быть включен во все программы MiniGUI */ #include "minigui.ch" Set Procedure To ContactosAdmin Set Procedure To TiposAdmin Function Main /////////////////////////////////////////////////////////////////////////////// // Инициализация RDD DBFCDX /////////////////////////////////////////////////////////////////////////////// REQUEST DBFCDX RDDSETDEFAULT( "DBFCDX" ) /////////////////////////////////////////////////////////////////////////////// SET DELETED ON SET DATE FRENCH SET CENTURY ON SET BROWSESYNC ON /* У всех программ MiniGUI должно быть главное окно, которое должно быть определено раньше любого другого окна. */ DEFINE WINDOW Main ; AT 0,0 ; WIDTH 640 ; HEIGHT 480 ; TITLE 'Contactos' ; MAIN ; ICON 'Tutor.Ico' /* DEFINE WINDOW: Начинается определение окна. Должно быть указано имя окна, которое будет единственным для всей программы. (Может быть использовано в коде одно и то же имя более одного раза, но только одно окно может быть активно в одно и то же время) AT: Указывает Ряд,Колонку верхнего левого угла окна (в пикселях) WIDTH: Ширина окна, указанная в пикселях HEIGHT: Высота окна, указанная в пикселях TITLE: Заголовок окна MAIN: Показывает, что определяется главное окно программы */ // Определение главного меню // У каждого меню могут быть разнообразные POPUPы (подменю) // Количество подменю не ограничено. // После DEFINE POPUP указывается название пункта меню // '&' используется, чтобы определить горячую клавишу, ассоциированную // с пунктом меню. В нашем примере используется комбинация ALT+A // Каждый пункт меню определяется посредством MENUITEM. // Класс ACTION указывает процедуру, которая будет выполнена, // когда пользователь выберет данный пункт меню. // SEPARATOR включает горизонтальную линию, использованную, чтобы // отделять пункты меню. DEFINE MAIN MENU DEFINE POPUP '&Archivo' MENUITEM '&Contactos' ACTION AdministradorDeContactos() MENUITEM '&Tipos de Contacto' ACTION AdministradorDeTipos() SEPARATOR MENUITEM '&Salir' ACTION EXIT PROGRAM END POPUP DEFINE POPUP 'A&yuda' MENUITEM 'A&cerca de...' ACTION MsgInfo ('Tutor ABM' + Chr(13) + Chr(10) + '(c) 2003 Roberto Lopez' ) END POPUP END MENU // Закончено определение главного меню // Элемент управления TOOLBAR может содержать разнообразные // кнопки. // Размер всех кнопок определяется с помощью // класса BUTTONSIZE <Ширина>,<Высота> // FLAT создает плоские кнопки // RIGHTTEXT указывает, что текст на кнопках выводится // справа от рисунка, помещенного на кнопку. DEFINE SPLITBOX DEFINE TOOLBAR ToolBar_1 FLAT BUTTONSIZE 110,35 RIGHTTEXT BUTTON Button_1 ; CAPTION 'Contactos' ; PICTURE 'Contactos' ; ACTION AdministradorDeContactos() // CAPTION Указывает текст на кнопке. // PICTURE Файл ассоциированного рисунка (BMP) // ACTION Процедура события, присоединенная к кнопке // (то, что будет выполнено, когда нажмут кнопку) BUTTON Button_2 ; CAPTION 'Tipos Ctto.' ; PICTURE 'Tipos' ; ACTION AdministradorDeTipos() BUTTON Button_3 ; CAPTION 'Ayuda' ; PICTURE 'ayuda' ; ACTION MsgInfo ('Tutor ABM' + Chr(13) + Chr(10) + '(c) 2003 Roberto Lopez' ) END TOOLBAR END SPLITBOX // Строка состояния, которая появляется в нижней части от окна. // У нее могут быть разнообразные секции, определенные посредством STATUSITEM // Существуют опциональные предопределенные секции // CLOCK и DATE (они показывают часы и текущую дату) DEFINE STATUSBAR STATUSITEM "(c) 2003 Roberto Lopez roblez@ciudad.com.ar" CLOCK DATE END STATUSBAR // Закончено определение окна END WINDOW // Требуется развернуть окно на весь экран MAXIMIZE WINDOW Main // Выводим окно на экран ACTIVATE WINDOW Main // Команда ACTIVATE WINDOW устанавливает состояние ожидания. // Программа будет остановлена в этой точке до тех пор, пока окно // не будет закрыто интерактивно или программно. При этом будут выполняться // только процедуры событий, присоединенные к элементам управления окна // (или к самому окну) Return Готовые примеры программ и необходимый бесплатный инструментарий можно посмотреть по адресу: http://minigui.mylivepage.ru/file/index

Григорьев Владимир: На мой скромный взгляд писать программы на CAVO бесперспективно. Это шаг не вперед, а назад! Я не знаю, кто поддерживает сейчас CAVO, и вообще развивается ли этот продукт кем-то. Насколько мне известно, как и в любом программном продукте, в нем имеются ошибки, но исходный код CAVO недоступен. Все это затрудняет написание в нем программ и сужает возможности программиста. [x]HARBOUR интенсивно развивается сообществом Clipper-программистов. Исходные тексты доступны. Механизм написания объектов также прозрачен, так что вы сами можете написать любую каркасную оболочку для API-вызовов Windows. У [x]HARBOUR есть единственный недостаток - это то, что я до сих пор с ним не работаю.

Гость: Gfilatov, спасибо за фрагментик. Но, прося фрагментик приложения, я имел в виду не пример программы, а Skreenshot готового приложения (Clipper-приложение в графической обвёртке - под Windows например). Примерно вот так: click here click here Григорьев Владимир пишет: На мой скромный взгляд писать программы на CAVO бесперспективно. Это шаг не вперед, а назад! Я не знаю, кто поддерживает сейчас CAVO, и вообще развивается ли этот продукт кем-то. А кто поддерживает Clipper (ведь вы на нём пишете)? Разве не они? click here Они же поддерживают и равивают CAVO. Григорьев Владимир пишет: ... исходный код CAVO недоступен. Все это затрудняет написание в нем программ и сужает возможности программиста. А как быть тем, кто пишет на C, C++, C#, Java, Delphi ... Им что доступно?

Гость: Тем, кто компилирует программу под Харбором - это должно быть интересно (но мого и ошибаться) click here

Гость: мого=могу

Григорьев Владимир: Гость пишет: А как быть тем, кто пишет на C, C++, C#, Java, Delphi ... Им что доступно? А длях тех, кто пишет на С и С++, все исходные тексты библиотек доступны. Никаких проблем: и run-time библиотеки, и MFC, и VCL (если конечно имеется профессиональный пакет) и другие. Что касается Clipper, то это уже судьба была такая: чтобы профессионально что-то там делать, мне пришлось покапаться в "кишках" Clipper. Но на это уходит очень много времени. Но повторять этот путь как-то не хочется. Надо тратить свои усилия на что-то более продуктивное, чем дисассемблирование. В [x]Harbour исходные тексты доступны, поэтому у программиста есть свобода в реализации своих задумок. Более того вы вообще можете развивать язык по вашему усмотрению. CAVO же является коммерческим продуктом, и вы не сможите с ним делать то, что хотите.

Гость: Григорьев Владимир, а некоммерческий [x]Harbour вы используете в комерческих целях?

Гость: Вопрос, адресованный Григорьеву Владимиру, я забираю обратно. У [x]HARBOUR есть единственный недостаток - это то, что я до сих пор с ним не работаю. И все же вопрос остаётся в силе для тех, кто не видит такого недостатка в [x]Harbour. ... некоммерческий [x]Harbour вы используете в комерческих целях?

rvu: Гость пишет: некоммерческий [x]Harbour вы используете в комерческих целях? Ну да. И что?

Guest: Для Григорьева Владимира: Давайте не вводить в заблуждение начинающих изучать новый язык программирования. 1. Visual Objects имеет практически тот же объем исходных текстов в составе SDK, что и VC++, CBuilder и т.д. 2. Поскольку 70% разработчиков VO это бывшие разработчики Clipper, сохраняется преемственность в языке. По крайней мере, когда я переносил в 2000г. свои клипперные наработки на VO, более 80% переносилось 1:1, исключая только интерфейс. По кускам кода, содержащим работу с DBF ничего практически не переделывалось. Потом, правда, вместо работы с алиасами и областями, постепенно перевел на классы, т.к. это на порядок удобнее. 3. При обработке больших массивов данных в памяти есть возможность включить сборщик мусора и получить максимально возможный несегментированный объем памяти. Прекрасный макрокомпилятор и т.д. и т.п. 4. Можно писать трактаты и с пеной у рта отстаивать свои любимые продукты. Истина в одном: надо пробовать самому и смотреть, что тебе ближе и понятнее. Если мне требуется разработать программу с минимумом интерфейса, и с максимальным быстродействием - это C++, а если нужен красивый интерфейс и работа с БД (DBF или SQL) и сроки поджимают, то только VO27.

Петр: Я не знаю, сколько среди разработчиков [x]Harbour разработчиков Clipper, но преемственность в языке там тоже ощущается. По поводу переноса здесь на форуме уже достаточно написано - "исключая только интерфейс" - хороший финт ушами По кускам кода, содержащим работу с DBF ничего практически не переделывалось - тоже приятно слышать

gfilatov: Гость пишет: Skreenshot готового приложения (Clipper-приложение в графической обвёртке - под Windows например). Скачай и посмотри сам эту программу (Harbour+MiniGUI): http://minigui.mylivepage.ru/file/?fileid=2018

Григорьев Владимир: Guest пишет: Для Григорьева Владимира: Давайте не вводить в заблуждение начинающих изучать новый язык программирования. Я высказываю свое мнение, что лучше работать с открытыми исходными кодами, чем с коммерческими продуктами. [x]Harbour - это некоммерческий продукт с исходными открытыми кодами. Я очень сомневаюсь, что исходные коды самого CAVO являются открытыми и входят в поставку продукта, как это можно понять из ваших высказываний. Кроме того важно не сколько из Clipper в CAVO перешло разработчиков, а сколько клипперистов мирового сообщества работает с тем или иным продуктом. На мой взгляд сообщество программистов, работающих с [x]Harbour очень большое. А это значит, что вы можете получать своевременную поддержку, что продукт будет развиваться, и вы не будете ждать годами и платить деньги за очевидный баг в продукте, как это происходит с коммерческими продуктами.

Guest: Уважаемый Владимир! Я целиком и полностью согласен в отношении использования продуктов с открытыми исходными текстами. По собственному опыту знаю, что различные уверения по преимуществам использованию коммерческих продуктов (якобы только за деньги можно иметь профессиональный продукт), в большинстве случаев несостоятельны. В отношении исходных текстов в VO, компилятор исходных текстов программ, драйверы низкоуровневого доступа к БД поставляются без исходных текстов. Но в [x]Harbour они также закрыты, поэтому все равно приходится в какой-то мере от кого-то зависеть. Полностью открытые исходные тексты предоставляет только CLIP, но это для Linux. Касательно своевременной поддержки открытых продуктов - это вопрос очень спорный. Но есть очень важное преимущество, что сам пользователь может исправить явные баги. Я не знаю количество клипперистов, перешедших на VO у нас, но взгляните на заморские форумы по работе с БД. Так или иначе, но только пользователь, попробовав все должен для себя сам решить, на чем ему остановиться.



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