Re: [Lazarus] TImageList.AddMasked not working with TBitmap.PixelFormat := pf32bit
Hi Mark, Thank you! The reason I need to use pf32bit is that I manipulate the raw image, and I access the pixels as integers. I can't do that if the image is 24 bit. I actually don't care about the Alpha channel in this case. AScanLineImage:=TLazIntfImage.Create(0,0); AImgFormatDescription.Init_BPP32_B8G8R8_BIO_TTB(Images.Width,Images.Height); AScanLineImage.DataDescription := AImgFormatDescription; for Y :=0 to AScanLineImage.Height-1 do begin Ptr := AScanLineImage.GetDataLineStart( Y ); for X := 0 to AScanLineImage.Width-1 do begin AColor := TColor( Ptr^ and $FF ); if( AColor = clWhite ) then Ptr^ := AGlyphColor else if( AColor = clGray ) then Ptr^ := ABorderColor else if( ASecondaryArea and ( AColor = clRed )) then Ptr^ := ABorderColor else if( AColor = clLtGray ) then Ptr^ := AHalfToneColor else if( AColor = clBlack ) then Ptr^ := AButtonColor AIntfImage.CopyPixels( AScanLineImage ); ABitmap.LoadFromIntfImage( AIntfImage ); Images.ReplaceMasked( ImageIndex, ABitmap, InvertColor( AUniqueColor )); As you can see I need this so I can access the pixels fast as a raw image, and need to get the image back. This is significantly more complex in 24 bit image, so the need for 32 bit image being added as masked is obvious. With best regards, Boian Mitov --- Mitov Software www.mitov.com --- - Original Message - From: "Marc Weustink" To: "General mailing list" Sent: Tuesday, April 14, 2009 1:29 AM Subject: Re: [Lazarus] TImageList.AddMasked not working with TBitmap.PixelFormat := pf32bit > there is not a good reason to add a 32bit alpha image using a mask. > Anyway, in the current implementation, the added images are converted > first. This is still a todo to fix. ___ Lazarus mailing list Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
[Lazarus] TImageList.AddMasked not working with TBitmap.PixelFormat := pf32bit
Hi Folks, I am testing the: Lazarus-0.9.27-19324-fpc-2.2.5-20090411-win32.exe snapshot. I have had a bug that has been around for many months, and finally had time to investigate it in this snapshot. The TImageList.AddMasked does not work correctly with TBitmap.PixelFormat := pf32bit; . It works with pf24bit but not with pf32bit. Here is a demo code that shows the bug: procedure TForm1.PaintBox2Paint(Sender: TObject); var ABitmap : TBitmap; AImgeList : TImageList; begin AImgeList := TImageList.Create( NIL ); AImgeList.Width := 16; AImgeList.Height := 16; ABitmap := TBitmap.Create(); ABitmap.Width := 16; ABitmap.Height := 16; ABitmap.PixelFormat := pf32bit; // ABitmap.PixelFormat := pf24bit; ABitmap.Canvas.Brush.Color:= clRed; ABitmap.Canvas.FillRect( 0, 0, 16, 16 ); ABitmap.Canvas.Brush.Color:= clBlue; ABitmap.Canvas.Ellipse( 0, 0, 16, 16 ); AImgeList.AddMasked( ABitmap, clRed ); AImgeList.Draw( PaintBox2.Canvas, 10, 10, 0, True ); ABitmap.Free(); AImgeList.Free(); end; Even worse, after ABitmap is drawn, I can't set the ABitmap.PixelFormat := pf24bit; . If I do that the image gets erased. It is not converted. The only workaround I have found is using a temporary bitmap to draw on and then use that one to populate the ImageList. With best regards, Boian Mitov --- Mitov Software www.mitov.com ---___ Lazarus mailing list Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
[Lazarus] The Windows daily snapshots
Hi folks, The Windows daily snapshots list "Updating" for few hours already. Is there something wrong? With best regards, Boian Mitov --- Mitov Software www.mitov.com ---___ Lazarus mailing list Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] LNet component Event vs thread ? faster or more reliable?
Threads can lead to significant performance gain even on a single core, if used properly. Used incorrectly however they will lead to a slower execution if nothing else due to time lost in switching, cache flushing and thread synchronization. In multicore the performance gain can be huge, but the danger of lost performance due to bad thread synchronization still exists. Almost every single application I have written in the last 12 years has been multithreaded at least partially. Multithreading can offer a lot if used properly. With best regards, Boian Mitov Mitov Software http://www.mitov.com - Original Message - From: "davy zhang" <[EMAIL PROTECTED]> To: "General mailing list" Sent: Wednesday, August 27, 2008 11:41 PM Subject: [Lazarus] LNet component Event vs thread ? faster or more reliable? >I know there are bunch of defects of thread programing and not every > one like to use it > > but I am still wondering the real efficiency of these two model > > if we use multi-core cpu, which one is faster, or it just depends on > the compiler's optimization~ > ___ > 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] calling basicEventCreate in Linux
Hi Mattias, Exactly what I need :-) . It seems to works so far :-) . Thank you! With best regards, Boian Mitov Mitov Software http://www.mitov.com - Original Message - From: "Mattias Gaertner" <[EMAIL PROTECTED]> To: Sent: Friday, August 08, 2008 10:44 PM Subject: Re: [Lazarus] calling basicEventCreate in Linux > May this help you: > http://wiki.lazarus.freepascal.org/Multithreaded_Application_Tutorial#Units_needed_for_a_multithreaded_application ___ Lazarus mailing list Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] calling basicEventCreate in Linux
I added it to the first unit of the package but now after rebuilding I can start Lazarus: I am getting: Threading has been used before cthreads was initialized. Make cthreads one of the first units in your uses clause. Runtime error 211 at $08651EFA $08651EFA $087B99ED Please help! How to use thread synchronization inside Lazarus components in Linux? Do I need to write my own TEvent class for that? Is there alternative event that I can use and will work? With best regards, Boian Mitov Mitov Software http://www.mitov.com - Original Message - From: "Inoussa OUEDRAOGO" <[EMAIL PROTECTED]> To: "General mailing list" Sent: Friday, August 08, 2008 4:14 PM Subject: Re: [Lazarus] calling basicEventCreate in Linux > 2008/8/8 Boian Mitov <[EMAIL PROTECTED]>: >> Hi Inoussa, >> >> Thank you! >> I am actually writing Lazarus component packages. Will this work in the >> package? I guess it should, but just to make sure. >> Also where I should put the uses section in the package unit, or in the >> component units? > > As the "cthreads" use is application wide, I think that it is up to the > application to include "cthreads" unit. > > > -- > Inoussa O. > ___ > 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] calling basicEventCreate in Linux
Hi Inoussa, Thank you! The problem is that the components are multithreading, and as soon as I drop the component on the form in Linux it crashes Lazarus. The components have thousands of thread locks in them. The Lazarus in this case is the application. I apparently will have to add this to the component packages somehow. Obviously any application that includes the components will have to use the "cthreads" in this case. The components are for real time video audio and signal processing, and they have to be multithreading in order to process the streams without interfering with the GUI. This is a large set of over 200 components I am porting from Delphi to support Lazarus. So far they work fairly well in Lazarus under Windows, but I am having the TEvent problem in Linux. What is the best approach? I can write my own TEvent if it is needed, but I hope there is a better approach. With best regards, Boian Mitov Mitov Software http://www.mitov.com - Original Message - From: "Inoussa OUEDRAOGO" <[EMAIL PROTECTED]> To: "General mailing list" Sent: Friday, August 08, 2008 4:14 PM Subject: Re: [Lazarus] calling basicEventCreate in Linux > 2008/8/8 Boian Mitov <[EMAIL PROTECTED]>: >> Hi Inoussa, >> >> Thank you! >> I am actually writing Lazarus component packages. Will this work in the >> package? I guess it should, but just to make sure. >> Also where I should put the uses section in the package unit, or in the >> component units? > > As the "cthreads" use is application wide, I think that it is up to the > application to include "cthreads" unit. > > > -- > Inoussa O. > ___ > 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] calling basicEventCreate in Linux
Hi Inoussa, Thank you! I am actually writing Lazarus component packages. Will this work in the package? I guess it should, but just to make sure. Also where I should put the uses section in the package unit, or in the component units? With best regards, Boian Mitov Mitov Software http://www.mitov.com - Original Message - From: "Inoussa OUEDRAOGO" <[EMAIL PROTECTED]> To: "General mailing list" Sent: Friday, August 08, 2008 3:14 PM Subject: Re: [Lazarus] calling basicEventCreate in Linux > > To use "cthreads", just include it as the very first unit of your > program, susch as > > >program sample; > >{$mode objfpc}{$H+} > >uses > {$IFDEF UNIX}{$IFDEF UseCThreads} > cthreads, > {$ENDIF}{$ENDIF} >; > >begin > ... >end. > > > Hope this help. > -- > Inoussa O. > ___ > 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] calling basicEventCreate in Linux
Hi JoshyFun, I get the same error when I use TEvent. TEvent uses basicEventCreate in Linux internally. Is TEvent also obsolete? What it is replaced with? I have no problems using alternative signaling, but I can't figure out which one I should use. With best regards, Boian Mitov Mitov Software http://www.mitov.com - Original Message - From: "JoshyFun" <[EMAIL PROTECTED]> To: "General mailing list" Sent: Friday, August 08, 2008 2:15 PM Subject: Re: [Lazarus] calling basicEventCreate in Linux > Hello Boian, > > Friday, August 8, 2008, 10:36:55 PM, you wrote: > > > http://www.freepascal.org/docs-html/rtl/system/basiceventcreate.html > > Basically: > > BasicEventCreate > Obsolete. Don't use > > :-? > > -- > Best regards, > JoshyFun > > ___ > 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] calling basicEventCreate in Linux
Hi Marco, Is there a setting I have to make in order for this to work? Or do I need to write a bit of code in the project? Please help! Any suggestion? With best regards, Boian Mitov Mitov Software http://www.mitov.com - Original Message - From: "Marco van de Voort" <[EMAIL PROTECTED]> To: "General mailing list" Sent: Friday, August 08, 2008 3:02 AM Subject: Re: [Lazarus] calling basicEventCreate in Linux > On Wed, Aug 06, 2008 at 07:15:44PM -0700, Boian Mitov wrote: >> I am calling basicEventCreate in a project. In Windows it works fine in >> Linux it throws exception. Is it expected? > > If you don't use cthreads, it is expected yes :-) > ___ > 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] calling basicEventCreate in Linux
Hi Marco, Thank you! How I can get it to work? I have TThread classes in the project. With best regards, Boian Mitov Mitov Software http://www.mitov.com - Original Message - From: "Marco van de Voort" <[EMAIL PROTECTED]> To: "General mailing list" Sent: Friday, August 08, 2008 3:02 AM Subject: Re: [Lazarus] calling basicEventCreate in Linux > On Wed, Aug 06, 2008 at 07:15:44PM -0700, Boian Mitov wrote: >> I am calling basicEventCreate in a project. In Windows it works fine in >> Linux it throws exception. Is it expected? > > If you don't use cthreads, it is expected yes :-) > ___ > 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] TButton must now become a custom draw component
Hi Graeme, It is mater of priorities. I am sure the LCL team would love to add all the VCL features, but there are still missing items in the current component set compare to even D7, and they correctly are looking to fill those voids first before start to add the latest VCL gizmos. With best regards, Boian Mitov Mitov Software http://www.mitov.com - Original Message - From: "Graeme Geldenhuys" <[EMAIL PROTECTED]> To: "General mailing list" Sent: Thursday, August 07, 2008 3:07 AM Subject: Re: [Lazarus] TButton must now become a custom draw component > But then you are not VCL compatible, which was told repeatedly to me, > is THE goal of LCL. ___ Lazarus mailing list Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] TButton must now become a custom draw component
I agree with Mark. It is more important to first improve, and add some of the missing core functionality than to start adding bells and whistles to the buttons and the memos, that few people will probably use. With best regards, Boian Mitov Mitov Software http://www.mitov.com - Original Message - From: "Marc Weustink" <[EMAIL PROTECTED]> To: "General mailing list" Sent: Thursday, August 07, 2008 2:49 AM Subject: Re: [Lazarus] TButton must now become a custom draw component > I'm not in a hurry to implement all those fancy new stuff. Better get > something working like D7 first. > When time comes, we'll think how to "fix" this. (At first sight i'm > against a default custom drawn button) ___ Lazarus mailing list Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
[Lazarus] calling basicEventCreate in Linux
I am calling basicEventCreate in a project. In Windows it works fine in Linux it throws exception. Is it expected? basicEventCreate( NIL, False, False, '' ); What are the alternatives if I need an event that is autoclear and another that is manually cleared in Linux? With best regards, Boian Mitov Mitov Software http://www.mitov.com ___ Lazarus mailing list Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] TButton must now become a custom draw component
Delphi has always been only backward compatible ;-) . Forward compatibility was never promised, and has never been the case. They have been adding new features to the VCL all the time, but I can still open projects done with D5 as example. With best regards, Boian Mitov Mitov Software http://www.mitov.com - Original Message - From: "Marc Weustink" <[EMAIL PROTECTED]> To: "General mailing list" Sent: Wednesday, August 06, 2008 2:33 PM Subject: Re: [Lazarus] TButton must now become a custom draw component > Graeme Geldenhuys wrote: > So Delphi broke compatebility itself ? ___ Lazarus mailing list Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] TButton must now become a custom draw component
This all depends on how efficient the custom draw code is, and what framework it uses ;-) . With best regards, Boian Mitov Mitov Software http://www.mitov.com - Original Message - From: "Boguslaw Brandys" <[EMAIL PROTECTED]> To: "General mailing list" Sent: Wednesday, August 06, 2008 1:07 PM Subject: Re: [Lazarus] TButton must now become a custom draw component > > That would require a lot of improvement in repainting controls because > such LCL I suppose would be deadly slow with all buttons custom drawn. > Just my two cents little opinion... ___ Lazarus mailing list Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] [lazarus] Gtk?
I second that, I have not taken much look at the fpGUI architecture but if it is made so it can also serve as a low level Qt/Gtk wrapper then the LCL can be made purely to rely on fpGUI and the complexity in it will be reduced. As I said I have not looked too deep into the underlying architecture but if the platform/framework specific stuff is all placed into as tiny layer (fpGUI) as possible, the LCL can really be made more portable, and the platform/framework specific functionality will become well insolated. This will make it (in theory) both easier to support and port to other environments. It also will allow for more native implementations of the fpGUI and probably it becoming a framework of its own right. Personally I would put my vote on fpGUI ;-) . With best regards, Boian Mitov Mitov Software http://www.mitov.com - Original Message - From: "Reenen Laurie" <[EMAIL PROTECTED]> To: "General mailing list" Sent: Wednesday, August 06, 2008 12:50 PM Subject: Re: [Lazarus] [lazarus] Gtk? > Ahhh... I forget about non-gpl programmers... > > fpGUI sounds like a plan. :-) ___ Lazarus mailing list Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Lazarus KDE4 Plazma applet
Nice, but maybe should have been under a new topic ;-) . With best regards, Boian Mitov Mitov Software http://www.mitov.com - Original Message - From: "Alex Kovacic" <[EMAIL PROTECTED]> To: "General mailing list" Sent: Thursday, July 17, 2008 3:36 PM Subject: Re: [Lazarus] Lazarus KDE4 Plazma applet > ENLIGHTENMENT IS MUCH BETTER/FASTER - AND HAS SOME REALLY FAST AND COMPACT > LIBRARIES THAT COULD BE USED BY LAZARUS...ELIVE, OPEN GEU, gOS ARE SOME OF > THE DISTROS USING IT. > > http://enlightenment.org/p.php?p=about/efl&l=en ___ Lazarus mailing list Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Lazarus KDE4 Plazma applet
Could be. I don't know. I just installed the 4.0 in a VM a day ago and still testing with it. I was asking if somebody has written applet, so I can test it. I plan to install 4.1 in a VM next and will test Lazarus in it too. Lazarus seems to work fine in the 4.0 so far, except that I have to start it from terminal window or from Dolphin . With best regards, Boian Mitov Mitov Software http://www.mitov.com - Original Message - From: "Michael Van Canneyt" <[EMAIL PROTECTED]> To: "General mailing list" Sent: Thursday, July 17, 2008 6:04 AM Subject: Re: [Lazarus] Lazarus KDE4 Plazma applet > Aren't they supposed to be coded at least partially in Javascript ? ___ Lazarus mailing list Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Lazarus KDE4 Plazma applet
Hi Funky, I agree, I am running it in a VM to evaluate it. I was just curious if somebody has written an applet already. I think the 4.0 is rally not ready even for the most basic tasks, but that is IMHO. I will try to install 4.1 to see how it looks. I have heard it is much better. BTW: I am absolutely new on Linux, but I did the transition to KDE 3.5 in no time, and love it. I hope 4 eventually will mature to similar stage. With best regards, Boian Mitov Mitov Software http://www.mitov.com - Original Message - From: "Funky Beast" <[EMAIL PROTECTED]> To: "Lazarus mailing list" Sent: Thursday, July 17, 2008 7:09 AM Subject: Re: [Lazarus] Lazarus KDE4 Plazma applet > Personally, I would wait for at least version 4.3 for daily production > use. > ___ Lazarus mailing list Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
[Lazarus] Lazarus KDE4 Plazma applet
Hi Folks, Has anybody attempted to create a Lazarus Plasma applet for Linux KDE 4 ? Although the KDE 4 seems to introduce some interesting ideas, it seems to be missing at least 70% of the rudimental features ;-) . With best regards, Boian Mitov Mitov Software http://www.mitov.com ___ Lazarus mailing list Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Joke about Java
Now if it can only make it less resource and memory leak prone ;-) . With best regards, Boian Mitov Mitov Software http://www.mitov.com - Original Message - From: "cyberpython" <[EMAIL PROTECTED]> To: "General mailing list" Sent: Wednesday, July 16, 2008 2:10 PM Subject: Re: [Lazarus] Joke about Java Java can be compiled natively with GCJ... ___ 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] Article writers wanted.
Hi Mark, If there are no other takes, I may write something about developing component packages that compile/install both on Delphi and Lazarus. I am porting our solutions, and gathering experience in Lazarus. With best regards, Boian Mitov Mitov Software http://www.mitov.com - Original Message - From: "Marc Weustink" <[EMAIL PROTECTED]> To: "Lazarus" <[EMAIL PROTECTED]> Sent: Tuesday, July 15, 2008 12:56 AM Subject: [Lazarus] Article writers wanted. > Hi, > > recently I spoke to Detlef Overbeek, editor of the Blaise Pascal > magazine (http://blaisepascal.eu) and he asked me if there would be > people interested in writing an atricle about Freepascal or Lazarus or > combination of both. > Since i'm not that big writer, i'll aks it here too. > > Marc > > > ___ > 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] Article writers wanted.
Hi Mark, If there are no other takes, I may write something about developing component packages that compile/install both on Delphi and Lazarus. I am porting our solutions, and gathering experience in Lazarus. With best regards, Boian Mitov Mitov Software http://www.mitov.com - Original Message - From: "Marc Weustink" <[EMAIL PROTECTED]> To: "Lazarus" <[EMAIL PROTECTED]> Sent: Tuesday, July 15, 2008 12:56 AM Subject: [Lazarus] Article writers wanted. > Hi, > > recently I spoke to Detlef Overbeek, editor of the Blaise Pascal > magazine (http://blaisepascal.eu) and he asked me if there would be > people interested in writing an atricle about Freepascal or Lazarus or > combination of both. > Since i'm not that big writer, i'll aks it here too. > > Marc > > > ___ > 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
[Lazarus] C:\lazarus\components\LabPacks\SLScope.pas(1, 1) Fatal: Unit PrintersDlgs searched but Printers found
I have added PrintersDlgs to one of my units, but when compiling I am getting this message: C:\lazarus\components\LabPacks\SLScope.pas(1,1) Fatal: Unit PrintersDlgs searched but Printers found Any clues? With best regards, Boian Mitov Mitov Software http://www.mitov.com ___ Lazarus mailing list Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Is there anyone who use lazarus to develop the commercialproducts targeted on multiple platform?
We are porting our set of libraries - www.mitov.com . So far we have made some good progress, but it will be probably months before we really have it all working. Here is a snapshot of what we have achieved at the moment: http://www.mitov.com/LazarusProgress.jpg With best regards, Boian Mitov Mitov Software http://www.mitov.com - Original Message - From: "davy zhang" <[EMAIL PROTECTED]> To: Sent: Monday, June 30, 2008 6:11 AM Subject: [Lazarus] Is there anyone who use lazarus to develop the commercialproducts targeted on multiple platform? > Especially on mac. > > Recently I plan to port some of my products from windows to mac, if it > is possible :) > > So I doubted if someone did this before~ > > thanx for all the people work on lazarus project! You make a better > world for all! > ___ > 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] Anyone using LCLIntf critical section routines?
I mean in my previous e-mails I intended to say "pascal"->"stdcall" not "pascal"->"cdecl" . With best regards, Boian Mitov Mitov Software http://www.mitov.com ---- ----- Original Message - From: "Boian Mitov" <[EMAIL PROTECTED]> To: "JoshyFun" <[EMAIL PROTECTED]>; "General mailing list" Sent: Monday, June 23, 2008 12:55 PM Subject: Re: [Lazarus] Anyone using LCLIntf critical section routines? > admit that I made a mistake after discovering th problem we have switched > all calls to "stdcall" not "cdecl", and it all works fine. > > With best regards, >Boian Mitov > > > Mitov Software > http://www.mitov.com > ___ Lazarus mailing list Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Anyone using LCLIntf critical section routines?
Hi Joshy, It can be OS version specific problem, or could be related to the codes I have in my DirectShow. I have however seen the problem in multiple systems. It also depends of what thread the Grabber will run from (Who is driving the part of the DS Graph). We have repitedly reproduced the problem on multiple systems, with just empty procedure call, no other code involved. I must admit that I made a mistake after discovering th problem we have switched all calls to "stdcall" not "cdecl", and it all works fine. With best regards, Boian Mitov Mitov Software http://www.mitov.com - Original Message - From: "JoshyFun" <[EMAIL PROTECTED]> To: "General mailing list" Sent: Monday, June 23, 2008 7:53 AM Subject: Re: [Lazarus] Anyone using LCLIntf critical section routines? > Hello Boian, > > Monday, June 23, 2008, 9:52:51 AM, you wrote: > > I'm using critical sections, in delphi 7, in the callback of a > sample-grabber directshow object which is being called up to 175000 > times per second (usually around 4000 per second) and the application > was running up to 7 days without any problem. > > In the other hand I can not see any technical reason to have problems > with calling convention unless an ASM block is being used somewhere > after the call and stack is being cleared as cdecl instead the current > calling convention :-? > > -- > Best regards, > JoshyFun > > ___ > 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] Anyone using LCLIntf critical section routines?
The callbacks are "stdcall" . The problem is confirmed to be the Delphi calling convention, and you seem to be right. It appears to be registers not being properly saved. I never had the time to investigate it on assembly level :-( . To make you laugh at me, and my stupidity, 3 years after I discovered the problem in Delphi after 3 days of cutting code to nail it down to problem with the calling convention I did the same mistake in C++ Builder where the same problem exists :-D . Am I stupid or what, should have known after the first burn, but sometimes you just forget. Now this is the first thing I check when I have unexpected rare crashes. With best regards, Boian Mitov Mitov Software http://www.mitov.com - Original Message - From: "Marco van de Voort" <[EMAIL PROTECTED]> To: "General mailing list" Sent: Monday, June 23, 2008 3:01 AM Subject: Re: [Lazarus] Anyone using LCLIntf critical section routines? > > Hmm, it might be a problem of those api's callbacks, or their declarations > that assume some registers are saved that aren't saved when the register > calling convention is used. > > IOW, you could be looking at the wrong place, the problem not being the > cdecl adding, but a wrong declaration of the callbacks (cdecl vs stdcall?) > ___ > 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] Graphics changes (r15472)
I have not followed the discussion, but if the order of setting Width/Height is the issue, a typical solution is to postpone the resize until image is actually needed, and mark the component as Dirty. This is known as "Lazy Evaluation", a common optimization technique. This way any change to width/height will not take any effect until the image is actually needed, and setting Width/Height will work the same way as using SetSize. With best regards, Boian Mitov Mitov Software http://www.mitov.com - Original Message - From: "Marc Weustink" <[EMAIL PROTECTED]> To: "General mailing list" Sent: Monday, June 23, 2008 2:49 AM Subject: Re: [Lazarus] Graphics changes (r15472) > How would this work. We have a SetSize method, but moth users woud set > Width and Height separately. Imagine the next scenario: > Current Icon is 16x16, size is changed to 32x32 by setting width first > so it becomes a 32x16 icon. Should this one be added, or should an Icon > looked up with this width ? ___ Lazarus mailing list Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Obtaining TIDesigner
Check bug report 0011503 With best regards, Boian Mitov Mitov Software http://www.mitov.com - Original Message - From: "Graeme Geldenhuys" <[EMAIL PROTECTED]> To: "General mailing list" Sent: Monday, June 23, 2008 1:06 AM Subject: Re: [Lazarus] Obtaining TIDesigner > Could you elaborate on this 'optimization' difference between FPC and > Delphi's Interfaces? I thought they work the same, but then I don't > use Interfaces much yet, but plan too. ___ Lazarus mailing list Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Anyone using LCLIntf critical section routines?
The problem is only when the CriticalSection Enter/Leave is called from a callback of a windows thread such as DirectShow Grabber or VFW frame callback or a media timer callback. In all other cases TCriticalSection works fine. This is issue under Delphi. I have not confirmed if it exists under Lazarus yet, as I have just started to port to Lazarus. To reproduce the bug in Delphi if you wish, start a media timer, and in the callback function call a Pascal calling convention function. It can be an empty body procedure as example. Run it for about 1H. Suddenly Delphi will stop and will report stack corruption. Change the procedure to be "cdecl", and it will run forever. I state again, we are not at the point when we are running our code for hours under Lazarus. Once we are there I will report if the problem appears. With best regards, Boian Mitov Mitov Software http://www.mitov.com - Original Message - From: "Luca Olivetti" <[EMAIL PROTECTED]> To: "General mailing list" Sent: Monday, June 23, 2008 12:30 AM Subject: Re: [Lazarus] Anyone using LCLIntf critical section routines? I don't get you here: I'm using SyncObjs.TCriticalSection under windows (and linux) and I see no problem. I don't remember if I used it with delphi though. Bye -- Luca Olivetti Wetron Automatización S.A. http://www.wetron.es/ Tel. +34 93 5883004 Fax +34 93 5883007 ___ 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] Anyone using LCLIntf critical section routines?
Thank you! I will remove any usage of them. I understand your point. If I confirm that Lazarus has the same problem as Delphi with the pascal calling convention in CriticalSection, I will make sure the issue is reported. With best regards, Boian Mitov Mitov Software http://www.mitov.com - Original Message - From: "Felipe Monteiro de Carvalho" <[EMAIL PROTECTED]> To: "General mailing list" Sent: Sunday, June 22, 2008 6:56 PM Subject: Re: [Lazarus] Anyone using LCLIntf critical section routines? > The problem of keeping them is that we have to maintain them > (duplicating work with the fpc team) and make sure they are working, > which is not at all guaranteed today. > > About your problem, well, you could send an e-mail to the fpc mailling > list asking the fpc team to change those routines to cdecl under > windows. > > -- > Felipe Monteiro de Carvalho > ___ > 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] Anyone using LCLIntf critical section routines?
Hi Felipe, We use them for code compatibility with Delphi. Windows threads do not tolerate non "cdecl" Delphi calling conventions insade them, so we are forced to use Win32 API critical sections to work around this problem. We have not tested enough yet to see if the same problem exists in Lazarus. If the problem is confirmed the CriticalSection Enter/Leave routines may have to be changed to be "cdecl" (at least under Windows) for Windows system threads compatibility. Becouse of this problem I have seen number of Delphi libraryes use Win32 API CriticalSection routines instead of the SyncObjs object. If you decide the functions are not needed, we can create our own CriticalSection wrapper, and call the Win32 API when using Delphi and the TCriticalSection from SyncObjs in Lazarus. You may however still consider keeping them for making it easier for other developers to port from existing Delphi code. I must admit however that there are not so many heavily threaded applications and libraries. The only ones I have seen having this "cdecl" problem are multimedia (both DirectShow and VFW) calls and the "timeSetEvent" timers. This probably will have relatively small effect on the overall number of libraries and Delphi applications, so you can probably safely remove it, with limited effect. I don't have any serious objections, and if you plan the removal will start modifying our code to use our own wrapper. With best regards, Boian Mitov Mitov Software http://www.mitov.com - Original Message - From: "Felipe Monteiro de Carvalho" <[EMAIL PROTECTED]> To: "General mailing list" Sent: Sunday, June 22, 2008 11:35 AM Subject: [Lazarus] Anyone using LCLIntf critical section routines? > Hello, > > We are considering removing the critical section routines in LCLIntf, > because there is already a TCriticalSection in the RTL in the SyncObjs > unit. > > If noone objects, and proves that those routines are useful for > something in 1 week, we will remove them. > > thanks, > -- > Felipe Monteiro de Carvalho > ___ > 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] Obtaining TIDesigner
I guess, you don't believe it ;-) . Everybody is free to believe or not. Our products however are real and available for download, and are free for non commercial purposes. If you have any doubt, you can always check, and see that they do exist. And they use interfaces to both work with the Delphi OTA, and to control DirectShow graphs, and other Windows API interfaces. We also have a library for OPC, but it is not officially released. OPC is also COM based. The libraries also employ interfaces heavily to deliver buffers, and perform thread synchronization. With best regards, Boian Mitov Mitov Software http://www.mitov.com - Original Message - From: "Florian Klaempfl" <[EMAIL PROTECTED]> To: "General mailing list" Sent: Sunday, June 22, 2008 6:10 AM Subject: Re: [Lazarus] Obtaining TIDesigner > Everybody is free to post any page on the web. > ___ > 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] Obtaining TIDesigner
Outdated, but shows some of the history. Sorry, haven't updated it in the last few years ;-) . http://www.mitov.com/My_Resume/my_resume.html With best regards, Boian Mitov Mitov Software http://www.mitov.com - Original Message - From: "Florian Klaempfl" <[EMAIL PROTECTED]> To: "General mailing list" Sent: Sunday, June 22, 2008 5:50 AM Subject: Re: [Lazarus] Obtaining TIDesigner > > What did you use so far? DOS batch files? Maybe listen to things people > tell you. > ___ > 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] Obtaining TIDesigner
Sorry, this is the full list: a.. Visual C# 2005 b.. Visual Basic 2005 c.. Visual C++/CLI 2005 d.. Visual J# 2005 e.. Delphi 5 f.. Delphi 6 g.. Delphi 7 h.. Delphi 2005 i.. C++ Builder 5 j.. C++ Builder 6 k.. BDS 2006 / Delphi 2006 / C++ Builder 2006 l.. Turbo Delphi 2006 m.. Turbo C++ 2006 n.. Delphi 2007 o.. C++ Builder 2007 p.. RAD Studio 2007 q.. Visual C++ 6.0 (MFC)/Win32 r.. Visual C++ 2003 (MFC)/Win32 s.. Visual C++ 2005 (MFC)/Win32 t.. Lazarus is comming (Win32/Win64/Linux) With best regards, Boian Mitov Mitov Software http://www.mitov.com - Original Message - From: "Florian Klaempfl" <[EMAIL PROTECTED]> To: "General mailing list" Sent: Sunday, June 22, 2008 5:50 AM Subject: Re: [Lazarus] Obtaining TIDesigner > What did you use so far? DOS batch files? Maybe listen to things people > tell you. > ___ > 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] Obtaining TIDesigner
The list of platforms we currently support: a.. Delphi 5 b.. Delphi 6 c.. Delphi 7 d.. Delphi 2005 e.. C++ Builder 5 f.. C++ Builder 6 g.. BDS 2006 / Delphi 2006 / C++ Builder 2006 h.. Turbo Delphi 2006 i.. Turbo C++ 2006 j.. Delphi 2007 k.. C++ Builder 2007 l.. RAD Studio 2007 http://www.mitov.com/html/videolab.html Probably I do have a bit of experience with different environments after all :-D . With best regards, Boian Mitov Mitov Software http://www.mitov.com - Original Message - From: "Florian Klaempfl" <[EMAIL PROTECTED]> To: "General mailing list" Sent: Sunday, June 22, 2008 5:50 AM Subject: Re: [Lazarus] Obtaining TIDesigner > What did you use so far? DOS batch files? Maybe listen to things people > tell you. > ___ > 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] Obtaining TIDesigner
Something to cheer you up guys ;-) . Here is a snapshot of our current progress. You can see that all the runtime libraries are already ported and recompiled, and the OpenWire design time basic functionality is mostly operational: http://www.mitov.com/LazarusProgress.jpg The PlotLab and SignalLab are fully 100% functional ;-) . AudioLab and VideoLab are ~80% ready too, missing only the platform specific capture and recording/playback components. We are looking at GStreamer for the Linux side, but we will see... With best regards, Boian Mitov Mitov Software http://www.mitov.com ___ Lazarus mailing list Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Obtaining TIDesigner
I mean a bit more Delphi similar implementation. With best regards, Boian Mitov Mitov Software http://www.mitov.com - Original Message - > Thank you! A bit closer IDE integration will surely help us maintain ___ Lazarus mailing list Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Obtaining TIDesigner
I still stand by my statement that this so called "optimization" is a design bug in FPC. Of course this is just my opinion, and you guys can disagree. That is no problem, as long as there are work around etc ;-) . Only the time will tell who is right. My prediction is that the so called "optimization" will lead to so many problems overtime that at some point it will be removed, and the interfaces will start working as they in all other languages I have used, or nobody will use Interfaces in FPC, but I may be wrong ;-) . We will see :-D . With best regards, Boian Mitov Mitov Software http://www.mitov.com - Original Message - From: "Marco van de Voort" <[EMAIL PROTECTED]> To: "General mailing list" Sent: Sunday, June 22, 2008 5:00 AM Subject: Re: [Lazarus] Obtaining TIDesigner > However your problems touch one of the cores of Delphi > compability, if somebody abuses something in _one_ delphi version, and it > works, does that mean that FPC has to carry that Delphi bug indefinitely, > and let performance suffer? I think not. > ___ > 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] Obtaining TIDesigner
Hi Mattias, Thank you! A bit closer IDE integration will surely help us maintain components both for Delphi and Lazarus ;-) . We do support D5-2007 and we are aware of the changes overtime. Unfortunately the "optimization", I have renders the Interfaces virtually useless in Lazarus :-( . The lifespan of the interfaces is now unpredictable and left for the optimization to decide, and that allows for only limited types of objects to be maintained trough Interfaces. Anything that relies on resources other than memory practically will be dangerous to be used trough interfaces similar to the issues in the GC environments :-( . Sad, considering the enormous power interfaces offer in Delphi. With best regards, Boian Mitov Mitov Software http://www.mitov.com - Original Message - From: "Mattias Gaertner" <[EMAIL PROTECTED]> To: Sent: Sunday, June 22, 2008 4:51 AM Subject: Re: [Lazarus] Obtaining TIDesigner > About "FPC optimization": > I'm happy that the FPC team does not do Delphi compatibility at any > cost. > > > Mattias > ___ > 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] Obtaining TIDesigner
Hi Mattias, Thank you! I have also found another work around in my properties, but this will help. What are the reasons for so many differences in the Design time interfaces from Delphi ? Are those legal or technical issues? I also notice that there is practically no usage of Interfaces. Is this because of the strange way FPC works with interfaces (what they call "optimization"), or some other reason? With best regards, Boian Mitov Mitov Software http://www.mitov.com - Original Message - From: "Mattias Gaertner" <[EMAIL PROTECTED]> To: Sent: Sunday, June 22, 2008 2:55 AM Subject: Re: [Lazarus] Obtaining TIDesigner > > Designer:=FindRootDesigner(PropertyHook.LookupRoot); > > Keep in mind that there is not always a designer. > > Mattias > ___ > 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
[Lazarus] Obtaining TIDesigner
Hi folks, I am new to Lazarus, and still learning the ropes, so I am probably missing something. I am porting a component suite, and I while the runtime packages migration went very smooth the design time packages, no surprise, have to be largely rewritten from scratch. I am trying to figure out how to obtain TIDesigner from TPersistent? If the TPersistent is component it is straight forward: Temp := GetPersistentReference; if Temp is TComponent then begin AComponent:=TComponent(Temp); Designer:=FindRootDesigner(AComponent); However I am writing editor for a class type property, and need to obtain the designer for it. In Delphi the designers are always available in the property editor. How to get the designer in Lazarus for a TPersistent inherited class properties. How to do that? With best regards, Boian Mitov Mitov Software http://www.mitov.com ___ Lazarus mailing list Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus