Autor Téma: Style designer - jak extrahovat png soubor ze stylu  (Přečteno 2032 krát)

Offline Alnath

  • Příspěvků: 49
  • Karma: 2
Style designer - jak extrahovat png soubor ze stylu
« kdy: 30-10-2012, 16:56:03 »
Chtěl jsem se zeptat (než začnu nějaké velké hokus pokusy), jestli někdo nezkoušel či neví, jak ze stylu (např. pro FM soubory s koncovkou .style) dostat ten png soubor, na který se pak stále Style designer odkazuje ve vlastnosti SourceLookup např. u TSubImage. Je to vidět především u toho jet.style packu.

Offline Radek Červinka

  • Administrátoři
  • Padawan
  • *****
  • Příspěvků: 2391
  • Karma: 103
    • Verze Delphi: D5,D2007, DXE, DXE2 + 2 poslední (Tokyo)
    • O Delphi v češtině
Re:Style designer - jak extrahovat png soubor ze stylu
« Odpověď #1 kdy: 31-10-2012, 01:23:38 »
Puvodne jsem si myslel ze by to melo jit designerem "c:\Program Files (x86)\Embarcadero\RAD Studio\10.0\Redist\win32\BitmapStyleDesigner.exe" jak píšou v helpu http://docwiki.embarcadero.com/RADStudio/XE3/en/Bitmap_Style_Designer, ale asi jsem to nějak špatně pochopil.

Ale toto funguje: pokud máš style soubor, tak si dej na formulář stylebook, načti do něj style a podívej se jak se jmenuje ten SourceLookup. Ve structure View pak najdes TImage se stejnym nazvem a ten má property Bitmap a když dáš editovat, tak máš ten obrázek.

Embarcadero MVP - Czech republic

Offline Radek Červinka

  • Administrátoři
  • Padawan
  • *****
  • Příspěvků: 2391
  • Karma: 103
    • Verze Delphi: D5,D2007, DXE, DXE2 + 2 poslední (Tokyo)
    • O Delphi v češtině
Re:Style designer - jak extrahovat png soubor ze stylu
« Odpověď #2 kdy: 31-10-2012, 01:25:19 »
Jinak ten std. style se dá extrahovat, někde jsem na to viděl krátký program.
Embarcadero MVP - Czech republic

Offline Radek Červinka

  • Administrátoři
  • Padawan
  • *****
  • Příspěvků: 2391
  • Karma: 103
    • Verze Delphi: D5,D2007, DXE, DXE2 + 2 poslední (Tokyo)
    • O Delphi v češtině
Re:Style designer - jak extrahovat png soubor ze stylu
« Odpověď #3 kdy: 31-10-2012, 01:30:04 »
Už jsem  ho našel - http://delphihaven.wordpress.com/2012/09/11/inspecting-the-default-platform-fmx-styles-in-xe3/

Kód: Delphi [Vybrat]
  1. program Project1;
  2.  
  3. {$R *.res}
  4.  
  5. {$R 'C:\Program Files\Embarcadero\RAD Studio\10.0\lib\win32\release\FMX.Platform.Win.res'}
  6. {$R 'C:\Program Files\Embarcadero\RAD Studio\10.0\lib\osx32\release\FMX.Platform.Mac.res'}
  7.  
  8. uses
  9.   System.Types, System.SysUtils, System.Classes;
  10.  
  11. procedure ExtractStyle(const ResName, DestFileName: string);
  12. var
  13.   Input: TResourceStream;
  14.   Output: TFileStream;
  15. begin
  16.   Output := nil;
  17.   Input := TResourceStream.Create(HInstance, ResName, RT_RCDATA);
  18.   try
  19.     Input.Seek(13, soCurrent);
  20.     Output := TFileStream.Create(DestFileName, fmCreate);
  21.     ObjectBinaryToText(Input, Output);
  22.   finally
  23.     Input.Free;
  24.     Output.Free;
  25.   end;
  26. end;
  27.  
  28. begin
  29.   ExtractStyle('win7style', 'C:\Users\CCR\Documents\Win7.style');
  30.   ExtractStyle('win8style', 'C:\Users\CCR\Documents\Win8.style');
  31.   ExtractStyle('lionstyle', 'C:\Users\CCR\Documents\Lion.style');
  32.   ExtractStyle('lion2xstyle', 'C:\Users\CCR\Documents\Lion2x.style');
  33. end.
  34.  
  35.  
Embarcadero MVP - Czech republic

Offline Alnath

  • Příspěvků: 49
  • Karma: 2
Re:Style designer - jak extrahovat png soubor ze stylu
« Odpověď #4 kdy: 31-10-2012, 09:42:08 »
Radku, moc díky, jdu na to juknout.

Offline Alnath

  • Příspěvků: 49
  • Karma: 2
Re:Style designer - jak extrahovat png soubor ze stylu
« Odpověď #5 kdy: 31-10-2012, 10:41:57 »
Puvodne jsem si myslel ze by to melo jit designerem "c:\Program Files (x86)\Embarcadero\RAD Studio\10.0\Redist\win32\BitmapStyleDesigner.exe" jak píšou v helpu http://docwiki.embarcadero.com/RADStudio/XE3/en/Bitmap_Style_Designer, ale asi jsem to nějak špatně pochopil.

Koukal jsem na ten StyleDesigner, ale má jeden závažný problém - není schopen otevřít styl pro FM (s koncovkou .style). Má totiž zapnutý filtr v OpenFile dialogu jenom na .vsf (i když v textu filtru píše "VCL Style /FMX Style Template") :( Přetáhnout pomocí Drag&Drop to nejde :( Každopádně u VCL stylu, který image obsahuje (např. Amakrits.vsf),  jsem se na daný png dostal (pod větví "objects" je větev "Images", ve které je vidět .png) a povedlo se mi ho exportovat - čili to by bylo přesně to, co potřebuju - jenom bych to potřeboval pro FM a ne pro VCL :(

Offline Alnath

  • Příspěvků: 49
  • Karma: 2
Re:Style designer - jak extrahovat png soubor ze stylu
« Odpověď #6 kdy: 31-10-2012, 10:46:27 »
Ale toto funguje: pokud máš style soubor, tak si dej na formulář stylebook, načti do něj style a podívej se jak se jmenuje ten SourceLookup. Ve structure View pak najdes TImage se stejnym nazvem a ten má property Bitmap a když dáš editovat, tak máš ten obrázek.

Ano, toto opravdu funguje, takže ještě jednou moc díky! Já tam ten image při prvním hledání prostě neviděl - až když jsi napsal, že tam je, tak pak se, mrška, objevil :)

Offline pepak

  • Guru
  • *****
  • Příspěvků: 1446
  • Karma: 34
    • Pepak.net
Re:Style designer - jak extrahovat png soubor ze stylu
« Odpověď #7 kdy: 31-10-2012, 11:38:04 »
Koukal jsem na ten StyleDesigner, ale má jeden závažný problém - není schopen otevřít styl pro FM (s koncovkou .style). Má totiž zapnutý filtr v OpenFile dialogu jenom na .vsf (i když v textu filtru píše "VCL Style /FMX Style Template") :( Přetáhnout pomocí Drag&Drop to nejde :( Každopádně u VCL stylu, který image obsahuje (např. Amakrits.vsf),  jsem se na daný png dostal (pod větví "objects" je větev "Images", ve které je vidět .png) a povedlo se mi ho exportovat - čili to by bylo přesně to, co potřebuju - jenom bych to potřeboval pro FM a ne pro VCL :(
Neporozuměl jsem dobře, jestli je problém jen v tom, že si požadovaný soubor nemůžeš v GUI vybrat, nebo jestli StyleDesigner s FM styly vůbec neumí pracovat. Kdyby to byl ten první případ, tak by ti stačilo do názvu souboru napsat *.style a dát ENTER.

Offline Alnath

  • Příspěvků: 49
  • Karma: 2
Re:Style designer - jak extrahovat png soubor ze stylu
« Odpověď #8 kdy: 31-10-2012, 12:27:06 »
Neporozuměl jsem dobře, jestli je problém jen v tom, že si požadovaný soubor nemůžeš v GUI vybrat, nebo jestli StyleDesigner s FM styly vůbec neumí pracovat. Kdyby to byl ten první případ, tak by ti stačilo do názvu souboru napsat *.style a dát ENTER.

Zdar,
v první chvíli jsem si vynadal do... no to je fuk, že mě tohle esenciální řešení nenapadlo (člověk už fakt začíná být zaslepený), tak jsem to běžel vyzkoušet. Nicméně zřejmě s těmi styly pracovat opravdu neumí, protože se nenačetla vůbec struktura stylu - tree vlevo má jen hlavní uzly (objects...) a jinak nic. Stejného výsledku jsem dosáhl, když jsem chtěl zkusit "trik" a .style přejmenoval na .vsf. Zajímavé je, že v tom filtru v OpenDialogu píší ono citované "VCL/FMX templates"...

Každopádně díky za nápad.