Funkcje i klasy ...

0

Dopiero zaczynam w Builderze, wiec jesli moje pytanie jest trywialne to
przepraszam..

Mam Taka sytuacje:
utworzylem klase "zasob" w ktorej znajduje sie funkcja "Rysuj"

void __fastcall zasob::Rysuj1(int mouseX, int mouseY, TImage *obraz)
{
  int x2 = mouseX+bok;
  int y2 = mouseY+bok;
  obraz->Canvas->Brush->Color = clBlue;
  obraz->Canvas->FillRect(Rect(mouseX,mouseY,x2,y2));
  obraz->Canvas->Refresh();
}

//Natomiast w programie glownym wywoluje ja nastepujaco:

void __fastcall TGlowny::IPTempMouseDown(TObject *Sender,
      TMouseButton Button, TShiftState Shift, int X, int Y)
{
  zasob *kw;
  kw = new zasob();
  kw->UstalRozmiarBoku(20);
  kw->SetNazwa("obiekt1");
  Xpoz = X;
  Ypoz = Y;
  kw->Rysuj(X,Y, Glowny->IPTemp); //-- IPTemp jest to TImage
}

Kompilator wywala mi blad i przerywa kompilacje:
[C++ Error] SDIMain.cpp(148): E2459 VCL style classes must be
constructed using operator new

Bede wdzieczny za pomoc.
moj mail: [email protected]

Pozdrawiam
bzik ;-)

0

Mógłbyś podać definicję klasy i konstruktor?

0

Raczej się mylę [nie widziałem reszty kodu], ale spróbuj tak:
[code]
zasob *kw;
kw = new zasob;[/code]

0

Mógłbyś podać definicję klasy i konstruktor?

class zasob
{
	int x1, y1; // wspolrzedne lewego gornego wierzcholka
	int bok; // dl boku
	bool edycja; //-- true - obiekt w trybie edycji, false - nie edytowany
	AnsiString nazwa;

	//---- konstruktor ----
	zasob();
	//---------------------
	void SetNazwa(AnsiString);
	AnsiString GetNazwa();
	void ZmianaWsp(int, int);
	bool CzyNalezy(int, int);
	void Rysuj(int, int, TImage)
	void Zmazuj(int, int, TImage)
};

Jesli chodzi o konstruktor to:

zasob::zasob()
{
  x1 = 0;
  y1 = 0;
  bok = 20;
}

Ale chyba raczej chodzi o obiekt TImage i to to generuje bledy (patrz pierwszy post)

//bzik umieszczaj kod w znacznikach < cpp > i </ cpp> wtedy lepiej wyglada
[cya]

0

Z komunikatu wynika, że to coś w konstruktorze jest nie tak. Może nie zezwala na obiekt automatyczny AnsiString?
Nie mam pojęcia co może być nie tak a na razie nie mam BCB :(

1 użytkowników online, w tym zalogowanych: 0, gości: 1