4. 9. 2012

 

Delphi XE3

Takže Embarcadero Delphi XE3 je venku. Pokud potřebuji při podmíněné kompilaci poznat tuto verzi, tak takto:

{$IFDEF VER240}
...
{$ENDIF}

Seznam všech verzí:

VER250 → Delphi XE4 / C++Builder XE4 (Win32/Win64/iOS)
VER240 → Delphi XE3 / C++Builder XE3 (Win32/Win64)
VER230 → Delphi XE2 / C++Builder XE2 (Win32/Win64)
VER220 → Delphi XE / C++Builder XE (Win32)
VER210 → Delphi 2010 / C++Builder 2010 (Win32)
VER200 → Delphi 2009 / C++Builder 2009 (Win32)
VER190 → Delphi 2007 for .NET
VER180 or VER185 → Delphi 2007 / C++Builder 2007 for Win32
VER180 → Delphi 2006 / C++Builder 2006 (Win32/.NET) and Delphi/C++Builder 2007 for Win32
VER170 → Delphi 2005 (Win32/.NET)
VER160 → Delphi 8 for .NET
VER150 → Delphi 7
VER140 → Delphi 6 / C++Builder 6
VER130 → Delphi 5 / C++Builder 5
VER125 → C++Builder 4
VER120 → Delphi 4
VER110 → C++Builder 3
VER100 → Delphi 3
VER93 → C++Builder 1
VER90 → Delphi 2
VER80 → Delphi 1

Zdroj: RAD Studio Compiler Versions

Štítky: , ,

7. 4. 2012

 

How to create case insensitive TDictionary<>


Very simple:

uses System.Generics.Collections, System.Generics.Defaults;

var
  Dictionary: TDictionary<string, TValue>;
begin
  Dictionary := TDictionary<string, TValue>.Create(TIStringComparer.Ordinal); // ‹- this is the trick
  try
    .
    .
    .
  finally
    Dictionary.Free;
  end;
end;

Indeed you can use TObjectDictionary<>. Tested in Delphi XE2.

Štítky: , ,

26. 8. 2011

 

Singleton v Delphi

Poslední dobou se dost zajímám o Design patterns a tak člověka napadne, jak by ten který implementoval Delphi. Jako první jsem si vybral singleton (i když o něm někteří říkají, že je to anti-pattern):

unit Singleton; interface type TSingleton = class sealed strict private class var FInstance: TSingleton; public // Global point of access to the unique instance class function Create: TSingleton; destructor Destroy; override; end; implementation { TSingleton } class function TSingleton.Create: TSingleton; begin if FInstance = nil then FInstance := inherited Create as Self; Result := FInstance; end; destructor TSingleton.Destroy; begin FInstance := nil; inherited; end; end.

Štítky: , ,

20. 8. 2011

 

Duck typing v Delphi

Našel jsem ve Wikipedii (pro mě) podivný termín: Duck typing. Tak mě zajímalo co to je a jestli by to šlo implementovat v Delphi. Zde je výsledek:

/// This is example of duck typing in Delphi.
/// Based on: http://en.wikipedia.org/wiki/Duck_typing

program DuckTyping;

{$APPTYPE CONSOLE}

uses ObjComAuto;

{$METHODINFO ON} // important

type
  TDuck = class
  public
    procedure Quack;
    procedure Feathers;
  end;
  TPerson = class
  public
    procedure Quack;
    procedure Feathers;
  end;
procedure TDuck.Quack;
begin
  Writeln('Quaaaaaack!');
end;
procedure TDuck.Feathers;
begin
  Writeln('The duck has white and gray feathers.');
end;

procedure TPerson.Quack;
begin
  Writeln('The person imitates a duck.');
end;
procedure TPerson.Feathers;
begin
  Writeln('The person takes a feather from the ground and shows it.');
end;

procedure InTheForest(V: Variant);
begin
  V.Quack;
  V.Feathers;
end;
procedure Game;
var
  Duck, Person: Variant; // or IDispatch
begin
  Duck := TObjectDispatch.Create(TDuck.Create, True) as IDispatch;
  Person := TObjectDispatch.Create(TPerson.Create, True) as IDispatch;

  InTheForest(Duck);
  InTheForest(Person);
end;

begin
  Game;
end.

Štítky: ,

19. 3. 2009

 

Delphi - klávesové zkratky v IDE

Klávesové zkratky dokáží ušetřit hodně času. Proto není od věci si je čas od času zopakovat:

Ctrl+J - vyvolá Šablony kódu (Code Templates)

Ctrl+T - smaže slovo vpravo od kurzoru

Ctrl+E - zahájí inkrementální vyhledávání v aktuálním dokumentu od kurzoru

Ctrl+Y - smaže aktuální řádek

Ctrl+Shift+G - vloží nově vygenerovaný GUID na místo kurzoru

Ctrl+Shift+I - odsadí vpravo (Indent) označený blok textu

