Форум » GUI » HDroidGUI » Ответить

HDroidGUI

alkresin: Выложил на github HDroidGUI 0.1:https://github.com/alkresin/HDroidGUI и пример приложения на нем - простенький калькулятор, принимающий любые выражения на Harbour: https://github.com/alkresin/hdcalcul Описания, документации еще нет, даже страницу у себя еще не сделал. HDroidGUI/utils/newproject.prg - утилита, которая создает новый проект.

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

Andrey: alkresin пишет: HDroidGUI Это что за "зверь" такой ? Звучит интересно... Очень ждем продолжения...

alkresin: Это "зверь", который позволяет, написав вот такой код ( hdcalcul ): #include "hdroidgui.ch" FUNCTION HDroidMain LOCAL oActivity, oLayV, oLayH1, oBtn1, oEdit1, oText1 INIT WINDOW oActivity TITLE "Calculator" BEGIN LAYOUT oLayV SIZE MATCH_PARENT,MATCH_PARENT BEGIN LAYOUT oLayH1 HORIZONTAL SIZE MATCH_PARENT,WRAP_CONTENT EDITBOX oEdit1 HINT "Input an expression" SIZE 0,MATCH_PARENT BUTTON oBtn1 TEXT "Ok" TEXTCOLOR 255 SIZE WRAP_CONTENT,WRAP_CONTENT ; ON CLICK {||onBtn1(oEdit1,oText1)} END LAYOUT oLayH1 TEXTVIEW oText1 TEXTCOLOR 10485760 BACKCOLOR "#FFFFFF" SIZE MATCH_PARENT,MATCH_PARENT END LAYOUT oLayV RETURN oActivity STATIC Function OnBtn1( oEdit1, oText1 ) LOCAL s, xRez, bOldError, lRes := .T. s := oEdit1:GetText() bOldError := ErrorBlock( { |e|break( e ) } ) BEGIN SEQUENCE xRez := &( Trim( s ) ) RECOVER xRez := "Error..." END SEQUENCE ErrorBlock( bOldError ) oText1:SetText( Iif( xRez == Nil, "Nil", Iif( Valtype(xRez)=="A", "Array", ; Transform( xRez, "@B" ) ) + Chr(10)+Chr(13) + oText1:GetText() ) ) RETURN "1" получить калькулятор выражений для Android - apk пакет, готовый к загрузке на устройство.

alkresin: Начал писать описание - добавил статью о разработке под Андроид: http://www.kresin.ru/android.html


alkresin: Продолжаю сочинять описание - добавил страницу по HDroidGUI: http://www.kresin.ru/hdroid.html Там еще много чего надо написать, буду добавлять по мере возможности.

Andrey: alkresin пишет: Там еще много чего надо написать, буду добавлять по мере возможности. Спасибо ! Будем ждать и пробовать !

alkresin: Обновил http://www.kresin.ru/hdroid.html - там теперь довольно подробно ( по моему ) изложено, как начать писать свое приложение с HDroidGUI. Теперь осталось сделать описание существующих на данный момент команд и классов, ну и сам HDroidGUI развивать.

alkresin: Выложил к себе http://www.kresin.ru/hdroid.html HDroiudGUI 0.2 build 2, hdcalcul 1.1 - исходники и готовый apk. По-моему, уже есть определенный минимум функциональности, чтобы писать какие-то учетные приложения. Особенно важно, что есть доступ к letodb серверам. Вообще-то, letodb - это единственная удаленная СУБД, к которой есть прямой доступ с Андроид-устройств. Прямой - т.е, не требующий наличия веб-сервисов ( http-сервер + PHP + набор PHP скриптов, написанных специально для поддержки вашей программы на Андроиде ).

Andrey: То что нужно ! Мне тоже надо на Андроид программу писать. Всё времени не хватает, пока занят МиниГуи...

Andrey: alkresin пишет: По-моему, уже есть определенный минимум функциональности, чтобы писать какие-то учетные приложения. Особенно важно, что есть доступ к letodb серверам Можно же уже сделать для андроида с LetoDb простую программку типа чата ? Или просто получения сообщений себе на телефон кто работает сейчас в твоей программе ? Ну можно еще и до кучи отрубание сервера или его перезагрузку.

alkresin: Andrey пишет: Можно же уже сделать для андроида с LetoDb простую программку типа чата ? Или просто получения сообщений себе на телефон кто работает сейчас в твоей программе ? Можно. Ну можно еще и до кучи отрубание сервера или его перезагрузку. Если сервер поддерживает удаленное отрубание ( Pasha лучше знает ), то можно.

