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

Kreiranje Image komponente

[es] :: C/C++ programiranje :: C/C++ za početnike :: Kreiranje Image komponente

[ Pregleda: 1488 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

dzesika60
ucenik

Član broj: 172159
Poruke: 29
*.goranjesic.net.



Profil

icon Kreiranje Image komponente14.10.2009. u 14:32 - pre 145 meseci
Pozdrav svima,
dakle da li se moze postaviti nova komponenta tipa Image na Formu u BCB 6 kada se napise:
Code:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TImage *slika;
slika=new TImage;
}


Sta treba dodati da kompajler ne javlja gresklu :
[C++ Error] Unit11.cpp(30): E2285 Could not find a match for 'TImage::TImage()'
Nadam se da ste razumeli , ne zelim da je direktno postavim sa palete Additional , vec da je kreiram.
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4889
*.dynamic.sbb.rs.

Jabber: xfiles@elitesecurity.org


+633 Profil

icon Re: Kreiranje Image komponente14.10.2009. u 16:56 - pre 145 meseci
Na dobrom si putu, ali postoji nekoliko gresaka.

Na primer slika=new TImage; nije dobro. Treba obicno slika=new TImage( this );

Ali da krenemo redom:

TImage *slika; ne treba treba da bude lokalni za metodu, nego za celu klasu, dakle deklarisati u headeru:

--- Unit1.h ---
Code:

// ...
#include <JPEG.hpp> // ovime dodajes podrsku za JPG format
// ...
private:    // User declarations
    TImage *slika;

public:        // User declarations
    __fastcall TForm1(TComponent* Owner);

    // dodato zbog unistavanja objekta "slika", mada ce ga VCL svakako ukloniti i bez ovoga
    // pod uslovom da je proglasen Owner ili Parent, a oba su
    __fastcall ~TForm1();
// ...


--- Unit1.h ---
Code:

// ...
// KONSTRUKTOR: posto C/C++ ne garantuju koja ce biti pocetna vrednost objekta,
// moze se postaviti na NULL, zbog destrukcije u sklucaju da objekat nije kreiran
// tj, nije pritisnut Button1
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
    slika = NULL;
}

// DESTRUKTOR: Kao sto rekoh, ovaj deo nije neophodan jer ce VCL arhitektura unistiti
// objekat cim ima dodeljenog ili Ownera:
// to je ono this: slika = new TImage( this );
// ili Parenta: slika->Parent = this;
__fastcall TForm1::~TForm1()
{
    if ( slika )
        delete slika;
}

// pod uslovom da objekat nije kreiran, kreiraj ga, dodelu mu Parenta, da bude vidljiv, postavi dimenzije, ucitaj sadrzaj ako postoji
// ... i jos poneki detalj da se sve zategne
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    if ( slika )
    {
        ShowMessage("Objekat slika (TImage) je vec kreiran!");
    }
    else
    {
        AnsiString SLIKA = "c:\\Users\\vladimir.stefanovic\\Desktop\\Image001.jpg";
        slika = new TImage( this );
        slika->Parent = this;
        slika->SetBounds( 0,0,100,100 );
        if ( FileExists( SLIKA ) )
            slika->Picture->LoadFromFile(SLIKA);
        else
        {
            ShowMessage("Slika\n" + SLIKA + "\nne postoji!");
            delete slika;
            slika = NULL;
        }

    }
}
// ...



Sve ovo moze i modernije, sa STL-om, ali kao neki primer moze da posluzi.
 
Odgovor na temu

dzesika60
ucenik

Član broj: 172159
Poruke: 29
79.101.87.*



Profil

icon Re: Kreiranje Image komponente14.10.2009. u 18:38 - pre 145 meseci
XFile, hvala

sve radi, kako sam shvatila sustina je ukazati na klasu "roditelja" tj.:
slika = new TImage( this );
slika->Parent = this;
ps.
naravno , dodala sam u header
...
TImage1 *slika;
pozdrav
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4889
*.dynamic.sbb.rs.

Jabber: xfiles@elitesecurity.org


+633 Profil

icon Re: Kreiranje Image komponente14.10.2009. u 19:07 - pre 145 meseci
Ako se ne dodeli Parent onda kreirani objekat ne zna na ko mu je 'roditelj', pa nece vizuelno biti prikazan. Drugim recima nece se videti. this je zapravo objekat iz koga se vrsi kreiranje, tj Form1, pa ce slika biti na formi.
 
Odgovor na temu

dzesika60
ucenik

Član broj: 172159
Poruke: 29
*.goranjesic.net.



Profil

icon Re: Kreiranje Image komponente15.10.2009. u 11:45 - pre 145 meseci
X Files ,
ukapirala uz tvoju pomoc.
Hvala...
 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: Kreiranje Image komponente

[ Pregleda: 1488 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

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