Resource a resource dialog

vložil Radek Červinka 6. května 2011 00:09

Někdy je vhodné použít pro ukládání dat místo datových modulů nebo formulářů "old school" přístup přes resource (např. možnost následně resource vyměnit bez rekompilace).

Pro vytvoření resource můžete použít některý resource editor (něco už jsem o tom psal když jsem ukazoval výměnu resource - připomínám třeba jeden psaný v Delphi a volně šiřitelný - Anders Melander.

resource editor

nebo pokud máte Delphi 2010+ můžete použít integrovaný (menu Project/Resources a images)

resource editor v Delphi

Pokud používáte PNG musíte je umístit do sekce RCDATA, bitmapy do sekce BITMAP, ikony do sekce ICON atd.

implementation
uses
  pngimage;
{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var
  p: TPngImage;
begin
  p:= TPngImage.Create;
  p.LoadFromResourceName(HInstance, 'BAL');
  img1.Picture.Assign(p);
  p.Free;
end;

HInstance je handle aplikace a je deklarován v jednotce System.

Tagy: ,

Novinky v Delphi

Komentáře

6.5.2011 6:35:58 #

pepak

Nevypadá špatně. Vyzkouším, jak se porovnává s ResEditem, který používám teď.

pepak

6.5.2011 12:11:54 #

<z>

>>> Pokud používáte PNG musíte je umístit do sekce RCDATA, bitmapy do sekce BITMAP, ikony do sekce ICON atd.

to neni az tak uplne pravda, melo by tam byt spise "meli byste", protoze obrazek lze samozrejme nacist z jakekoliv sekce ;)

<z>

6.5.2011 12:18:37 #

radekc

Pokud se bavíme o PNG tak mi to z jiné sekce nešlo a to protože

procedure TPngImage.LoadFromResourceName(Instance: HInst;  const Name: String);
var
  ResStream: TResourceStream;
begin
  {Creates an especial stream to load from the resource}
  try ResStream := TResourceStream.Create(Instance, Name, RT_RCDATA);
  except RaiseError(EPNGCouldNotLoadResource, EPNGCouldNotLoadResourceText);
  exit; end;
....

radekc

7.5.2011 13:37:43 #

<z>

to ano, ale udelat si vlastni resourcestream a pak nacist do PNG trva 5 vterin

<z>

7.5.2011 23:37:55 #

radekc

To je jasne, ale mi to neslo zakompilovat do resource

radekc

14.5.2011 10:42:14 #

<z>

ahm, zajimave :)

v .bat
BRCC32.exe "c:\...\res.rc"

v .rc
data MOJE "soubor.png"

a vytvori se resource bez problemu

nacteni
TResourceStream.Create(Instance, 'data', 'MOJE');

<z>

Komentování ukončeno

Naše nabídka

MVP
Ing. Radek Červinka - Embarcadero MVP
profil na linkedin, Twitter:@delphicz

Nabízím placené poradenství a konzultace v oblasti programování a vývoje SW.
Dále nabízíme i vývoj speciálního software na zakázku.

Neváhejte nás kontaktovat (i ohledně reklamy).

love Delphi

O Delphi.cz

Delphi je moderní RAD nástroj podporující tvorbu nativních aplikací pro platformu Win32, Win64, Mac OSX, Linux a na iPhone a Android.

Delphi.cz je nezávislý portál pro uživatele Delphi. Portál není koncipován pro úplné začátečníky, i když i ti se zde nebudou nudit, ale spíše na programátory, kteří již něco znají a chtějí své znalosti dále rozvíjet a sledovat novinky.

Poslední komentáře

Comment RSS

Dle měsíců