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+
Version imprimable
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 parCode:
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:
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�riqueCode:
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 !