Ctrl+Shift+U - přisadí (Unindent / Outdent) označený blok textu

Ctrl+Shift+Y - smaže text od kurzoru do konce řádky

Ctrl+Shift+J - vyvolá SyncEdit (přiznám se: ač vyvíjím v Delphi dennodenně 11 let, nevím co to je?)

Alt+[ - skočí na počáteční závorku

Alt+] - skočí na ukončovací závorku

Alt+⇒ - vpřed v historii hotlinků (Hotlink history)

Alt+⇐ - zpět v historii hotlinků (Hotlink history)

Alt+⇑ - najdi deklaraci symbolu, na kterém stojí kurzor (vloží hotlink do historie hotlinků)

F4 - spustí program a zastaví na řádce, kde se nachází kurzor (jakýsi dočasný breakpoint)

F5 - zapne / vypne breakpoint na aktuální řádce

F7 - krok "dovnitř" v debuggeru (Debugger step into)

F8 - krok "přes" v debuggeru (Debugger step over)

Ctrl+F9 - zkompiluje projekt

Shift+F9 - zbuilduje projekt

F9 - spustí program se zapnutým debuggerem

Ctrl+Shift+F9 - spustí program bez debuggeru

Ctrl+F12 - zobrazí seznam unit zařazených v projektu (tedy ne všech unit, které se linkují)

Alt+G - zeptá se na číslo řádku, na který má jít

Ctrl+Shift+R - zahájí / ukončí nahrávání makra

Ctrl+Shift+P - přehraje makro

Ctrl+SPACE - vyvolá Dokončování kódu (Code Completion)

Ctrl+Shift+SPACE - vyvolá Nápovědu k parametrům (Code Parameter Hints)

Ctrl+Enter - otevře soubor, na jehož jméně se právě nachází kurzor

Ctrl+Shift+C - vyvolá Dokončování třídy (Class Completion) pro třídu, ve které právě stojí kurzor

Ctrl+Shift+⇑ - přeskakuje mezi deklarací a implementací metody

Ctrl+Shift+⇓ - přeskakuje mezi deklarací a implementací metody

Ctrl+Alt+⇑ - přeskakuje mezi implementacemi jednotlivých metod třídy směrem nahoru

Ctrl+Alt+⇓ - přeskakuje mezi implementacemi jednotlivých metod třídy směrem dolů

Ctrl+Alt+Home - skočí na implementaci první metody v unitě

Ctrl+Alt+End - skočí na implementaci poslední metody v unitě

Ctrl+/ - přepíná zakomentování / odkomentování aktuální řádky nebo označeného textu


Nedokáži přesně zmapovat, ve které verzi Delphi se která zkratka poprvé objevila, ale drtivá většina jich funguje i v Delphi 5 (z roku 1998).

Štítky: ,

25. 8. 2008

 

Delphi 2009 jsou hotové

Firma Embarcadero dnes oznámila, že Delphi 2009 a C++Builder jsou hotové.

Štítky: , , ,

5. 2. 2008

 

Delphi 2008 dotazník

The 2008 Delphi survey

Společnost CodeGear zveřejnila dotazník ohledně budoucnosti vývojového nástroje Delphi.

Dotazník je celkem rozsáhlý a detailní, otázek je celkem 95 ve 14 sekcích. Dotazník je anonymní, nechtějí po vás žádné identifikační údaje. Dokonce ho lze odeslat jen částečně vyplněný, jak jsem si bohužel omylem ověřil.

The 2008 Delphi Survey

Prý se tím budou v CodeGearu řídit ;).

Štítky: , , ,

17. 7. 2007

 

Delphi s nativní podporou Unicode - kódové jméno "Tiburón"

Společnost CodeGear (dříve Borland) vyvíjející vývojový nástroj Delphi, zveřejnila roadmap (cestovní mapu) budoucích verzí svých vývojových nástrojů:

Delphi and C++Builder Roadmap

Mimo jiné mě tam nejvíce zaujala nativní podpora Unicode. Konečně, chtělo by se zvolat! A zároveň se ptát: proč tak pozdě?

Tato verze Delphi ještě nemá jméno, pod kterým se bude prodávat (že by Delphi 2008?). Zatím se používá kódové jméno Tiburón. Bude prý k dispozici někdy v první polovině roku 2008.

Štítky: ,

18. 12. 2006

 

CodeGear (dříve Borland) má nový web

Společnost CodeGear má nový web. Řekl bych, že docela povedený.

nový web CodeGear

A proč se o to zajímat? Protože CodeGear vznikla z firmy Borland kvůli oddělení skupiny vývojových nástrojů od ostatních činností. Jinými slovy CodeGear má nyní na starosti tyto produkty:

CodeGear by se měla 100% věnovat vývojovým nástrojům (IDE) a nedělat nic jiného.

Štítky: , , , , , ,