Andrey: alkresin пишет: Если сервер поддерживает удаленное отрубание ( Pasha лучше знает ), то можно. Нужно просто сообщение, когда SERVER LetoDB выключается... А вообще это событие (перезагрузку компа) отследить можно ? Просто чтобы к себе в журнал программы записать, тогда и тогда комп выключался...

alkresin: В Letodb клиенте есть функция, которая определяет, в т.ч, время работы сервера с момента старта - т.е., можно получить время последней перезагрузки. Кстати, насчет чата я, наверное, погорячился - для этого нужен таймер, чтобы опрашивать сервер не по запросу пользователя, а автоматически, а я его еще не делал. В ближайшее время посмотрю это дело.

Andrey: alkresin пишет: В ближайшее время посмотрю это дело. Спасибо БОЛЬШОЕ !

alkresin: Добавил поддержку таймера в hDroudGUI. В hdcalcul - пример использования.

Dima: alkresin А можно не большой примерчик для понимания ? Создание базы с RDD DBFCDX и просмотр базы с помощью какого либо графического BROWSE. PS В каком приложении под Windows удобнее отлаживать (запускать) программы для Андроид ?

alkresin: Dima пишет: Создание базы с RDD DBFCDX и просмотр базы с помощью какого либо графического BROWSE. Базу создаем как и на любой другой платформе - надо только место выбрать. Есть домашний каталог приложения, его можно получить функцией hd_HomeDir(), этот каталог доступен только из этого приложения, после удаления приложения он тоже удаляется. Есть общие каталоги, например, для документов, его получаем так: hd_getSysDir( "doc" ). Browse еще нет. Интерфейс имеет определенную специфику - нет, например, точного позиционирования виджетов. Описание скоро будет. В каком приложении под Windows удобнее отлаживать (запускать) программы для Андроид Да вариант, собственно, один - эмулятор. Он входит в комплект Android SDK Tools: http://www.kresin.ru/android.html#andr2, после установки tools надо запустить "SDK Manager.exe" и из него поставить эмулятор.

Dima: alkresin Спасибо.

alkresin: Сделал browse, выложил новый пример на github: https://github.com/alkresin/hddbf Вот такой нехитрый текст: #include "hdroidgui.ch" FUNCTION HDroidMain Local oWnd, oLayV, oBrw, cPath Local i, arr := {"Petr","Fedor","Alexander","Viktor","Nikolay","Ivan","Anton", ; "Boris","Alexey","Andrey","Konstantin","Oleg","Igor","Pavel","Sergey","Mikhail","Dmitry", ; "Artem","Nikita","Ilya","Vladimir","Vyacheslav","Efim","Lev","Roman","Semen","Miron","Matvey","Leonid"} INIT WINDOW oWnd TITLE "Browse" ON EXIT {||dbCloseAll()} MENU MENUITEM "Exit" ACTION hd_calljava_s_v( "exit:") ENDMENU BEGIN LAYOUT oLayV SIZE MATCH_PARENT,MATCH_PARENT cPath := hd_HomeDir() RDDSETDEFAULT( "DBFCDX" ) IF !File( cPath+"testa.dbf" ) dbCreate( cPath+"testa", { {"NAME","C",10,0}, {"NUM","N",4,0}, {"INFO","C",32,0}, {"DINFO","D",8,0} } ) USE ( cPath+"testa" ) New EXCLUSIVE FOR i := 1 TO Len(arr) APPEND BLANK REPLACE NAME WITH arr\[i\], NUM WITH 1000+i, INFO WITH "Record number "+Ltrim(Str(i)), DINFO WITH Date()+i NEXT ELSE USE ( cPath+"testa" ) New EXCLUSIVE ENDIF GO TOP IF !Empty( Alias() ) BROWSE oBrw DBF Alias() HSCROLL ON CLICK {|o,n|hd_toast("Row: "+Ltrim(Str(n))+": "+Trim((o:data)->NAME)+Chr(10)+Dtoc((o:data)->DINFO))} oBrw:nRowHeight := 40 oBrw:AddColumn( HDColumn():New( {|o|(o:data)->NAME}, 120 ) ) oBrw:AddColumn( HDColumn():New( {|o|Str((o:data)->NUM,4)}, 120 ) ) oBrw:AddColumn( HDColumn():New( {|o|(o:data)->INFO}, 180 ) ) ENDIF END LAYOUT oLayV ACTIVATE WINDOW oWnd RETURN NIL (перед квадратными скобками поставил "\" - иначе они здесь не отображаются)

alkresin: hDroidGUI - 0.3, сборка 2 - разные исправления и улучшения, связанные с browse. hddbf - 1.1 - добавление и редактирование записей

alkresin: hDroidGUI - 0.3, сборка 3 - добавлена поддержка hbnetio hddbf - 1.2 - добавлены стили для кнопок



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