UniGUI and ExtPascal

2,271 views
Skip to first unread message

Farshad

unread,
Jul 27, 2011, 8:20:36 AM7/27/11
to ExtPascal
Hello Wanderlan,

I am the developer of uniGUI framework. As you may already know uniGUI
is a web application framework for Delphi. It provides a RAD backend
to create advanced web applications. uniGUI uses ExtPascal wrappers as
gateway between uniGUI components and ExtPascal.

http://www.unigui.com
http://www.unigui.com/demo
http://forums.unigui.com/

UniGUI is curretntly beta and with version 0.86.0 there are many new
exciting features including client side scripting.

You have a done a wonderful job with ExtPascal and I currently use a
mıodified version of ExtPascal in uniGUI. As far as I know you and
Phil are people who directly contribute to ExtPascal project.

It is almost one year after I published first version of beta. I
wanted to know if you are interested to collaborate in this project
especially in enhancing the ExtPascal part which includes Ext JS 4 and
Sencha touch integration.

Best regards,
Farshad Mohajeri
FMSoft Co. Ltd.

Marcos Douglas

unread,
Jul 27, 2011, 8:49:31 AM7/27/11
to extp...@googlegroups.com

Your project does not compile for FreePascal? ExtPascal does. Think about it.
There is a SVN sources?

Marcos Douglas

Farshad

unread,
Jul 27, 2011, 9:02:51 AM7/27/11
to ExtPascal


On Jul 27, 3:49 pm, Marcos Douglas <m...@delfire.net> wrote:
> Your project does not compile for FreePascal? ExtPascal does. Think about it.
> There is a SVN sources?
>

uniGUI is not an open source project. FreePascal port is not available
yet. Currently it is a Delphi only project.

Marcos Douglas

unread,
Jul 27, 2011, 1:11:27 PM7/27/11
to extp...@googlegroups.com

If it were an open source project, would be a good help to ExtPascal
and you will have more helpers/coders, don't you think?

Well, just my 2 cents...

Marcos Douglas

Wanderlan Santos dos Anjos

unread,
Jul 27, 2011, 1:15:42 PM7/27/11
to extp...@googlegroups.com
Yes Farshad,

As we have talked I'm very interested in this partnership.

Some questions:
You already rated Raudus?
Is there any chance of a version of uniGUI for Lazarus?

Thanks,
Wanderlan Santos dos Anjos
(061) (r)3345-5496; (c)9133-3804, (t)3045-4777

Farshad

unread,
Jul 28, 2011, 4:26:47 AM7/28/11
to ExtPascal
Wanderlan,

Good news!

I only have installed an earlier version of Raudus. I don't know what
is the current status Raudus.

I'm not sure about Lazarus. The IDE integration seems to be a very
complex task. Even if we succeed it it may only be possible for
Windows environment.

On Jul 27, 8:15 pm, Wanderlan Santos dos Anjos

Phil

unread,
Jul 30, 2011, 9:58:18 PM7/30/11
to ExtPascal
Sounds exciting. Sencha Touch is certainly a popular choice these
days.

What about starting with just compiling with FPC rather than full
integration with Lazarus? That is, design with Delphi but deploy on
any server that FPC and ExtPascal supports.

Along the same line, since ExtPascal and UniGUI support standalone Web
apps using an embedded server, what about doing something like that to
provide a "native" option for UniGUI mobile apps? For example, the
Mongoose server can be used to add an embedded server to mobile apps,
including iOS:

http://www.crocodella.com.br/2011/06/java-style-servlets-in-obj-c-using-mongoose-server/

http://code.google.com/p/mongoose/

I've been using Free Pascal's arm cross compiler for quite a while now
with iOS and it's very solid.

I also have an iOS app that includes a server. It uses it as a way to
transfer files to and from itself wirelessly. You point your desktop
computer's browser at the iOS device's URL on the wireless network and
the app's embedded server does the "uploading" and "downloading" of
files to and from the device. Quite a neat idea.

Thanks.

-Phil

Marcos Douglas

unread,
Jul 30, 2011, 10:08:19 PM7/30/11
to extp...@googlegroups.com
On Sat, Jul 30, 2011 at 10:58 PM, Phil <Mac...@fastermac.net> wrote:
> Sounds exciting. Sencha Touch is certainly a popular choice these
> days.
>
> What about starting with just compiling with FPC rather than full
> integration with Lazarus? That is, design with Delphi but deploy on
> any server that FPC and ExtPascal supports.

Sounds great.

> [snip]


>
> I've been using Free Pascal's arm cross compiler for quite a while now
> with iOS and it's very solid.
>
> I also have an iOS app that includes a server. It uses it as a way to
> transfer files to and from itself wirelessly. You point your desktop
> computer's browser at the iOS device's URL on the wireless network and
> the app's embedded server does the "uploading" and "downloading" of
> files to and from the device. Quite a neat idea.

Could you tell more about it in other thread, please?

Marcos Douglas

Phil

unread,
Jul 30, 2011, 10:30:56 PM7/30/11
to ExtPascal
More about FPC arm or more about embedded server in iOS apps?

Thanks.

-Phil


On Jul 30, 10:08 pm, Marcos Douglas <m...@delfire.net> wrote:

bdgr...@mailbolt.com

unread,
Jul 30, 2011, 11:13:00 PM7/30/11
to extp...@googlegroups.com
At 03:26 AM 7/28/2011, you wrote:
Wanderlan,

Good news!

I only have installed an earlier version of Raudus. I don't know what
is the current status Raudus.

Raudus just had a new release today:
http://www.raudus.com/download/

Raudus 0.8.1 is available. July 30, 2011.
The installer package contains the framework, examples, ExtJS 4.0.2a and SenchaTouch 1.1.0.

Raudus 0.8.1 for Windows:

raudus-0.8.1-windows.exe (51 MB)
MD5: 84556d3f95d82302c9cd6e388de3d6c1
Requirements: Delphi 7/2006/2007/2009/2010/XE

Raudus 0.8.1 for Linux:

raudus-0.8.1-linux.tar.gz (15 MB)
MD5: 617183a947004e09109a44c16c26c9ed
Requirements: FreePascal 2.4.2

Mike


I'm not sure about Lazarus. The IDE integration seems to be a very
complex task. Even if we succeed it it may only be possible for
Windows environment.

On Jul 27, 8:15 pm, Wanderlan Santos dos Anjos
<wanderlan.an...@gmail.com> wrote:
> Yes Farshad,
>
> As we have talked I'm very interested in this partnership.
>
> Some questions:
> You already rated Raudus?
> Is there any chance of a version of uniGUI for Lazarus?
> Thanks,
> Wanderlan Santos dos Anjos
> (061) (r)3345-5496; (c)9133-3804, (t)3045-4777

--
You received this message because you are subscribed to the Google Groups "ExtPascal" group.
To post to this group, send email to extp...@googlegroups.com.
To unsubscribe from this group, send email to extpascal+...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/extpascal?hl=en.

Marcos Douglas

unread,
Jul 31, 2011, 8:15:02 AM7/31/11
to extp...@googlegroups.com
On Sat, Jul 30, 2011 at 11:30 PM, Phil <Mac...@fastermac.net> wrote:
> More about FPC arm or more about embedded server in iOS apps?

More about embedded server in iOS.

Marcos Douglas

Phil

unread,
Jul 31, 2011, 11:33:47 AM7/31/11
to ExtPascal
If you want to see an embedded server in an iOS app, install this app
(free):

http://itunes.apple.com/au/app/igis/id338967404?mt=8#

You don't really need to know anything about GIS to see how the
embedded server works.

In iGIS, press Import or Export at bottom, then WiFi. Enter the
device's URL given (this is on your wireless network) into your
computer browser. iGIS's server will send a Java applet to your
computer - you'll be asked by your browser to "Allow" it. When the
applet runs, you'll see the iGIS files that can be exported or, with
Import, you can select files on your computer to upload. Click the
link at the bottom of either applet for documentation. Since iGIS is
sending an applet, I would not be surprised if it's using the
crocadella/mongoose approach (see links above).

If you've used PhoneGap, you know the approach it takes: PhoneGap
wraps JavaScript. HTML and CSS files into a little Objective C native
app that displays a Webview (embedded browser view) and loads these
files into the Webview (by default, it looks for index.html). Very
simple idea and it works exactly as advertised.

With ExtPascal, the JS is created dynamically so the PhoneGap approach
won't work. But what if the app contained an embedded server that sent
the dynamically created JS to the Webview? In other words, the app is
both browser and server. Then you would have a native app that would
allow you to program most of it in Pascal, rather than in Javascript
as with PhoneGap.

Objective C would not be needed either. A template could be created
for Xcode 4 and Pascal, etc. Much more info here:

http://web.me.com/macpgmr/ObjP/Xcode4/ObjP_Intro.html

Thanks.

-Phil


On Jul 31, 8:15 am, Marcos Douglas <m...@delfire.net> wrote:

Phil

unread,
Jul 31, 2011, 2:36:34 PM7/31/11
to ExtPascal
For those of you unfamiliar with Sencha Touch and how it differs from
(or resembles) Ext JS, the MiamiCoder (Jorge Ramon) has written a
lovely multi-part tutorial on using Sencha Touch to create a mobile
app:

http://miamicoder.com/2011/writing-a-sencha-touch-application-part-1/

Thanks.

-Phil


On Jul 27, 8:20 am, Farshad <farshad.mohaj...@gmail.com> wrote:
> Hello Wanderlan,
>
> I am the developer of uniGUI framework. As you may already know uniGUI
> is a web application framework for Delphi. It provides a RAD backend
> to create advanced web applications. uniGUI uses ExtPascal wrappers as
> gateway between uniGUI components and ExtPascal.
>
> http://www.unigui.comhttp://www.unigui.com/demohttp://forums.unigui.com/

Marcos Douglas

unread,
Jul 31, 2011, 7:32:44 PM7/31/11
to extp...@googlegroups.com

Phil,
Thanks for these tips.

Marcos Douglas

Wanderlan Santos dos Anjos

unread,
Aug 1, 2011, 12:39:50 PM8/1/11
to extp...@googlegroups.com
Farshad,

Next step.
I did a merge with your ExtPascal version, last week, already in SVN.
See if recent version of ExtPascal has your updates.

--
Att,

Wanderlan Santos dos Anjos

unread,
Aug 1, 2011, 1:00:34 PM8/1/11
to extp...@googlegroups.com
What about starting with just compiling with FPC rather than full
integration with Lazarus? That is, design with Delphi but deploy on
any server that FPC and ExtPascal supports.


This is the Raudus approach...
 
Along the same line, since ExtPascal and UniGUI support standalone Web
apps using an embedded server, what about doing something like that to
provide a "native" option for UniGUI mobile apps? For example, the
Mongoose server can be used to add an embedded server to mobile apps,
including iOS:

Again, Raudus uses Mongoose for embedded server instead Indy.
 
--
Att,

Phil

unread,
Aug 1, 2011, 4:44:07 PM8/1/11
to ExtPascal
I hope no one missed my point about native, which is this: JavaScript
mobile Web frameworks are not very interesting if they are _only_
usable in Web apps, for the simple reason that almost no one uses Web
apps on mobile devices. They use native apps, which they've installed
from an app store. Most of these apps do rely on an Internet
connection for full functionality and use a variety of techniques to
communicate with servers (Web services, REST over HTTP, etc.), but the
UI is not delivered over the Web and in most cases the business code
is run on the device as well, allowing them to work offline with
whatever data they currently have.

If you don't believe that the primary focus of these mobile JS
frameworks is becoming native, just look at a few Web sites:

Sencha Touch main page: "Works Hand in Hand with PhoneGap".

appML (JQTouch, + jScroll + jQuery): "appML is an official phoneGap
tool".

jQuery's mobile browser support grid: PhoneGap has its own column.

Six months ago I would have considered PhoneGap a niche tool. Now I
see that it's becoming central to the shift to JS/HTML/CSS as the
basis for cross-platform development of mobile apps. Certainly native
apps that are designed around, for example, Cocoa Touch objects (that
is, a non cross-platform approach where a separate UI is designed for
each platform) will probably continue to be faster, better looking,
have smoother transitions, etc, but for anyone who wants to design a
single UI for use in a native app on several mobile platforms, then JS/
HTML/CSS looks like the way to do it.

So what does that mean for ExtPascal and UniGUI? Well, right now it
doesn't mean anything since you don't create separate JS/HTML/CSS
files for the UI of programs developed with those tools. But my simple
idea (perhaps simplistic) is that a native option, perhaps even using
PhoneGap, could be done like this:

- Thread 1 creates Webview and waits for server to start.
- Thread 2 does Application.Run and listens on port xxxx.
- Thread 1 detects that server is running and loads the Webview with
"http://localhost:xxxx/Home".

Does that seem possible to anyone here? Is anyone interested in
working on this?

Thanks.

-Phil

Farshad

unread,
Aug 4, 2011, 7:04:31 AM8/4/11
to ExtPascal
Hi all,

Sorry for late reply.

@Wanderlan

Thanks for merging ExtPascal. I will check it shortly.

I recently checked Raudus and to my surprise it doesn't have a true
multi-threaded server. It seems that all requests are queued and
processed sequentially.

@Phil

uniGUI or ExtPascal may not be the right tool to create standalone
apps that target mobile devices. As you said there are technical
difficulties in the first place. We need an embedded server which must
be generated from Delphi or FPS. Even if we deploy an embedded server
I don't think it can replace a native mobile app. I think sencha touch
is best to create online mobile apps.

@Marcos

There are many things to do. A FPC port can be exciting, but I simply
found myself in a situation where are there are tons of possibilities
with uniGUI/ExtPascal/SenchaTouch and I have no idea where to start :)

Phil

unread,
Aug 4, 2011, 12:34:01 PM8/4/11
to ExtPascal
Farshad,

You might be right, but it's an idea I had and didn't want to keep it
to myself. Sometimes even harebrained ideas can trigger better ideas.

I don't understand "We need an embedded server which must be generated
from Delphi or FPS [sic]". Just link in Mongoose - no need for a
server written in Pascal.

It sounds as though the new RadPHP will even have a PhoneGap option.

Thanks.

-Phil

Farshad

unread,
Aug 4, 2011, 1:39:39 PM8/4/11
to ExtPascal
Sorry, I meant that since we will deploy compiled Pascal code the
application itself will be embedded inside the server so we need a
server which is compiled with Delphi or FPC.

Phil

unread,
Aug 4, 2011, 1:48:25 PM8/4/11
to ExtPascal
Not sure if I follow. I would think a MongExtHTTPServer.pas unit
(analogous to IdExtHTTPServer.pas) would work - it calls the embedded
Mongoose server.

Thanks.

-Phil

Farshad

unread,
Aug 5, 2011, 5:15:29 PM8/5/11
to ExtPascal
Can it be compiled for iOS or Android? I mean can we compile our
"servers + user code" for these platforms?
Reply all
Reply to author
Forward
0 new messages