Witam, mam problem z komponentem StringGrid w Borland Builder C++. W pliku Unit1.h mam zdeklarowany wskaźnik do tablicy. W programie przypisuje mu pamięć i poszczególnym elementom tablicy odpowiednie wartości. Gdy próbuje użyć tej tablicy ponownie w funkcji StringGrid1DrawCell wyrzuca błąd. Po dodaniu do listy argumentów wskaźnika do tej funkcji kompilacja przechodzi bez problemów. Program działa bez problemów jednak tablicy nie widzi. O co może chodzić? Proszę o jakaś rade
Bo po co kod wkleić, niech się domyślają.
Oleksy_Adam napisał(a)
Bo po co kod wkleić, niech się domyślają.
Mam ci cały program wkleić??
Tak po krótrce: plik Unit1.h
int *kolor1, *kolor2, kolor3;
int znajdz1, znajdz2, znajdz3;
Unit1.cpp
void __fastcall TForm1::Otwrz1Click(TObject *Sender)
{
int *kolor1 = new int[znajdz1];
}
void __fastcall TForm1::StringGrid1DrawCell(TObject *Sender, int ACol,
int ARow, TRect &Rect, TGridDrawState State)
{
ShowMessage(kolor[0]); // tutaj bład
}
W funkcji
void __fastcall TForm1::Otwrz1Click(TObject *Sender)
{
int *kolor1 = new int[znajdz1];
}
definiujesz nową tablicę, a nie przydzielasz pamięc do tej zdefiniowanej w Unit1.h. Problem rozwiazac mozesz tak:
void __fastcall TForm1::Otwrz1Click(TObject *Sender)
{
this->kolor1 = new int[znajdz1];
}
@bisclavret
Dzięki, prosty błąd którego nie zauważyłem. Teraz jest już chyba ok. Thx