Want to win a PS4? Go Premium and enter to win our High-Tech Treats giveaway. Enter to Win







Delphi is the most powerful Object Pascal IDE and component library for cross-platform Native App Development with flexible Cloud services and broad IoT connectivity. It provides powerful VCL controls for Windows 10 and enables FMX development for Windows, Mac and Mobile. Delphi is your choice for ultrafast Enterprise Strong Development™. Look for increased memory for large projects, extended multi-monitor support, improved Object Inspector and much more. Delphi is 5x faster for development and deployment across multiple desktop, mobile, cloud and database platforms including 32-bit and 64-bit Windows 10.

Share tech news, updates, or what's on your mind.

Sign up to Post


I tried this : http://blog.marcocantu.com/blog/xe5_anonymous_showmodal_android.html

and my problem is that using this code:

  dlg: TForm1;
  dlg := TForm1.Create(nil);
  // select current value, if avaialble in the list
  dlg.ListBox1.ItemIndex := dlg.ListBox1.Items.IndexOf(Edit1.Text);
    procedure(ModalResult: TModalResult)
      if ModalResult = mrOK then
      // if OK was pressed and an item is selected, pick it
        if dlg.ListBox1.ItemIndex >= 0 then
          edit1.Text := dlg.ListBox1.Items [dlg.ListBox1.ItemIndex];

Open in new window

The  dlg.DisposeOf; gives Access Violation error.
I tried it with Free, but that gives the same error message.

How can I free the form then? Thank you.
Free Tool: Path Explorer
LVL 10
Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.


I bought Tms Fmx component and I am struggling with simple things.

I use TMSFMXLiveGrid which is connected to a datasource.
It automatically populated the columns.
But I want certain columns to show certain fields. However, when I click a column's properties in Object inspector I can't see field name property.
How can I set that a column should use a certain field?

Thank you.
How to check for available space?
For example, unable to copy file to Mobile Device. There is an Mobile Device Copy Error. It is necessary to find out the reason, whether it happened because of a lack of available space.
I succesfully wrote my first Delphi app for smartphone (Android).
A button to click, a edit field, a label
When clicking on the button, the text in the edit field is copied in the label text : Label1.Text := 'Hello ' + Edit1.Text + ' ! ';
Also, at design time, I put "Hello" in the text property of Label1
Now at execution time (test on the PC),  clicking the button has no effect !
In debug mode, I put a break point on the statement label1.Text := ... but it never stops there
What's missing ?
Here is the code of Unit1 :

unit Unit1;
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.StdCtrls,
  FMX.Controls.Presentation, FMX.Edit;
  TForm1 = class(TForm)
    Edit1: TEdit;
    Label1: TLabel;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    { Déclarations privées }
    { Déclarations publiques }
  Form1: TForm1;
{$R *.fmx}
// {$R *.iPhone47in.fmx IOS}
procedure TForm1.Button1Click(Sender: TObject);
 Label1.Text := 'Hello ' + Edit1.Text + ' !';
I have a IdHTTPServer and i want implement the support for handle both http and https request. There are my consig

FSSLHandler := TIdServerIOHandlerSSLOpenSSL.Create(nil);
FSSLHandler.SSLOptions.CertFile     := 'certificate.pem';
FSSLHandler.SSLOptions.KeyFile      := 'key.pem';
FSSLHandler.SSLOptions.RootCertFile := 'chain.pem';

FIdHTTPServer.Bindings.Add.Port := 443;
FIdHTTPServer.IOHandler := FSSLHandler;

FIdHTTPServer.Activate := true;

Open in new window

in the server directory i have ssleay32.dll and ssleay32.dll v1.0.2l (Win32) downloaded from http://indy.fulgan.com/SSL/

when i make a request from Chrome, in the security tab of the developer tool i see:

Also, analyzing the server with sslyze i have some others security issue (see VULNERABLE label):

> sslyze --regular local.XXXXXXXXXXXXXX.com:4343


 * SSLV2 Cipher Suites:
      Server rejected all cipher suites.

 * TLSV1_1 Cipher Suites:
        None - Server followed client cipher suite preference.                                                            
        TLS_RSA_WITH_AES_256_CBC_SHA                      -              256 bits                                                                  
        TLS_RSA_WITH_CAMELLIA_256_CBC_SHA                 -              256 bits                                    

In SQL Server Express I have a Stored Procedure that will rebuild or reorganize indexes based on their fragmentationlevel.
See: http://sqlfool.com/2011/06/index-defrag-script-v4-1/
This process might take a considerable amount of time in a big database.
This script uses some parameters, but I can set them all to defaults, so I can skip that part.

When my Delphi application starts the procedure, it will wait for completion, resulting in Time-out for query errors. I could extend the time-out but I would still have to wait for completion. Which I don't wait.

I only want to start the procedure and work in my application again. I need no result back. Let SQL Server do the work in the background. The SP has it's own timelimit which can be set.

How can I set this up in a way that meets my needs?
Please keep in mind that I run on SQL Server Express, which might limit my options.
I am programming in Delphi XE8 and have been looking for some time for software that I can call from my program that can convert from as many formats as possible to text or RTF.

Any suggestions?
Hi! I've been programming for several years in Delphi, then C++Builder but recently I started programming concurrrently(threads)
I've read on documentation VCL should be used by "synchronice" method. My question: all of the objects from VCL should be
treated within a Synchronice call or only when severals threads use the same object or only when they affect the GUI(labels, buttons
and others properties)?. Suppose I have n threads but each one of them use their own objects(labels, tlistbox, etc) inside a TPage for each one, so there's a TPageControl for all of them should I use Synchronize?
Hi there,

I made a small win32 db-applicatie for warehouse for education a couple of years ago (Delphi 2007), using ADO en msaccess db.
Since a couple of months two things happen with the application:

1 slow start up and slow shut down in win10. In DELPHI IDE it 'hangs' on olepro32.dll.
2 i can't reproduce but some win10 user get errors (external exception / access violations)

I read something about how MS after june 2017 updates dll's.
Could that have anything to do with this?

Every help appreciated.
I use a TIDMessage component (M) to read emails in a Delphi application
Sometime I get as unique first line of the body (M.Body[0]) this : "This is a multipart message in MIME format"
Where can I get the real body of this message ?
Thanks !
Free Tool: IP Lookup
LVL 10
Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

need some help with this batch script
I use alwaysup.exe to run my .exe as system ,here u can see some pugins:  https://www.coretechnologies.com/products/AlwaysUp/Plugins/

I decide to use this plugin:
Stop/restart your application if a specific string is found in a log file

Command Line Usage
	CheckLogFileForFatalError.exe <file-name> -e <error-string>
		[-ok <ok-string>] [-v]
	<file-name> is the full path to the file to be checked
		- Please enclose in quotes if the path contains spaces.
		- Note that this file name can contain special macro-like
		strings that will be dynamically replaced when the program
		is run. These are:
			$DAY == The current 2-digit month (01-12)
			$MONTH == The current 2-digit day (01-31)
			$YEAR2 == The current 2-digit year
			$YEAR4 == The current 4-digit year
		For example, if today is May 26 2011, then:
		will be expanded to
		when the utility is run.

	<error-string> is the error message to look for in the file
        There can be multiple error-strings, and at least one must be specified.

	<ok-string> is a message that signals that the software is ok.
        If it appears after all the error strings, a restart will not be
        signaled. An ok-string is not required but multiple can be specified.

	-v signals to produce verbose output (optional)

        Note: All strings are case sensitive.
To check if a log file located at 

Open in new window


I have a problem, when I1m trying to get a https image from a web site. The page uses TLS 1.2, so I use OpenSSL and it works for all the text I want to get from the page. When it comes to the picture, then I get the "underlying crypto error, error connecting with ssl, error 1409442E: SSL routines:SSL3_READ_BYTES:tlsv1 alert protocol version.

Does anyone have any idei what is causing this? I've tryed more SSL/TLS versions, but none of them worked. I use the latest dlls.

Thanks for any help in advance!

I have made an Android app in Delphi which sends Sms to some phone numbers.

It works well on my phone but at one of my customer (who has Android 7 on his phone ) it works like this:
- it sends about 10-15 SMS-es without error
- then "Android error: java.lang.UnsupportedOperationException: Sms is not supported" pops up

What can cause the problem at customer's site?
Thank you very much for your help.
How to Fix compress file I used ZLib  in Delphi 10.2
I am using QuickPDF (DeBenu) to fill a PDF form and all is working well except checking a radio-button.
What is the correct syntax (any language) to check the first radio-button in the following group:
* * * * * * * *
Field10: form1[0].#subform[0].period_1[0]
Field 11: form1[0].#subform[0].period_1[0].PaymentPeriodM[0];    Value=Off
        11:1. Off
        11:2. 0
        11:3. 1
Field 12: form1[0].#subform[0].period_1[0].OtherSpecify[0]
* * * * * * * *
Many thanks,
i have Tpagecontrol with 5 tabsheet. example i work in tabsheet4.  is it possible to close the tabsheet4 in runtime mode? i mean when i run the program, i can easily close the tabsheet4 (like in browser such firefox or elese). and when i want to see the tabsheet4 i can open it again using button or navbar, is it possible?

many thax
Hello guys

I have this link :
and it returns me this xml in my browse:

<city>São Bernardo do Campo</city>
<district>Nova Petrópolis</district>
<address>Rua Dom Bernardo José Bueno Miele (Jd Palermo)</address>

Open in new window

I am trying to get it in my delphi code, but I am having problem with it, this is my function:

function RetornoHttpGet(sEndereco: String): String;
    s,str: string;
    IndIni: integer;
    IndFim: integer;
    acesso: TIdHTTP;

  acesso := TIdHTTP.Create(nil);
  acesso.IOHandler := TIdSSLIOHandlerSocketOpenSSL.Create(acesso);
  acesso.Request.Accept := 'text/html, */*';
  acesso.Request.UserAgent := 'Mozilla/3.0 (compatible; IndyLibrary)';
  acesso.Request.ContentType := 'application/x-www-form-urlencoded';
  acesso.HandleRedirects := True;
    s := acesso.Get(sEndereco);
    Result := s
    Result := '';


Open in new window

could you help me on this?
I got this error: HTTP/1.1 403 Forbidden

I have TadvNavBar and pagecontrol1, in TAdvNavBar1 i have 3 panels ( AdvNavBarPanel1, AdvNavBarPanel2, AdvNavBarPanel3) and in page control there are 3 tab (tabsheet1, tabsheet2 , tabsheet3), is it possible when i click AdvNavbarPanel1 = tabsheet1 active, and so on with Advnavbarpanel2 and Advnavbarpanel3..

this is my sintax but its get error:

procedure TForm1.AdvNavBar1Click(Sender: TObject);

anyone can help?
Any time that I click on the Factoring option on the main menu in a C++ builder project whilst in the code editor, the drop-down menu shows No Refactorings Available ? This is the same in RAD studio 10.2 C++ builder.
Is there a video tutorial showing how to use the Refactoring functionality or is it possible that it needs to be enabled somewhere ?
The written help on the subject just doesn't work on my PC.
Important Lessons on Recovering from Petya
LVL 10
Important Lessons on Recovering from Petya

In their most recent webinar, Skyport Systems explores ways to isolate and protect critical databases to keep the core of your company safe from harm.

Hello, Guys

I need create a app with Delphi MDI but my problem is how create MDI Form with screen login.

when I create a form login and call form2 "app" I received erro no can use MDI form No MDI forms are currently active
Im a Delphi programmer with som old HTML experience. I want to go JS node and Typescript. Where should i start? What do i need to know before i start with JS node and Typescript or is it just to go?
My Application uses FdMemTable and load a file called users.xml. every thing is nice until I the application is used by local network.
Several users try to open the same file at the same time! An exception rises!
I found a function that might help me but "createFile" is  not recognized also GENERIC_READ or GENERIC_WRITE  by the compiler. Please Help!  

function TDataContainer.IsFileInUse(fName : string) : boolean;
var //fNAME is the adress of the file to check if is in use
HFileRes : Thandle;
 Result := false;
 if not FileExists(fName) then exit;
 Result := (HFileRes = INVALID_HANDLE_VALUE) ;
I have generated  .type library from some .dll which com dll.

//procedure TMDF4Reader.GetData(bTime: Integer; lFirstIndex: Integer; lLastIndex: Integer;
                              out pBuffer: OleVariant; out nValuesRead: Integer);
  DefaultInterface.GetData(bTime, lFirstIndex, lLastIndex, pBuffer, nValuesRead);
this function from .tlb file.

I want to call this function but this function does not accept olevarient.
I tried following way
vData : olevarient;

  vData := VarArrayCreate([0,0], varDispatch); // A Variant array

  boun.cElements := 1;
  boun.lLbound := 0;
  SafeArray :=  SafeArrayCreate(VT_DISPATCH, 1, @bounds);
if SafeArray <> nil then

    TVarData(vData).VType := (VT_ARRAY  or VT_VARIANT or VT_DISPATCH);
    TVarData(vData).VArray  := PVarArray(SafeArray);
     MDF4.GetData(1, 1, 10, &vData, &n); // Get the data form the time signal

please help me on this i stuck
Would like application loading TGauge to look like Windows 7
Can someone help me with a sample for drag and drop items between two livegrids (or stringgrid, or listboxes ...) in Fremonkey ?

I found a lot example on how to do it in Delphi Vcl but none in Firemonkey.

Thank you






Delphi is the most powerful Object Pascal IDE and component library for cross-platform Native App Development with flexible Cloud services and broad IoT connectivity. It provides powerful VCL controls for Windows 10 and enables FMX development for Windows, Mac and Mobile. Delphi is your choice for ultrafast Enterprise Strong Development™. Look for increased memory for large projects, extended multi-monitor support, improved Object Inspector and much more. Delphi is 5x faster for development and deployment across multiple desktop, mobile, cloud and database platforms including 32-bit and 64-bit Windows 10.