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.

    1implementation
    2uses
    3  pngimage;
    4{$R *.dfm}
    5
    6procedure TForm1.FormCreate(Sender: TObject);
    7var
    8  p: TPngImage;
    9begin
   10  p:= TPngImage.Create;
   11  p.LoadFromResourceName(HInstance, 'BAL');
   12  img1.Picture.Assign(p);
   13  p.Free;
   14end;

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


Nabízíme Delphi školení na různá témata, primárně ve Vaší firmě.

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

Partial English version.

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 nebo burzy práce).

Pokud chcete podpořit tento server libovolnou částkou, můžete použít PayPal. Moc děkuji.

Delphi Certified Developer

O Delphi.cz

Delphi je jediný moderní RAD nástroj podporující tvorbu nativních aplikací pro platformu Win32, Win64 , Mac OSX a na iPhone a Android (s výhledem na další platformy díky FireMonkey) na současném trhu (včetně Windows 8.1).

V současnosti je světová komunita přes dva miliónů vývojářů.

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.

Anketa

Poslední komentáře

Comment RSS