ciao!
vi propongo questo indovinello...
vorrei che le colonne di stampa NON fossero fisse (visto che spesso tagliano il testo) ma vorrei che si autodimensionassero in base al testo...codice:procedure PrintGrid(sGrid: TStringGrid; sTitle: String); var X1, X2 : Integer; Y1, Y2 : Integer; TmpI : Integer; F : Integer; TR : TRect; begin Printer.Title:=sTitle; Printer.Orientation:=poLandscape; Printer.BeginDoc; Printer.Canvas.Pen.Color:=0; Printer.Canvas.Font.Name:='Tahoma'; Printer.Canvas.Font.Size:=8; Printer.Canvas.Font.Style:=[fsBold, fsUnderline]; Printer.Canvas.TextOut(0, 100, Printer.Title); For F:=1 to sGrid.ColCount-1 do begin X1:=0; For TmpI:=1 to (F-1) do X1:=X1+5*(sGrid.ColWidths[TmpI]); Y1:=300; X2:=0; For TmpI:=1 to F do X2:=X2+5*(sGrid.ColWidths[TmpI]); Y2:=450; TR:=Rect(X1, Y1, X2-30, Y2); Printer.Canvas.Font.Style:=[fsBold]; Printer.Canvas.Font.Size:=7; Printer.Canvas.TextRect(TR, X1+50, 350, sGrid.Cells[F, 0]); Printer.Canvas.Font.Style:=[]; For TmpI:=1 to sGrid.RowCount-1 do begin Y1:=150*TmpI+300; Y2:=150*(TmpI+1)+300; TR:=Rect(X1, Y1, X2-30, Y2); Printer.Canvas.TextRect(TR, X1+50, Y1+50, sGrid.Cells[F, TmpI]); end; end; Printer.EndDoc; end;
o almeno farle un pò più larghette
e un'altra cosa.. come diavolo è che NON mi stampa mai la prima colonna?!?!?!!?![]()
![]()
ciao e grazie

...
Rispondi quotando
