Mam w sumie to dwa problemy:
Powiedzmy że sobie zapisuję dane z bazy do pliku takim kodem:
procedure TForm1.Button2Click(Sender: TObject);
var
i,j:Integer;
plik : TextFile;
begin
if SaveDialog1.Execute then
begin
AssignFile(plik ,SaveDialog1.FileName );
Rewrite(plik);
for i:=0 to StringGrid1.ColCount-1 do
for j:=0 to StringGrid1.RowCount-1 do
begin
if i=StringGrid1.ColCount-1 then Writeln(plik, StringGrid1.Cells[i,j])
else Writeln(plik,StringGrid1.Cells[i,j]);
end;
end;
Flush (plik);
CloseFile(plik);
end;
To teraz chciałabym to odczytać z pliku. Zmieniałam z SaveDialog na OpenDialog i tam gdzie Write, Writeln dałam Read i Readln, ale nie działa. Jaki błąd robię w tym?
Druga sprawa:
Chcę sobie wydrukować zawartość tabeli poprzez Printsetupdialog, ale stać mnie tylko na wydruk przez printers, do któreo mam taki kodzik:
procedure PrintGrid(sGrid: TStringGrid; sTitle: string);
var
X1, X2: Integer;
Y1, Y2: Integer;
TmpI: Integer;
F: Integer;
TR: TRect;
begin
Printer.Title := sTitle;
Printer.BeginDoc;
Printer.Canvas.Pen.Color := 0;
Printer.Canvas.Font.Name := 'Arial';
Printer.Canvas.Font.Size := 10;
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 + 2 * (sGrid.ColWidths[TmpI]);
Y1 := 300;
X2 := 0;
for TmpI := 1 to F do
X2 := X2 + 2 * (sGrid.ColWidths[TmpI]);
Y2 := 350;
TR := Rect(X1, Y1, X2 - 30, Y2);
Printer.Canvas.Font.Style := [fsBold];
Printer.Canvas.Font.Size := 12;
Printer.Canvas.TextRect(TR, X1 + 25, 350, sGrid.Cells[F, 0]);
Printer.Canvas.Font.Style := [];
for TmpI := 1 to sGrid.RowCount - 1 do
begin
Y1 := 150 * TmpI + 200;
Y2 := 150 * (TmpI + 1) + 200;
TR := Rect(X1, Y1, X2 - 30, Y2);
Printer.Canvas.TextRect(TR, X1 + 25, Y1 + 25, sGrid.Cells[F, TmpI]);
end;
end;
Printer.EndDoc;
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
PrintGrid(StringGrid1, 'Print Stringgrid');
end;
Nie wiem jak to zrobić, aby było poprzez Printsetupdialog. Czy ktoś wie jak te dwie sprawy rozwiązać? Dziękuję za pomoc, buziaki :-)