[fpc-pascal] cocoa programming without objective-pascal mode

Bee bee.ography at gmail.com
Mon Nov 3 09:02:06 CET 2014

On Mon, Nov 3, 2014 at 11:00 AM, Dmitry Boyarintsev <
skalogryz.lists at gmail.com> wrote:

> Just don't bother yourself with "cocoa api" don't go too specific.

I don't, hence this thread. :) If want to use a TObject, I want the exact
same properties, exact same behavior, exact same declaration of TObject on
everywhere else. At least, 90% of them, with 10% is special particularly to
where TObject platform is defined. I don't care if beneath it acts as
NSObject on OSX, or WinObject on Windows, or QTObject on QT, or whatever.

On Mon, Nov 3, 2014 at 1:45 PM, Sven Barth <pascaldragon at googlemail.com>
> That's because FireMonkey abstracts all those APIs for you. The LCL by
> Lazarus has the same target: no matter whether you are on Win32/64, GTK,
> Qt, Carbon, Cocoa, whatever you get the same set of APIs (the API provided
> by the LCL) and you don't (normally; bugs not withstanding) need to care
> about platform differences.

FireMonkey isn't native UI. It's custom drawn UI controls (based on
OpenGL?). That's why I left Delphi. I don't like non-native UI, except for

> Even if you'd directly access Cocoa using Object Pascal means you would
> not be compatible with Object Pascal codes on other platforms. The same is
> true for Delphi by the way. They interface with Cocoa code using COM
> interfaces which are not used on the Windows platform (for this purpose).
> Two different API sets!

Why would that be? A pascal TStringList can be a NSStringArray on Cocoa, or
regular list of strings on Windows. I don't care as long as my pascal
TStringList behaves consistently on any platforms. What I do care is if I
can use TStringList on Windows, but I'm forced to use NSStringList on OSX
for the same purpose and function. I don't want that. That's why I don't
like objective-pascal dialect. *btw, the class names are just pseudo class,
you should get the point* :)

> Also using Objective Pascal does in no way mean that you can not use
> Object Pascal. You can mix them as you want and you can use Objective
> Pascal classes in Object Pascal code and vice versa (otherwise this feature
> would be rather useless).

Oh, really? I didn't know that. So, I could use objective-pascal mode on
Windows too? Including its protocol and messaging mechanism?

> So please use Objective Pascal. It will save you from quite some trouble
> to implement the APIs manually (afterall there is a reason why we
> implemented Objective Pascal).

Of course there is a reason for objective pascal existence. But should I
use it? I don't know. Unless you can give me guarantee that
objective-pascal dialect can be used on Windows and Linux as well. But if
it does, why do we bother to have objective pascal at the first place? :D

FYI, just as food for thought... I'm now considering to use RemObject's
Oxygene (another pascal variant) as it behaves almost like the way I want.
I could use the same consistent syntax on any platforms. Although I have to
know special cases where API on particular OS is very much different from
other OSes. But it's pretty rare cases. If you want to know the concept of
the language, please refer to this site:

But honestly, I'd love to use FreePascal. :)


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-pascal/attachments/20141103/fe0de6e4/attachment.html>

More information about the fpc-pascal mailing list