Dnes to bude o různých komponentách, FireMonkey, hrách, překvapení od Allena Bauera a TForm.
Allen Bauer (aka ten kdo vládne vývoji Delphi) jen tak mimochodem utrousil něco v tomto smyslu:
Oh, and strings may become immutable and 0-based ;-)…
a následně
One and only one string type… The others are likely to be taken out
back and "eliminated."
Myslel tím unicode string. No já nevím - třeba si jen dělal srandu. Moc si to nedokáži představit (jako změnu stávajícího kódu).
zdroj
multitrackstudio
Chcete příklad reálné multiplatformní FireMonkey aplikace? MultitrackStudio je od verze 7 podle slov svého autora
přepsaná do FireMonkey a dostupná pod Win32, Win64 a Mac OSX.
Update: tak podle všeho je zatím FMX jen pro OSX
TForm.CreateNew
Nedávno jsem potřeboval udělat jednoduchý formulář v runtime kódu. Něco jako:
TProgressForm = class(TForm)
private
Pnl: TPanel;
public
procedure gInit;
procedure gUpdate(const s:string);
end;
{ TProgresssForm }
procedure TProgressForm.gInit;
begin
Pnl:= TPanel.Create(Self);
Pnl.Parent := Self;
Pnl.Align := alClient;
Pnl.Caption := '';
Position := poMainFormCenter;
end;
procedure TProgressForm.gUpdate(const s: string);
begin
Pnl.Caption := s;
Pnl.Repaint;
end;
a volání:
oProgressForm := TProgressForm.CreateNew(nil);
try
oProgressForm.gInit;
oProgressForm.BorderStyle := bsNone;
oProgressForm.Show;
LoadData(oProgressForm.gUpdate);
finally
oProgressForm.Free;
end;
Klíčové je oProgressForm := TProgressForm.CreateNew(nil);.
Protože pokud by byl klasicky použit TProgressForm.Create, VCL by při vytváření vyhodil chybu že nemůže najít resource pro TProgressForm. Použitím CreateNew to obejdete.
Pár komponent …
Aktualizované JCL a JVCL Binary instalace pro XE2
cc.embarcadero.com/Item/28636 a cc.embarcadero.com/Item/28637. Vhodné pro Starter Edition.
ksTools - malá knihovna, kromě jiného s base-2 fast Fourier Transform, record s multiple-precision integer aritmetikou a lepší timer
Když už jsem tu dnes ukazoval takový multimediální program, tak ještě New Audio Components for Delphi - přehrává audio v různých formátech (wav, Ogg Vorbis, FLAC, Monkey Audio, WavPack, MP3, Windows WMA, DTS, AC-3, AAC, AAC+)
A nakonec 2x javascript engine v Delphi: BESEN - ECMAScript v Object Pascalu (pozor na licenci) nebo Javascript engine pro Delphi na bázi spidermonkey (Delphi 2010 - protože RTTI).
… a odkazů
Hello World pro WinRT v Delphi, tj. pro Windows 8.
Asphyre Sphinx 2 - framework pro vývoj 2D/3D video her. Platformy: 32-bit Windows, 64-bit Windows, Mac OS a iOS za pomocí DirectX 7, DirectX 9, DirectX 9 Ex (Vista), DirectX 10, DirectX 10.1, DirectX 11 a/nebo OpenGL.
Fixing TCriticalSection - velmi zajímavý krátký text, o tom, jaký vliv má velikost instance TCriticalSection na výkon na vícejádrových procesorech a jak to řešit. Ve zkratce: díky malé velikosti se může stát, že několik instancí se dostane do stejné CPU cache line a tím vznikne problém s konflikty cache. A přitom stačí zvětšit velikost instance nad 96 byte a tím se zamezí aby se několik instancí vešlo naráz do cache a je pro problému. Stejným problémem trpěl TMonitor, ale to je v XE2 upraveno (zjišťuje se tam velikost CacheLine). No nikdy by mne to nenepadlo.