Spring til indhold

Delphi

Fra Wikipedia, den frie encyklopædi
[Delphi] Delphi
Original skaber(e)[Borland] [CodeGear] [Embarcadero]
Stabil versionRAD Studio 10.1 Berlin (RAD Studio 10.1 Berlin)
OperativsystemMicrosoft Windows MacOS iOS Android
PlatformMicrosoft Windows MacOS iOS Android
TypeUdviklingsværktøj
LicensEULA
HjemmesideHome - Embarcadero Website

Delphi er et objektorienteret programmeringsmiljø til udvikling af software. Delphi er langt det mest udbredte udviklingsværktøj for Object Pascal-programmører, og bliver brugt af millioner [1] af softwareudviklere verden over. Delphi blev udviklet af det amerikanske firma Borland, men udvikles i dag af Embarcadero som er ejet af Idera.

Delphi 1 udkom i 1995 og var revolutionerende i form af sin stærke native compiler, sit stærke sprog i form af Object Pascal og med super gode værktøjer i form af Visual Component Library og ikke mindst database egenskaber.

Delphi 1's slogan var meget sigende

Delphi and Delphi Client/Server are the only development tools that provide the Rapid Application Development (RAD) benefits of visual component-based design, the power of an optimizing native code compiler and a scalable client/server solution.

De første 3 udgaver af Delphi er i øvrigt bl.a. udviklet af danskeren Anders Hejlsberg inden han skiftede over til konkurrenten Microsoft.

Delphi 2 udkom i 1996 og fortsatte sin konkurrence imod Microsofts Visual Basic med fuld Win32 (Windows 95 integrering) med endnu bedre databaseværktøjer, datatyper og bedre mulighed for at videreudvikle sine grafiske brugergrænseflade. Borland skrev følgende om Delphi 2

Delphi 2 is the only Rapid Application Development tool that combines the performance of the world's fastest optimizing 32-bit native-code compiler, the productivity of visual component-based design, and the flexibility of scalable database architecture in a robust object-oriented environment. Delphi 2: the Ease of VB with the Power of C++"

Delphi 3 udkom i 1997 og introducerede helt nye funktioner. Nogle af de vigtigste nye funktioner i Delphi 3 var "DLL Debugging", komponent skabeloner, TDecisionCube og TTeeChar komponenterne, Komponent pakker, integrering med COM Objekter og WebBroker teknologien.

Kost Tekst mangler, hjælp os med at skrive teksten
Kost Tekst mangler, hjælp os med at skrive teksten

Nye compiler directiver:

  • {$IFDEF MSWINDOWS}
  • {$IFDEF LINUX}
  • {$LIBPREFIX}
  • {$LIBSUFFIX}
  • {$LIBVERSION}
  • {$MESSAGE 'message'}
  • {$SetPEFlags}


Support for {$IF}{$ELSE}

Styring af compiler hints: Experimental, Deprecated, Library, Platform Variant datatypen baseres ikke længere på COM men er ren Object Pascal.

COM baseret variant hedder nu OLEVariant

Styring af om "Typed constants" kan overskrives {$J+}

Styring af om enumerations værdier kan tildeles specifikke værdier (lign. C++)

Interface properties

Support for at kalde eksterne varargs funktioner hvis de følger cdecl kalde konventionen

Support for custom variants

3 nye kompiler warnings som default er disablet, men kan enables via {$WARN UNSAFE_CODE ON} etc.:

  • Unsafe_Type,
  • Unsafe_Code
  • Unsafe_Cast

Overload af rutiner til formattering of parsning af numeriske strenge, date/tids strenge og currency vha TFormatSettings record.

Delphi 8 for .NET

[redigér | rediger kildetekst]
Kost Tekst mangler, hjælp os med at skrive teksten

D2005 tilføjede:

  • for ... in loop
  • inline keyword
  • Wildcard i uses statement tillades
  • nested types
  • nested constants
  • {$REGION}/{$ENDREGION} directiver

Tilføjede:

  • Enhanced records
  • Operator overloading
  • Static methoder og properties
  • Class helpers
  • FastMM er nu standard memory manager
  • strict private/protected visibility keywords
  • final keyword til virtuelle methoder
  • {$METHODINFO} direktiv
  • Generics blev introduceret i .NET Delphi compileren
  • Følgende blev tilføjet:
    • String mapper tilUnicodeString
    • Generics introduceres i Win32 compileren
    • function Default(T): T intrinsic function
    • Smart pointers Arkiveret 19. september 2020 hos Wayback Machine
    • Anonymous methods Arkiveret 7. september 2015 hos Wayback Machine
    • Nested exception og exception tracing
    • Support for pointer matematik og nyt compiler direktiv: {$POINTERMATH ON|OFF}
    • 4 nye compiler warnings:
      • W1057 Implicit string cast from '%s' to '%s',
      • W1058 Implicit string cast with potential data loss from '%s' to '%s',
      • W1059 Explicit string cast from '%s' to '%s',
      • W1060 Explicit string cast with potential data loss from '%s' to '%s';
    • Exit funktionen kan acceptere et resultat argument
    • resourcestrings er nu Widestrings
    • TObject includerer en TMonitor, som kan bruges til at lave objekt orienteret trådsikring Arkiveret 21. marts 2016 hos Wayback Machine 
    • Der kan angives beskrivende tekst til deprecated keywordet

