Posts

Showing posts from June, 2015

Did you ever had this problem:

Did you ever had this problem: http://support.embarcadero.com/article/40373 In my case it hit me with a Delphi 2010 installation on an offline PC (no internet connection). Tempering with the bin directory has not happened. The problem is a certificate revocation list from usertrust.com . The product validation routine needs this CRL to check the EMB certificates in the bin dir, but does not evaluate the error codes of the crypto api calls used in the right manner. If the CRL is out of date and a valid CRL can not be downloaded, the crypto api returns an error and the validation routines fail. I was not able to find a fix for this, but I can say it does not happen on XE7. Can somebody give me a hint how to resolve this misbehaviour of the validation routine without patching the D2010 executable? Thanks in advance! http://support.embarcadero.com/article/40373

Using SSE 4.2 Text Instructions with Delphi.

Using SSE 4.2 Text Instructions with Delphi. http://blog.synopse.info/post/2015/06/30/Faster-String-process-using-SSE-4.2-Text-Processing-Instructions-STTNI

Those who have problems with speed in compiling large projects (1MLOC+) or slow code completion you can install the IDE or put the project files on a RAMDISK. It improved our build times by a whopping 70%. Those of you who use FinalBuild etc. can also benefit a lot from this.

Those who have problems with speed in compiling large projects (1MLOC+) or slow code completion you can install the IDE or put the project files on a RAMDISK. It improved our build times by a whopping 70% . Those of you who use FinalBuild etc. can also benefit a lot from this.

Hey guys, I just started learning Delphi a few weeks ago, and I'm unable to find any solution to make my app authenticate with facebook. Everyone keeps linking me to the original embarcadero docwiki REST API page and there's not enough information on that page to do anything. I've followed the instructions as specified here: docwiki.embarcadero.com/RADStudio/XE8/en/REST_Client_Library#Accessing_Facebook_API

Hey guys, I just started learning Delphi a few weeks ago, and I'm unable to find any solution to make my app authenticate with facebook. Everyone keeps linking me to the original embarcadero docwiki REST API page and there's not enough information on that page to do anything. I've followed the instructions as specified here:  docwiki.embarcadero.com/RADStudio/XE8/en/REST_Client_Library#Accessing_Facebook_API But as usual, the code makes no sense to me. Could Someone please show me how to do something as simple as REST Authentication  and communication please? I'd be very greatful. Thank you.

A major update for TMS Component Pack (http://www.tmssoftware.com/site/tmspack.asp) is available now. What's new in v7.9.0.0:

Image
A major update for TMS Component Pack ( http://www.tmssoftware.com/site/tmspack.asp ) is available now. What's new in v7.9.0.0: - New : Windows 10, Office 2016 styles added - New : Several action based ready-to-use toolbars for grid cell formatting, grid clipboard operations, grid cell text formatting & cell alignment - New : Regular label, button, speedbutton and glowbutton with optional attached badge label - New in TAdvStringGrid v7.8.0.0 : set of grid actions for cell property control - New in TAdvRichEditor v1.4.0.0 : RTF import & RTF clipboard functionality See full version history for details: http://www.tmssoftware.com/doc/tmspck.txt

Due to many requests, I uploaded the discontinued DLangExtensions Delphi proprocessor code base from 2009 to GitHub.

Due to many requests, I uploaded the discontinued DLangExtensions Delphi proprocessor code base from 2009 to GitHub. http://andy.jgknet.de/blog/2015/06/dlangextensions-legacy-code-base-on-github/

My datasnap server is using a TDictionary to support incoming connections and assign its database connection. Seems that after client closes the connection itself is not released, even that code is being called:

My datasnap server is using a TDictionary to support incoming connections and assign its database connection. Seems that after client closes the connection itself is not released, even that code is being called:         if FConnections.ContainsKey( TDSSessionManager.GetThreadSession.Id ) then         begin             FConnections.Remove(KeyConexao);             FConnections.TrimExcess;         end; The issue here is my server runs with a lot of unused connections. As a workaround I put a timmer to 'kill' that connections, but I can't actually terminate them correctly. At a end of a day we got a lot of that connections and sometimes the clients are simply unable to connect to the server. At the getconnection() method I have this code:         Result.theDatabase := database;         Result.timeout := Time(); // using to calcule the time to live         Result.key := TDSSessionManager.GetThreadSession.Id ;         FConnections.Add( TDSSessionManager.GetThreadSession.Id , Resu

There's still things I don't understand with Generic :/

There's still things I don't understand with Generic :/ type   TValues = array of record     Key  : string;     Value: T;   end;   TIntegerValues = TValues ; procedure TForm1.FormCreate(Sender: TObject); var   V: TIntegerValues; begin   SetLength(V, 1);   V[0].Key := 'TEST';   V[0].Value := 1;  // E2010 Incompatible types 'T' and 'Integer' end;

I find that upload an OS X Application to the App Store is a very cryptic, complex and... almost imposible task.

I find that upload an OS X Application to the App Store is a very cryptic, complex and... almost imposible task. Anyone has experience with this task an can/want help me? We can agree on a compensation or a collaboration of some other type. Help me, please!

A long time ago ddevextensions had a compilerinterceptor that could allow you to trigger actions upon compilation.

A long time ago ddevextensions had a compilerinterceptor that could allow you to trigger actions upon compilation.  What happened to it?

If someone is interested how to use GCC preprocessor on Delphi source files. Too bad we can't do this in memory.

If someone is interested how to use GCC preprocessor on Delphi source files. Too bad we can't do this in memory. gcc -xc -E -P -C -traditional File1 > File2 BEFORE: program Project3; uses   System.SysUtils; #define DEBUG(x) {$IFDEF DEBUG}WriteLn(x);{$ENDIF} #define LOOP(A, B, C) for A := B to C do #define COMPARE(A, B) A <> B var   I: Integer; begin   LOOP(I,0,3)   begin     WriteLn(I);   end;   DEBUG('DEBUG..');   WriteLn(COMPARE(1,2));   Readln; end. AFTER: program Project3; uses   System.SysUtils; var   I: Integer; begin   for I := 0 to 3 do   begin     WriteLn(I);   end;   {$IFDEF DEBUG}WriteLn('DEBUG..');{$ENDIF};   WriteLn(1 <> 2);   Readln; end.

Does anyone knows some dproj editor, other than Delphi IDE?

Does anyone knows some dproj editor, other than Delphi IDE? I am trying to manage project icons, manifest and version info for 32 bit and 64 bit platform and it is mission impossible. Specifically, I want to have same settings across all platforms.

Interesting tidbit regarding VCL vs FMX. I used our LineProfiler tool to profile the startup of an empty form VCL app vs an empty form FMX app. The VCL app logged ~150.000 lines of code executed before it was visible on screen, the FMX app logged ~75.000.000 lines executed. A 2.7 order of magnitude difference... :)

Interesting tidbit regarding VCL vs FMX. I used our LineProfiler tool to profile the startup of an empty form VCL app vs an empty form FMX app. The VCL app logged ~150.000 lines of code executed before it was visible on screen, the FMX app logged ~75.000.000 lines executed. A 2.7 order of magnitude difference... :)

Is something like this possible with Delphi? I guess Delphi Interop capability is rather poor. Apart from classical "flatten" technique from the 80's.

Is something like this possible with Delphi? I guess Delphi Interop capability is rather poor. Apart from classical "flatten" technique from the 80's. http://tirania.org/blog/archive/2011/Dec-19.html
Does anyone use VirtualBox to install Delphi (XE)? What settings do you use for that?

Issue: FMX.Objects.TText, what I need

Image
Issue: FMX.Objects.TText, what I need public property TextWidth: single read FLayout.TextWidth; public property TextHeight: single read FLayout.TextHeight; or TText = class(TControl, ITextSettings) private   FLayout: TTextLayout; //exists public   property Layout: TTextLayout read FLayout; // missing end; Why? In my code I have TableText: TText; TableText.Font.Family is set to a monospaced font; TableText.Text is coming from StringList.Text; The text data is equivalent to a retangular matrix of char; Yes, the text is seen by the user as rows and columns; The user is able to navigate "cells" like in TStringGrid; TableText.Autosize is true; My code wants to read the actual width and heigh of the text, in order to manage the position and size of the current cell. (The application displays a TRectangle with Opacity := 0.5 on top of the current cell.) Here is the problem: Using Width and Height properties is not good enough, because the actual text is a little smaller, several pix

That bug again, but this time I've made a Gifeo (neologism for GIF Video).

Image
That bug again, but this time I've made a Gifeo (neologism for GIF Video). I've changed a component source code, but Delphi still use the old version as shown in the History tab To understand the steps, the local Integer "Value" take the value of private member "FItemIndex" (F8), but it get the value -1 that was hardcoded in the previous version of the code.

Originally shared by Boian Mitov

Originally shared by Boian Mitov https://www.youtube.com/watch?v=M346OFJgal0&feature=share

I was wondering if anyone saw any of the following problems.

I was wondering if anyone saw any of the following problems. Specifically, I'd love to know how to fix it, so that I can use XE8 without restarting it after every debug run. 1. After one successful debug run, the next attempt to compile project fails with error [dcc32 Fatal Error] F2039 Could not create output file '.\Win32\Debug\DPlayer.exe'. This doesn't happen, if I run the project without debugging. In that case I can run and compile the project as many times as I want. 2. Sometimes the whole XE8 would throw an exception in ntdll.dll on a first debug run, and then it is gone. Very often this would happen like 10 times in a row, making the whole XE8 a totally useless garbage.

I was wondering if anyone saw any of the following problems. Specifically, I'd love to know how to fix it, so that I can use XE8 without restarting it after every debug run.

I was wondering if anyone saw any of the following problems. Specifically, I'd love to know how to fix it, so that I can use XE8 without restarting it after every debug run. 1. After one successful debug run, the next attempt to compile project fails with error [dcc32 Fatal Error] F2039 Could not create output file '.\Win32\Debug\DPlayer.exe'. This doesn't happen, if I run the project without debugging. In that case I can run and compile the project as many times as I want. 2. Sometimes the whole XE8 would throw an exception in ntdll.dll on a first debug run, and then it is gone. Very often this would happen like 10 times in a row, making the whole XE8 a totally useless garbage.

Some insight into the observable type of my new library Knockoff.

Some insight into the observable type of my new library Knockoff. http://delphisorcery.blogspot.de/2015/06/anonymous-method-overloading.html

Can anybody help out with this? I need to lock down a public Windows kiosk PC running a Delphi application - http://serverfault.com/questions/701937/lock-down-a-windows-pc-for-kiosk-use

Can anybody help out with this? I need to lock down a public Windows kiosk PC running a Delphi application -  http://serverfault.com/questions/701937/lock-down-a-windows-pc-for-kiosk-use http://serverfault.com/questions/701937/lock-down-a-windows-pc-for-kiosk-use

Is there a mechanism I have not yet found that would allow me to use a DEFINE to control whether hints are on or off in a particular unit? I am doing new work on a base form and am getting hints on unused private symbols. I realize that I could solve it manually, but prefer something which would take care of itself, so I don't allow those hints in the code pushed to SCM.

Is there a mechanism I have not yet found that would allow me to use a DEFINE to control whether hints are on or off in a particular unit? I am doing new work on a base form and am getting hints on unused private symbols. I realize that I could solve it manually, but prefer something which would take care of itself, so I don't allow those hints in the code pushed to SCM. For clarity, I was hoping to something like this: {$IFNDEF SHOWHINTS} // defined in the project {$HINTS OFF} {$ENDIF}

#XtremeDocumentStudio Delphi 2015 R7 released.

#XtremeDocumentStudio  Delphi 2015 R7 released. Here's some additional information on the product editions... XtremeDocumentStudio Delphi is available in two editions, ViewPrintConvert and Ultimate. XtremeDocumentStudio Delphi ViewPrintConvert includes the following: - Multi-format VCL viewer, FMX viewer for Mac OS X - Multi-format VCL printer - Multi-format VCL converter - Multi-format VCL report export for FastReport, ReportBuilder, QuickReport, ACE Reporter, and Rave Reports. Price: $200 (source is not included) XtremeDocumentStudio Delphi Ultimate includes the following: - All features of XtremeDocumentStudio Delphi ViewPrintConvert - Multi-format FMX viewer for iOS and Android Price: $600 (with source code) Originally shared by Gnostice.com Gnostice XtremeDocumentStudio Delphi 2015 R7 released http://www.gnostice.com/XtremeDocumentStudio_Delphi.asp?show=history Gnostice is pleased to announce the release of Version 2015 R7 of XtremeDocumentStudio Delphi, the next-generation mu

Awesome code of the day:

Awesome code of the day: var   o: IObservable ; begin   o := TObservable .Create(42);   Writeln(o);   o(12);   Writeln(o); end; (explanation will follow later)

Anybody's using ThinkPad T series notebook as a main Delphi (XE4, to be precise) development machine? I should have asked this here earlier - just ordered a T450 with a I5-5200U CPU, 8G RAM, and a 7200-RPM hard disk - I did not buy the SSD version since I was thinking of adding one myself later on if the performance of the laptop doesn't satisfy.

Anybody's using ThinkPad T series notebook as a main Delphi (XE4, to be precise) development machine? I should have asked this here earlier - just ordered a T450 with a I5-5200U CPU, 8G RAM, and a 7200-RPM hard disk - I did not buy the SSD version since I was thinking of adding one myself later on if the performance of the laptop doesn't satisfy. http://shop.lenovo.com/us/en/laptops/thinkpad/t-series/t450/
Delphi compiler already supports Intel's AVX2 instruction set? Or it is a LLVM/Clang stuff?

I have Intermittent problems where "Not in edit mode" error raised, how do I know which component caused the error?

I have Intermittent problems where "Not in edit mode" error raised, how do I know which component caused the error? note: I'm using TIBDataSet (IBX version 7.08, delphi 7), your suggestion will be highly appreciated. Thanks.
I have Intermittent problems where "Not in edit mode" error raised, how do I know which component caused the error? note: I'm using TIBDataSet (IBX version 7.08, delphi 7), your suggestion will be highly appreciated. Thanks.

I'm attempting to translate a small library that was written by a coworker in C# into Delphi.

I'm attempting to translate a small library that was written by a coworker in C# into Delphi. It relies heavily on generics and anonymous methods. I'm having issues attempting to pass an anonymous function as an argument to a procedure. I have code that looks like: procedure TSomeObject.SomeProc (callback: TFunc ); The code that calls this procedure looks like: someObject.SomeProc(   function(in: string):Integer   begin     if Assigned(in) then       Result := 1;   end); But the compiler just gives me:  E2010 Incompatible types: 'System.SysUtils.TFunc >' and 'Procedure' I've tried adding explicit type parameters. I've tried making the anonymous method an ordinary method and a stand alone function. Still get the same error message just a different type for the second operand. When I made it an object method it said the second type was 'Procedure of object' instead. Anyone have a clue what I'm doing wrong?

I'm attempting to translate a small library that was written by a coworker in C# into Delphi. It relies heavily on generics and anonymous methods.

I'm attempting to translate a small library that was written by a coworker in C# into Delphi. It relies heavily on generics and anonymous methods. I'm having issues attempting to pass an anonymous function as an argument to a procedure. I have code that looks like: procedure TSomeObject.SomeProc (callback: TFunc ); The code that calls this procedure looks like: someObject.SomeProc(   function(in: string):Integer   begin     if Assigned(in) then       Result := 1;   end); But the compiler just gives me:  E2010 Incompatible types: 'System.SysUtils.TFunc >' and 'Procedure' I've tried adding explicit type parameters. I've tried making the anonymous method an ordinary method and a stand alone function. Still get the same error message just a different type for the second operand. When I made it an object method it said the second type was 'Procedure of object' instead. Anyone have a clue what I'm doing wrong?
Eric Grange  Is there any likelihood you may do more on your very helpful MapStats project? Or consider opening the source?

I've uploaded a new Elevate Web Builder 2 Introduction video.

I've uploaded a new Elevate Web Builder 2 Introduction video. Elevate Web Builder is a visual rapid application development environment for web applications. It is simple and easy to create beautiful web applications by simply dragging and dropping components on to forms, and then changing their appearance and behaviors as desired. There is absolutely no need to learn JavaScript in order to use Elevate Web Builder. The product uses a compiler to compile Object Pascal source code into JavaScript, emitting all necessary HTML and JavaScript. In addition, the compiler can automatically compress and obfuscate the emitted JavaScript to make your web applications small and virtually unreadable by another developer. You can then quickly and easily deploy your application to the destination of your choosing. The Elevate Web Builder Web Server is included with the product. The web server can load web server modules (.dlls) created using Delphi. Any existing non-visual Delphi desktop applicat

Doing 64bit app debugging with XE4 on Win 8.1

Doing 64bit app debugging with XE4 on Win 8.1 Application crashes with EInvalidGraphicOperation: Scan line index out of range and opens IDE with breakpoint on InvalidOperation proc. After that IDE is totally dead,  all I can do is kill it through TaskManager.  Has anyone seen something like that? Is this "normal" Delphi behavior or is it my code badly trashing something.

LiveBindings Visualized

Image
LiveBindings Visualized Take in the smooth efficiency of it all! Yeah, I am in that mood today.

Does anyone have any example can use the wsdl file? I have an example of using webservice but the code is in php, and I have a serious problem with translating this to Delphi. If this helps, here is the code php

Does anyone have any example can use the wsdl file? I have an example of using webservice but the code is in php, and I have a serious problem with translating this to Delphi. If this helps, here is the code php https://e-nadawca.poczta-polska.pl/download/webapi---ver.-angielska-do-v.5.0.0---01012014.zip

Given a node in a standard searchable binary tree (i.e. one where nodes are inserted via a comparator, so a node has a value and can have 0, 1 or 2 children, where the left child < the right child, no equal node values allowed), how can an arbitrary node find the next or previous node in the tree?

Given a node in a standard searchable binary tree (i.e. one where nodes are inserted via a comparator, so a node has a value and can have 0, 1 or 2 children, where the left child < the right child, no equal node values allowed), how can an arbitrary node find the next or previous node in the tree? I'm trying to make a tree node perform the walking, rather than the tree perform the walking, since if a node knows its children & parent, IMO it should have enough info to navigate the tree. Ultimately this is part of an enumeration object, which stores the current node it's looking at, and can go forward or backwards. (This assumes walking in "in-order" traversal order, not pre/post-order. If a tree contains A, B, C and D I want to start with node A, and calling Next repeatedly gives nodes B, C, D and nil.) My implementation isn't quite correct and since this lovely German summer weather has made me sick (yes I'm home wearing a scarf and drinking hot tea in

That code should work just fine, right?

That code should work just fine, right? Well it does not - it causes an AV... type   TNotifyProc = reference to procedure(Sender: TObject); procedure Main; var   e: TNotifyEvent;   p: TNotifyProc; begin   e := nil;   p := e;   if Assigned(p) then     p(nil); end; Why? Because p := e creates an anonymous method that wraps the TNotifyEvent call. So In fact the compiler creates this: p := procedure(Sender: TObject) begin e(Sender); end; And now you see why it will cause an AV. Conclusion: It is a bad idea to use anonymous methods as events that can be nil!

Under Windows 8.1 64Bits on an SSD drive with XE8.0

Under Windows 8.1 64Bits on an SSD drive with XE8.0 When I change a component source code, Delphi do not take it into account. I have to "rebuild" the project to have code up to date. Of course I have to build de package to update the component in the IDE, but in older version of Delphi, it worked.  BTW, when I do not change the project source at all, Delphi still compile the project (but not the registered components). it's a waste of time, especially for mobile project.

I was recently hit quite often by the "cannot create exe" error and was able to track it down to adb.

I was recently hit quite often by the "cannot create exe" error and was able to track it down to adb.exe keeping the file open. While I have no idea what adb (Android Debug Bridge) has to do with a plain Win32 application, I killed that process and changed the entry for adb in SDK Manager to an invalid file path. After that the problem seems to disappear. Can anyone with some spare time try to confirm this? I am reluctant to file a QP report for this without any backing from someone. XE8.1 btw.
I was recently hit quite often by the "cannot create exe" error and was able to track it down to adb.exe keeping the file open. While I have no idea what adb (Android Debug Bridge) has to do with a plain Win32 application, I killed that process and changed the entry for adb in SDK Manager to an invalid file path. After that the problem seems to disappear. Can anyone with some spare time try to confirm this? I am reluctant to file a QP report for this without any backing from someone. XE8.1 btw.

We are proud to announce the release of Elevate Web Builder 2.

Image
We are proud to announce the release of Elevate Web Builder 2. Elevate Web Builder is a visual rapid application development environment for web applications. It is simple and easy to create beautiful web applications by simply dragging and dropping components on to forms, and then changing their appearance and behaviors as desired. There is absolutely no need to learn JavaScript in order to use Elevate Web Builder. The product uses a compiler to compile Object Pascal source code into JavaScript, emitting all necessary HTML and JavaScript. In addition, the compiler can automatically compress and obfuscate the emitted JavaScript to make your web applications small and virtually unreadable by another developer. You can then quickly and easily deploy your application to the destination of your choosing. The Elevate Web Builder Web Server is included with the product. The web server can load web server modules (.dlls) created using Delphi. Any existing non-visual Delphi desktop application

Is is possible to write your own FireDAC driver? Or to write a 'shim' driver that does something and then passes on to another specific, existing driver?

Is is possible to write your own FireDAC driver? Or to write a 'shim' driver that does something and then passes on to another specific, existing driver? With dbExpress is was possible to work with a logging driver.... is there any scope for doing this kind of thing with FireDAC? I get the impression the list of drivers is hard-coded...

I am hoping someone here can give me a helping hand.

I am hoping someone here can give me a helping hand. I thought my coding was going to be simple today, but the Gods of Jinx had other plans for me. I have some XE7 code that goes like: function TScriptConstructor.FindValues( const expression: string; const line: string ): TArray ; var   regex: TRegEx;   matches: TArray ; begin   regex:= TRegEx.Create( expression, [roIgnoreCase] );   matches := regex.Split( line );   Result := matches; end; So far Ok, but I can't seem to do anything with this TArray when I get it back in other functions. I type matches. within the function itself waiting for code completion to kick in and nothing. I cannot seem to find anything helpful when I google it, so I don't normally post issues here, but here goes .... Minimally, I need to be able to get the count of this array and the string items on the array. Can someone help I would be very so grateful. Tony

I am hoping someone here can give me a helping hand. I thought my coding was going to be simple today, but the Gods of Jinx had other plans for me.

I am hoping someone here can give me a helping hand. I thought my coding was going to be simple today, but the Gods of Jinx had other plans for me. I have some XE7 code that goes like: function TScriptConstructor.FindValues( const expression: string; const line: string ): TArray ; var   regex: TRegEx;   matches: TArray ; begin   regex:= TRegEx.Create( expression, [roIgnoreCase] );   matches := regex.Split( line );   Result := matches; end; So far Ok, but I can't seem to do anything with this TArray when I get it back in other functions. I type matches. within the function itself waiting for code completion to kick in and nothing. I cannot seem to find anything helpful when I google it, so I don't normally post issues here, but here goes .... Minimally, I need to be able to get the count of this array and the string items on the array. Can someone help I would be very so grateful. Tony

Boian Mitov will be presenting on this week's Embarcadero Technology Partner Spotlight (Thursday, June 25 at 6am, 11am and 5pm). Boian will demonstrate Visuino and also will show new Delphi connectivity components to integrate your Delphi apps with Visuino and Arduino.

Boian Mitov will be presenting on this week's Embarcadero Technology Partner Spotlight (Thursday, June 25 at 6am, 11am and 5pm). Boian will demonstrate Visuino and also will show new Delphi connectivity components to integrate your Delphi apps with Visuino and Arduino. http://forms.embarcadero.com/15Q2TechPartnerSpotlights

What's the best way to "upgrade" delphi from XE7 to XE8? I currently have XE7 installed - hardly used, installed inside a Win8 VM on a mac. Should I first uninstall XE7? Does XE8 installation keep XE7 there (I don't care and don't mind it being deleted).

What's the best way to "upgrade" delphi from XE7 to XE8? I currently have XE7 installed - hardly used, installed inside a Win8 VM on a mac. Should I first uninstall XE7? Does XE8 installation keep XE7 there (I don't care and don't mind it being deleted). I have a subscription maintenance, but I can't see a way to download the XE8 update1 without first installing and registering XE8. Is there a way to skip XE8 and go straight to XE8 Update1?

Call for Community help: Sorting priorities

Call for Community help: Sorting priorities Given that we are a large group of people, doing very varied work - lets get the gist of where we would like to see EMBT have the technical focus for the coming versions by doing a poll. We do the poll with a proper anonymous polling tool and publish the  results, so that noone feel they have to give up their privacy or vote with the party line. Suggestions for a good, reliable polling tool that can't be manipulated, are welcomed. I request that we stay away from SKU definitions, prices, upgrade policies, and everything else that reeks of pointy haired boss. This is where I need the community spirit!   We should try to keep the poll relatively short - so we need to limit the options. My suggestions to get the discussion going: 1. My primary Delphi use ISV, Corporate dev, Contractor, Hobbyist, ...? 2. My current SKU AppMethod, Starter, Professional, Enterprise, Architect  3. What do you write in Delphi? Categories: Components, Libraries,

I just compiled an old application from Delphi 2010 to XE7.

I just compiled an old application from Delphi 2010 to XE7. The main purpose of the software is processing toons of XML files. We had to run the old D2010 version because of performance! The XE7 is much more slower when processing the same data. We are using TXMLDocument to load the files. Any clue about optimization?

I just compiled an old application from Delphi 2010 to XE7. The main purpose of the software is processing toons of XML files. We had to run the old D2010 version because of performance! The XE7 is much more slower when processing the same data.

I just compiled an old application from Delphi 2010 to XE7. The main purpose of the software is processing toons of XML files. We had to run the old D2010 version because of performance! The XE7 is much more slower when processing the same data. We are using TXMLDocument to load the files. Any clue about optimization?

This question might be better on SO but I will try here first.

This question might be better on SO but I will try here first. Does anyone know how to get a TActionMainMenuBar with TThemedPopupMenu to act like the standard menus, in that if there is too many items to fit on the screen (vertically), two scroll buttons appear (one top, one bottom)? I have tried: * setting TActionMainMenuBar.Orientation to boTopToBottom and TActionMainMenuBar.AllowScrolling to true - This makes the bar on the form to have scroll bars and you can't actually see the top items. It sort of looks like this + --------------------- + |             ^           | |             v           | + --------------------- + Instead of something like this: + --------------------- + |        File           | + --------------------- + * setting TThemedPopupMenu.Orientation to boTopToBottom and TThemedPopupMenu.AllowScrolling to true. This has the effect of squishing the dropping down menu horizontally, with icons and short cuts drawn on top of each other. The reason for setting these

Time to focus on the compiler purpose, right?

Time to focus on the compiler purpose, right? IMHO a compiler is there to generate correct and efficient code... http://blog.synopse.info/post/2015/06/21/Why-FPC-may-be-a-better-compiler-than-Delphi

Can anyone from the Jedi project please update your homepage? It is hopelessly outdated and still refers to sourceforge.

Can anyone from the Jedi project please update your homepage? It is hopelessly outdated and still refers to sourceforge. After looking at the whois record I guess that would be Olivier Sannier ?

Has anybody else problems deploying ad-hoc apks to Nexus 4 devices?

Has anybody else problems deploying ad-hoc apks to Nexus 4 devices? It worked with Delphi XE8 but does not seem to work with Delphi XE8 Update1. Marco Cantù Did Nexus 4 deployment work in your tests (with and without previous uninstall of a previous deployed apk with the same name)?

That's strange, I've accidently let an AllocConsole() in the unit of a registered component.

That's strange, I've accidently let an AllocConsole() in the unit of a registered component...now XE8 print out this sentence sometime in the console  : 64 application-defined exception (code 0x%08x) at 0x%08x

That's strange, I've accidently let an AllocConsole() in the unit of a registered component...now XE8 print out this sentence sometime in the console :

That's strange, I've accidently let an AllocConsole() in the unit of a registered component...now XE8 print out this sentence sometime in the console  : 64 application-defined exception (code 0x%08x) at 0x%08x

Hello guys

Hello guys, I am missing Toolbar, FloatActionButton, SnackBar, Collapsible-header and many other Material Design components when targeting against Android platform. What about them? Or how should I implement them? Thanks a lot :D

XE8 Favourite Projects - after the update it's back but it seems a lot less useful than before? As far as I can see it's limited to only 3 projects visible at a time regardless of your screen size and no grouping. It was a really helpful way of organising things before (eg. "Mobile Projects", "Web Apps", "VCL Desktop Apps" - now it's so basic as to be of little value. What's the thinking behind changing it?

Image
XE8 Favourite Projects - after the update it's back but it seems a lot less useful than before? As far as I can see it's limited to only 3 projects visible at a time regardless of your screen size and no grouping. It was a really helpful way of organising things before (eg. "Mobile Projects", "Web Apps", "VCL Desktop Apps" - now it's so basic as to be of little value. What's the thinking behind changing it?

I would like to integrate in a Windows application the services provided by Twilio.com (or similar), especially making and receiving phone calls.

I would like to integrate in a Windows application the services provided by Twilio.com (or similar), especially making and receiving phone calls. What is the best approach ?
After upgrading to XE8 update 1 GetIt no longer works. The status bar just says "Loading..." for around 30 seconds, then it says "No Results Found". Anybody else having the same problem?

about new rules for update 1 XE8:

about new rules for update 1 XE8: I haven't installed it yet, I'm a bit confused now: when I upgraded (recharge), I checked that I would receive all updates for version XE8 (but not XE7, 6, so on - and that was ok for me) BUT now I've seen that I don't have this right anymore, is this it? can EMBT just change the rules one month later? I think it's even illegal...

Originally shared by Boian Mitov

Originally shared by Boian Mitov Just released #Visuino - Graphical Development for #Arduino Beta 39: http://www.visuino.com This is the first version that has the ability for developing and installing new custom components trough an open SDK. A brand new Component Development SDK is also available in the G+ Beta Community and the Facebook Beta group! This version also includes new demos, and some important bug fixes. http://www.visuino.com

My bds.exe just gone after Delphi XE8 Subscription Update 1 setup.

My bds.exe just gone after Delphi XE8 Subscription Update 1 setup. Weird! ´:-o

I just installed Rad Studio Subscription update 1.

I just installed Rad Studio Subscription update 1.  First, it takes a long time to install it but I was working on another machine so that is not the problem. After starting it for the first time I noticed that I needed to reinstall Fast Reports 5 which is now a normal thing after major updates and the one that threw me is DUnitXRunTime220.BPL cannot be loaded, I do not understand why that is happening. I checked the release notes and did not find anything.  Did anyone run into that issue ?

I just installed Rad Studio Subscription update 1. First, it takes a long time to install it but I was working on another machine so that is not the problem.

I just installed Rad Studio Subscription update 1.  First, it takes a long time to install it but I was working on another machine so that is not the problem. After starting it for the first time I noticed that I needed to reinstall Fast Reports 5 which is now a normal thing after major updates and the one that threw me is DUnitXRunTime220.BPL cannot be loaded, I do not understand why that is happening. I checked the release notes and did not find anything.  Did anyone run into that issue ?

May be a dumb question, but: I have an active SA until September 2015. Am I entitled to install "Subscription Update 1" since there may arise problems with my installation?

May be a dumb question, but: I have an active SA until September 2015. Am I entitled to install "Subscription Update 1" since there may arise problems with my installation? Also when the time comes to renew my SA will it be converted to "Subscription"?
Trying to compile an FMX app for iOS (it compiles without problem for Windows and OSX) and get a "not enough storage available to process this command". Any ideas? Thanks

Hi

Hi, I'm new to Firemonkey for developing Mac Os tools, If anyone cold help me up in to retrieve Mac Os x information using some code or by using command line. I want Mac OS information like Mac OS X version, processor speed, Memory, Network Adapter(Wired/ Wireless),Graphics Memory.

If you are developing agile ...

If you are developing agile ... What is your sprint length?

My thoughts exactly.

My thoughts exactly. http://www.adug.org.au/misc/settingtrap/

This one was so brilliant, I just have to repost it raise it again ;)

Image
This one was so brilliant, I just have to repost it raise it again ;) Originally shared by Alexander Benikowski Asbjørn Heid i think this describes it best? :D I could not resist.

http://edn.embarcadero.com/article/44470

http://edn.embarcadero.com/article/44470 http://edn.embarcadero.com/article/44470?utm_source=twitterfeed&utm_medium=twitter

Delphi for WebAssembly?

Delphi for WebAssembly? This looks interesting. What are the chances we'll see Delphi / FireMonkey for WebAssembly? http://techcrunch.com/2015/06/17/google-microsoft-mozilla-and-others-team-up-to-launch-webassembly-a-new-binary-format-for-the-web/ http://techcrunch.com/2015/06/17/google-microsoft-mozilla-and-others-team-up-to-launch-webassembly-a-new-binary-format-for-the-web

Blog post "Windows 10 Notifications from a VCL app with the WinRT API" at http://blog.

Blog post "Windows 10 Notifications from a VCL app with the WinRT API" at http://blog.marcocantu.com/blog/2015-june-windows10-notifications-vcl-winrt.html The header files are on GetIt, BTW. http://blog.marcocantu.com/blog/2015-june-windows10-notifications-vcl-winrt.html

Blog post "Windows 10 Notifications from a VCL app with the WinRT API" at http://blog.marcocantu.com/blog/2015-june-windows10-notifications-vcl-winrt.html

Blog post "Windows 10 Notifications from a VCL app with the WinRT API" at http://blog.marcocantu.com/blog/2015-june-windows10-notifications-vcl-winrt.html The header files are on GetIt, BTW. http://blog.marcocantu.com/blog/2015-june-windows10-notifications-vcl-winrt.html

Congratulations to David Intersimone on his 30 year anniversary for being in the service of Pascal, and later Object Pascal :)

Congratulations to David Intersimone on his 30 year anniversary for being in the service of Pascal, and later Object Pascal :) http://blogs.embarcadero.com/davidi/2015/06/17/43887

Hi All

Hi All Delphi XE8 Android 4.4 and higher Does anyone know a way to disable the Android bar with hardware buttons at the bottom of the screen.  I would like my app to fill the screen and the users not able to press hardware buttons. Thanks

Isn't BeginEnd.Net should be added to the introduction session of this community?

Isn't BeginEnd.Net should be added to the introduction session of this community? https://www.beginend.net/

HI all

HI all I used to have this working but I cant remember how I did it (must be getting old) on OSX, using an apple generated crash report, to then use the [programname].map file generated by the compiler, to find where the crash occured in the code. Is there a program that you can run the apple crash report with against the .map file ? (instead of having to manually work with HEX values to find it). thanks! (the program was originaly on the Delphi Forum, forums.embarcadero.com/forum  Firemonkey, thread called Exception Type: EXC_BREAKPOINT (SIGTRAP) OSX but I cant find that thread anymore)

Hello, I don't have much history with Delphi.

Hello, I don't have much history with Delphi.  I like FireMonkey and program in C++ Builder, but recently I've tried Delphi since RAD Studio seems to work much better with Delphi. My questions are: 1) How do you know when to call 'Free' on an object?  I know you should whenever you call 'Create', but what about when other methods allocate memory for you and pass you the new reference?  Is this just like in C++ when you can't be sure the function you are calling allocates memory unless it's documented?  Is there a convention for naming methods that allocate memory? 2) If I'm targeting a platform that has ARC in Delphi, what do I do about 'Create' and 'Free' then?  Does anything change from a Delphi developer's point of view? Thanks in advance!

Hello, I don't have much history with Delphi. I like FireMonkey and program in C++ Builder, but recently I've tried Delphi since RAD Studio seems to work much better with Delphi.

Hello, I don't have much history with Delphi.  I like FireMonkey and program in C++ Builder, but recently I've tried Delphi since RAD Studio seems to work much better with Delphi. My questions are: 1) How do you know when to call 'Free' on an object?  I know you should whenever you call 'Create', but what about when other methods allocate memory for you and pass you the new reference?  Is this just like in C++ when you can't be sure the function you are calling allocates memory unless it's documented?  Is there a convention for naming methods that allocate memory? 2) If I'm targeting a platform that has ARC in Delphi, what do I do about 'Create' and 'Free' then?  Does anything change from a Delphi developer's point of view? Thanks in advance!

How do you handle "call was rejected by callee" and/or "application is busy"?

