Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Glyph.LoadResourceFromID

[es] :: Pascal / Delphi / Kylix :: Glyph.LoadResourceFromID

[ Pregleda: 2137 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

sojic
Dalibor Sojic
Makedonija

Član broj: 7051
Poruke: 796
62.220.221.*

Sajt: right-sock.net


+1 Profil

icon Glyph.LoadResourceFromID09.09.2003. u 17:50 - pre 251 meseci
Pisao sam jednom, ali je nešto sjebano, nema posta.

Kao prvo, skoro uvek radim CLX aplikacije, radi moguќnosti da rade i na Windowsu i na Linuxu (praktično još nisam testirao).

Kao tastere koristim BitBtn, radi Glyph-a.

CLX komponente (tastere, panele....) imaju property Bitmap.

Glyphove vadim na taj način što uzmem neke bezvezne šortkate, smenim ikonu (satvim neku sa shell32.dll), print screen i u Photoshopu snimim kao .gif, .jpg, .bmp, .png...... nije bitno.

Ako u aplikaciji imam 50 tastera, i na svakog stavim Bitmap i Glyph (da pretpostavimo to je oko 1K), aplikacija ќe biti veќa za 50K.

Ima li neko pametnije rešenje? Da slike stavim u neki fajl, i njih da postavnjam kao Glyphove i Bitmape, normalno sa jednoj komandi, da ne mora za svakog tastera da pišem nešto u stilu:

procedure TMainForm.onActivate.......

Taster1.Glyph.LoadFromFile('./images/slika1.gif');
Taster2.Glyph.LoadFromFile('./images/slika2.gif');
Taster3.Glyph.LoadFromFile('./images/slika3.gif');
Taster4.Glyph.LoadFromFile('./images/slika4.gif');

Hvala unapred.
routing protocols enable routers to route routed protocols!
 
Odgovor na temu

morlic
Milos Orlic
Beograd

Član broj: 6081
Poruke: 735
*.142.EUnet.yu



+1 Profil

icon Re: Glyph.LoadResourceFromID10.09.2003. u 08:38 - pre 251 meseci
Postoji varijanta da resurse stavis u dll pa da ih onda grupno odatle ucitavas ( ali to je opet ucitavanje ). Nisam siguran kao to funkcionise sa CLX-om. Mozes da napravis neke pomocne funkcije koju pozivas jednom prilikom kreiranja forme:


procedure LoadPictures( Form : TForm );
begin
... ides kroz komponente na prosledjenoj formi, rekurzivno (u dubinu) i
za svaku komponentu ucitavas sliku iz samog exe-a (resource) ili dll-a
na osnovu naziva komponete i putanje u odnosu na formu:

Neki button moze imati putanju konkretnu putanju:

"Form1.Button3"

po tome mozes nazvati resource i tako prilikom ucitavanja imas finu automatiku.
end;

Nadam se da sam ovo dobro opisao. Sa ovakvim sistemom nemas mnogo posla osim onog koji bi u svakom slucaju morao da radis ( da svakom dugmencetu stavljas sliku u design time-u) Ako treba jos detalja javi pa da vidimo, ako nadjem vremena mozda razradim celu stvar.
 
Odgovor na temu

sojic
Dalibor Sojic
Makedonija

Član broj: 7051
Poruke: 796
62.220.221.*

Sajt: right-sock.net


+1 Profil

icon Re: Glyph.LoadResourceFromID10.09.2003. u 17:58 - pre 251 meseci
Danke bite!

A kako se kreira resource file, i kako bi se ucitavala slikica? Ne znam tacno kako da iskoristim .LoadFromResourceID. Radio sam sa LoadFromFile, ali sa LoadFromResourceID nisam.

U svakom slucaju hvala.
routing protocols enable routers to route routed protocols!
 
Odgovor na temu

Bokkie
Pančevo

Član broj: 8216
Poruke: 203
*.bozic.co.yu



Profil

icon Re: Glyph.LoadResourceFromID17.09.2003. u 17:49 - pre 250 meseci
Mozda bi najbolje bi bilo da izvedes svoju TMyBitBtn klasu iz TBitBtn - u tom slucaju bi mogao da napravis svoj ModalResult, svoj Kind i naravno svoje slicice.

Evo primera kako da ucitas bitmapu iz EXE ili DLL resursa:

Code:

Procedure UcitajBitmapu (Button : TBitBtn; ImeResursa : String; DLL : String = '');
var ResInstanca : THandle;
Begin
 ResInstanca = 0; // inicijalizacija
 If DLL = '' Then // ako zelis da ucitava iz aplikacije, izostavi DLL parametar
  ResInstanca := Application.Handle
 Else 
  ResInstanca := LoadLibrary(DLL); // ako DLL parametar postoji, onda ucitaj DLL
 If ResInstanca<>0 Then Begin
  Button.Glyph.LoadFromResourceName(ResInstanca, ImeResursa); // ovde se ucitava bitmapa
  If DLL='' Then FreeLibrary(ResInstanca) // Ako DLL parametar postoji, oslobodi DLL iz memorije
 End;
End;


Funkciju pozivas sa:

UcitajBitmapu (BitBtn1, 'Ime_Resursa', 'Resursi.dll') - ako ucitavas iz DLL-a
UcitajBitmapu (BitBtn1, 'Ime_Resursa') - ako ucitavas resurs iz EXE fajla

nadam se da sam pomogao
Kopernikus r3c DCIP, TotalTV, SS2 2.6d
Tanjir 120cm, twin LNB, SuperJack, 53e-45w
 
Odgovor na temu

sojic
Dalibor Sojic
Makedonija

Član broj: 7051
Poruke: 796
62.220.221.*

Sajt: right-sock.net


+1 Profil

icon Re: Glyph.LoadResourceFromID18.09.2003. u 01:07 - pre 250 meseci
I ja se nadam da si pomogao. Sad ne mogu da isprobam kod, ali kao ideja je od pomoci.

Hvala
routing protocols enable routers to route routed protocols!
 
Odgovor na temu

morlic
Milos Orlic
Beograd

Član broj: 6081
Poruke: 735
*.173.EUnet.yu



+1 Profil

icon Re: Glyph.LoadResourceFromID18.09.2003. u 17:57 - pre 250 meseci
Nadjoh jedan stari clanak, ali mozda pomogne. Zakacen je uz poruku
Prikačeni fajlovi
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Glyph.LoadResourceFromID

[ Pregleda: 2137 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.