Skocz do zawartości
Wujek001

[c++builder 5] Problem - Tablice Obiektow

Rekomendowane odpowiedzi

Witam.

 

Moj problem polega na tym ze chcialbym umiescic obiekty klasy TPanel w tablicy. Nastepnie chcialbym odwolywac sie do tej tablicy zmieniac np dzieki petli for wartosci wszystkich tych obiektow.

 

Probuje w ten sposob

 

TPanel tabPanel[540];

for(int i=0; i<540; i++)

tabPanel=* new TPanel;

 

ale niestety pojawiaja sie bledy

 

ten sposob rowniez do bani :(

 

TPanel* tabPanel[540];

for(int i=0; i<540; i++)

tabPanel= new TPanel;

 

Prosilbym bardzo o pomoc. W programie mam utorzone ponad 500 obiektów klasy Tpanel i zmieniajac recznie ich wartosci przykladowo na:

 

Tpanel123->Caption="B";

 

jest bardzo pracochlonne. uzywajac tablicy i petli for bardzo skrocilo by to prace.

 

Z gory dziekuje za wszelka pomoc.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

niestety ale nic nie zrozumialem z tego co napisales. Wyrozniles kawalek kodu ktory wymienilem:

 

TPanel tabPanel[540];

 

dodam ze przy tym dostaje taki blad:

 

Cannot find default constructor to initialize array element of type 'TPanel'

 

Nie wiem jak sobie z tym poradzic. Jesli moglbys jasniej bylbym wdzieczny.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

niestety ale nic nie zrozumialem z tego co napisales. Wyrozniles kawalek kodu ktory wymienilem:

 

TPanel tabPanel[540];

 

dodam ze przy tym dostaje taki blad:

 

Cannot find default constructor to initialize array element of type 'TPanel'

 

Nie wiem jak sobie z tym poradzic. Jesli moglbys jasniej bylbym wdzieczny.

1422200[/snapback]

no to zarowno ja, jak i kompilator napisalismy ci czego ci brakuje. mussz do klasy TPanel dodac defaultowy konstruktor, bo to on jest uruchamiany dla kazdego z 540u elementow zadeklarowanej tablicy w momencie wywolania linijki:

 

TPanel tabPanel[540];

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Troche pokombinowalem ale niestety na nic sie to zdalo. Nie jestem jeszcze na takim poziomie i nie wiem jak napisac ten defaultowy konstruktor wiec zrobilem tak:

 

Na Form1 mam poukladane Panel-e od 1 do 540.

kod napisalem taki:

 

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

TPanel* tabPanel[540];

for(int i=0; i<540; i++)

tabPanel= new TPanel(this);

 

for(int i=0; i<540; i++)

tabPanel->Caption="jakis tekst";

 

}

 

ale niestety na zadnym z Paneli nie pojawia sie napis. Program sie kompiluje i nie wyswietla zadnych bledow. Czy ktos ma moze pomysl jak sprawic by na tych wszystkich Panelach pojawil sie napis? Przy takiej ilosci Paneli reczne pisanie

Panel1->Caption="jakis napis";

...

Panel540->Caption="jakis napis";

jest dosc czasochlonne

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie


×
×
  • Dodaj nową pozycję...