[Lazarus] PropertyGrid hiding items
Hi, I'm using a propertygid in my application. The grid shows the properties of a number of inherited classes. However some classes do not use all of the properties from the base class. Is there a way to hide properties from the grid for child classes? Regards, Darius -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
[Lazarus] Improve message dialog
Hi, One of my frustrations with the IDE have been when debugging record or class variables. The data is truncated to 255 characters and it's very difficult to find the appropriate variable within the structure. I have now uploaded a patch (http://bugs.freepascal.org/view.php?id=21990) that adds a treeview where each variable within the structure is shown. You can easily scroll down to find the desired variable and nothing gets truncated anymore. As described in the report, I can imaging though that this patch will be rejected as it would be even better to merge both functionalities by using a propertygrid. However this was a quick hack for a project of mine and it works excellent. Therefore I would not see why not to add it for now. The patch however brings up the discussion what would be the final solution for this problem. Is a propertygrid appropriate? Is there a native propertygrid for lazarus available? What do others think? Regards, Darius -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Looking for a general text editor
On Feb 17, 2012, at 7:30 PM, Bart wrote: On 2/16/12, felipemonteiro.carva...@gmail.com felipemonteiro.carva...@gmail.com wrote: Em 16/02/2012, às 20:41, Bart bartjun...@gmail.com escreveu: Why not simply use my MruList unit (http://home.tiscali.nl/~knmg0017/software/fpc_laz/mrulists.zip) as well? If it is portable it should be fine It should be, this is the uses clause: uses SysUtils, Classes, Controls, Registry, IniFiles, FileUtil; It won't be. Registry is windows only. Why not implement something yourself based on an XML file? Should be trivial. Here's some inspiration: http://www.angusj.com/delphi/mruunit.html just add to the project svn, How? I killed all dependencies because a lot of people use non-standard stuff which don't work for example in Mac and bring all sords of problems to build and modify the program. I tend to use only standard LCL stuff... For me the best would be giving you commit rights to the ccr if you don't have already and you commit directly what you see fit. I'm unfamiliar with committing via svn (or any other tool like that). Is there a wiki-entry about how to do that? Do I need more then my svn client? Just search the wiki; http://wiki.lazarus.freepascal.org/Using_the_Lazarus-ccr_SVN_repository http://wiki.lazarus.freepascal.org/Lazarus_git-svn http://wiki.lazarus.freepascal.org/Creating_A_Patch If you're on windows, chances are you're using tortoisesvn. Just read the documentation of that app. There are plenty of quick guides online. And of course, if you have specific questions either ask on IRC or on the ML. Regards, Darius -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Fast drawing to canvas
That's a valid reason, but I removed the disk cache to test pure drawing performance. In that case 25FPS at 50% HD is very poor. I would expect at least 3 times as much (see also my test app). How do you draw the pixels? Do you use glBitmap or do you use GL_POINTS? Could you share the test application you've made with me? In the fast version I stream data from a png and this is actually pretty fast now. However I will implement native loading of the images to optimize the process. But this is only optionally as my issue is not with the setup of the file cache but more with the drawing speed. As said, on windows I get 50%HD @ 88fps and full HD @35fps. Now Mac is worrying as it draws full HD @ only 12fps. Maybe opengl can draw more efficienctly in this case? I would also like to test SDL. I don't know whether OpenGL is really more efficiently, I just wanted to throw in an alternative variant. Of course, evaluate all possibilities. I'm hoping that OpenGL will be faster over all platforms, as I've seen substantial performance loss when using the Mac canvas. Regards, Darius -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Fast drawing to canvas
On Feb 10, 2012, at 6:23 PM, Lukasz Sokol wrote: On 10/02/2012 16:11, dhkblas...@zeelandnet.nl wrote: On Fri, 10 Feb 2012 11:34:20 +0100 dhkblas...@zeelandnet.nl wrote: [...] Why are you displaying single images at all? It sounds a lot like you are playing movie clips, so why do you not use a suitable codec/container combination like xvid/avi, h.264/mpeg-4 or some other video format that fits your needs? Yes, I'm playing movie clips. But playing back images from a video codec is besides the point. I have implemented my own simple raw image codec (filecache.pas) that reads pixels from disk. My problems lie with the playback of video. If I recall correctly, programs like MPlayer (or was it FFMpeg?) had an 'input' that could read static images and output video stream to stdout (but I might not remember correctly, pls check docs) I think your referring to a frameserver. Then the video stream could be piped into the player program,... so FFMpeg reads series of images - pipes into MPlayer that displays it- or MPlayer can be told to read series of images as it were frames - is that what you're trying to achieve ? No, I'm working on an NLA editor and compositor actually. In this editor images can be loaded from a movie file (already got the ffmpeg header file from MiSchi) , but other devices are also supported such as photos and generated images. The editor needs to be able to playback the results and this was the reason for my original post. The playback was simply too slow. Regards, Darius -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Fast drawing to canvas
Yes, I'm playing movie clips. But playing back images from a video codec is besides the point. If you say so, but that is exactly what you are doing. I know :) The streaming is actually pretty fast. Tests have shown that I'm able to get almost 90fps (for the complete drawing cycle) on 50%HD on windows which is perfect. However the same loop drops down to 11fps on mac. So the problem lies not in the streaming but in the drawing bit. After I solve the drawing problems (perhaps by switching to OpenGL as you also mention) I will focus on the filecache. There's a tradeoff between compression/decompression and disc access times. I just don't know where the turning point is, but tests will show that later. For now I'll stick to raw pixel data, later I will use a movie file probably (with optional lossless compression). I have implemented my own simple raw image codec (filecache.pas) that reads pixels from disk. My problems lie with the playback of video. It has proven to be very difficult to playback video (on Mac) with an acceptable speed. Full HD images are played back @ 11fps wich is just too slow. The fastest way should be using OpenGL. But not some naive implementation like it seems to be the case with the OpenGL tests performed by followers of this thread. The magic words are PBO and texture streaming. This approach reads the data directly into a buffer on the graphics card which you use as texture to display your images. You can even read the data in an other thread than the OpenGL one. Only the reading of the data is performed on the CPU and the data will go from disk straight to VRAM. hih R. Your comments certainly help! I think you will probably be right for Mac. I expect that OpenGL will be more stable over the different platforms as the TCanvas implementation seems to be. However on Windows and Ubuntu OpenGL PBO does not win from TCanvas as demonstrated here: http://wiki.lazarus.freepascal.org/Fast_direct_pixel_access#Speed_comparison I was shocked to see this, but I confirmed this results at least on windows. Regards, Darius -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Fast drawing to canvas
On Feb 10, 2012, at 9:45 PM, Hans-Peter Diettrich wrote: Darius Blaszyk schrieb: Yes, I'm playing movie clips. But playing back images from a video codec is besides the point. If you say so, but that is exactly what you are doing. I know :) The streaming is actually pretty fast. Tests have shown that I'm able to get almost 90fps (for the complete drawing cycle) on 50%HD on windows which is perfect. However the same loop drops down to 11fps on mac. So the problem lies not in the streaming but in the drawing bit. The problem may be multiple files. I'd try to merge multiple frames, if not all, into one big file, then test again on mac. DoDi Well I'm already doing that in filecache.pas. It's just one big file-stream with raw pixel data in it. See also my previous mail where I mention the possibility to compress data. It will be a tradeoff between (de)compression and file access. Regards, Darius -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Fast drawing to canvas
I've put up the test app on the CCR. All three methods draw at roughly 10fps on windows and 6fps on mac. I haven't tried linux yet. I challenge everyone to find methods to speed up the the drawing using the current implementation. May the best man win! Regards, Darius On Feb 9, 2012, at 10:38 AM, dhkblas...@zeelandnet.nl wrote: I'm working on a test app that I will put on the CCR on sourceforge for everyone to test. Will put it up later this afternoon. I will challenge everyone to come up with speed improvements! :) Regards, Darius On 9 feb '12, Graeme Geldenhuys wrote: On 9 February 2012 02:52, Darius Blaszyk wrote: Despite all the advices, none of the suggestions of drawing on a TPaintBox or creating a TCustomControl actually speed up the painting significantly. Therefore I did some profiling. It appears that loading a 40kb png file (50% HD) from a stream takes about 60msec another 30msec is used to paint the bitmap to screen. It all results in approx. 11fps which is actually pretty poor when you imagine a full HD loop will make the rate drop 2.5fps. Darius. If you could send me a sample of 25 images in private, I'll try something here on my side. I'll also plug them into a fpGUI application so we can see if there is a difference between a LCL app and fpGUI app - trying to determine where the bottlenecks are... loading, graphics stack, toolkit etc. I also have 3 different speeds hard drives (and various file systems) in my system. That could also be used to profile the loading times from each hard drive. If you have a sample LCL app that you use for testing, that would save me some trouble too. Though the Button1Click() code you posted earlier is pretty straight forward. :) -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Fast drawing to canvas
Well afaik that's exactly what I'm doing with Image1.Picture.Bitmap.LoadFromRawImage(bitmaplist[ScrollBar1.Position].RawImage, False); The flicker went away by placing the code outside the OnPaint handler. I can now draw with about 11fps. The images are streamed continuously from disk! So performance is not really bad, but I would like it to be better. Regards, Darius On Feb 8, 2012, at 2:19 AM, Bernd wrote: 2012/2/8 Bernd prof7...@googlemail.com: Image.BeginUpdate; Image.Picture.Bitmap.Clear; write the data directly to Image.Picture.Bitmap.RawImage.Data^ Image.EndUpdate Oh, I forgot: set the size, this is actually the whole point of the clear Method: force it to create this raw image of the needed size if it does not yet exist. Image.BeginUpdate; Image.Picture.Bitmap.Width := ; Image.Picture.Bitmap.Height := ; Image.Picture.Bitmap.Clear; write the data directly to Image.Picture.Bitmap.RawImage.Data^ Image.EndUpdate -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Fast drawing to canvas
I've did some tests with a tcustomcontrol, but that hardly gave me any speed benefit. Both methods are drawing at 11fps Regards, Darius On Feb 8, 2012, at 8:25 AM, Felipe Monteiro de Carvalho wrote: 2012/2/8 dhkblas...@zeelandnet.nl: I'm drawing a bitmap to the canvas by using LoadFromRawImage in combination with a TImage. The OnPaint code below works just fine. When I move the scrollbar, the images are drawn to the canvas, however there is still a bit of flicker. I don't recommend using TImage for fast changing graphics. The really fast and reliable way to draw motion graphics is to implement a TCustomControl descendent like explained in the wiki: http://wiki.lazarus.freepascal.org/Developing_with_Graphics#Create_a_custom_control_which_draws_itself -- Felipe Monteiro de Carvalho -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Fast drawing to canvas
Thanks Graeme. Very interesting indeed. I could not find the imlib2 binding code. Do you have it somewhere? Although I didn't ask for loading, it could actually help. Now I stream pngs from dist to a TPortableNetworkGraphic object. Perhaps this is the bottleneck? I will profile my code later. But it might be a solution. Regards, Darius On Feb 8, 2012, at 9:37 AM, Graeme Geldenhuys wrote: 2012/2/8 dhkblaszyk@zee: with a TImage. The OnPaint code below works just fine. When I move the scrollbar, the images are drawn to the canvas, however there is still a bit of flicker. I don't know the graphics system of LCL, but I thought I would ask the obvious question first. Do you have Double Buffering enabled? Another problem might be that fcl-image (what LCL graphics is based on), is apparently the slowest graphics routines out there! I didn't do the research, but it was brought to my attention by somebody else. Henk compared various image loading and painting frameworks. He put the results on his website. He also sent me a copy of his test program (if anybody else was interested in taking a look). http://members.upc.nl/h.speksnijder4/software/fpGUI/images.html -- Regards, - Graeme - ___ fpGUI - a cross-platform Free Pascal GUI toolkit http://fpgui.sourceforge.net -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Fast drawing to canvas
As said, hardly any speed improvement noticed. Regards, Darius On Feb 8, 2012, at 10:42 AM, Felipe Monteiro de Carvalho wrote: On Wed, Feb 8, 2012 at 10:37 AM, Graeme Geldenhuys graemeg.li...@gmail.com wrote: You didn't touch on my other point. Is double buffering enabled by default for all painting routines in the LCL? Or must the end-user / developers specifically enable it somewhere? He is using TImage, which is not built for fast changing graphics, it is built for displaying a static image or images which change sometimes only, so he is already using the wrong architecture. But the answer would be: depends. There is a DoubleBuffer property which affects only Windows. I think that all other widgetsets always do Double-buffering without an option to disable it. But TImage probably already defines DoubleBuffer. His flickering could be due to partial updates or background erasing. But summing up, his problem is using the wrong component for the job, not the DoubleBuffer propery. -- Felipe Monteiro de Carvalho -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Fast drawing to canvas
Despite all the advices, none of the suggestions of drawing on a TPaintBox or creating a TCustomControl actually speed up the painting significantly. Therefore I did some profiling. It appears that loading a 40kb png file (50% HD) from a stream takes about 60msec another 30msec is used to paint the bitmap to screen. It all results in approx. 11fps which is actually pretty poor when you imagine a full HD loop will make the rate drop 2.5fps. As I see it now, I will need to lower the access time to the png's from disk. I will do a test with storing only raw pixel data instead. This means that there will be no conversion (or decompression in the case of PNG) when streaming from disk. However, although the minor part of the total loop, I was hoping to improve the painting speed significantly as well. Hopefully someone else has an idea that works. Is there a way to access even lower level functions from LCL? Like GDI and GTK2 functions to copy the pixel data as fast as possible? Appreciate the help from everybody so far. Regards, Darius On Feb 8, 2012, at 5:12 PM, Sven Barth wrote: Am 08.02.2012 16:02, schrieb dhkblas...@zeelandnet.nl: I have played with Image.Update, .Invalidate and .Repaint, but none of them seem to work for me. Only when I put Application.ProcessMessages the painted images show on screen. See below for the testloop code. The images are streamed from a file cache. For 24 frames this seems overkill, but running at 24fps the memeory requirements quickly get very large! Image.Transparent is also set to false btw, which is default. Otherwise the drawing on the canvas is even messed up. Regards, Darius procedure TForm1.Button1Click(Sender: TObject); var s: TDateTime; i: Integer; begin s := now; for i := 1 to 24 do begin if filecache_get_from_cache(i, png) then begin Image1.Picture.Bitmap.LoadFromRawImage(png.RawImage, False); Application.ProcessMessages; end; end; ShowMessage(FloatToStr(24 / ((now - s) * 24 * 3600))) end; Here it is clear that you need to use Application.ProcessMessages, because LoadFromRawImage will only tell the control that it needs to repaint itself, but does not execute this repainting (this is done in Application.ProcessMessages). In the example you posted in the beginning the call to Application.ProcessMessages is located inside the OnPaint handler of the Image which is - in my opinion - not good. Maybe also the loading of the image inside the OnPaint handler is not good... Maybe you should try - like Felipe suggested - something else than TImage. Try for example TPaintBox in combination with the Application.OnIdle event: procedure TForm1.ApplicationOnIdle(aSender: TObject; var aDone: Boolean); begin LoadNextImageFromCache; // this will load the next image into some private variable of the form (let's call it fImage). [this is based on your filecache_get_from_cache any you'll need to write it of course ;) ] PaintBox1.Invalidate; aDone := False; // important! end; procedure TForm1.PaintBox1Paint(aSender: TObject); begin PaintBox1.Canvas.Draw(fImage); // or however you'll get the content of the fImage onto the canvas of the PaintBox end; Note: Don't forget to assign your ApplicationOnIdle to Application.OnIdle or use the ApplicationProperties component located in the Additional tab. Regards, Sven -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Object detection
What you need is called image segmentation. I have a book called Image processing and it's from the dutch publisher sybex (ISBN:9051603150). The Dutch version I have is translated from French asaik. In this book all examples are written in Pascal. Perhaps you can find an English version? If not I can send you my copy. Regards, Darius On Nov 2, 2011, at 7:26 PM, Leonardo M. Ramé wrote: Hi, I'm looking for a library/routine for object detection in bitmaps. I need to process a black and white image (1bit) in low resolution and detect all white objects over a black background, as the attached image shows. Apart from OpenCV, do you know anything similar but simplier?. Preferably in Pascal?. Thanks in advance, -- Leonardo M. Ramé http://leonardorame.blogspot.com detection.png-- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] New widgetset
On Aug 17, 2011, at 11:27 AM, Michael Schnell wrote: On 08/15/2011 06:47 PM, dhkblas...@zeelandnet.nl wrote: I've ported the nvidia-widgetset to FPC. Nice ! This widgetset is very light-weight and has an OpenGL backend (easily extendible). Could you elaborate on the common aspects and the differences regarding the other maybe upcoming OpenGL-based widget that might some time provide compatibility to Delphi's new FireMonkey GUI and would be based on KSDev GLScene ? Hi Michael, This widgetset cannot be compared to any conventional event-driven widgetset. Instead it's a minimal super lightweight widgetset, which you can easily drop into your OpenGL project. In fact you can easily mix it with another widgetset library. Darius -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] New widgetset
On Aug 17, 2011, at 11:33 AM, Michael Schnell wrote: On 08/15/2011 06:47 PM, dhkblas...@zeelandnet.nl wrote: I've ported the nvidia-widgetset to FPC. BTW.: My standard question on such topics: Does it decently handle TTimer, TThread.synchronize, TApplication..QueueAsyncCall, PostMessage, ... ? The widgetset does not know a TApplication. It will not have problems with TTimer or TThread. (I can provide a testing program for this if you want me to.) Test programs are happily accepted! Regards, Darius -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] New widgetset
On Aug 17, 2011, at 12:12 PM, Graeme Geldenhuys wrote: On 08/17/2011 11:33 AM, Michael Schnell wrote: BTW.: My standard question on such topics: Does it decently handle TTimer, TThread.synchronize, TApplication..QueueAsyncCall, PostMessage, ... ? If you looked at the code and the example project, you would have seen in is nothing like VCL or LCL. It is a completely different class design. This thread would probably have been more relevant in a general fpc mailing list (eg: fpc-users), but Darius was also looking for a place to host the code (eg: LLC) - thus asked here. True, although I think this topic is in between FPC and Lazarus. So this thread seem on-topic to me for both mailinglists, unless the moderator decides otherwise as far as I'm concerned. Regards, Darius -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] New widgetset
I forgot to commit a fix for the textures. I will fix this later today. Fix committed, please update and test. Regards, Darius -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] RE : New widgetset
On Aug 16, 2011, at 8:08 PM, Michalis Kamburelis wrote: Darius: nvidia-widgets/src/nvwidgets/nvglutwidgets.pas calls Load_GL_version_2_0, but the result is not checked. You should abort the program (probably it would be nicest to raise an exception) if Load_GL_version_2_0 returns false (meaning that some entry points are not defined). Since the rest of the code seems to assume that GLSL functions are initialized. Hi Michalis, Thanks for the tip. I now check the function result and exit gracefully when the result is false. Regards, Darius -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
[Lazarus] Compile error Lazarus
I tried compiling Lazarus today on my mac with latest FPC and got the following compile error: /Users/dariusblaszyk/freepascal/lazarus/components/jcf2/Ui/Settings/frCompilerDirectReturns.pas(88,27) Error: Abstract methods can't be called directly Regards, Darius -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Compile error Lazarus
Strange... There must have been some old ppu files present. I just recompiled and now it worked. Darius On Aug 12, 2011, at 9:38 PM, Hans-Peter Diettrich wrote: Darius Blaszyk schrieb: I tried compiling Lazarus today on my mac with latest FPC and got the following compile error: /Users/dariusblaszyk/freepascal/lazarus/components/jcf2/Ui/Settings/frCompilerDirectReturns.pas(88,27) Error: Abstract methods can't be called directly That line reads how? Such an error may result from class completion, when the codetools insert dummy inherited calls even to abstract methods, and the user forgot to provide useful code instead. When that bug persists for a few more days, create an bug report. DoDi -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Compile error Lazarus
On Aug 12, 2011, at 11:19 PM, Vincent Snijders wrote: 2011/8/12 Darius Blaszyk dhkblas...@zeelandnet.nl: Strange... There must have been some old ppu files present. I just recompiled and now it worked. Darius Strange indeed, I committed a fix for that only 5 minutes ago. It seems I mixed up the compiler. I used 2.4.2 again instead of 2.71. That explains a lot :) Thanks for fixing. On Aug 12, 2011, at 9:38 PM, Hans-Peter Diettrich wrote: Darius Blaszyk schrieb: I tried compiling Lazarus today on my mac with latest FPC and got the following compile error: /Users/dariusblaszyk/freepascal/lazarus/components/jcf2/Ui/Settings/frCompilerDirectReturns.pas(88,27) Error: Abstract methods can't be called directly Vincent -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] fppkg front end
On May 14, 2011, at 7:39 PM, Joost van der Sluis wrote: On Sat, 2011-05-14 at 19:24 +0200, Michael Van Canneyt wrote: On Sat, 14 May 2011, Joost van der Sluis wrote: Is that a matter of days or weeks? Because else we can commit the lnet-light version for now. It's not very easy to work with two people on a project, using numbered zip files in a bug tracker as versioning system... It is a matter of days. Server is already done, I am now testing it. HTTP Client should be even more simple. I don't know what you're talking about zip files ? I commit everything I do in subversion. http://bugs.freepascal.org/view.php?id=19335 This is why I offered the patch as a final patch. Only a couple of cleanups left and it will be eligible for committing. Items that need sorting: - lnet : we will either need to wait for Michaels solution or use the lnet light code. I would vote for the first option personally, but if Lazarus core devels agree we can add the lnet light code. - add a FPC version check to the code This means that if all goes well we can commit by the end of next week probably. Regards, Darius -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] fppkg front end
On May 14, 2011, at 9:12 PM, Darius Blaszyk wrote: On May 14, 2011, at 7:39 PM, Joost van der Sluis wrote: On Sat, 2011-05-14 at 19:24 +0200, Michael Van Canneyt wrote: On Sat, 14 May 2011, Joost van der Sluis wrote: Is that a matter of days or weeks? Because else we can commit the lnet-light version for now. It's not very easy to work with two people on a project, using numbered zip files in a bug tracker as versioning system... It is a matter of days. Server is already done, I am now testing it. HTTP Client should be even more simple. I don't know what you're talking about zip files ? I commit everything I do in subversion. http://bugs.freepascal.org/view.php?id=19335 This is why I offered the patch as a final patch. Only a couple of cleanups left and it will be eligible for committing. Items that need sorting: - lnet : we will either need to wait for Michaels solution or use the lnet light code. I would vote for the first option personally, but if Lazarus core devels agree we can add the lnet light code. - add a FPC version check to the code I forgot to add: - create a new Laz_ExecuteAction -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] fppkg front end
I finally finished the Lazarus version of fppkg. Please review and test. In the zip file you will find a modified version of fppkg, I have created a separate patch for these changes (19348) . Once committed I will cleanup this patch again and it could go for commit if approved of course. Regards, Darius On May 10, 2011, at 1:24 AM, Darius Blaszyk wrote: Hi, Here's a first version of a graphical front end for fppkg. Currently it supports all basic commands. It's my plan to extend this front end in the future and at some time support lazarus packages as well. Please review and commit if approved. fppkg.zip Regards, Darius-- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] fppkg front end
On May 11, 2011, at 3:15 AM, Mattias Gaertner wrote: On Tue, 10 May 2011 01:24:39 +0200 Darius Blaszyk dhkblas...@zeelandnet.nl wrote: Hi, Here's a first version of a graphical front end for fppkg. Currently it supports all basic commands. It's my plan to extend this front end in the future and at some time support lazarus packages as well. Please review and commit if approved. I have not tested the package, but there are a few minor formatting issues: Please use separate directories for lpk and lpi. The comment in lazfpc_pkg.pas is wrong. It was not automatically created by Lazarus. Please add comment headers with at least a hint about license and what the unit is about. Fill in the package options description, author, license, version. I guess you don't need the option to add package unit to uses section. Please enable i18n and use resourcestrings. Where is the help? Why is the short cut named Show fppkg form and the menu item Show fppkg manager? Thanks for the feedback. I have fixed all the issues you mentioned in a new patch. For ease and because the patch is becoming rather large I have put it up on the bug-tracker: http://bugs.freepascal.org/view.php?id=19335 so everyone can test it by themselves. I also do expect a couple of patches to fppkg and this way I can add relationships between these patches as well. Couple of known issues: - mem leaks - will have to sort the fppkg classes out, I'm finding it hard to follow all the code in fppkg - read all packages (remote and local): same as above - I have added a local copy of ffpkg to the patch, this will go once fppkg moves to packages in FPC - I disabled fppkg commands, was through command line in future will be direct from code - error when installing the lpk. Error while compiling resources Darius -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] fppkg front end
I would say A as well. However I have no idea what you mean with virtual units. What are they? Also if I'm not mistaking fppkg lives in utils. Should this be moved to packages then? That's exactly the idea. When those units are moved to packages, they are available (virtual) to everyone. Lazarus and non-Lazarus. (So making them a Lazarus package is not the right way, imho) Problems of this option can be that the fppkg version installed on a system is different then the version which is used when building the application. The library solves that problem. Joost, will you move fppkg to ./packages? Do I need to create a report for it? Darius -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] fppkg front end
On May 11, 2011, at 10:51 AM, michael.vancann...@wisa.be wrote: On Wed, 11 May 2011, Darius Blaszyk wrote: I would say A as well. However I have no idea what you mean with virtual units. What are they? Also if I'm not mistaking fppkg lives in utils. Should this be moved to packages then? That's exactly the idea. When those units are moved to packages, they are available (virtual) to everyone. Lazarus and non-Lazarus. (So making them a Lazarus package is not the right way, imho) Problems of this option can be that the fppkg version installed on a system is different then the version which is used when building the application. The library solves that problem. Joost, will you move fppkg to ./packages? Do I need to create a report for it? Just the units need to be moved imho, the actual program not really ? You're right on that. On a side note, I would like to use some of the features that fppkg implements as well (like setting up the repositories). Is it OK to move these functions to a separate class or unit? This way both fppkg as the GUI can use the same functions and do not need to implement them separately. Darius -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] reverse engineering tool wanted
There is fpclasschart On Apr 18, 2011, at 11:30 PM, Marc Santhoff wrote: Hi, I'm searching a reverse engineering tool that can handle lazarus' code. The main goal is to generate class diagrams and sequence diagrams from source. I found this one so far, but the links for more info and downloading are dead: http://www.vclcomponents.com/Delphi/Project/Pro_Analyzer_for_Delphi_and_Pascal-info.html Is there anything else? Marc -- Marc Santhoff m.santh...@web.de -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Get JPEG from TAChart in CGI app
On Mar 23, 2011, at 12:05 PM, Alexander Klenin wrote: 3) Kerning is totally broken. Maybe it is windows-specific problem, but look at the attached code and screenshot to see what I mean. This has been already fixed in trunk. I even think it has been merged in 2.4.3. Darius -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] IMGUI example
Just tried on the mac mini. The demo runs up to 1000FPS which is the limit of what I can measure. How nice to have hardware acceleration One more thing tho, there seem to be a some bugs with key handling. 1) OnKeyPress, OnKeyDown and OnKeyUp are not fired for TOpenGLControl on win32 but are fired on mac 2) OnKeyDown and OnKeyUp for TForm always give an uppercase value for the key, only OnKeyPress gives the correct character (lower or uppercase) for win32. On Mac however I got the right value for the key that fired the method each time. Are these known issues? I googled a bit and looked on the bug tracker but couldn't find anything related. Just try the demo I sent to see if this can be confirmed. On win32 I used a lazarus snapshot (2.4.3) no more than a couple of days old. Regards, Darius On Mar 30, 2011, at 1:45 PM, dhkblas...@zeelandnet.nl dhkblas...@zeelandnet.nl wrote: Hi, Here's a nice demo which I reworked to FPC/Lazarus of an IMGUI implementation. An IMGUI is a different approach to implementing a widget toolkit and may be of interest in some applications. Additionally I included a port of a vector font library for OpenGL. The demo is very fast (60FPS on a low end laptop). For now this was only tested on win32 but I'm confident that it will run on any platform without issues as it's native pascal all over. I would welcome it if it could be included as an example for the OpenGLContext component. Regards, Darius imgui.zip-- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] IMGUI example
I checked linux, and there the OnKeyXX also works correct. So this seems to be a win32 specific thing. Darius On Mar 30, 2011, at 3:52 PM, Darius Blaszyk wrote: Just tried on the mac mini. The demo runs up to 1000FPS which is the limit of what I can measure. How nice to have hardware acceleration One more thing tho, there seem to be a some bugs with key handling. 1) OnKeyPress, OnKeyDown and OnKeyUp are not fired for TOpenGLControl on win32 but are fired on mac 2) OnKeyDown and OnKeyUp for TForm always give an uppercase value for the key, only OnKeyPress gives the correct character (lower or uppercase) for win32. On Mac however I got the right value for the key that fired the method each time. Are these known issues? I googled a bit and looked on the bug tracker but couldn't find anything related. Just try the demo I sent to see if this can be confirmed. On win32 I used a lazarus snapshot (2.4.3) no more than a couple of days old. Regards, Darius On Mar 30, 2011, at 1:45 PM, dhkblas...@zeelandnet.nl dhkblas...@zeelandnet.nl wrote: Hi, Here's a nice demo which I reworked to FPC/Lazarus of an IMGUI implementation. An IMGUI is a different approach to implementing a widget toolkit and may be of interest in some applications. Additionally I included a port of a vector font library for OpenGL. The demo is very fast (60FPS on a low end laptop). For now this was only tested on win32 but I'm confident that it will run on any platform without issues as it's native pascal all over. I would welcome it if it could be included as an example for the OpenGLContext component. Regards, Darius imgui.zip-- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] IMGUI example
On Mar 30, 2011, at 8:26 PM, Mattias Gaertner wrote: On Wed, 30 Mar 2011 15:52:57 +0200 Darius Blaszyk dhkblas...@zeelandnet.nl wrote: [...] 2) OnKeyDown and OnKeyUp for TForm always give an uppercase value for the key, The Key parameter is the virtual key code. only OnKeyPress gives the correct character (lower or uppercase) for win32. On Mac however I got the right value for the key that fired the method each time. How can a virtual key code give upper or lower case? Maybe you mean ssShift is not set correct in the Shift parameter under Windows? I didn't realize they were VKs. It makes sense now. Still however there is some strangeness. The TForm.OnKeyDown method is only executed once on Mac. On win32 it is executed all the time, but then again the TOpenGLControl1.OnKeyDown is not executed on win32 but works on Mac. Regards, Darius -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Another IDE interface question
1. get all the -Fu and -Fi folders so the package can search them and allow the user to include/exclude them from profiling, which method to use in LazIDEIntf? I added some info: http://wiki.lazarus.freepascal.org/Extending_the_IDE#Getting_the_search_paths_for_units_and_include_filesuses CodeToolManager; Again a couple of questions regarding the IDE interface; 1. Is it possible to (temporarily) suppress the check if a file on disk has changed? 2. I would like to add a unit search path to the project and later be able to remove it again. Is this possible? Regards, Darius -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Another IDE interface question
On Feb 5, 2011, at 4:02 PM, Mattias Gaertner wrote: Darius Blaszyk dhkblas...@zeelandnet.nl hat am 5. Februar 2011 um 14:55 geschrieben: 1. get all the -Fu and -Fi folders so the package can search them and allow the user to include/exclude them from profiling, which method to use in LazIDEIntf? I added some info: http://wiki.lazarus.freepascal.org/Extending_the_IDE#Getting_the_search_paths_for_units_and_include_filesuses CodeToolManager; Again a couple of questions regarding the IDE interface; 1. Is it possible to (temporarily) suppress the check if a file on disk has changed? No. I could add this, but maybe there are better ways than changing the source back and forth on disk. Basically you need a preprocessor for FPC. The first step is to extend FPC to not load files directly from disk. I tried some months ago and it was amazingly simple. It is quite simple to build your own custom compiler and it uses a central place to load source files. With a simple patch the central loading can be extended for an overload. This costs no performance and has very low maintenance cost for the FPC team, so there is a good chance the patch will be applied. At that time DoDi was working on the compiler, so I waited for the dust to settle and then I forgot to provide the patch. The patch is on another computer. I can search for it next week. Sounds very promising, I would welcome your sources to see if I can use this in fpprofiler. A custom compiler can then add the file hook to feed fpc with preprocessed source files, for example your fpfprofile code. Or even read the files from a stream instead, so the profiling code can be inserted on the fly? Of course eventually it would be nice if FPC could use an optional preprocessor without the need to compile your own compiler. I'm for that, sure. But I would also like to be able to use a profiler without the need to have to compile a new compiler with different pre-processor. Quite some users might find this difficult or even scary. Another solution is to implement a ramdisk. That would work with any existing compilers, but requires one implementation per OS and can be tricky because of access rights. It sounds to difficult to me. Not my prefference, in that case I would rather stay with disabling the check in Lazarus for changed files. if FileExistsUTF8(Filename) then LazarusIDE.DoRevertEditorFile(Filename) else LazarusIDE.DoCloseEditorFile(Filename,[cfQuiet]); 2. I would like to add a unit search path to the project and later be able to remove it again. Is this possible? Yes. LazarusIDE.ActiveProject.LazCompilerOptions.OtherUnitFiles But the handling of the modified flags can be tricky. Thanks will examine how this works. Regards, Darius-- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Another IDE interface question
On Feb 3, 2011, at 6:45 PM, Darius Blaszyk wrote: For the fpprofiler package I would like to know/do the following; 1. get all the -Fu and -Fi folders so the package can search them and allow the user to include/exclude them from profiling, which method to use in LazIDEIntf? 2. replace the FPC executable with the profiling frontend executable. currently I do: //insert profiling code using TProcess //build project using : LazarusIDE.DoBuildProject(crCompile, []); //remove profiling code using TProcess //execute project if LazarusIDE.ActiveProject.ExecutableType = petProgram however, I'm not sure if it could be done better Ideally I would replace the FPC executable by FPP and then execute LazarusIDE.DoRunProject (??) . This way I would not have to play with TProcess to insert and remove profiling code and execute the application. Darius -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] IDE package interface question
Martin / Mattias, Thanks for the help. I finally used RegisterChangeEvent and it works fine. Unfortunately I have a another problem now. After modifying the caret position the event is fired and from the caret position I need to resolve the method name. I have looked at how this is done ./examples/idequickfix, but unfortunately whatever I try ProcNode keeps returning nil. The snippet below is from the above mentioned example but slightly modified. To view the code in context see here: http://svn.freepascal.org/cgi-bin/viewvc.cgi/fpprofiler/trunk/lazprof/lazprofview.pas?view=markuprevision=2525root=fpcprojects. Can someone help me here please? Thanks in advance, Darius AUnit := SourceEditorManagerIntf.ActiveSourceWindow.ActiveEditor.FileName; DebugLn('TLazProfileViewer.ShowCodeInfo - 1'); if AUnit CachedUnit then begin if Assigned(CodeBuf) then FreeAndNil(CodeBuf); //load the unit file CodeBuf := CodeToolBoss.LoadFile(AUnit, False, False); DebugLn('TLazProfileViewer.ShowCodeInfo - 2'); // parse the code if not ParseCode(CodeBuf, CodeTool) then exit; DebugLn('TLazProfileViewer.ShowCodeInfo - 3'); end; Pos := SourceEditorManagerIntf.ActiveSourceWindow.ActiveEditor.CursorTextXY; DebugLn('TLazProfileViewer.ShowCodeInfo - 4'); //find the source position if not CaretToSourcePosition(CodeTool, CodeBuf, Pos.x, Pos.y, CleanPos) then exit; DebugLn('TLazProfileViewer.ShowCodeInfo - 5'); // find procedure node ProcNode := CodeTool.FindDeepestNodeAtPos(CleanPos, False); if ProcNode nil then ProcNode := ProcNode.GetNodeOfType(ctnProcedure); DebugLn('TLazProfileViewer.ShowCodeInfo - 6'); //nothing found so exit if ProcNode = nil then exit; -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
[Lazarus] IDE package interface question
Hi, How can I get the source filename, method name and position on clicking the source editor through the ideintf? I would like to have this so I can make my IDE package (fpprofiler) context sensitive. Regards, Darius -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] IDE package interface question
What I would like to do is to update a listview (in my package) after I click on the source editor. So I need to hook into the source editor's OnClick method and get the procedure/function name, line number and the file name. The last two items will probably be more easy, but what about the first? Is there an interface for the code tools that allows this? How about hooking into the OnClick method of the source editor? Regards, Darius On Jan 25, 2011, at 12:44 AM, Mattias Gaertner wrote: On Tue, 25 Jan 2011 00:23:44 +0100 Darius Blaszyk dhkblas...@zeelandnet.nl wrote: Hi, How can I get the source filename, method name and position on clicking the source editor through the ideintf? I would like to have this so I can make my IDE package (fpprofiler) context sensitive. Source filename and position: http://wiki.lazarus.freepascal.org/Extending_the_IDE#Source_Editor What do you mean with method name? Of the identifier at cursor or the method name of the current method body? Mattias -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] IDE package interface question
On Jan 25, 2011, at 1:03 AM, Mattias Gaertner wrote: On Tue, 25 Jan 2011 00:51:07 +0100 Darius Blaszyk dhkblas...@zeelandnet.nl wrote: What I would like to do is to update a listview (in my package) after I click on the source editor. So I need to hook into the source editor's OnClick method and get the procedure/function name, line number and the file name. The last two items will probably be more easy, but what about the first? Is there an interface for the code tools that allows this? How about hooking into the OnClick method of the source editor? With OnClick I guess you mean left click? Why only update on click? Why not update after every cursor movement on a second idle? You're right, it should be on every cursor movement. So how can I trigger the update when the cursor moves? I had a look at the wiki, but the code did not give any hints on that as far as I could see. About method name: maybe you mean something like ide/codetemplatesdl.pas function CodeMacroProcedureHead. Thanks, will have a look. Darius -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] What are widgets in lazarus?
On Jan 10, 2011, at 11:52 AM, Michael Schnell wrote: On 01/09/2011 03:45 PM, Darius Blaszyk wrote: This is also the reason why I started on a GLut/OpenGL backend for fpGUI. In the last weeks it has reached a point that some examples already work perfectly. So can we expect to - finally - see a lot new and fully functional (form designer and support for TTimer, inter-Thread messages, etc) Widget.-Types in Lazarus (hopefully with support for all platforms (OS and CPU) ) such as fpGUI, GLut/OpenGL, active NoGui, etc (and dreaming of remote GUIs such as HTTP/HTML (e.g. ExtJS based (Ext-Pascal improvement) or with a dedicated TCP/IP connected Lazarus Remote Control program) ? Does the current Widget Set code infrastructure really allow for this without a major overhaul ?\ I added a new backend to fpGUI not to lazarus. -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] What are widgets in lazarus?
On Jan 10, 2011, at 12:12 PM, Michael Schnell wrote: On 01/10/2011 12:00 PM, Darius Blaszyk wrote: I added a new backend to fpGUI not to lazarus. I see. Thanks for the clarification. Unfortunately a full integration for fpGUI into Lazarus seems like a not easy task, so the other possible Widget types I mentioned can't benefit from this :( . Is that so? I always thought it was a matter of resources. D -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] What are widgets in lazarus?
On Jan 9, 2011, at 1:40 PM, Zaher Dirkey wrote: On Sun, Jan 9, 2011 at 12:44 PM, Michael Van Canneyt mich...@freepascal.org wrote: On Sun, 9 Jan 2011, Graeme Geldenhuys wrote: 2011/1/9 Zaher Dirkey parm...@gmail.com: If you not use it, would you please make it as an option (new Platform). Yes, it will definitely be a new platform. fpGUI would then have eg: GDI, X11, SDL etc. as backends. I think it makes more sense to skip SDL and directly use the linux framebuffer. Eliminate a layer. You already have direct support for all other 'platforms' that SDL supports, so why add another (changing) dependency/point of failure? It may be initially harder, but will prove easier to maintain in the long run. It is for games, like The Mana World, have dialogs for options and login, we can use both SDL and show some forms. This is also the reason why I started on a GLut/OpenGL backend for fpGUI. In the last weeks it has reached a point that some examples already work perfectly. Also I have done some preliminary tests on Mac and Linux (primary developing on Win32) which indicate it should run there without any issues. What still needs to be done it to analyze why certain widgets are not drawn correctly (fixing the backend and some subtle bugs in the core lib), fixing font drawing (which seems to have some major issues) and finally cleaning everything up. I'm doing the development work on: svn://scandraid.svn.sourceforge.net/svnroot/scandraid/src/branches/fpgui/ Regards, Darius-- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] What are widgets in lazarus?
On Jan 9, 2011, at 4:16 PM, Graeme Geldenhuys wrote: On 9 January 2011 12:44, Michael Van Canneyt wrote: I think it makes more sense to skip SDL and directly use the linux framebuffer. The reasoning behind wanting to use SDL is so that I can target multiple platforms with one backend. Maybe not ideal, but a quick fix in supporting many platforms. Two platforms I am very interested in is Linux Framebuffer (so as to bypass the horrible X11) and Haiku (pretty amazing features and very fast). Closer to the time, I'll take a deeper look into each platforms API. As you said, writing for the platform directly and bypassing a extra layer/dependency might be the better approach in the long run. That's why we would need a common context library to be added to fpGUI in the long term. Darius-- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] What are widgets in lazarus?
On Jan 9, 2011, at 4:47 PM, Graeme Geldenhuys wrote: 2011/1/9 Darius Blaszyk : I'm doing the development work on: svn://scandraid.svn.sourceforge.net/svnroot/scandraid/src/branches/fpgui/ I checked out that branch and tried to compile the fpgui_toolkit.lpk package in the 'gl' directory. Where do I find the freeglut unit which the compiler complains about. I'm using Ubuntu 8.04.4 and have installed all the glit and freeglut related packages and their *-dev packages. I'm using FPC 2.4.3 Oops, you'll need some stuff from another branch as well. I will update SVN and will let you know. My branch uses fcl-image and opengl from FPC 2.5.1 and some local modifications (mainly on freetype support). These will hopefully be merged bach to trunk once I finish and cleanup. Regards, Darius-- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] What are widgets in lazarus?
On Jan 9, 2011, at 6:27 PM, Darius Blaszyk wrote: On Jan 9, 2011, at 4:47 PM, Graeme Geldenhuys wrote: 2011/1/9 Darius Blaszyk : I'm doing the development work on: svn://scandraid.svn.sourceforge.net/svnroot/scandraid/src/branches/fpgui/ I checked out that branch and tried to compile the fpgui_toolkit.lpk package in the 'gl' directory. Where do I find the freeglut unit which the compiler complains about. I'm using Ubuntu 8.04.4 and have installed all the glit and freeglut related packages and their *-dev packages. I'm using FPC 2.4.3 Oops, you'll need some stuff from another branch as well. I will update SVN and will let you know. My branch uses fcl-image and opengl from FPC 2.5.1 and some local modifications (mainly on freetype support). These will hopefully be merged bach to trunk once I finish and cleanup. I have added everything under a folder named external. Just add the two folders to the unit search path and it should compile. Regards, Darius -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] What are widgets in lazarus?
FPC and Lazarus are, by and large, pretty simple to build. Middleware such as SDL can be far more difficult because it can turn out to have a cascade of requirements, and in the past I've found things like TrueType to be particularly painful. Hi Mark, Can you explain what your problems were with truetype? I'm using freetype for font rendering in the opengl backend but so far there were no main issues with the freetype bindings, apart from some issues (bugs?) in the fontmanager. Regards, Darius -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Project conversion Delphi - FreePascal: success!
Hi Birger, The list is definitely of interest to me and others! If possible please create patches and add them to the bug tracker. This will help not only future conversions but ordinary projects as well. Regards, Darius On Jan 3, 2011, at 10:14 AM, Birger Jansen wrote: Hi all, Last month I converted a 500.000 lines Delphi project to FreePascal, and I wanted to thank those who replied to my questions over the mailing list and the whole FPC / Lazarus team for delivering a great product. Also all contributors to wiki pages, newsgroups and forums: thanks! Even the smallest pages or postings contained useful information and are a valuable source of information. The converted application is an output viewer for calculations based on the finite element method. It is intended for 2-Dimensional and 3-Dimensional geotechnical analysis of deformation and stability of soil structures, as well as groundwater and heat flow, in geo-engineering applications such as excavation, foundations, embankments and tunnels. (so this is a result viewer, the actual calculations are performed with another application). The conversion was a pilot with the main reason for trying FPC the need for 64 bit. During conversion I encountered lots of small issues (Unicode, OpenGL, images with scanline manipulation, generics, anonymous methods, class constants and functions, MDI forms, treeview with custom drawing, Steema TChart, custom controls and more). For most of the encountered issues I created a list with their solution, I'll try to clean it up and see if I can post it somewhere because it might also be helpful for others. Attached you will find some screenshots of the result, these give you an idea of what the program does. With kind regards, Birger Jansen screenshot 1.JPGscreenshot 2.JPGscreenshot 4.JPGscreenshot 6.JPG-- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
[Lazarus] Help with lazarus on Mac
I'm trying to get Lazarus working on a mac mini. What I did is the following; 1. installed xcode_3.2.5_and_ios_sdk_4.2_final.dmg 2. installed fpc-2.4.2.intel-macosx.dmg 3. got lazarus from SVN and did a make clean all First of all I see a lot linker errors eg ld: warning: unknown stabs type 0xC0 in ../units/i386-darwin/outputfilter.o What does this mean? Second, after starting ./lazarus from the console or lazarus.app from the finder, the splash screen shows and a message box FPC sources not found is shown, after which the app just freezes. I have pasted the output from the command line below. I must have done something wrong, but since it's my first try on a mac I would appreciate some help. Regards, Darius ./lazarus CarbonFontIDToFontName Error: ATSUFindFontName Length failed with result -8905 CarbonFontIDToFontName Error: ATSUFindFontName Length failed with result -8905 TMainIDE.ParseCmdLineOptions: PrimaryConfigPath=/Users/dariusblaszyk/.lazarus SecondaryConfigPath=/etc/lazarus Note: environment config file not found - using defaults NOTE: editor options config file not found - using defaults NOTE: miscellaneous options file not found - using defaults NOTE: codetools config file not found - using defaults NOTE: Compiler filename not set! (see Environment / Options ... / Environment / Files) NOTE: FPC source directory not set! (see Environment / Options ... / Environment / Files) TFPCTargetConfigCache.NeedsUpdate compiler file changed /usr/local/bin/fpc FileAge=1289335232 StoredAge=0 TFPCTargetConfigCache.Update /usr/local/bin/fpc TargetOS=darwin TargetCPU=i386 CompilerOptions= ExtraOptions= PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin RunTool /usr/local/bin/fpc -iTOTP -Pi386 -Tdarwin RunTool /usr/local/bin/fpc -va -Pi386 -Tdarwin compilertest.pas TFPCTargetConfigCache.Update: has changed -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Help with lazarus on Mac
On Dec 30, 2010, at 6:58 PM, dmitry boyarintsev wrote: On Thu, Dec 30, 2010 at 8:13 AM, Darius Blaszyk dhkblas...@zeelandnet.nl wrote: I'm trying to get Lazarus working on a mac mini. What I did is the following; 1. installed xcode_3.2.5_and_ios_sdk_4.2_final.dmg 2. installed fpc-2.4.2.intel-macosx.dmg 3. got lazarus from SVN and did a make clean all you're missing the 4th step: 4. run lazarus bundle (rather than the executable). the command is: open lazarus.app That does not work. The app still freezes. I tried from finder as I described earlier, but also from command as you described. the other option is to run lazarus executable from the bundle cd lazarus.app/Contents/MacOS/ ./lazarus, instead of the executable outside of the bundle. This does work! Thanks for that. However if I do a restart from the IDE lazarus hangs again. I guess that lazarus will only start the way you described above. Luckily rebuilding lazarus works fine but only using Carbon. When I tried with Cocoa there was a compiler error on the objectivec1 compiler switch. Is this a known issue? Is Cocoa in a state so I can compile the IDE already in it? note: you can ignore warnings ld: warning: unknown stabs type 0xC0 in ../units/i386-darwin/outputfilter.o Understood, but what does this mean? Just for my curiosity. Regards, Darius -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Message dialogs in Lazarus
Hi Brian, It's not my thing normally to reply to rants, but I simply could not resist. From time to time threads lead to discussions where people express their grief with Lazarus (to say it mildly). Perhaps we should create a FAQ on this ;) But to your remarks I can say only this; If you have any issues with Lazarus then do something about it yourself, other than accusing others not to work on what you think is important. Please answer the following question for yourself: what have you constructively done to improve Lazarus? Things that you could do, according to your expertise on the subject as follows from your email; - create a proposal to improve the release protocol for stable releases - improve the comprehensive test suite for the GUI so it covers all features of Lazarus. Please don't forget also all combinations of all features. - implement a basic layout manager. While you're at it could you also integrate it with the design editor? It will make our lives more easy. Once you have done all this, and the quality is good enough I'm sure the core developers will grant you SVN access. Development of Lazarus will go faster for you and the future of Lazarus will look shiny again. Please keep us informed of your progress. Regards, Darius On Sun, 2010-12-19 at 11:15 -0800, Brian Prentice wrote: Vincent, That is a ridiculous statement and is one of the main reasons why this project is such a miserable failure. All formal releases should be stable. What is needed is a comprehensive test suit that covers all features of Lazarus. This test software should be used for regression testing and run on all platforms whenever new features are added. Also new tests should be added to the suit to test these new features. If this is done all that is required is to obtain a clean run of this test suit on all platforms before each formal release. As a bonus the test suit should be included with each release to provide clear examples of how to use Lazarus. The other main reason why this project is going nowhere is because the stated goal to write once and compile everywhere is completely incompatible with the desire to follow the native interface and design guidelines of each operating system that is supported. The project is further badly hindered by the stubborn refusal of the designers to implement Layout Managers. Brian Prentice On Sun 19/12/10 06:40 , Vincent Snijders vincent.snijd...@gmail.com sent: 2010/12/18 Graeme Geldenhuys graemeg.li...@gmail.com: To Vincent, This is the exact thing I am talking about. Saying a stable release is a few weeks away, things like this should not be happening in Trunk. The mailing list is full of such reports. I guess I am eager to release when it is ready. If it is ready, I don't want to wait for weeks to be sure it is stable. Vincent -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Form position and size not preserved
On Tue, 2010-11-30 at 00:11 +0100, José Mejuto wrote: Hello Lazarus-List, Monday, November 29, 2010, 10:08:06 PM, you wrote: DB Since some time the UI position and size of the forms of Lazarus are not DB preserved anymore. If I for instance organize them in a certain way and DB then press compile, the source editor changes size and position. Also DB restarting Lazarus makes the forms jump back to some original size and DB position. Is this a bug, or are my position and size settings simply not DB saved properly? DB What can I do to test? Please, move one form to a clearly different position, now in the object inspector select the Top field, edit and press enter. Repeat this step with Left field. Save the project, exit Lazarus and reopen. I was talking about the forms of the Lazarus UI. Not forms of my project. So for instance the source editor keeps changing the size back to some odd location and size. Not only when I open a new project, but also when I compile the project. It's driving me mad! Darius -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
[Lazarus] Form position and size not preserved
Since some time the UI position and size of the forms of Lazarus are not preserved anymore. If I for instance organize them in a certain way and then press compile, the source editor changes size and position. Also restarting Lazarus makes the forms jump back to some original size and position. Is this a bug, or are my position and size settings simply not saved properly? What can I do to test? Darius -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
[Lazarus] AV on Lazarus startup
I get the following AV introduced by rev 27870. Lazarus 0.9.29 r27869M FPC 2.4.0 i386-linux-gtk 2 (beta) Darius (lazarus:3469): GdkPixbuf-CRITICAL **: gdk_pixbuf_new_subpixbuf: assertion `src_x = 0 src_x + width = src_pixbuf-width' failed (lazarus:3469): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_pixels: assertion `GDK_IS_PIXBUF (pixbuf)' failed (lazarus:3469): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_rowstride: assertion `GDK_IS_PIXBUF (pixbuf)' failed (lazarus:3469): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed TApplication.HandleException Access violation Stack trace: $08182D11 TLAZINTFIMAGE__GETCOLOR_BPP32_R8G8B8A8_BIO_TTB, line 2168 of intfgraphics.pas $08184330 TLAZINTFIMAGE__GETINTERNALCOLOR, line 3097 of intfgraphics.pas $0816EC51 line 6543 of lclversion.pas $08185A14 TLAZINTFIMAGE__COPYPIXELS, line 3578 of intfgraphics.pas $0815728F TCUSTOMIMAGELIST__INTERNALSETIMAGE, line 854 of ./include/imglist.inc $08155F28 TCUSTOMIMAGELIST__INTERNALINSERT, line 228 of ./include/imglist.inc $08156D80 TCUSTOMIMAGELIST__INSERT, line 698 of ./include/imglist.inc $08155AB9 TCUSTOMIMAGELIST__ADD, line 66 of ./include/imglist.inc $08155D41 TCUSTOMIMAGELIST__ADDLAZARUSRESOURCE, line 162 of ./include/imglist.inc $08649255 TCODEEXPLORERVIEW__CODEEXPLORERVIEWCREATE, line 415 of codeexplorer.pas $080840F3 TCUSTOMFORM__DOCREATE, line 876 of ./include/customform.inc $08082797 TCUSTOMFORM__AFTERCONSTRUCTION, line 79 of ./include/customform.inc $08088A0E TFORM__CREATE, line 2849 of ./include/customform.inc $080BADA8 TMAINIDE__DOSHOWCODEEXPLORER, line 9096 of main.pp $080BB002 TMAINIDE__CREATEIDEWINDOW, line 9156 of main.pp $0837FE31 TIDEWINDOWCREATORLIST__GETFORM, line 1429 of idewindowintf.pas $083801C5 TIDEWINDOWCREATORLIST__RESTORESIMPLELAYOUT, line 1497 of idewindowintf.pas -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] AV on Lazarus startup
I'm sure. I'm now at rev 27869, because that didn't give me the AV. Updating to 27870 gave me the AV which I mentioned. Darius On Tue, 2010-10-26 at 13:04 +0200, zeljko wrote: On Tuesday 26 October 2010 11:20, Darius Blaszyk wrote: I get the following AV introduced by rev 27870. Are you sure that 27870 introduced such bug ? As I can see your version is 27869 ?!? Lazarus 0.9.29 r27869M FPC 2.4.0 i386-linux-gtk 2 (beta) zeljko -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] AV on Lazarus startup
On Tue, 2010-10-26 at 13:58 +0200, zeljko wrote: On Tuesday 26 October 2010 13:35, Darius Blaszyk wrote: I'm sure. I'm now at rev 27869, because that didn't give me the AV. Updating to 27870 gave me the AV which I mentioned. Fixed in r 27879 Indeed. Thanks for that. Darius -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus