[CBuilder3] Canvas van TImage

Pagina: 1
Acties:

  • corani
  • Registratie: December 2000
  • Laatst online: 05-10-2017

corani

__,,,_(^_^)_,,,__

Topicstarter
'k zit een beetje met een probleempje :)

'k ben een programma aan het maken met Borland C++ Builder 3. Dat programma heeft 2 tabbladen. Op tabblad 1 kun je gegevens invoeren, laden en opslaan, en op tabblad 2 moet een grafiek terecht komen.

Omdat je (volgens mij) niet op de Canvas van je TForm kunt tekenen, had ik bedacht om op tabblad 2 een TImage te droppen, en daar de Canvas van te gebruiken.

Maar.. als ik nu run, dan geef hij throwed hij gelijk een exception. Als ik de help goed begrijp, kun je Canvas niet gebruiken als je TImage geen bitmap is...

Dat dacht ik op te lossen door er een bitmap in te laden, maar dat werkte dus niet :?

Ik probeer dus te tekenen op Image1->Canvas

Iemand?? :)

Laat me nou toch eens met rust man!
Iedereen die in telekinese gelooft, steek a.u.b. mijn hand op


Verwijderd

Op woensdag 30 januari 2002 22:46 schreef corani het volgende:
'k zit een beetje met een probleempje :)

'k ben een programma aan het maken met Borland C++ Builder 3. Dat programma heeft 2 tabbladen. Op tabblad 1 kun je gegevens invoeren, laden en opslaan, en op tabblad 2 moet een grafiek terecht komen.

Omdat je (volgens mij) niet op de Canvas van je TForm kunt tekenen, had ik bedacht om op tabblad 2 een TImage te droppen, en daar de Canvas van te gebruiken.

Maar.. als ik nu run, dan geef hij throwed hij gelijk een exception. Als ik de help goed begrijp, kun je Canvas niet gebruiken als je TImage geen bitmap is...

Dat dacht ik op te lossen door er een bitmap in te laden, maar dat werkte dus niet :?

Ik probeer dus te tekenen op Image1->Canvas

Iemand?? :)
In principe kun je wel gewoon op je Form->Canvas tekenen, alleen word deze automatisch geupdate door je Delphi app waardoor dat ding er brak uitziet.

Je kan overigens gewoon naar de Image z'n Canvas tekenen maar wat ik vermoed is dat je binnen de OnCreate van je form bezig bent, correct me if I'm wrong. Probeer eerst eens m.b.v. een knop en een TImage op een formulier te tekenen.
Bijv:
code:
1
2
3
4
void TForm1::Button1Click(TObject *Sender);
{
  Image1->Canvas->LineTo(10, 10);
};

Overigens kan bovenstaande code helemaal fout zijn aangezien ik geen C++Builder bij de hand heb en voorbeelden aan de hand van Delphi moet geven.

Wat je overigens ook kunt proberen is het volgende:
code:
1
2
3
4
5
6
7
8
9
void TForm1::Button1Click(TObject *Sender);
{
  TBitmap *bmp = new TBitmap();
  bmp->Width = 10;
  bmp->Height = 10;
  bmp->Canvas->LineTo(10, 10);
  Image1->Canvas->Draw(0, 0, bmp);
  delete(bmp);
};

Ook hier geld weer: code is vanuit Delphi zonder C++Builder overgezet en kan dus fout zijn.

Bovenstaande code i.i.g. in Delphi vorm getest en dat werkt goed.

  • RickN
  • Registratie: December 2001
  • Laatst online: 14-06-2025
Dat probleem heb ik ook ooit gehad. Tot mijn verbazing kon ik toen inderdaad niet tekenenen op het Canvas van een TImage. Uiteindelijk is het me toch gelukt, maar het is me nu even ontschoten wat er dan in eerste instantie fout ging. Als je probleem vanavond nog niet is opgelost zal ik thuis ff in m'n code van toen kijken.

He who knows only his own side of the case knows little of that.


  • corani
  • Registratie: December 2000
  • Laatst online: 05-10-2017

corani

__,,,_(^_^)_,,,__

Topicstarter
Op donderdag 31 januari 2002 09:17 schreef hvdberg het volgende:
Wat je overigens ook kunt proberen is het volgende:
code:
1
2
3
4
5
6
7
8
9
void TForm1::Button1Click(TObject *Sender);
{
  TBitmap *bmp = new TBitmap();
  bmp->Width = 10;
  bmp->Height = 10;
  bmp->Canvas->LineTo(10, 10);
  Image1->Canvas->Draw(0, 0, bmp);
  delete(bmp);
};
Muchos Gratias..

Dat werkt inderdaad!!

Laat me nou toch eens met rust man!
Iedereen die in telekinese gelooft, steek a.u.b. mijn hand op


Verwijderd

Op donderdag 31 januari 2002 10:07 schreef corani het volgende:

[..]

Muchos Gratias..

Dat werkt inderdaad!!
KVind 't komisch dat 't werkt aangezien ik C++ 3 jaren geleden voor 't laatst gezien heb (Visual C++). Moest er nog veel aangepast worden aan de code of werkte het in één keer?

  • corani
  • Registratie: December 2000
  • Laatst online: 05-10-2017

corani

__,,,_(^_^)_,,,__

Topicstarter
Op donderdag 31 januari 2002 10:25 schreef hvdberg het volgende:

[..]

KVind 't komisch dat 't werkt aangezien ik C++ 3 jaren geleden voor 't laatst gezien heb (Visual C++). Moest er nog veel aangepast worden aan de code of werkte het in één keer?
In één keer! :)

Laat me nou toch eens met rust man!
Iedereen die in telekinese gelooft, steek a.u.b. mijn hand op

Pagina: 1