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

Kako uglaviti sliku u program

[es] :: Pascal / Delphi / Kylix :: Kako uglaviti sliku u program

[ Pregleda: 3356 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

FranjoZG
Franjo Popović
Programer
Zagreb

Član broj: 328819
Poruke: 298
*.adsl.net.t-com.hr.



+4 Profil

icon Kako uglaviti sliku u program14.04.2015. u 13:45 - pre 109 meseci
Radim svoju kotrolu koja ima gumbe (tSpeedButton). Na gumbe idu slike.

Radi se o varijanti DBNavigator-a

Kako postaviti default slike na gumbe tako da ih ne treba dodjeljivati pri kreiranju programa u kom se kontrola koristi?
Tj. kada se kontrola postavi na formi da se autmatski prikažu i slike na gumbima.
Korisnik kontrole ne motra imati na svom disku željene slike.
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: Kako uglaviti sliku u program14.04.2015. u 14:12 - pre 109 meseci
Mozes slike (ili jednu veliku sliku) ubaciti kao resurs fajl koji ces onda ucitati kada se komponenta startuje.
 
Odgovor na temu

captPicard
programer
more i planine

Član broj: 216084
Poruke: 1119



+19 Profil

icon Re: Kako uglaviti sliku u program14.04.2015. u 14:39 - pre 109 meseci
Citat:
savkic: Mozes slike (ili jednu veliku sliku) ubaciti kao resurs fajl koji ces onda ucitati kada se komponenta startuje.


Ovdje imaš primjer:

Resource
F
 
Odgovor na temu

FranjoZG
Franjo Popović
Programer
Zagreb

Član broj: 328819
Poruke: 298
*.adsl.net.t-com.hr.



+4 Profil

icon Re: Kako uglaviti sliku u program15.04.2015. u 08:48 - pre 109 meseci
Pokušao sam napraviti kako piše, ali ne prolazi.

Da li je bitno što sliku trebam uglaviti u kontrolu, a ne program, tj. nema forme?

U unit-u gdje mi je kontrola, dodao sam:
Code:

implementation
{$R *.DFM} 
{$R ikone.res}



Ako dodam {$R *.DFM} program javi: [dcc32 Error] E1026 File not found: 'Panel1.DFM'
Ako ga ne dodam, javi: ... Resource novi_minus.res not found

Res file sam kreirao s resource editorom (skinu s neta-a, free)
 
Odgovor na temu

salvaric
Novi Sad

Član broj: 53995
Poruke: 204
*.dynamic.isp.telekom.rs.



+4 Profil

icon Re: Kako uglaviti sliku u program15.04.2015. u 09:29 - pre 109 meseci
možda malo pomogne
Nikad izvini!
 
Odgovor na temu

FranjoZG
Franjo Popović
Programer
Zagreb

Član broj: 328819
Poruke: 298
*.adsl.net.t-com.hr.



+4 Profil

icon Re: Kako uglaviti sliku u program15.04.2015. u 11:38 - pre 109 meseci
Baš i ne...

ovo je kako user komponenti dodjeliti ikonu.

Meni treba: kako u user komponenti, koja na sebi ima gumbe, tom gumbu dodjeliti default bitmap koji se prikazuje pri postavljanju komponente na formu, a bez da programer morad dodeljivati slikicu.

Kako sam na početku napisao:
radim dbnavigator kontrolu, za nju mi trebaju slike na gumbima (First, last, next, delete....) koje su unaprijed definirane, tako da kad stavim dbpanel na formu odmah gumbi imaju slikice. Po potrebi se mogu zamjeniti.

Napravio sam da se može slika odabrati i dodjeliti svakom gumbu posebno, ali to moram raditi za sve gumbe, za svaki dbnavigator koji koristim.
 
Odgovor na temu

salvaric
Novi Sad

Član broj: 53995
Poruke: 204
*.dynamic.isp.telekom.rs.



+4 Profil

icon Re: Kako uglaviti sliku u program15.04.2015. u 13:59 - pre 109 meseci
Sad sam na brzimu ispisao, trebalo bi da radi. Koristi Image Editor iz Delphi-ja, kod mene radi bez problema.

Code:

unit MySpeebBtn;

interface

uses
 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
 StdCtrls, ExtCtrls, Buttons;

    type
        TMySpeedBtn = class(TSpeedButton)
        public
             constructor Create(AOwner: TComponent); override;
     end;

procedure Register ;

implementation

 {$R resource.res}

procedure Register;
begin
  RegisterComponents('MySpeedBtn', [TMySpeedBtn]);
end;


{ TMySpeedBtn }

constructor TMySpeedBtn.Create(AOwner: TComponent);
var
   slika: TBitmap;
begin
   inherited create(Aowner);
   slika  := TBitmap.Create;
   slika.LoadFromResourceName(HInstance,'BTNBATERY');
   Glyph  := slika;
   Height := slika.Height;
   Width  := slika.Width
   slika.Free;
end;

end.


Nikad izvini!
Prikačeni fajlovi
 
Odgovor na temu

FranjoZG
Franjo Popović
Programer
Zagreb

Član broj: 328819
Poruke: 298
*.adsl.net.t-com.hr.



+4 Profil

icon Re: Kako uglaviti sliku u program15.04.2015. u 14:54 - pre 109 meseci
Zahvaljujem, radi :)

ako se stavi umjesto:
Code:

   ...
   slika  := TBitmap.Create;
   slika.LoadFromResourceName(HInstance,'BTNBATERY');
   Glyph  := slika;
   ...


direktno učitavanje slike:
Code:

   Glyph := LoadFromResourceName(HInstance,'BTNBATERY');


ne dobije se ispravan prikaz.
Koristim slike za enable/diseble prikaz, tj dvije slike slijepljene po širini.
Na tvoj način radi, a direktno učitvanje ne, tj. ne kako bi trebalo: ne prikazuje se slika za disable gumb, a za enable prikaže obje polovice slike.

(Stavio bih sliku da znam kako...)


U glavno, hvala, upotrijebit ću tako...
 
Odgovor na temu

salvaric
Novi Sad

Član broj: 53995
Poruke: 204
*.dynamic.isp.telekom.rs.



+4 Profil

icon Re: Kako uglaviti sliku u program15.04.2015. u 19:58 - pre 109 meseci
Nadam se da ce ti ovo skratiti muke:
Code:
unit MySpeebBtn;

interface

uses
 SysUtils, Classes, Controls, Buttons,Graphics;

    type TTip=(tFirst,tLast,tNext,tPrior,tDelete);

    type
        TMySpeedBtn = class(TSpeedButton)
        private
            fTip : TTip;
            procedure SetTip(const Value : TTip);
            procedure SetBitmap(const Value : TTip);
        public
             constructor Create(AOwner: TComponent); override;
        published
             property Tip: TTip read fTip write SetTip;
     end;

procedure Register ;

implementation

 {$R resource.res}

procedure Register;
begin
  RegisterComponents('MySpeedBtn', [TMySpeedBtn]);
end;

{ TMySpeedBtn }

constructor TMySpeedBtn.Create(AOwner: TComponent);
begin
   inherited create(Aowner);
   SetBitmap(tFirst);
end;

procedure TMySpeedBtn.SetBitmap(const Value: TTip);
var
   slika  : TBitmap;
   ImgList: TImageList;
begin
   fTip:=Value;
   slika:=TBitmap.Create;
   ImgList:=TImageList.Create(nil);
   ImgList.Height:=32; // podesi sirinu i visinu slike
   ImgList.Width:=32;
   case  fTip of
        tFirst  :   slika.LoadFromResourceName(HInstance,'FIRST');
        tLast   :   slika.LoadFromResourceName(HInstance,'LAST');
        tNext   :   slika.LoadFromResourceName(HInstance,'NEXT');
        tPrior  :   slika.LoadFromResourceName(HInstance,'PRIOR');
        tDelete :   slika.LoadFromResourceName(HInstance,'DELETE');
     end;
   ImgList.Add(slika,nil);
   if Enabled then
     ImgList.GetBitmap(0,slika)
   else
     ImgList.GetBitmap(1,slika);
   Glyph  := slika;
   Height := 32;   // podesi sirinu dugmica
   Width  := 32;
   ImgList.Free;
   slika.Free;
end;

procedure TMySpeedBtn.SetTip(const Value: TTip);
begin
     fTip:=Value;
     SetBitmap(Value);
end;

end.

Nikad izvini!
Prikačeni fajlovi
 
Odgovor na temu

FranjoZG
Franjo Popović
Programer
Zagreb

Član broj: 328819
Poruke: 298
*.adsl.net.t-com.hr.



+4 Profil

icon Re: Kako uglaviti sliku u program16.04.2015. u 07:35 - pre 108 meseci
Zahvaljujem na pomoći.

Dobra ideja sa TImageList, nije mi palo na pamet...
Samo ću ImgList: TImageList i učitavanje ImgList-a staviti u klasu vlasnika TMySpeedBtn.
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Kako uglaviti sliku u program

[ Pregleda: 3356 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

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