Delphi.cz

Český portál Delphi

Náhodné výkřiky 32

Ve zkratce několik novinek a poznámek.

Help update 1 pro XE3

Je dostupný help update 1 pro XE3 - downloads.embarcadero.com/Item/29134. Doporučuji ale spíše stáhnout přes oznámení Delphi o aktualizaci - nebude se stahovat 900M. read me

unicode Delphi Twain

Ondřej Pokorný (Kluug.net) publikoval verzi unicode Delphi Twain by Gustavo Daud, která se ztratila z internetu. Podporováno je Delphi 2009 - XE3, Lazarus atd. www.kluug.net/delphitwain.php. Děkujeme.

CheckForCycles

Pokud šmírujete ve zdrojácích Delphi, můžete narazit na roztodivné funkce. Např. složitou funkci CheckForCycles v Classes.


{ Utility functions useful for tracking down reference cycles }

procedure CheckForCycles(const Obj: TObject; 
  const PostFoundCycle: TPostFoundCycleProc); overload;
procedure CheckForCycles(const Intf: IInterface;
  const PostFoundCycle: TPostFoundCycleProc); overload;

Podle všeho se jedná o funkci, která umí odhalit kruhové reference (tj. objekt nebo interface odkazujete sám na sebe), což je u automatického uvolňování ARC problém. Připomínám, že ARC je součástí (nejen) ARM kompilátoru (aka NextGen Delphi). Ale už nyní ji můžete používat pro testování interface.

Volání by mělo probíhat předáním doličného objektu nebo interface a anonymní metody která se bude vyvolávat při nalezení reference.

  TPostFoundCycleProc = reference to procedure (const ClassName: string; 
     Reference: IntPtr; const Stack: TStack<IntPtr>);

Firemonkey defaultní styly

V XE3 jsou součástí Firemonkey defaultní styly, které ale nejsou dostupné jako soubor a linkují se pouze při překladu. Následující kód z delphihaven je umí extrahovat. Užitečné to je pro příklad, když tento styl chcete upravit a vůbec.

    program Project1;
     
    {$R *.res}
     
{$R 'C:\Program Files\Embarcadero\RAD Studio\10.0\lib\win32\release\FMX.Platform.Win.res'}
{$R 'C:\Program Files\Embarcadero\RAD Studio\10.0\lib\osx32\release\FMX.Platform.Mac.res'}
     
    uses
      System.Types, System.SysUtils, System.Classes;
     
    procedure ExtractStyle(const ResName, DestFileName: string);
    var
      Input: TResourceStream;
      Output: TFileStream;
    begin
      Output := nil;
      Input := TResourceStream.Create(HInstance, ResName, RT_RCDATA);
      try
        Input.Seek(13, soCurrent);
        Output := TFileStream.Create(DestFileName, fmCreate);
        ObjectBinaryToText(Input, Output);
      finally
        Input.Free;
        Output.Free;
      end;
    end;
     
    begin
      ExtractStyle('win7style', 'C:\Users\CCR\Documents\Win7.style');
      ExtractStyle('win8style', 'C:\Users\CCR\Documents\Win8.style');
      ExtractStyle('lionstyle', 'C:\Users\CCR\Documents\Lion.style');
      ExtractStyle('lion2xstyle', 'C:\Users\CCR\Documents\Lion2x.style');
    end.   

<code>

UniGui web down

Web unigui je dole. Autor na fóru píše, že brzo něco oznámí. Hmm. Buďto dostal přes prsty (čti nějaký patent), nebo ho někdo koupil, nebo jen chystá nový web :-).

P.S.: vpravo mám nově logo MVP (může být včetně produktu -Delphi, Interbase, C++Builder- nebo bez) - je to oficiální logo, takže až ho někde uvidíte tak Vám bude jasné vocogo.

Datum: 2012-11-01 22:34:00 Tagy: RTL, XE3, aktualizace, unigui, ARC, FireMonkey, Styly

Novinky