Delphi.cz

Český portál Delphi

Náhodné výkřiky 18

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

multitrackstudio

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.

Datum: 2011-12-20 22:45:00 Tagy: vykriky, VCL, FireMonkey, komponenty

Komponenty