How do you handle "call was rejected by callee" and/or "application is busy"? I found the Visual Studio method of of handling this at https://msdn.microsoft.com/en-us/library/ms228772(v=vs.80).aspx but I've been unable to locate a Delphi equivalent and I'm not advance enough to figure out how to implement this in Delphi. In days past I would just enter into a while loop returning when it was successful. I'm able to get things working with a sleep(750) in my code but that's just a band-aid for now. https://msdn.microsoft.com/en-us/library/ms228772(v=vs.80).aspx

Originally shared by Wintech Italia

Image
Originally shared by Wintech Italia

Where could I find the TAnsiString implementation that was once posted on Embarcadero Forums? I am trying to learn how to implement COW and reference counting.

Where could I find the TAnsiString implementation that was once posted on Embarcadero Forums? I am trying to learn how to implement COW and reference counting. Thanks

Experimental translation for non-English feeds has been added on https://www.beginend.net/, well all 4 of them aggregated right now anyway!

Experimental translation for non-English feeds has been added on  https://www.beginend.net/ , well all 4 of them aggregated right now anyway! (find them at  https://www.beginend.net/feeds.dws by sorting by language) Worth pursuing? It is currently just for existing posts and not automated yet for newer posts, given it is using the free tier of Microsoft Translator, I want to first make sure there are no bugs that could burn through my free credits in no time :) On the downside, while the free credits should be sufficient to translate content from non-English to English, they would likely not be to translate everything from English to non-English (not for more than couple languages anyway) https://www.beginend.net

GpSQLBuilder just got support for Delete and Update statements.

GpSQLBuilder just got support for Delete and Update statements. (Preemptive comment: I know half of you don't like this approach.) https://github.com/gabr42/GpSQLBuilder

I'm disappointed with Embarcadero, because of your market strategy. New releases 2 times in the year. Of course, for EMB and the 3th Party Components Developers, is a great strategy, because the customers must buy updates ofen. But for the developers as me, this strategy is very expensive. The major problem is that embarcadero is focused to create new features to justify the cost of the new product version. But the new features, most time, is uncompleted and with many bugs. On the other hand, the focus to solve old problems, bugs, improve existing frameworks is in low priority. And the new releases are 95% to solve problems from the previous version released features and 5% with new features. And there are 1 or 2 updates only for each release. After this, you must buy a new version of product to continue receiving updates for that uncompleted feature. With this strategy, at the moment, EMB is receiving a good $, but every day, more and more developers, as me, are thinking in change to another platform. In the few years, EMB will survive only from developers that must maintain your old applications developed with Delphi or C++. All new projects will be elaborared based on factors like robust, bug free and respect to the users.

Image
I'm disappointed with Embarcadero, because of your market strategy. New releases 2 times in the year. Of course, for EMB and the 3th Party Components Developers, is a great strategy, because the customers must buy updates ofen. But for the developers as me, this strategy is very expensive. The major problem is that embarcadero is focused to create new features to justify the cost of the new product version. But the new features, most time, is uncompleted and with many bugs. On the other hand, the focus to solve old problems, bugs, improve existing frameworks is in low priority.   And the new releases are 95% to solve problems from the previous version released features and 5% with new features. And there are 1 or 2 updates only for each release. After this, you must buy a new version of product to continue receiving updates for that uncompleted feature. With this strategy, at the moment, EMB is receiving a good $, but every day, more and more developers, as me, are thinking in chan

So ... patiently waiting for XE8 Update 1 ...

Image
So ... patiently waiting for XE8 Update 1 ...

XE8 Update 1 is around the corner....

XE8 Update 1 is around the corner.... http://docwiki.embarcadero.com/RADStudio/XE8/en/Release_Notes_for_XE8_Update_1

Did you know that `TypeInfo(T)` is an intrinsic since XE7?

Did you know that `TypeInfo(T)` is an intrinsic since XE7?  The following code: program Project45; {$APPTYPE CONSOLE} var   A,B: byte; type   TX = type byte;   TTest = class     class function A(const a,b: byte): boolean; static; inline;   end;   class function TTest .a(const A,B: byte): boolean;   begin     if TypeInfo(T) = TypeInfo(byte) then result:= (a > b)     else if TypeInfo(T) = TypeInfo(shortint) then result:= (a < b)     else if GetTypeKind(T) = tkInteger then result:= (a = b)     else Result:= false;   end; begin   a:= 1; b:= 2;   TTest .a(a,b);   TTest .a(a,b);   TTest .a(a,b); end. Generates this: Project45.dpr.21: a:= 1; b:= 2; 004050D4 B001             mov al,$01 004050D6 B202             mov dl,$02 Project45.dpr.22: TTest .a(a,b); 004050D8 3AD0             cmp dl,al 004050DA 0F92C1           setb cl Project45.dpr.23: TTest .a(a,b); 004050DD 3AD0             cmp dl,al 004050DF 0F97C1           setnbe cl Project45.dpr.24: TTest .a(a,b); 004050E2 3AD0             cm

Hi everyone

Hi everyone,  Check out this social networking platform for tech community and let me know your thoughts !  www.solaborate.com

Hi Folks

Hi Folks, maybe it's a bit academic to start more than 20 tethering applications on the same computer, but the 21st application just "hangs" and I haven't found a way to handle this gracefully. Here's the corresponding SO question: http://stackoverflow.com/questions/30864628/delphi-xe8-gracefully-handle-etetheringexception-at-application-startup http://stackoverflow.com/questions/30864628/delphi-xe8-gracefully-handle-etetheringexception-at-application-startup

AppAnalytics with RAD Studio XE8

AppAnalytics with RAD Studio XE8 Please register for AppAnalytics with RAD Studio on Jun 18, 2015 2:30 PM BST at:  https://attendee.gotowebinar.com/register/3049659693961383681 Embarcadero® AppAnalytics is the first analytics service for mobile, desktop, and wearables. Understand your end users, wherever they are, to deliver better apps and experiences. Track and measure how often apps are used, which platforms they are running, what features customers are using, find and log crashes and more. Understand user behaviour by capturing anonymous usage stats from end users. AppAnalytics is an analytics and tracking service, hosted by Embarcadero Technologies and available for RAD Studio XE8, C++Builder XE8 and Delphi XE8. Understand users today in existing Windows VCL apps, FireMonkey mobile and desktop apps to deliver better solutions. After registering, you will receive a confirmation email containing information about joining the webinar. https://attendee.gotowebinar.com/register/3049659

Need help! Please show me how to organize this.

Need help! Please show me how to organize this.   Years ago we decided to move our codebase from Delphi 7 to XE2. So we checked all our needed Components (Devart, Devexpress, Rave Reports, Gnostice) are aviable for XE2. When all was ok, we moved forward to XE2. We testet all our modules and it was not a big thing to get all work fine. But it takes time. Not a lot of, but enough. Since then i made nearly the same procedure for Delphi XE6. Then i stopped introducing new versions. To much efort. We do not have any phone apps at moment (but planned in future). We have a huge inhouse ERP system, tons of webservices and software for our customers out there. For this part of software the most of the funky new stuff is useless, because it works as it is and there is no need to rewrite something to make it hip. The main problem is: EMB can make as much marketing bling as they want. We can't upgrade to a new version until all of our component vendors are ready. If one of them stops to make t

I need help with tdataset in version 10 from advantagedatabaseserver from sap. We have recently updated xe7 to xe8. All components are working with xe8 now except that from sap.

I need help with tdataset in version 10 from advantagedatabaseserver from sap. We have recently updated xe7 to xe8. All components are working with xe8 now except that from sap. SAP is not willing to publish a new version of their components for xe8 for the version 10 because the current version is 11. The problem is, that we can't go to the newest tdataset component because its not compatible with older servers and a lot of customers are stuck at version 10 at the moment. Is there someone out there, with same problems or with a solution? Currently a lot of functionality is ok but i.e. a simple mydataset.locate('id', 1, []) will create an exception with that tdataset.

Originally shared by Boian Mitov

Originally shared by Boian Mitov Connecting #Arduino  and #Delphi  with the help of #Visuino  article in "Blaise Pascal Magazine"

A free small Delphi unit to implement a generic Tree structure. I'm maybe reinventing the wheel, but haven't spent time digging to search existing similar code.

A free small Delphi unit to implement a generic Tree structure. I'm maybe reinventing the wheel, but haven't spent time digging to search existing similar code. http://steema.com/wp/blog/2015/06/15/generic-delphi-tree-structure/

I have a Problem! :(

I have a Problem! :( I want to create the Word.Application inside a TOleContainer, but all what i do, isn´t usability. On my Form is a TOleContainer. I want to Create an Word.Application (Document) inside the container.  Example: OleContainer1.CreateObject('Word.Application', False); OleContainer1.OleObject.Documents.Open('blabla.docx'); i don´t see the Document in the container...

I have some suggestions for non-English blogs and feeds on BeginEnd.net, what's the feeling about it?

I have some suggestions for non-English blogs and feeds on BeginEnd.net, what's the feeling about it? If I add them, it would be possible to "quiet" them if you do not want to see them, but this would require some manual action. I already added a German forum, but it's "hidden by default".

Hi Guys.

Hi Guys. Someone know a way to show the download progress using the Amazon Cloud Api getobject method? This is the documentation about This method. http://docwiki.embarcadero.com/Libraries/XE8/en/Data.Cloud.AmazonAPI.TAmazonStorageService.GetObject

Don't you believe this? I found yet another broken GExperts functionality. This time it isn't my fault, it had been broken since Delphi 8 but apparently nobody noticed:

Don't you believe this? I found yet another broken GExperts functionality. This time it isn't my fault, it had been broken since Delphi 8 but apparently nobody noticed: The "Previous/Next Identifier reference" editor expert hasn't been work correctly since the IDE internally uses UTF-8 encoding. I for one didn't even know about these experts. Never used them, which is a shame because they can be quite useful. The Delphi IDE is running out of keyboard shortcuts by the way, and it gets worse with every additional expert. Originally shared by Thomas Mueller (dummzeuch) GExperts now compiles without a single hint in all Delphi versions from 6 to XE8. Hooray! (and that's not because I disabled them ;-) ) I also fixed a unicode problem with the procedure list, which is what got me started: procedure blä; procedure blüb; procedure plöp; now all work fine. The problem was with Martin Waldenburg's Delphi parser. Of course he can't be blamed for this because

Two sunday wishes !

Two sunday wishes ! Generic intrinsic constraints, to allow for example: type   TFoo =class     Data : T;     function Bar:Boolean;   end; function TFoo .Bar:Boolean; begin   result:=Data>123; end; and relaxed generic recursive declarations for records (FPC 3.0 is going to allow this) type   TFoo =record  // "class" works fine     Data: Array of TFoo ;   end;

how to force end jvthread component thread from JEDI?

how to force end jvthread component thread from JEDI? in example use this if not JvThread1.Terminated then     JvThread1.Terminate;   while not JvThread1.Terminated do   begin     Sleep(100);     Application.ProcessMessages;   end; but the procedure stay carried to completion.

Am I out of my mind to suggest a Pascal compiler that generates optimized C/C++/ObjC code and defers compilation to an external compiler?

Am I out of my mind to suggest a Pascal compiler that generates optimized C/C++/ObjC code and defers compilation to an external compiler? For example : Nim programming language ( http://nim-lang.org/ )

There is a discussion on HN about this article

There is a discussion on HN about this article, https://news.ycombinator.com/item?id=9712267 http://www.quora.com/Why-did-Borland-fail/answer/Danny-Thorpe?share=1&

Updated the FastCode github: https://github.com/JBontes/FastCode

Updated the FastCode github: https://github.com/JBontes/FastCode   A full testsuite is included and all 300 odd tests pass.  There is a light sprinkling of asm, but not as much as I would like because asm doesn't inline.   I need a good project to test speed enhancements on. I think I'll use a mix of sort/search routines. Because sorting was the reason I started this project anyway. Any and all comments for speed improvements are welcome.  https://github.com/JBontes/FastCode

ProductHunt.com

ProductHunt.com I just only learned about #ProductHunt  this morning. Has anyone had their software hunted down and listed on producthunt.com ? http://producthunt.com

OK, after I broke it last time, I have now fixed GExperts. Still no hints and warnings.

OK, after I broke it last time, I have now fixed GExperts. Still no hints and warnings. If anybody is willing to try it, the source code is here: https://svn.code.sf.net/p/gexperts/code/branches/formatter/trunk Just switch to projects\ \ and start the _Build_Project.cmd batch file. It should compile the dll either to the editorexpert or regularexpert directory. Originally shared by Thomas Mueller (dummzeuch) GExperts now compiles without a single hint in all Delphi versions from 6 to XE8. Hooray! (and that's not because I disabled them ;-) ) I also fixed a unicode problem with the procedure list, which is what got me started: procedure blä; procedure blüb; procedure plöp; now all work fine. The problem was with Martin Waldenburg's Delphi parser. Of course he can't be blamed for this because his work was done before Delphi was unicode aware.

IMHO the integrated formatter in Delphi somehow messes up any code placed in the initialization and finalization section. I prefer to have no linebreaks after those keywords and indent the code one step treating these keywords like begin/end. Actually there is a closing end anyway.

IMHO the integrated formatter in Delphi somehow messes up any code placed in the initialization and finalization section. I prefer to have no linebreaks after those keywords and indent the code one step treating these keywords like begin/end. Actually there is a closing end anyway. The formatter instead treats it similar to the interface and implementation keywords, which nonetheless is a valid approach. It just looks ugly in my view and every code wizard (e.g. datasnap) produces code formatted otherwise. What is your opinion on that? (the formatting - not using the formatter in general)

Array of record x Array of class - Memory Consumption

Array of record x Array of class - Memory Consumption Is there differences in memory consumption between them? I was not able to find more information about it in Delphi's world, only in .NET's. Should I avoid large arrays of class references in favor of record ones? Many thanks :D
Does anyone know of a generic version of (System.Classes.)MakeObjectInstance that will take a generic method type (as in ) of just a plain TMethod? Is a generic (as in ) version is possible?

RSP-9997

RSP-9997 https://quality.embarcadero.com/browse/RSP-9997 This is the one I am watching, but unfortunately it does not include a fix. With up to 1024 x 1024 vertices in a custom mesh, it could rotate, zoom and pan faster as I move the mouse over the viewport 3D. In XE4: Looking at procedure TCustomMesh.Render; Control click to TContext3D.DrawTriangles; Control click to TContext3D.DoDrawPrimitives, which is abstract. (I have the FMX source included in my project already, because of the orthographic camera.) Search in project files for DoDrawPrimitives: FMX.Context.DX10: TDX10Context.DoDrawPrimitives FMX.Context.Mac: TContextOpenGL.DoDrawPrimitives Hm, not my core field of expertise. So how difficult is it? What does it take? I mean, if I have two versions of DoDrawPrimitives and branch to the optimised one if rotations are done, ... There is no game loop in my application, and there is only one mesh, which can be small or big. Vertices of the mesh change often, but then the user wants to

It's wonderful how smart delphi compiler is

It's wonderful how smart delphi compiler is 0054DD53 8945E8 mov [ebp-$18],eax htmlpars.pas.1981: C:=ord(PH.Name[StringStart]) - ord(A1); 0054DD56 8B45E8 mov eax,[ebp-$18] 0054DD59 8B00 mov eax,[eax]

This is a bit off topic question, but since some folks here know more than me about garbage collection, I am looking for some insights.

This is a bit off topic question, but since some folks here know more than me about garbage collection, I am looking for some insights. What I want to know is when your app consumes more and more memory to the point it crashes, but calling System.gc() (Java) or manual triggering of GC through debugger cleans up the whole mess, is it your code that is having a leak or it is just buggy GC? For instance app at startup consumes about 24MB, while working that amount rises to 500MB (and it should not pass 45MB) and after triggering GC from debugger allocated memory drops to 24MB. http://stackoverflow.com/q/30776779/4267244

After adding some optimizations to HTML/XML parser I was curious to compare its performance to other implementations.

After adding some optimizations to HTML/XML parser I was curious to compare its performance to other implementations. As a test sample  I used Golf.xml file (500Kb) from this page http://www.enetpulse.com/documentation/ As a participants were choosen OXML  http://www.kluug.net/oxml.php (it seems to be a fastest native XML implementation for Delphi) and standard MSXML (Xml.XMLDoc). It is not serious test, because results are vary widely from file to file (on some files MS was 9 times slower than HCL) but gives some notion. Delphi XE2, Win32, Windows 7, Intel Core i5. 1. Reading (string -> DOM, creating and destroying ) HCL: 1.622 ms   THtXMLNode.Create(s); OXML: 4.415 ms    OD:=OXMLPDOM.TXMLDocument.Create;    OD.LoadFromXML(s); MSXML: 4.524 ms   MD:=XMl.XMLDoc.TXMLDocument.Create(nil);   MD.LoadFromXML(s); 2. Memory (after loading 100 documents) HCL: 177 Mb OXML: 206 Mb. MSXML:  253 Mb. 3. Serialization (DOM -> string ) HCL: 2.65 ms OXML: 11.07 ms MSXML: 7.18 ms 4. Simple XPath

Emba needs to get a grip on unit testing.

Emba needs to get a grip on unit testing. TComparer > is broken when testing empty arrays. Just filed: https://quality.embarcadero.com/browse/RSP-11310 https://quality.embarcadero.com/browse/RSP-11321 as well as https://quality.embarcadero.com/browse/RSP-11301   https://quality.embarcadero.com/browse/RSP-11310

All of a sudden I cannot deploy my Android app.

All of a sudden I cannot deploy my Android app. [Copy Error] Unable to copy file ".\Android\Debug\MSD\library\lib\armeabi-v7a\libMSD.so" to ".\Android\Debug\MSD\debug\libMSD.so". Could not find a part of the path '.\Android\Debug\MSD\library\lib\armeabi-v7a\libMSD.so'. I have Googled but did not find a solution. Does anyone know how to fix this?

Did you know that you can get an at least partially working BDE by just copying some of the files to a directory in your path? (e.g. in the directory where your executable resides) No configuration or registry access required.

Did you know that you can get an at least partially working BDE by just copying some of the files to a directory in your path? (e.g. in the directory where your executable resides) No configuration or registry access required. This works for me for accessing dbase files, including sql queries. The BDE was all that prevented that program to become a "portable app". Now, what does the license say about this? It probably won't allow it. But if it only says "Borland won't support that kind of installation", I can't really be bothered. Who is this "Borland" anyway (they were bought by Microfocus)? And do they support the official installations at all? Isn't it rather that the BDE has been unsupported for years?

H All

H All I am using XE8 and I cannot run the debugger on a Android device.  XE8 will install app but will not run it in debug mode.  When I compile app I get the follow message [Warning Warning] Local file "C:\Users\Public\Documents\Embarcadero\Studio\14.0\PlatformSDKs\android-ndk-r9c\prebuilt\android-arm\gdbserver\gdbserver" not found. Skipping deployment. I see it points to Studio\14 but this should be 16.  I think it may have got screwed up during the installation or because it is an app developed in an older version.  Is there a way to change the path.  I cannot seem to find this path setting .  Can someone point me in the right direction.

Guess the output of this program.

Guess the output of this program. Is this three Delphi bugs for the price of one? Compiler mentions:  [dcc32 Hint] WeirdCaseConstruct.dpr(11): H2077 Value assigned to 'Handled' never used 1. If statement inside case - after ELSE option? 2. Handled is actually used 3. else Test(4) is never called #wtf  XE7.1 (32-bit, Windows) program WeirdCaseConstruct; {$APPTYPE CONSOLE} {$R *.res} uses   System.SysUtils; procedure Test(const Value: Integer); var   Handled: Boolean; begin   Handled := True; // <- Hinted   case Value of     1: writeln('One');     2: writeln('Two');     else Handled := False;     if not Handled      then Writeln(Value, ' is unhandled')       else Test(4);   end; end; begin   Test(1);   Test(3);   Write('Press Enter');   Readln; end.

Originally shared by Boian Mitov

Originally shared by Boian Mitov Just released version 7.6.1.0 of all the Mitov Software Delphi libraries http://mitov.com : VideoLab, VisionLab, AudioLab, SignalLab, PlotLab, InstrumentLab, IntelligenceLab, LogocLab, BasicVideo, BasicAudio, Mitov.Runtime, Visual Live Binding, and OpenWire. This version improves the design time performance with some 3th party components such as TMS Software's grids. http://mitov.com
Boa noite. Gostaria de saber se alguem aqui faz integração com agenda do Google e se tem algum material sobre o assunto.

Which file format do you use for your delphi (code) source?

Which file format do you use for your delphi (code) source? As far as I know, delphi up to 2007 only used ANSI. Since Delphi 2009 it can use UTF-8 instead. The current XE8 even allows for UCS-2 and UCS-4 in both big and little endian format (and a few more which I am going to ignore because I have no idea what they actually mean: "Text Form", "Binary Form", "Binary"). In case you are wondering: This is about reading files for various functionality in GExperts. Currently (in the current source code that is, not the released dll), it works fine if the file is already open in the IDE, but if it has to read a file itself, it tries to convert it from UTF-8 to the native string format, regardless what encoding it actually is in. On my computer all source files seem to be ANSI, I had explicitly tell Delphi to use other formats to actually get some test files. (If you use ANSI + any of the other formats, please vote for the "other format".)

After asking the following question on stackoverflow.com it was suggested I could get better answers here. So here we go. Any information is appreciated.

After asking the following question on stackoverflow.com it was suggested I could get better answers here. So here we go. Any information is appreciated. In my Delphi service application I need to store a huge number of documents, mostly images, along with meta data about them, such as file names/sizes, as well as some data about them, such as OCR results, in some type of database. Single documents might get up to around 300 MB, while total database size might get into the terabytes range. Storage and retrieval performance is important. Up to now I was handling that with mORMot's TSynBigTable (along with their REST http WebSockets server over IInterface), but that storage solution doesn't seem very stable. It also is a single file, so has a hard file size limit coming from file system. Somehow it does get corrupted rather easily too (some problem with its memory cache/disk flush logic I think). I believe Lucene would be perfect for my need, but that has no Delphi port as far a
Hi, wonder if anyone can help,  I'm looking at signing a contract with a new company (bought out an old client) and they're wanting to put a very open liability clause in.. I was  under the impression us software developers do not take any liability be it bespoke or off the shelf..  the company seem to think it's a standard situation..   I'm talking to the point where they want my company to be liable for any costs for additional staff to manually process the data, and also costs involved in brining in other IT companies to recreate the software from scratch etc...    any thoughts or examples appreciated ,  Thanks :-)

Hello! Just a quick heads-up for anyone of you who may be interested in this: a fairly well-known site with Delphi samples may come up for sale.

Hello! Just a quick heads-up for anyone of you who may be interested in this: a fairly well-known site with Delphi samples may come up for sale. It was proposed to me first, but I am not in a position to buy. The text pitch is ready, but the seller is still thinking about it :) So... if you'd be generally interested, please drop me a line :) A

Unrelated to Delphi, but a good example to follow!

Unrelated to Delphi, but a good example to follow! http://www.linux.com/news/featured-blogs/158-jim-zemlin/834610-apples-decision-to-open-source-swift-met-with-developer-applause

I made a vcl application and inside of that I have a ITask that will call a procedure that intents to connect to a database a do some processing. The database component is inside the data module, my procedure can reach the database component (FDConnection) but if I call the procedure outside the ITask, calling inside will rise exception because the connection gets is nil.

I made a vcl application and inside of that I have a ITask that will call a procedure that intents to connect to a database a do some processing. The database component is inside the data module, my procedure can reach the database component (FDConnection) but if I call the procedure outside the ITask, calling inside will rise exception because the connection gets is nil. Why and how to handle that? Should I treat this as a normal thread?

This is a ridiculous question, but I have spent 20 minutes looking through options an I'm obviously missing...

This is a ridiculous question, but I have spent 20 minutes looking through options an I'm obviously missing something... In XE7 the IDE would do relatively useful and intuitive expansions when I entered certain things, triggered by the press of the spacebar.  For example, I'd enter "if " and it would fill in a then and begin/end, and drop my cursor in a logical spot.  I thought this  was something in Castalia, but it may have been some other plug-in? In XE8, I get similar expansions when I press ENTER.  i.e. I type "begin " and it drops a line and puts in an "end;". My question is this: did Castalia functionality change between XE7 and XE8 or am I thinking of another plugin?  Either way, does anyone have a clue were one would go to tailor the keywords it triggers on and what it does?  I can't for the life of me find this in the options anywhere...  I really miss this!

This is a ridiculous question, but I have spent 20 minutes looking through options an I'm obviously missing something...

This is a ridiculous question, but I have spent 20 minutes looking through options an I'm obviously missing something... In XE7 the IDE would do relatively useful and intuitive expansions when I entered certain things, triggered by the press of the spacebar.  For example, I'd enter "if " and it would fill in a then and begin/end, and drop my cursor in a logical spot.  I thought this  was something in Castalia, but it may have been some other plug-in? In XE8, I get similar expansions when I press ENTER.  i.e. I type "begin " and it drops a line and puts in an "end;". My question is this: did Castalia functionality change between XE7 and XE8 or am I thinking of another plugin?  Either way, does anyone have a clue were one would go to tailor the keywords it triggers on and what it does?  I can't for the life of me find this in the options anywhere...  I really miss this!
GEXPLOITE DESK intègre google maps ... plus de liberté, moins de difficulté.
Xcode 7 beta available for everyone made me wish Delphi beta available at least for all customers. It would do miracles for product QPS (Quality, Performance, Stability)

I have just released the alpha version of my 1st Android app, made wuth Delphi of course!

I have just released the alpha version  of my 1st Android app, made wuth Delphi of course! You are all invited to test it and give feedback. Thanks...Dan'l http://www.msd.website http://www.msd.website

So I have this IOErrorCode record which encapsulates errors from the underlying API. The point is to be able to pass this error code to a user-callback, and so raising immediately is not desirable.

So I have this IOErrorCode record which encapsulates errors from the underlying API. The point is to be able to pass this error code to a user-callback, and so raising immediately is not desirable. Modelling it after Boost's error_code it has an implicit conversion to boolean, where "no error" is mapped to False, otherwise True. While it looks neat, I find it can be a bit obscure, and so want to remove it. So, choices... 1. if (Success(ErrorCode)) then ... 2. if (not Failed(ErrorCode)) then ... 3. if (not ErrorCode.Failed) then ... Thoughts? Other ideas?

Have you noticed how fast time flies? SvCom project started as a "proof of concept" - trying to combine both a service application and a COM-server in one module. And now it’s likely the best RAD service development tool for Delphi, celebrating its 16 birthday! We’d like you to celebrate with us!

Image
Have you noticed how fast time flies? SvCom project started as a "proof of concept" - trying to combine both a service application and a COM-server in one module. And now it’s likely the best RAD service development tool for Delphi, celebrating its 16 birthday! We’d like you to celebrate with us! We give you a 16% discount on all our products this month. Follow links below to go to the order page. Enter the SVCOM16 coupon code when checkout to get the discount. SvCom order page:  http://aldyn-software.com/order.html Shell+ order page:  http://www.shellplus.com/order.html Please note that coupon code is valid in June 2015 only. OR purchase SvCom right now (with no coupon) and get Shell+ Standard for free!

TWinControl.CanFocus returns true for controls on invisible forms.

TWinControl.CanFocus returns true for controls on invisible forms. I haven't found this issue at quality so I decided to resend it. It drives me mad all the time I use CanFocus/SetFocus. Feel free to upvote the issue :) https://quality.embarcadero.com/browse/RSP-11285

Hello

Hello,  Is there any special consideration for UDP broacasting under Android and OSX ? I've made a crossplatform socket component to broadcast a message and let different devices knows of each others. what I don't understand is that Windows receives all the broadcast when Android and OSX don't. The 3 devices are on the same Wifi router. the socket is setup this way: so := socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); opt := 1; setsockopt(so, SOL_SOCKET, SO_REUSEADDR,@opt, SizeOf(opt)); setsockopt(so, SOL_SOCKET, SO_BROADCAST,@opt, SizeOf(opt)); addr.sin_family := AF_INET; addr.sin_port := htons(2048); addr.sin_addr := INADDR_ANY; bind(so, addr, sizeof(addr)); Sending is done this way: addr.sin_family := AF_INET; addr.sin_port := htons(2048); addr.sin_addr := INADDR_BROADCAST; sendto(so, data, data_len, addr, addr_len); I've tried to create 2 sockets, one for sending, and the other for reading. the sending socket was bind with  addr.sin_port := 0;  addr.sin_addr := my_local_

I've just pushed to GitHub (first time, so be gentle...) an extended, multi-platform TClipboard implementation for newer Delphi versions:

I've just pushed to GitHub (first time, so be gentle...) an extended, multi-platform TClipboard implementation for newer Delphi versions: https://github.com/chrisrolliston/CCR.Clipboard Where the platform allows, supports delayed rendering, virtual files, change notifications, and inter-process TClipboard-based drag and drop. The code originates from the FMX TClipboard I published a few years back, though is much extended, and was refactored to support the VCL too (XE2+). For more info, check out the readme first... https://github.com/chrisrolliston/CCR.Clipboard/blob/master/Readme.md ... followed by the wiki pages for discussion of individual features, together with known issues and limitations: https://github.com/chrisrolliston/CCR.Clipboard/wiki Disclaimer: supporting multiple FMX versions ain't no fun, so if someone tries it with XE4 or whatever and has an issue, I may not be able to help. Also, if you're interested in drag and drop to Finder on OS X, consider using my

Why oh why can't I manipulate the order in which overloaded methods get selected...

Why oh why can't I manipulate the order in which overloaded methods get selected... SomeClass ..... class function Compare(const Left, Right: Integer): Integer; overload; static; inline; class function Compare(const Left, Right: T): integer; overload; static; inline; The generic one always has preference :( Changing it to: class function Compare(const Left, Right: TRecWithCustomOperators): integer; overload; static; inline; Fixes the issue, but then I get ambiguous overloaded calls on enums and the like. Grr.

GExperts now compiles without a single hint in all Delphi versions from 6 to XE8.

GExperts now compiles without a single hint in all Delphi versions from 6 to XE8. Hooray! (and that's not because I disabled them ;-) ) I also fixed a unicode problem with the procedure list, which is what got me started: procedure blä; procedure blüb; procedure plöp; now all work fine. The problem was with Martin Waldenburg's Delphi parser. Of course he can't be blamed for this because his work was done before Delphi was unicode aware.

Initialization Pattern?

Initialization Pattern? type   TIdentification = (Foo, Bar, Fubar, Snark, Plugh, Plover);   TAssociation = (Ninja, Cowboy, Pirate);   TIdAssoArray = array[TIdentification] of TAssociation; var // or const   IdentityToType : TIdAssoArray; What is the best way of initializing IdentityToType so that it is robust against adding, removing or reordering the TIdentity members?

Delphi reaches the TIOBE Index TOP 10!

Image
Delphi reaches the TIOBE Index TOP 10! After some years, Delphi came back to the TOP 10 of the most popular programming languages of the world :D It is time to take more care about developer opinions and keep rising :D

Delphi Developer Survey

Delphi Developer Survey Does anyone have a link to the most recent survey results?

Since the topic MVVM in Delphi has been discussed and presented in the past and none of the approaches did it well (in my opinion) I wrote some small prototype how I think MVVM should work.

Since the topic MVVM in Delphi has been discussed and presented in the past and none of the approaches did it well (in my opinion) I wrote some small prototype how I think MVVM should work. It is inspired by Knockout.js - the code is quick and dirty and just coded to make the things work that I wanted to show. But it shows some of the concepts really well imo. Please leave your opinions and feedback if that is something that could be worked with in the future. Keep in mind it does not touch on some other challenges presented by MVVM like wiring up multiple views and view-models. I just focused on the essential parts (imo) of MVVM - easy and declarative data binding (nope, no RAD) and dependency tracking. Imo the most difficult part is making the UI elements work properly with the data binding and attach to the correct events. Especially when it comes to more complex controls like grids or trees. However I already have some ideas how to handle that properly. https://bitbucket.org/sglien

Got tired of having to use slow interface code, just to compare 2 integers in my generic code.

Got tired of having to use slow interface code, just to compare 2 integers in my generic code.  With the new compiler intrinsics in XE7 there's finally an option to do better.  Now I get 4 lines of inlined assembly to compare 2 integers, instead of 37 in my code and about 50 in futher calls.  Perhaps it's time to revive the fastcode project :-) Have a look at: See: https://github.com/JBontes/FastCode to see the new Comparers. Note that I've not had time to test everything, but I'll add a full suite of test cases in due course. https://github.com/JBontes/FastCode

Last chance until tomorrow Sunday... 25% discount using coupon code 2015SpringFB on purchasing kbmMemTable Standard Edition, kbmMW Professional Edition, kbmMW Enterprise Edition and cross upgrades from other 3rdparty n-tier products to kbmMW.

Last chance until tomorrow Sunday... 25% discount using coupon code 2015SpringFB on purchasing kbmMemTable Standard Edition, kbmMW Professional Edition, kbmMW Enterprise Edition and cross upgrades from other 3rdparty n-tier products to kbmMW. Shop kbmMW at: http://www.components4programmers.com/products/kbmmw/priceorder/purchaseacommerciallicense.htm#kbmMWNew Shop kbmMemTable at: http://www.components4programmers.com/products/kbmmemtable/priceorder/index.htm Join the Delphi Thirdparty Alliance vendor association at: https://www.facebook.com/DelphiThirdPartyAlliance kbmMW is a portable, highly scalable, high end application server and enterprise architecture integration (EAI) development framework for Win32, ..Net and Linux with clients residing on Win32, .Net, Linux, Unix, Mainframes, Minis, Embedded and many other places. It is currently used as the backbone in hundreds of central systems, in hospitals, courts, private, industries, offshore industry, finance, telecom, governements, sc

Did you notice GetIt approval conditions: "Replacing key capabilities that are part of the core platforms definitions such as Client/Server FireDAC pack or the DataSnap/EMS Enterprise middleware, would be less likely to be accepted."?

Did you notice GetIt approval conditions: "Replacing key capabilities that are part of the core platforms definitions such as Client/Server FireDAC pack or the DataSnap/EMS Enterprise middleware, would be less likely to be accepted."? It clearly reminds me the XE3 time where there was an attempt from Embarcadero to modify their licence terms, so that third party vendors or Open Source libraries would not be allowed to create multi-tier frameworks with Delphi! IMHO it sounds like a very closed mind spirit, especially to ensure the dynamism of a dev environment. http://blog.synopse.info/post/GetItIfItWontHurtOurSells

Blog Post: (Italian) Delphi Day 2015 Sponsors!

Blog Post: (Italian) Delphi Day 2015 Sponsors! Many thanks to all of you. :-) http://blog.delphiedintorni.it/2015/06/delphi-day-2015-gli-sponsor.html

Some improvements in HCL HTML/XML parser and now it reaches 200Mb/s (DOM).

Some improvements in HCL HTML/XML parser and now it reaches 200Mb/s (DOM). Just 9 times faster than MsXML

ARGH - When will programmers stop forcing their context menu items to be in a specific place... Found another third-party add-on (this makes two), this time included in the IDE installation, that forces it self to be in a certain position - if it isn't, it adds another TWO menu items (one of them a bar).

ARGH - When will programmers stop forcing their context menu items to be in a specific place... Found another third-party add-on (this makes two), this time included in the IDE installation, that forces it self to be in a certain position - if it isn't, it adds another TWO menu items (one of them a bar). Yet again, have to work around someone's stupidity. Maybe I should start a name and shame campaign... Apologies if this the wrong place to do my rant.

I got the usual coridexxx.bpl IDE crash this morning, but something in the stack trace caught my eye. I have this mental picture of an old Star Trek episode that goes something like this: Kirk: "Bridge to Engineering! The Klingons are gaining on us! Get us out of here now!" Scotty: "Cap'n, I givin it all she's got!"

Image
I got the usual coridexxx.bpl IDE crash this morning, but something in the stack trace caught my eye.  I have this mental picture of an old Star Trek episode that goes something like this: Kirk: "Bridge to Engineering!  The Klingons are gaining on us!  Get us out of here now!" Scotty: "Cap'n, I givin it all she's got!" I think I need Scotty's help with this.  The Klingons are gaining on ME.
Does anyone know if in XE7, the ParamStr(0) in a DLL now gives the path of the DLL, and not the EXE?  I'm calling the Delphi DLL from a C# Asp.net program, and in the past, the Paramstr(0) would get the path to the IIS exe, but now it appears, it's getting the path of the DLL?

type

type   TMyEnum = (One, Two, Three);   TMyObject = class   public type     TItems = array[TMyEnum] of String;   private     FItems: TItems;   public     property Items:TItems read FItems write FItems; default; ♠   end; ♠  [dcc32 Error] E2132 Default property must be an array property There probably is a good reason for this, but I am still annoyed :P