Salut à tous,
Quel est le composant visuel d'un TCanvas ? à part le taper directement dans le code source, je n'ai pas trouvé dans le panoplie de composants graphique de Borland, peut-être qu'au niveau visuel ça a un autre nom.
A+
Salut à tous,
Quel est le composant visuel d'un TCanvas ? à part le taper directement dans le code source, je n'ai pas trouvé dans le panoplie de composants graphique de Borland, peut-être qu'au niveau visuel ça a un autre nom.
A+
Salut !
Ce qui est visuel, c'est la zone client d'un composant sur laquelle on peut dessiner
à l'aide de TCanvas qui se charge de mettre en adéquation cette zone client avec différentes
méthodes pour dessiner quelques primitives et réaliser quelques opérations de base.
Exemple :
Un bitmap qui n'est pas un composant visuel dispose pourtant d'un canvas !
Avec BCB 3 Pro, les objets visuels disposant d'un TCanvas accessible directement par
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Graphics::TBitmap *Bitmap = new Graphics::TBitmap; ...blablabla pour Bitmap->Width, Bitmap->Height, Bitmap->Canvas->Pen (et Brush) Bitmap->Canvas->Rectangle(0,0,50,50); //dessine un carré sur le bitmap Form1->Canvas->Draw(0,0, Bitmap); //affiche le bitmap sur la form
l'utilisateur sont assez limités (ils sont assez souvent private donc, peut-être, accessible
si après dérivation (nouveau composant) on les redéclare public):
TForm,
TImage (et TImage::TPicture::TBitmap),
TPaintBox
TCustomControl (pour réaliser des composants personnalisés)
et par ci par là lorsque l'on souhaite dessiner ses propres Items (Liste déroulantes...)
Il faut consulter la doc ou de temps en temps se servir de la touche F1 !
A plus !
Je te remercie de ton aide, car j'aimerais créer un objet visuel me permettant de visionner ce que je vais imprimer avant de l'imprimer.
Surtout ne pas passer par le PrintPreview, mais mettre un simple composant visual dans le form afin de voir ce que je vais printer.
Bien à toi
Salut !
Tu peux le faire sur une form dont tu fixes, par exemple, la propriété FormStyle à fsStayOnTop
pour qu'elle soit toujours au premier plan par rapport à ta fiche principale.
Sinon tu peut prendre un TPaintBox... ?
Avec ma version BCB 3 Pro, j'utilise un bitmap en arrière plan sur lequel j'effectue les différentes
opérations pour dessiner le tout. Ensuite je dessine le bitmap sur la form (comme je j'ai montré dans
la réponse précédente). A partir de là tu peux développer un tas de mécanismes pour faire glisser la
page dans la form...
Tout dépend de ce que tu as à faire et surtout comment tu a envie de présenter tout ça !
Si j'ai un conseil à te donner c'est de travailler à l'aide d'une méthode avec un pointeur
sur un canvas, comme paramètre. Cela permet de dessiner sur n'importe quel objet disposant
d'un canvas, mais aussi, il me semble, TPrinter::Canvas.
Dans ce qui suit, je suppose que tout est modélisé à l'aide d'une class TPrimitive doté d'une méthode
Draw(TCanvas *C) permettant de dessiner la primitive (ligne, rectangle, ellipse etc...) sur un canvas.
Chaque instance (objet graphique) étant ajouté à une TList *Primitives.
Donc a l'usage :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 void __fastcall TForm1::Dessiner(TCanvas *C) { for(int j = 0; j < Primitives->Count; j++) { TPrimitive *Primitive = (TPrimitive *)Primitives->Items[j]; Primitive->Draw(C); } }
Toujours se rappeler que TCanvas dispose d'une propriété Handle qui est le HDC du contexte de périphérique
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Dessiner(Canvas);//si c'est sur Form1 Dessiner(Form2->Canvas);// si Form2 est sur la vue avant impression Dessiner(ArrierePlan->Canvas);//si ArrierePlan est un Graphics::TBitmap etc..
dans lequel le canvas doit dessiner. (Aide en ligne (TCanvas) ou F1 !)
A plus !
Partager