I D2010 blev følgende tilføjet:

  • Udvidet Delphi RTTI (Run Time Type Information).
  • Attributes Arkiveret 27. november 2016 hos Wayback Machine
  • as operatoren kan caste en interface reference til sit oprindelige objekt.
  • is operatoren kan bruges til at tjekke om et interface reference er baseret på en specifik klasse.
  • Man kan nu lave unsafe casting fra en interface reference til et objekt: TObject(SomeInterface).
  • Nyt delayed direktiv, som indikerer at en ekstern DLL ikke skal loades ind på deklarations tidspunkt, men først når funktioner i den bruges første gang.
  • Class Constructor/Destructor
  • Touch funktionalitet til Visual Component Library som understøtter Windows 7's Touch Brugergrænseflade.

Delphi for PHP

[redigér | rediger kildetekst]

Med Delphi for PHP udviklede Codegear det første Rapid Application Development udviklingsvæktøj til PHP. Delphi for PHP inkluderer et helt Visual Component Library for PHP, med over 50 komponenter, ud fra PHP 5s definitioner om objekt orienteret programmering og brugen af klasser. VCL for PHP indeholder knapper, labels, check bokse, billeder, DHTML menuer, Flash objekter og meget mere.

  • {$STRINGCHECKS} compiler direktivet ignoreres i XE
  • Ny 16-byte mulighed til record og data alignment i {$ALIGN} direktivet
  • Nyt {$CODEALIGN} direktiv, som styrer start adressen for en procedure eller funktion.
  • {$STRONGLINKTYPES ON} direktiv
  • Runtime regulære udtryk


  • Cross platform support mod Mac OSX (32-bit), iOS 32 bit og Windows 64 bit.
  • Packed records byte alignes nu. Det skete ikke altid tidligere.
  • 8 nye DEFINEs:
    • ALIGN_STACK
    • CPUX86
    • CPUX64
    • MACOS (Mac operating system)
    • MACOS32
    • PC_MAPPED_EXCEPTIONS
    • PIC
    • WIN64
  • Brug af fuld unit scope navngivning kræves nu i uses sektion. F.eks. Windows.WinAPI i stedet for WinAPI.
  • Native data typer afhænger nu af den valgte arkitektur. Extended data type er 80 bit på Win32, men 64 bit på andre arkitekturer.
  • FireMonkey introduceres. Det er et nyt "all is a container" 2D/3D GPU accelereret UI. Det er en forudsætning for iOS applikationer, men optionelt for Win32 applikationer som fortsat kan bruge VCL.
  • Record hjælpere for indbyggede data typer (String, Integer etc).
  • iOS support midlertidigt fjernet. I XE2 var supporten i form af FreePascal compileren.
  • Atomare indbyggede funktioner:
    • AtomicExchange()
    • AtomicIncrement()
    • AtomicCmpExchange()
    • AtomicDecrement()
  • Et antal nye precompiler conditionals introduceres:
    • AUTOREFCOUNT
    • CPUARM
    • EXTERNAL_LINKER
    • IOS
    • NEXTGEN
    • UNDERSCOREIMPORTNAME
    • WEAKREF
    • WEAKINSTREF
    • WEAKINTREF
  • Reintroduceret support for iOS, nu med Embarcaderos egen compiler.
  • ARC (Automatic Reference Count) GC support i NextGen compilere
  • Android Support. Kræver device med ARMv6 + NEON eller ARMv7
  • Nyt precompiler conditional ANDROID
  • Operator overloading på klasser i Nextgen compilere (iOS og Android)
  • Enum identifier navne uden prefixes
  • String ligenende metoder supporteres nu på dynamiske arrays.
  • Parallel Library tilføjet RTL
  • Nye intrinsic funktioner:
    • function IsManagedType(T: TypeIdentifier): Boolean;
    • function HasWeakRef(T: TypeIdentifier): Boolean;
    • function GetTypeKind(T: TypeIdentifier): TTypeKind;
    • function IsConstValue(Value): boolean;
  • Support for iOS 64-bit
  • Nye integer typer: FixedInt/FixedUInt som er 32-bit på alle platforme.
  • Nye (gamle) arkitektur afhængige integer typer: LongInt, LongWord (64-bits på iOS 64-bit, ellers 32 bit)
  • FQN (Fully qualified names) skal nu indeholde unit scope.

Delphi 10 Seattle

[redigér | rediger kildetekst]
  • Support for Android 5.1.1 og iOS 8.4
  • Forbedret OSX exception håndtering

Delphi 10.1 Berlin

[redigér | rediger kildetekst]

Eksterne henvisninger

[redigér | rediger kildetekst]
  1. ^ "Delphi from Embarcadero | RAD Application Development Software". Arkiveret fra originalen 25. juni 2013. Hentet 31. marts 2010.


Spire
Denne artikel om software og programmering er en spire som bør udbygges. Du er velkommen til at hjælpe Wikipedia ved at udvide den.