probleme pour imprimer une fiche - C++ - Programmation
MarshPosté le 14-04-2004 à 20:03:21
Salut les pots, Je suis debutant avec le c++ builder 4 professionnel et j'ai eu a créé une fiche que je voudrais imprimer. Voici mon code pour realiser cette operation:
PrintDialog1->Options.Clear(); PrintDialog1->Options << poPageNums << poSelection; PrintDialog1->FromPage = 1; PrintDialog1->MinPage = 1; PrintDialog1->ToPage = 1; PrintDialog1->MaxPage = 1; if (PrintDialog1->Execute()) { int Start, Stop; // détermine l'intervalle souhaité pour l'impression switch (PrintDialog1->PrintRange) { case prSelection:
Start = 1; Stop = Start; break; case prPageNums: Start = 1; Stop = 1; break; default: // prAllPages Start = PrintDialog1->MinPage - 1; Stop = PrintDialog1->MaxPage - 1; break; } // imprime les pages Printer()->BeginDoc(); for (int i = Start; i <= Stop; i++)
{ Form8->PaintTo(Printer()->Handle, 10, 10); if (i != Stop) Printer()->NewPage(); } Printer()->EndDoc(); } Cela marche partiellement parce que sur le format ce sont plutot les un quart des dimensions reelles dans mon application et je ne sais pourquoi. Si quelqu'un aurais une suggestion par rapport, je l'accueillerais avec une grande joie. Merci d'avance
Marsh Posté le 14-04-2004 à 20:03:21
Salut les pots, Je suis debutant avec le c++ builder 4 professionnel et j'ai eu a créé une fiche que je voudrais imprimer.
Voici mon code pour realiser cette operation:
PrintDialog1->Options.Clear();
PrintDialog1->Options << poPageNums << poSelection;
PrintDialog1->FromPage = 1;
PrintDialog1->MinPage = 1;
PrintDialog1->ToPage = 1;
PrintDialog1->MaxPage = 1;
if (PrintDialog1->Execute())
{
int Start, Stop;
// détermine l'intervalle souhaité pour l'impression
switch (PrintDialog1->PrintRange)
{
case prSelection:
Start = 1;
Stop = Start;
break;
case prPageNums:
Start = 1;
Stop = 1;
break;
default: // prAllPages
Start = PrintDialog1->MinPage - 1;
Stop = PrintDialog1->MaxPage - 1;
break;
}
// imprime les pages
Printer()->BeginDoc();
for (int i = Start; i <= Stop; i++)
{
Form8->PaintTo(Printer()->Handle, 10, 10);
if (i != Stop)
Printer()->NewPage();
}
Printer()->EndDoc();
}
Cela marche partiellement parce que sur le format ce sont plutot les un quart des dimensions reelles dans mon application et je ne sais pourquoi.
Si quelqu'un aurais une suggestion par rapport, je l'accueillerais avec une grande joie.
Merci d'avance