Avatar billede retep Nybegynder
11. november 1999 - 19:06 Der er 9 kommentarer og
2 løsninger

Udskriv en stringgrid til printer...?

Er der nogen, der kender en simpel metode til at udskrive en stringgrid?
Avatar billede blackthorne Nybegynder
11. november 1999 - 19:15 #1
du kan benytte TStringsgrid paintto method til at tegne sig selv til printers handle. se delphi eget eksemple dog med en pagecontrol

This example uses a button, a Page Control, and a Print dialog box on a form. When the user clicks the button, the print dialog is displayed.  The user can select any subset of the pages in the page control for printing.  The selected pages are then printed.
To run this example successfully, you must add the Printers unit to the uses clause of your unit.

procedure TForm1.Button1Click(Sender:TObject);

var
  I, Start, Stop: Integer;
begin
PrintDialog1.Options := [poPageNums, poSelection];
PrintDialog1.FromPage := 1;
PrintDialog1.MinPage := 1;
PrintDialog1.ToPage := PageControl1.PageCount;
PrintDialog1.MaxPage := PageControl1.PageCount;
if PrintDialog1.Execute then
  begin
  { determine the range the user wants to print }
  with PrintDialog1 do
  begin
    if PrintRange = prAllPages then

      begin
      Start := MinPage - 1;
      Stop := MaxPage - 1;
      end
    else if PrintRange = prSelection then
      begin
      Start := PageControl1.ActivePage.PageIndex;
      Stop := Start;
      end
    else  { PrintRange = prPageNums }
      begin
      Start := FromPage - 1;
      Stop := ToPage - 1;
      end;
  end;
  { now, print the pages }
  with Printer do

    begin
    BeginDoc;
    for I := Start to Stop do
      begin
      PageControl1.Pages[I].PaintTo(Handle, 10, 10); HER LIGGER GULDET
      if I <> Stop then
        NewPage;
      end;
    EndDoc;
    end;
  end;
end;
Avatar billede retep Nybegynder
13. november 1999 - 12:58 #2
Nogen der ligger inde med noget kode, der udskriver en stringgrid?

>>Blackthorne Jeg vil gerne doble pointene, hvid du omskriver din kode, så den passer til mit formål :-)

Mvh
retep
Avatar billede retep Nybegynder
13. november 1999 - 22:29 #3
Pointene er nu steget til 60, til dén, der har kode til at udskrive en stringgrid...

Jeg har selv forsøgt at omskrive ovenstående fra Blackthorne, men kan hun få en udskrift i ikon-størrelse :-(

Mvh
retep
Avatar billede blackthorne Nybegynder
15. november 1999 - 08:46 #4
Jeg har desvære ikke tid til at omskrive koden, men du kan oprette en tbitmap variable og benytte stringgrid.paintto til at tegne på bitmappen, derefter skal du benytte tbitmap strechcopy til at kopiere indholdet over på printer.canvas i den ønskede størrelse
Avatar billede snorga Nybegynder
15. november 1999 - 09:20 #5
Der ligger et komponent til det på:
http://www.cosydat.de/delphi/

(jeg ved ikke om det er en simple måde, men den virker)
Avatar billede lrj Nybegynder
15. november 1999 - 12:48 #6
snorga> Ah, jeg kunne sgu ikke finde den igen :)
Avatar billede snorga Nybegynder
15. november 1999 - 12:54 #7
lrj> hehe, så kan du finde den igen :)
Avatar billede lrj Nybegynder
15. november 1999 - 12:55 #8
jep, takker :)
Avatar billede retep Nybegynder
16. november 1999 - 01:37 #9
>> Snorga, der står 'demo' på alle udskrifter :-/
>> BlackThorne, jeg er ved at have fat i idéen...

Da ingen af svarene er helt gode, og ingen af dem er helt dårlige, har jeg valgt at dele pointene mellem jer :-)

Tak for hjælpen.
Retep


Avatar billede snorga Nybegynder
16. november 1999 - 12:01 #10
Hmm, Der står ikke demo på mine udprint med det component..!?
Avatar billede retep Nybegynder
16. november 1999 - 12:31 #11
Okay?! Det må jeg lige kigge på :-)

Thx!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester