[Lazarus] Pasic Ide - previously named Lightsarus
Hi Lazarus devel team and users, Back in december 2007 I've announced (Ciprian Mustiata) a Lazarus fork named Lightsarus. Because the effort to make it a new Lazarus or to sustain a big Lazarus legacy was big I was reconsidered the idea. So I've consider to see the Lazarus/FreePascal issues and I will try with that project to attack that issues. Most of issues were discussed wit Mathias and with Florian in my attemp to give a new fresh look to Lazarus. FreePascal issues: - FreePascal is a very powerful compiler, yet some features of it like RTTI support cannot pass the FPC RTL bound. Another issue is to create components, for the same reason in another languages. .NET languages write all code in a language independent mannger as much as they write a descrption of the code. RTTI and Reflection (the biggest importante of RTTI) is a part of .NET/Mono. So someone may create one Button class in C#, and may be reused in VB and to be checked with IS and AS operator with no issue, because the C# compiled code is enough high level to have that informations to it - FreePascal is hard to get componetized, for the previous issue. This means that is for now impossible (from my knowledge) to create a component in a DLL and to import in Lazarus. That has multiple reasons, one of it is that FreePascal internal unit structure may change from revision to revision. The format that .NET uses can be used as a component from any other language and is standardized (in ECMA). So if you have some C# code (like SharpZLib that offers code for archiving/extracting from different archives), you may use it freely from any other .NET languages - FreePascal applications are huge! Even with smartlink, strip, the Lazarus IDE have 8 MB, without stripping and with default settings, Lazarus executable have 80 M. For instance the Pasic IDE (yet not so big), after it embeds 100k, and the entire binary have 200k. A hello world application in .NET/mono is around 3-4k. - improvements over FreePascal in performance, can be achieved in the new applications after recompiling. Improvements over mono runtime are for free over all code. Lazarus IDE issues: - LCL: LCL wants to be (and is) a multiplatform way to mimic Delphi VCL over a lot of runtimes. Win32, Cocoa, Qt, Gtk1, Gtk2, etc. All of them seem credible, yet they have issues and different behavior. You may take in account making an enterprise ready code that you should test twice the LCL code before you submit over one platform (for instance Linux and GTK2). Right now most of blockers are solved, yet some other like dragdrop did not work - Lazarus IDE interface mimics Delphi 7. Yes, Delphi 7 is a nice release, I am fully agree with it, yet Lazarus stride to achieve to be a smaller cousin of an older product. Linux for instance did not try to mimic AIX (even IBM is a great contribuitor to it), is less foundamental close to Unix than is OS X Leopard. Thinking that Lazarus may be used for education purposes, because Pascal is an easy language to learn, Lazarus became a headache. Code completion did not work (well), a lot of code and UI looks outdated, you have to make a combination between FreePascal/Lazarus wiki, Delphi VCL help and Google to solve your problems, which most of persons are not ready (without some experience) Anyway, Lazarus is de-facto IDE of FreePascal language, is pretty capable, that is for sure, FreePascal the same. Pasic IDE wants to build an Object Pascal on top of Mono (.NET). For that it was took for now the best of the breed .NET compiler of Pascal (RemObjects Oxygene, known as Chrome) and stride to build a new UI fo development. Today the team (made from two persons) achieve the pre-alpha milestone where something starts, something imports, someting open, blah blah. We considered more than once what is the best approach to add value for free software development and that approach say: - we will not recreate a new runtime (LCL) as Mono offers enough - we will not create a RTL as right now exist a very good one (partially correct for some persons) - the platform is from scratch well documented (even is on MSDN Microsoft site) - it will work on any Mono platform. For instance may work on iPhone because there is a build of Mono on it - we will not focus on optimizations, componentization, is made by design - the IDE will use Tango principlies (and they will have one distinct look and feel on all platforms) - it will be user oriented. The UI applies automatically as in Gnome, most dialogs have no Apply button. there is a study in Tango project that the title bar for new users should be bigger and better to contain a title and a subtitle, and is implemented, etc. - if there is a company that wants extra-testing, etc. it may pay and the money will go back to development (most development will focus in compiler side, which we want to make a complete Oxygene implementation of it) So, there is a site:
Re: [Lazarus] Pasic Ide - previously named Lightsarus
Ciprian Mustiata schrieb: Hi Lazarus devel team and users, - FreePascal applications are huge! Well, PasIDE needs 28 MB here to display an error at startup while FPC/Lazarus needs 24 MB to run a full RAD IDE. Not to talk about the .Net framework downloads. So I wonder what's huge :) inline: Paside.png___ Lazarus mailing list Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Pasic Ide - previously named Lightsarus
Thank you Florian for your bug report. Right now should launch or at least to display a better error in a Message Box. Is fixed and uploaded the fix. Regards, Ciprian Search for all things and keep only what is good. - Original Message From: Florian Klaempfl [EMAIL PROTECTED] To: General mailing list lazarus@lazarus.freepascal.org Sent: Sunday, August 24, 2008 4:08:25 PM Subject: Re: [Lazarus] Pasic Ide - previously named Lightsarus Ciprian Mustiata schrieb: Hi Lazarus devel team and users, - FreePascal applications are huge! Well, PasIDE needs 28 MB here to display an error at startup while FPC/Lazarus needs 24 MB to run a full RAD IDE. Not to talk about the .Net framework downloads. So I wonder what's huge :) ___ Lazarus mailing list Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Pasic Ide - previously named Lightsarus
Op zondag 24-08-2008 om 08:10 uur [tijdzone -0700], schreef Ciprian Mustiata: Thank you Florian for your bug report. Right now should launch or at least to display a better error in a Message Box. Is fixed and uploaded the fix. Did you also fix the memmory-issue? Which was the most important complaint? 28MB for just one error-message is a bit of a problem, no? For a project that is designed to create small programs? Joost ___ Lazarus mailing list Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Mac OS X L : TPrintDialog missing from Dialogs tab...
Hi Mattias, Mattias Gaertner wrote: If you can share it, I can try it. I'm using the FreePascal scripts found here - http://www.microbizz.nl/fpc-scripts.zip In particular the fpc-build.command, but I have modified to so that it updates and build directly from /usr/local/share/fpcsrc . Compile with -vut. For example: cd lazarus make LCL_PLATFORM=carbon CPU_TARGET=powerpc PP=ppcppc OPT=-vt clean all bigide log.txt Take a look at log.txt. The Log.txt file is about 100MB? Should I search for anything in particular? I'm not sure what I should be looking for exactly. Dominique ___ Lazarus mailing list Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] How can I improve my bitmap font drawing unit (attached) ?
Hi Peter, Please check out SDLMonoFonts.pas and of course sdl_ttf.pas both or which are included in the JEDI-SDL v1.0 beta release. They also some with some demos to get you going. IHTH, Dominique. Peter Williams wrote: Hi All, I'd like some advice about the attached unit, named uFixedWidthFonts.pas. It is designed to read 2-colour bitmaps of font character sets of different sizes, from files which are Windowz BMP format. For example, Chars_Lower_8x8.bmp -- this is a 320 x 56 pixels, 1 layer BMP file, file size 2.25 KB. E.g. the BMP file is a 2 colour image of a 256 character bitmap, where each character in the BMP file (in this case) is 8x8 pixels. There are 8 BMP files: Chars_Lower_8x8.bmp Chars_Lower_16x16.bmp Chars_Lower_24x24.bmp Chars_Lower_32x32.bmp Chars_Upper_8x8.bmp Chars_Upper_16x16.bmp Chars_Upper_24x24.bmp Chars_Upper_32x32.bmp The *Lower* files define the Commodore PET 4032 upper/lower case character set the *Upper* files define the Graphics/Uppercase character set. My main question is: would I be better off using a TImageList?!? Can someone please post sample code. Note: I tried to run the TImageList example program for Lazarus... it compiles okay... but when run it does not find some of its files (BMPs) in the Image sub-folder of the example program. e.g. it gets a runtime error. Note that this unit is based strongly on a unit from the Jedi SDL component, sample unit for drawing bitmap fonts onto a graphic canvas. At the moment I use statements like this to define the bitmap font (some of the code is pasted below): Best Regards Happy Programming ;-))) PEW - const Rects_low = 0; Rects_high = 255; type // these lines borrowed from SDL.pas SInt16 = smallint; UInt16 = word; // [ALVAROGP] TSDL_Rect converted to class, to avoid warnings { PSDL_Rect = ^TSDL_Rect; TSDL_Rect = record x, y: SInt16; w, h: UInt16; end; } TSDL_Rect = class public x, y: SInt16; w, h: UInt16; end; // end lines from SDL PFixedFont = ^TFixedFont; TFixedFont = object private Image: TBitmap; // [ALVAROGP] Rects redefined as array of class TSDL_Rect { Rects: array[Rects_low..Rects_high] of PSDL_Rect; } Rects: array[Rects_low..Rects_high] of TSDL_Rect; public LastCharacterDefined: byte; TransparentColor, TextColor, BackgroundColor: Tcolor; // this is used only when UseTransparentBackground is false Char_width, Char_height: byte; // default is 8x8 ReverseVideo: Boolean; // default =false HorizontalGap: byte; // Horizontal Gap between characters in Pixels -- default =1 UseTransparentBackground: Boolean; constructor Initialize; procedure LoadFont(const Fontfile: string); procedure FreeUpAll; destructor Finalize; procedure WriteText2(x, y: integer; Txt: string; TextLength: cardinal; var PaintBox1: TPaintBox); end; var Font1: PFixedFont; - [...snip...] function PSDLRect(aLeft, aTop, aWidth, aHeight: integer): TSDL_Rect; var Rect: TSDL_Rect; begin Rect := TSDL_Rect.Create; with Rect do begin x := aLeft; y := aTop; w := aWidth; h := aHeight; end; Result := Rect; end; {-} constructor TFixedFont.Initialize; begin // defaults LastCharacterDefined := 0; // PEW Char_width := 8; Char_height := 8; HorizontalGap := 1; // 1 pixel by default ReverseVideo := False; // off by default end; {-} procedure TFixedFont.LoadFont(const Fontfile: string); var i, x, y: integer; begin FreeUpAll; if not fileexists(Fontfile) then begin showmessage('Error: font file does not exist: ' + fontfile + ''); exit; end; Image := TBitmap.Create; try Image.LoadFromFile(Fontfile); except showmessage('Error: Exception occurred trying to load font file.'); exit; end; if Image = nil then exit; x := 0; y := 0; i := Rects_low; repeat if x = Image.width then break; Rects[i] := PSDLRect(x, y, Char_width, Char_height); LastCharacterDefined := i; // PEW inc(i); inc(x, Char_width); if x = Image.width then begin // font bitmap is a block of characters, so if we go past // the end of bitmap, then go down to next row of characters. x := 0; inc(y, Char_height); end; until (y = Image.height) or (i Rects_High); // Determine the transparent color TransparentColor := Image.Canvas.Pixels[Rects[Rects_low].x + Rects[Rects_low].w, 0]; UseTransparentBackground := true; // default end; {-} ___ Lazarus mailing list
Re: [Lazarus] Pasic Ide - previously named Lightsarus
2008/8/24 Ciprian Mustiata [EMAIL PROTECTED]: The PasicIde team do you pronounce this the same as pesticide? just joking. how do i try this out in linux? henry ___ Lazarus mailing list Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Pasic Ide - previously named Lightsarus
Ciprian Mustiata schrieb: This memory measurements are biased. Not more biased than your statements about huge applications. If you take that memory is not freed at once (excluding if you program using IDisposable) because of GC, in a well crafted benchmark, always will make a .NET application to use more than a Lazarus one. So what's your point? Main memory is more expensive than hard disk space. So, do it by yourself. Anyway, the scope of the today preview was to show how it will be about and you are very welcome to feedback any oppinions. I guess most people agree that this has nothing to do with lazarus: it's neither an addon nor compatible, so you might advertise somewhere else. are kept in RAM, only for one reason, is faster a Show than to create a dialog from scratch. Of course, else .Net applications would suck even more. ___ Lazarus mailing list Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Pasic Ide - previously named Lightsarus
Hi Henry, Please for Pasic Ide regarding question to not ask in Lazarus Forum I will answer privately, but as shorthand: run it with $ mono Pasic.exe and should run. Regards, Ciprian Mustiata Search for all things and keep only what is good. - Original Message From: Henry Vermaak [EMAIL PROTECTED] To: General mailing list lazarus@lazarus.freepascal.org Sent: Sunday, August 24, 2008 6:26:04 PM Subject: Re: [Lazarus] Pasic Ide - previously named Lightsarus 2008/8/24 Ciprian Mustiata [EMAIL PROTECTED]: The PasicIde team do you pronounce this the same as pesticide? just joking. how do i try this out in linux? henry ___ Lazarus mailing list Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus ___ Lazarus mailing list Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Running and compiling Pasic IDE on Linux
2008/8/24 Ciprian Mustiata [EMAIL PROTECTED]: Hi Henry, I was tested this setup on OpenSuse 11, but if you have another distribution it should run as well: 1. Be sure that you have installed mono. Run in your terminal: mono and if it is not found as command look on your distribution how to install mono. For instance on Debian based distros is: apt-get install mono, on RedHat based: yum install mono, etc. 1b) You may take the source code and make: configure make su (switch as root) and make install 2. run it as: mono Pasic.exe. Some distribuitions offer a sub-bundle of mono, and skips parts like Windows.Forms from it. You should install them separately if you will get a System.Windows.Forms exception To compile it you should download RemObjects Oxygene, then go to where you found the project named: Pasic.oxygene in the source-code and write in the command line: mono path to Oxygene.exe compiler Pasic.oxygene It should generate in bin/Release/Pasic.exe compatible executable. thanks, i'll try. henry ___ Lazarus mailing list Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Running and compiling Pasic IDE on Linux
On Sun, 24 Aug 2008 17:48:20 +0100 Henry Vermaak [EMAIL PROTECTED] wrote: 2008/8/24 Ciprian Mustiata [EMAIL PROTECTED]: Hi Henry, I was tested this setup on OpenSuse 11, but if you have another distribution it should run as well: 1. Be sure that you have installed mono. Run in your terminal: mono and if it is not found as command look on your distribution how to install mono. For instance on Debian based distros is: apt-get install mono, on RedHat based: yum install mono, etc. 1b) You may take the source code and make: configure make su (switch as root) and make install 2. run it as: mono Pasic.exe. I tried that under ubuntu and it gives: ** (Pasic.exe:2388): WARNING **: The following assembly referenced from Pasic.exe could not be loaded: Assembly: System.Windows.Forms(assemblyref_index=4) Where can I get this? Some distribuitions offer a sub-bundle of mono, and skips parts like Windows.Forms from it. You should install them separately if you will get a System.Windows.Forms exception To compile it you should download RemObjects Oxygene, then go to where you found the project named: Pasic.oxygene in the source-code and write in the command line: mono path to Oxygene.exe compiler Pasic.oxygene It should generate in bin/Release/Pasic.exe compatible executable. Mattias ___ Lazarus mailing list Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Pasic Ide - previously named Lightsarus
This thread is absolutely out of topic here. It doesn't even run with the Free Pascal compiler, but instead uses an incompatible Pascal dialect, and has nothing to do with Lazarus. To get publicity for your producs I would suggest: * buying some internet Ads. * Posting this in the RemObjects forum or mailling list, supposing they have one * Maybe the fpc-other mailling list? The mailling list is not as easy to be moderated as the forum, so I propose that noone answer to this thread anymore, effectively closing it. -- Felipe Monteiro de Carvalho ___ Lazarus mailing list Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Pasic Ide - previously named Lightsarus
On Sun, Aug 24, 2008 at 3:47 PM, Ciprian Mustiata [EMAIL PROTECTED] wrote: - FreePascal applications are huge! Even with smartlink, strip, the Lazarus IDE have 8 MB, without stripping and That 8Mb executable contains a LOT of components and classes. RTL, FCL, LCL and IDE. 8Mb suddenly doesn't seem that large to me! Considering we can buy 1 Terabyte hard drives now, size is not that much of a issues. Size might be more of an issue for mobile devices, but then even those devices (I own one) can have SD cards a 1+ Gig space. with default settings, Lazarus executable have 80 M. That's perfectly fine, considering it's got a lot of debugging information included. A hello world application in .NET/mono is around 3-4k. Oh sure, but don't forget it requires a 120+Mb runtime environment. So that makes that hello world application a 123Mb executable. :-( Lazarus still beast it by far!! ;-) Lazarus IDE issues: - LCL: LCL wants to be (and is) a multiplatform way to mimic Delphi VCL over a lot of runtimes. Win32, Cocoa, Qt, Gtk1, Gtk2, etc. All of them seem credible, yet they have issues and different behavior. You may take in account making an enterprise ready code that you should test twice the LCL code before you submit over one platform (for instance Linux and GTK2). I have this issue with LCL as well. Make no mistake, the Lazarus team did a great job so far, but they are battling a moving target. I tackled this issue from a different perspective and implemented my own custom drawn toolkit (fpGUI) which doesn't relay on any large libraries and don't have to be a Delphi VCL clone. This works perfectly for me and our company, but isn't the goal of the Lazarus LCL. The choice is yours: Help fix the LCL issues, or switch to a different GUI toolkit.ps: I still use the Lazarus IDE though - I think that is great!! - Lazarus IDE interface mimics Delphi 7. Yes, Delphi 7 is a nice release, I am fully agree with it, yet Lazarus stride to achieve to be a smaller cousin of an older product. A common mistake. The goal of Lazarus is NOT to clone the Delphi IDE!!! It only wants to clone the VCL - that's it! outdated, you have to make a combination between FreePascal/Lazarus wiki, Delphi VCL help and Google to solve your problems, which most of persons are not ready (without some experience) Documentation patches are always welcome! Remember, FPC and Lazarus are open-source projects. Created by developers in their spare time. It has not corporate sponsors and nobody gets paid for the efforts. Regards, - Graeme - ___ fpGUI - a cross-platform Free Pascal GUI toolkit http://opensoft.homeip.net/fpgui/ ___ Lazarus mailing list Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
[Lazarus] Prevent focus losing
Hello, situation: I have TCustomEdit and TCustomSpeedButton; when focus is in edit and I press speed button then edit loses focus. How to prevent losing focus when I press speed button? -- Valdas Jankūnas ___ Lazarus mailing list Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Pasic Ide - previously named Lightsarus
On Sun, Aug 24, 2008 at 6:05 PM, Ciprian Mustiata [EMAIL PROTECTED] wrote: But, if you consider that .NET 3.0 (Pasic requires 2.0) is a part of Windows VIsta, Mono is a part of two major distros (Ubuntu as a part of GNOME, and Suse that are teamed with Novell team that makes Mono), you may consider that distributing a .NET application is not such a big issue and there is not a requirement for download. Do not make assumptions as to what your users are using. We only recently discontinued support for Win95 and force some of our users to upgrade to Win98 or newer. Most of our customers still use Win98 - their philosophy is simple: If it ain't broken, why fix it! For them, there is no incentive it upgrading the OS, which also means they need to upgrade their hardware. Money they can spend elsewhere. Regards, - Graeme - ___ fpGUI - a cross-platform Free Pascal GUI toolkit http://opensoft.homeip.net/fpgui/ ___ Lazarus mailing list Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Prevent focus losing
Hi, Why not use CustomEdit1.SetFocus in CustomSpeedButton1.Click? Gabor Hello, situation: I have TCustomEdit and TCustomSpeedButton; when focus is in edit and I press speed button then edit loses focus. How to prevent losing focus when I press speed button? ___ Lazarus mailing list Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
[Lazarus] A sort program in rpsrt102.zip .
Dear Sirs , There is a program named as rpsort.com with its related sources in rpsrt102.zip which may be found in the following address : http://www.simtel.net/product.php?url_fb_product_page=51643 or by an internet search with name rpsrt102.zip . The following is a part from its readme : -- This is being mailed to all those who either registered or inquired about RPSORT, written by my brother, Robert Pirko. Robert Pirko, the author of RPSORT, passed away on February 15, 1992. He had not been ill , but just suddenly collapsed and died. You never know ... RPSORT is now free for all to use, no payment is asked. Also the assembly language source code is free. The file RPSRT101.ZIP has been uploaded to a local (New York City) BBS: NYACC 718 539-3064 (free access) This file contains version 1.01 of RPSORT and its documentation plus the commented source code written in 8086 assembler for the Borland Turbo Assembler 2.5. It is also available by mail for a payment of $5.00 to: Alex Pirko 3881 Sedgwick Ave Apt.6D Bronx, NY 10463 -- rpsort.com is working perfectly under Windows XP ( with 8.3 format file names ( because its file name variable ( I think , due to IpNameExt DB 13 Dup (?) in its assembler source ) ) ) . It is UNBELIEVABLY fast . My suggestion is that it can be incorporated into a unit ( for example , as a procedure with a parameter ( containing giving definition of sort like its command-line parameter string ) ). My opinion is that it may be useful to study it . Thank you very much , Mehmet Erol Sanliturk ___ Lazarus mailing list Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] A sort program in rpsrt102.zip .
Hello Mehmet, Sunday, August 24, 2008, 10:07:12 PM, you wrote: MES It is UNBELIEVABLY fast . MES My suggestion is that it can be incorporated into a unit MES ( for example , MES as a procedure with a parameter MES ( containing giving definition of sort like its command-line parameter MES string ) ). MES My opinion is that it may be useful to study it . Which is special in this software ? It is using the well known QuickSort algorithm, as it is assembler it should run a faster than a pure Pascal implementation, also it is 16 bits asm code. It will be quite difficult to compare in speed with a FPC implementation as the binary of RPSRT is .com file of 18KBs ;) and will be loaded very fast (no rellocation needed), compared to a FPC .exe binary. Maybe you saw something that I was not aware about it :-? -- Best regards, JoshyFun ___ Lazarus mailing list Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus