Ve zkratce několik novinek a poznámek.
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
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.
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>);
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>
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