Kasowanie tablicy dynamicznej obiektów typu TButton.

dział ogólny

Kasowanie tablicy dynamicznej obiektów typu TButton.

Nowy postprzez markopol » czwartek, 31 grudnia 2009, 02:54

Mam deklaracje:

Kod: Zaznacz cały
TButton  *Przycisk[500];


Dlatego 500,bo to jest maksymalna ilość buttonow,którą użytkownik może podać.

Tworzyłem tablicę buttonow w ten sposób:


Kod: Zaznacz cały
   i=1;

   do
    {
        Przycisk[i] = new TButton(Form1);
        Przycisk[i]->Parent = Form1;
      i++;
     }
   while(i<=n);



n-podaje uzytkownik

Po utworzeniu pojawiają mi się na formie buttony- OK

Pytanie:

Jak je poprawnie skasować abym mogł ponownie wykonać operację tworzenia tablicy buttonow(ostatni kod)? Buttony muszą zniknąć z formy. Muszę przed ponownym tworzeniem umieścić znów pierwszy kod?(wg mnie tak).


Probowałem rożnych kobinacji z delete ale nonstop są błedy
Avatar użytkownika
markopol
Bladawiec
Bladawiec
 
Posty: 2
Dołączył(a): wtorek, 29 grudnia 2009, 22:54
Podziękował : 0
Otrzymał podziękowań: 0
System operacyjny: Windows Vista
Kompilator: C++ Builder
    NieznanyNieznana

Re: Kasowanie tablicy dynamicznej obiektów typu TButton.

Nowy postprzez Cyfrowy Baron » czwartek, 31 grudnia 2009, 10:33

Jak je tworzysz tak je niszcz czyli też w pętli, ale można kasować tylko istniejące obiekty, jeżeli odwołasz się do nieistniejących to będą błędy.

Kod: Zaznacz cały
  int i = 0;

   do
    {
        delete Przycisk[i];
        i++;
     }
   while(i <= n - 1);




I zapamiętaj sobie raz na zawsze: tablice są liczone od 0 (zera), a nie od jeden, czyli i musi równać się 0, ale musisz je wyliczać do n - 1, czyli tablica która składa się z 500 elementów jest liczona w zakresie 0 - 499, czyli tworząc n elementów liczysz od 0 i do n - 1, a nie do n.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4731
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 445
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    NieznanyNieznana

Re: Kasowanie tablicy dynamicznej obiektów typu TButton.

Nowy postprzez usermaw » piątek, 1 stycznia 2010, 20:35

Cyfrowy Baron napisał(a):I zapamiętaj sobie raz na zawsze: tablice są liczone od 0 (zera), a nie od jeden, czyli i musi równać się 0, ale musisz je wyliczać do n - 1, czyli tablica która składa się z 500 elementów jest liczona w zakresie 0 - 499, czyli tworząc n elementów liczysz od 0 i do n - 1, a nie do n.


A dokladniej, "czysty" C++ i języki C pochodne indeksowane są od 0.
Ale Borlandowskie dodatki do srodowiska, jak np AnsiString indeksowany jest od 1. Podobnie wiersze, kolumny StringGrid, DrawGrid z VCL indeksy maja od 1.
Gdy zechcesz lączyć w kodzie klasyczna tablicę C-pochodne z np indeksami - Captionami z VCL, zawsze trzeba pamiętac, gdzie +1, gdzie -1.
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


  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Ogólne problemy z programowaniem

Kto przegląda forum

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

cron