Salut !
1 2 3 4 5 6
| class jDevice : public TImage
{
public :
__fastcall jDevice(TComponent *Owner);
__fastcall ~jDevice();
}; |
1 2 3 4 5 6
| class jPc : public jDevice
{
public :
__fastcall jPc(TComponent *Owner);
__fastcall ~jPc();
}; |
Donc tu sais ce qu'il faut faire pour déclarer jPrinter.
En ce qui concerne TImage, voici comment on peut éviter quelques problèmes (juste une précaution),
on peut tester avec et sans (si ça plante après la création alors on sait quoi faire... ça dépend peut-être de la version de BCB):
1 2 3 4 5 6
| __fastcall jDevice::jDevice(Owner)
: TImage(Owner)
{
//Lui attribuer un Parent valide immmédiatement si Owner s'y prète
if(Owner->InheritsFrom(__classid(TWinControl))) Parent = (TWinControl*)Owner;
} |
Le constructeur pour jPc :
1 2 3 4
| __fastcall jPc::jPc(TComponent *Owner)
: jDevice(Owner)
{
} |
Donc tu sais quoi faire pour jPrinter.
Ici on pourrait dériver de TCustomControl pour économiser les ressources.
Dans ce cas, le lien vers un bitmap se fait avec (une simple propriété):
Graphics::TBitmap *Image;
Image est ensuite dessiné via le canvas de l'objet dans sa zone client, et ce, dans une méthode Paint qui vient surcharger celle de TCustomControl.
Si "développer" t'intéresse, alors tu peux dériver de TComponent (il y a tout à faire !)
A plus !
Partager