Toute ma question tiens dans le titre?
avec TPrinter je n'arive a imprimer que une colonne ou une ligne et sans retour a la ligne..
Comment faire pour avaoir le tableau complet?
Et est il possible d'inserer la grille ds un Rich edit??
Merci!!
alex
Toute ma question tiens dans le titre?
avec TPrinter je n'arive a imprimer que une colonne ou une ligne et sans retour a la ligne..
Comment faire pour avaoir le tableau complet?
Et est il possible d'inserer la grille ds un Rich edit??
Merci!!
alex
En effet ce que tu peux faire est de parcourir ton TStringGrid en insérant ligne par ligne dans un TRichEdit ou un TMemo (en séparant par des \t par exemple) et d'utiliser ensuite la methode Print() d'un de ces 2 composants.
Salut !
Normalement, est-ce que ça ne devrait pas se faire de TStringGrid::Canvas
vers TPrinter::Canvas ?
A plus !
Mais si j'insere ligne par ligne toute mes celule vont se trouver a las uite et faire une sorte de grande liste.. j'aurai perdu le tableau non??
Et pourquoi uilisé des séparateur \n?? ca peut servir a quoi?
Merci
Alex
Salut !
Le caractère "\t" est une tabulation. C'est efficace si le nombre de caractères par chaîne
permet une tabulation correcte.
En réalité, il se peut qu'il faille calculer le nombre de tabs à insérer, pour que le résultat
ait l'air d'un tableau.
A plus !
Alors j ai essayé avec Canvas mais ca marche pas..
Quant a inserer les lignes dans un richedit ca ne donne rien de bon j obtiensune colone de tou ce qui étais en lignes..
voila la lignes de code que j utilise
RichEdit1->Lines->Add(StringGrid1->Rows[0]->Text);
Si quelqu'un pouvais m expliquer pourquoi ca be fonctionne pas.. et comme je suis penible.. si aussi ces histoires de tab \t avecun chtit exemple.. je ne comprend vraiment pas..
Merci!!
Alex
Voila ce sera pas top niveau affichage mais bon ca devrait imprimer tout ton tableau...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 for (int i=0;i<StringGrid1->RowCount;i++) { for (int j=0;j<StringGrid1->ColCount;j++) Memo1->Text+=StringGrid1->Cells[j][i]+"\t"; Memo1->Text+="\r\n"; }
Salut !
Je pense qu'il faudrait faire autrement, si tu veux avoir une représentation
d'un tableau, digne de ce nom.
- Dans un premier temps récupérer dans un tableau, la largeur maximale des chaînes
et ce, par colonnes, à l'aide de Canvas->TextWidth(...) à la quelle on ajoute de quoi
séparer les colonnes.
La hauteur du texte sera donnée, pour l'ensemble, à l'aide de Canvas->TextHeight(...)
à laquelle on ajoute également de quoi bien séparer les lignes.
- Transmettre au Canvas de l'imprimante les chaînes à l'aide de TextOut, la position
des chaînes étant calculée en fonction de la ligne (y) et de sa position (x) que l'on
déduit des largeurs des colonnes qui précèdent.
Ici on progresse par ligne : colonne par colonne.
Partant de là, tu pourrais en déduire si plusieurs feuilles sont nécessaires pour
traiter ce qui déborde à droite et ce qui déborde en bas ! Sauf si l'imprimante est
suffisamment intelligente pour le faire d'elle même !
Comme je n'ai pas d'imprimante je ne peux que tester sur un bitmap !
Il me semble qu'il faut encadrer les commandes par BeginDoc et EndDoc... ?
A plus !
Je crois que j'ai plus simple:
Dans ton QuickReport, tu place une bande détail dans laquelle tu mets un TQRImage.
Ensuite tu recopie le canvas de ton TStringGrid dans le Canvas de ton TQRImage et le tour est joué, j'ai testé ca marche nickel !
Jigé
Bonjour,
serait il possible d'avoir le code de Jigé ou lex4281 svp
car j'ai pas suivi le Quickreport :/
Merci
Salut !
Est-ce que tu as essayé au plus simple avec TWinControl::PaintTo.
Voir l'exemple dans l'aide.
A plus !
Stringgrid ne peut pas faire appel à la fonction PaintTo :/
Salut !
TStringGrid dérive de TWinControl donc hérite de PaintTo.
Voir dans l'aide !
Tu as essayé de faire (au plus simple) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part #include <Printers.hpp> // dans le .h de l'unitéJe ne peux pas tester donc... !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Printer()->BeginDoc(); StringGrid1->PaintTo(Printer()->Handle, 10, 10); Printer()->EndDoc();
A plus !
Bonjour,
J'aimerais vraiment qu'un projet se monte ici pour ce sujet qui traine depuis des années maintenant ... une classe d'impression avec une "belle présentation" ... pour les TStringgrid et pourquoi d'autres objets ... dommage que personne ne puisse y jeter un coup d'oeil ... j'ai beaucoup d'idées et d'exemples concrets mais peu de temps ... alors si quelques uns possèdent du temps ( denrées rares ) je pense que ca pourrait être un sujet intéressant !!
Hello...Envoyé par Freeze
Moi je ne fais qu'utiliser la classe que tu m'avais fourni...qui marche nickel..mais il est vrai que j'ai pas eu le tps de la peaufiner.
En revanche, je maintiens que tu devrais la proposer à developpez, dans les sources..ça ferait gagner du tps et ça permettrait que ceux qui ont du temps l'affine un peu.
Voilou
Ils ne savaient pas que c'était impossible alors ils l'ont fait (Mark Twain)
_ _ _ _ _ _ _ _ _
La planète ne nous appartient pas, elle nous a été prêtée par nos enfants
_ _ _ _ _ _ _ _ _
Technos : Access, C++ Builder, SQL, PostgreSQL, Crystal Reports, XML entre autres
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager