Questions tagged [delphi]

Delphi is a language for rapid development of native Windows, macOS, Linux, iOS, and Android applications through use of Object Pascal. The name refers to the Delphi language as well as its libraries, compiler and IDE which is used to help edit and debug Delphi projects.

Delphi is a general-purpose language for rapid development of native Windows, OS X, Linux, iOS, and Android applications.

The name used to refer to the Delphi language, but the developers decided to return to the languages original name Object Pascal, restraining the name to the IDE, which is used to help edit and debug Delphi projects more efficiently. It is developed by Embarcadero, and is sold either as a standalone product or as part of RAD Studio, which includes other languages as well.

Delphi is an enhancement of Niklaus Wirth's language Pascal (and Object Pascal).

Delphi originated in 1995 at Borland, evolving from Turbo Pascal. It is currently owned by Embarcadero, and is the second-largest Windows development platform after Microsoft's .NET.

Among Delphi's strengths are:

  • consistent language architecture
  • a fast compiler
  • modern language constructs
  • its extensive Visual Component Library (VCL)
  • the associated visual form designer

Variants:

Some other Embarcadero products are or were released using the "Delphi" brand. A .NET product called Delphi Prism (based on PascalScript codebase) for use in MS Visual Studio allows for development using Mono, producing apps that are "cross platform" in that they will run on multiple platforms that support Mono. Delphi Prism is mostly compatible with Delphi syntax, albeit with very different libraries. The Embarcadero PHP product, formerly labelled "Delphi for PHP", and Prism are integrated in the main Embarcadero studio project RAD Studio. There is an AS/400 version of Delphi as well.

Delphi console "Hello world":

program Hello;
{$APPTYPE CONSOLE}
begin
  Writeln('Hello, World');
end.

A minimalist GUI Delphi application

program GUIHello;
uses  
  Windows;
begin
  MessageBox(0, 'Message', 'Hello, World', MB_OK);
end.

Resources:

Many SO profiles of Delphi developers point to good resources concerning Delphi. There is also an aggregation of main blogs in the field at DelphiFeeds and Begin End. Marco Cantù's books on Delphi programming provide another great resource.

Documentation

See all questions around delphi here.

References

Tagging recommendation:

There are several version-specific tags. It is recommended to use the tag together with the version-specific tag, e.g. .

Free Delphi/Pascal Programming Books

Delphi/Pascal Books

Reporting bugs, issues, new features

Delphi Forums

51211 questions
38
votes
3 answers

Delphi Search path vs Library Path vs Browsing Path

In Delphi, I can include a folder's source code by adding it to the project Search Path, or adding it to the Library Path. The Search Path applies only to the current project, while the Library Path applies to any project opened with the IDE. Other…
JosephStyons
  • 57,317
  • 63
  • 160
  • 234
38
votes
1 answer

Firemonkey ScrollBox Bug

We are experiencing what seems to be a strange bug in Firemonkey's ScrollBox component (since TGrid inherits from TScrollBox it also affects all grids). On some ouf our development machines, everything works fine, while on others the bug occurs. We…
jpfollenius
  • 16,456
  • 10
  • 90
  • 156
38
votes
8 answers

Delphi TList of records

I need to store a temporary list of records and was thinking that a TList would be a good way to do this? However I am unsure how to do this with a TList and was wondering if this is the best was and also if anyone has any examples of how to do…
colin
  • 2,983
  • 6
  • 41
  • 49
38
votes
20 answers

Delphi: why breakpoints from time to time are not usable (green highlighted line on IDE)?

From time to time I lose breakpoint functionality in Delphi. I thought this to be a Delphi 2009 issue but now I have also it in Delphi XE. In Delphi 2009 by deleting .dproj file I made the breakpoints work again. In Delphi XE I am not able to make…
UnDiUdin
  • 14,924
  • 39
  • 151
  • 249
38
votes
1 answer

Delphi XE8 bug in TList, need workaround

After upgrading to XE8 some of our projects start to break data. Looks like a bug in TList realization. program XE8Bug1; {$APPTYPE CONSOLE} uses System.SysUtils, Generics.Collections; type TRecord = record A: Integer; B: Int64; …
BofA
  • 823
  • 7
  • 16
37
votes
6 answers

Why does Delphi's compilation speed degrade the longer it's open, and what can I do about it?

My company has been running a large project on Delphi for more than a decade. Our codebase has been growing over the years and now stands at around 4 million lines of code. Compilation speed is becoming an issue. We've spent time weeding out unit…
John
  • 373
  • 3
  • 5
37
votes
1 answer

How can I add Version info to my Console Applications?

It appears to be what console application projects generated by IDE's intrinsic wizard cannot have version resource managed by IDE <- note the emphasis here. Is there any workaround(s) for this issue? (i even ready to write an OTA wizard)
Premature Optimization
  • 1,917
  • 1
  • 15
  • 24
37
votes
6 answers

How hard is it to migrate a project from Delphi 7 to Delphi XE?

Our company have a software that has been in development for over 10 years, so there are some really dated stuff in there. It's still quite functional and everything, but I see the new features on Delphi XE and it makes me want to switch. Problem is…
Rosenberg
  • 2,424
  • 5
  • 33
  • 56
37
votes
8 answers

Are there any static code analysis tools for Delphi/Pascal?

Are there any static code analysis tools for Delphi/Pascal? I have seen plenty of options for C++ and .NET, but nothing for Delphi/Pascal. Ideally something that could be integrated into a continuous integration system.
Rob Hunter
  • 2,787
  • 4
  • 35
  • 52
37
votes
2 answers

Simple Thread Sample Delphi

I am new with this stuff of Threading in Delphi. so, I am trying to make a simple query aplication that make a bit call up for the database and take a bit of time, so I want to alert the user that there is a background process and have to be…
Jose M. Vilomar
  • 477
  • 1
  • 6
  • 13
37
votes
3 answers

What’s the simplest way to call Http POST url using Delphi?

Inspired by the question What’s the simplest way to call Http GET url using Delphi? I really would like to see a sample of how to use POST. Preferably to receive XML from the call. Added: What about including an image or other file in the post data?
Tom
  • 1,381
  • 3
  • 15
  • 26
37
votes
10 answers

What are good uses for class helpers?

Delphi (and probably a lot of other languages) has class helpers. These provide a way to add extra methods to an existing class. Without making a subclass. So, what are good uses for class helpers?
Toon Krijthe
  • 52,876
  • 38
  • 145
  • 202
37
votes
1 answer

How can I search for Delphi documentation?

It can be hard to find Delphi documentation using web search. Often the documentation is buried far from the top of the list of hits. For instance a Google search for delphi setlength yields this result: The first hit that points to the official…
David Heffernan
  • 601,492
  • 42
  • 1,072
  • 1,490
37
votes
8 answers

TThread.resume is deprecated in Delphi-2010 what should be used in place?

In my multithread application I use TThread.suspend and TThread.resume Since moving my application to Delphi 2010 I get the following warring message [DCC Warning] xxx.pas(277): W1000 Symbol ‘Resume’ is deprecated If Resume is deprecated what…
Charles Faiga
  • 11,665
  • 25
  • 102
  • 139
36
votes
8 answers

Calculating the speed of routines?

What would be the best and most accurate way to determine how long it took to process a routine, such as a procedure of function? I ask because I am currently trying to optimize a few functions in my Application, when i test the changes it is hard…
user741875