tworzenie komponentu TShape poprzez użycie new

problemy z funkcjonowaniem bibliotek, komponentów itp.

tworzenie komponentu TShape poprzez użycie new

Nowy postprzez mikelo » niedziela, 7 grudnia 2008, 15:37

witam, chciałbym stworzyć dynamicznie komponent klasy TShape tak żeby pojawił się na formie. skleciłem coś takiego:
Kod: Zaznacz cały
TShape *Shape2;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{

        Shape2 = new TShape(Form1);
        Shape2->Width=20;
        Shape2->Height=20;
        Shape2->Name="sh2";
        Shape2->Shape=stCircle;
        Shape2->Visible=true;
        Shape2->Left=100;
        Shape2->Top=100;
        Shape2->Brush->Color=clWhite;
        Shape2->Brush->Style=bsSolid;
        Shape2->Enabled=true;
        Shape2->ParentShowHint=true;
        Shape2->Pen->Color=clBlack;
        Shape2->Pen->Mode=pmCopy;
        Shape2->Pen->Style=psSolid;
        Shape2->Width=1;
        Shape2->Tag=1;
        Shape2->Align=alNone;
}


jak widać kliknięcie na przycisk ma stworzyć nowy komponent na formie Form1, jest tylko taki problem, że na formie owego komponentu nie widać, chociaż na pewno istnieje bo da się odwoływać do jego właściwości i metod. Jak więc wyświetlić go teraz na formie?
Avatar użytkownika
mikelo
 
    NieznanyNieznana

Re: tworzenie komponentu TShape poprzez użycie new

Nowy postprzez Cyfrowy Baron » niedziela, 7 grudnia 2008, 16:16

Zabrakło:

Shape2->Parent = this; // lub Shape2->Parent = Form1

a to jest raczej niedopuszczalne: Shape2->Name="sh2"; komponent nazywa się Shape2 i nie należy zmieniać tej nazwy, gdyż przy niewłaściwym zarządzaniu nastąpi wyciek pamięci.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4727
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 444
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    NieznanyNieznana

Re: tworzenie komponentu TShape poprzez użycie new

Nowy postprzez mikelo » poniedziałek, 8 grudnia 2008, 09:35

dzięki, działa jak należy :)
Avatar użytkownika
mikelo
 
    NieznanyNieznana

Re: tworzenie komponentu TShape poprzez użycie new

Nowy postprzez usermaw » wtorek, 6 stycznia 2009, 22:31

Niektorych dynamicznych komponentow takze nie widac i trzeba dodac do formy Forma->Update()
Tak jest przynajmniej w przypadku, gdy zarowno forma, jak i komponenty na niej sa dynamiczne

pozdro
Avatar użytkownika
usermaw
Homos antropiczny
Homos antropiczny
 
Posty: 55
Dołączył(a): piątek, 2 stycznia 2009, 20:43
Podziękował : 2
Otrzymał podziękowań: 0
    NieznanyNieznana


Powrót do Biblioteki i komponenty

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 1 gość

cron