Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Werkzeuge (https://www.delphipraxis.net/63-sonstige-werkzeuge/)
-   -   Tabelle mit eigenem Text drucken (https://www.delphipraxis.net/85166-tabelle-mit-eigenem-text-drucken.html)

Marcel_Mars 26. Jan 2007 20:49


Tabelle mit eigenem Text drucken
 
Hallo zusammen

Ich programmiere seit einem Jahr mit Delphi und verstehe es sehr gut.
Doch ich möchte ein Programm für meinen Vater schreiben, bei dem man die Eingaben und die dazugehörenden Resultate in einer Tabelle ausdrucken kann.

Die Tabelle sollte man aber nicht sehen sie soll nur im Hintergrund, die richtigen Texte in die richtigen Felder einfüllen und drucken.

Ich versuchte es mit Printer, aber ich weiss nicht wie ich meinen eigenen Text einfügen kann.

Ich wäre echt froh wenn jemand mir helfen könnte!

Danke vielmals!

marabu 26. Jan 2007 21:13

Re: Tabelle mit eigenem Text drucken
 
Herzlich willkommen in der Delphi-PRAXiS, Marcel.

Für dich ist es vielleicht am einfachsten, wenn du so vorgehst:

Delphi-Quellcode:
uses
  Printers;

procedure PrintNamedValues(list: TStringList);
var
  i: Integer;
begin
  AssignPrn(output);
  Rewrite(output);
  Printer.Canvas.Font.Name := 'Courier New';
  Printer.Canvas.Font.Size := 10;
  for i := 0 to Pred(list.Count) do
    WriteLn(list.Names[i]:30, list.ValueFromIndex[i]);
  CloseFile(output);
end;

procedure TDemoForm.DemoButtonClick(Sender: TObject);
var
  list: TStringList;
begin
  list := TStringList.Create;
  list.Values['Eingabe'] := 'Ergebnis';
  PrintNamedValues(list);
  list.Free;
end;
Es gibt aber noch viele andere Wege.

Freundliche Grüße vom marabu

Marcel_Mars 27. Jan 2007 19:10

Wie kann man mehrere Zellen benützen? Danke!
 
Danke vielmals für deine Hilfe!

Aber wie kann ich die Resultate, wie bei einer Tabelle, schön immer an der gleichen Stelle drucken?
das müsste etwa so aussehen:

Eingaben Resultate

124 45
332 33333

und nicht
Eingaben Resultate
124 45
332 '''''33333

Die Apastroph wären nicht da, ich kann es sonst nicht schreiben!
Ich wäre dir(oder euch) sehr dankbar!

Marcel_Mars

marabu 27. Jan 2007 19:37

Re: Tabelle mit eigenem Text drucken
 
Hallo Marcel,

ich hätte gewettet, dass meine Code-Zeilen die Spaltenanordnung erzielen, ausprobiert habe ich es aber nicht. Hast du denn alles genauso gemacht, wie ich es dir gezeigt habe? Speziell die Einstellung des Font war dazu gedacht, dass auch immer die Werte in der ersten Spalte einen Raum von 30 (gleich breiten) Zeichen einnehmen, damit die Werte der zweiten Spalte ab der 31. Stelle linksbündig ausgerichtet erscheinen.

Freundliche Grüße

Pfoto 27. Jan 2007 20:26

Re: Tabelle mit eigenem Text drucken
 
Hi Marcel!


schau mal auf dieser Seite:
www.swissdelphicenter.ch - StringGrid drucken 1
www.swissdelphicenter.ch - StringGrid drucken 2


Vielleicht wirst du als Anfänger nicht alles verstehen,
aber es könnte Dein Problem lösen... ;-)


Gruß
Pfoto

Marcel_Mars 27. Jan 2007 20:46

Re: Tabelle mit eigenem Text drucken
 
Diese Links waren gut, aber wo genau muss ich dann meinen text einfügen, und wie!
:gruebel: :gruebel:
Da ich noch ein Anfänger, bin könnte mir das jemand genau erklären.

Danke für eure Tipps!

Freundliche Grüsse Marcel_Mars

marabu 28. Jan 2007 07:54

Re: Tabelle mit eigenem Text drucken
 
Hallo Marcel,

du hast jetzt schon drei Prozeduren, welche dir Möglichkeiten zum (zwei-)spaltigen Drucken zeigen. Jede dieser Prozeduren hat eine Parameterliste, wobei der erste Parameter angibt, in welcher Form die Daten übergeben werden müssen. Bei PrintNamedValues() erwarte ich die Daten in einer StringList und jede Zeile muss die Form "Eingabe=Ergebnis" haben. Bei PrintGrid(grid, string) wird erwartet, dass die Daten in den Zellen eines StringGrid angeliefert werden, welches eine feste Zeile und eine feste Spalte mit Überschriften besitzt. Bei PrintGrid(grid, string, orientation) soll das Grid keine feste Spalte enthalten.

Entweder du lieferst deine Daten so an, wie sie von den fertigen Prozeduren erwartet werden, oder du musst die Prozeduren an deine Bedürfnisse anpassen. Wir können dir da kaum helfen, solange du uns nicht mitteilst, in welcher Form du deine Daten bereit hältst.

Freundliche Grüße

Daniel G 28. Jan 2007 08:31

Re: Tabelle mit eigenem Text drucken
 
Moin Marcel,

Mal abgesehen davon, dass die Sparte definitiv falsch ist (:mrgreen:), hier mal ein kleiner Tipp:

Ziehe die Komponente TStringGrid auf dein Formular und setzt die Eigenschaft visible im Objektinspektor auf false.
Das hat dne Effekt, dass du die Komponente zwar siehst, während du an dem Programm arbeitest, sie aber für den Anwender, der nur mit der fertigen Exe arbeitet, unsichtbar ist.

Anschließend nimmst du dir diese Funktion und rufst sie so auf:

Delphi-Quellcode:
PrintGrid(StringGrid1, 'Mein Titel');
Gruß,
Daniel

Marcel_Mars 28. Jan 2007 09:07

Re: Tabelle mit eigenem Text drucken
 
Also die Eingaben wandelte ich von String zu Integer um. Und die Resultate sind Strings (z.B.: 'falsch 244').

marabu 28. Jan 2007 11:07

Re: Tabelle mit eigenem Text drucken
 
Hallo Marcel,

willst du die Daten mit PrintGrid() drucken, dann musst du deine Werte in einem Grid zwischenspeichern:

Delphi-Quellcode:
var
  iRow: Integer;
begin
  with StringGrid do
  begin
    // index für neue Zeile merken
    iRow := RowCount;
    // neue Zeile anfügen
    RowCount := Succ(RowCount);
    // Eingabe in die erste Spalte nach fester Spalte
    Cells[FixedCols, iRow] := Trim(EingabeEdit.Text);
    // Ergebnis in nächste Spalte
    Cells[Succ(FixedCols), iRow] := ErgebnisString;
  end;
end;
Dabei musst du auf die Randbedingungen achten, welche in PrintGrid() versteckt sind und die ich dir bereits geschrieben habe.

Willst du deine Daten mit PrintNamedValues() drucken, dann müssen sie in einer StringList zwischengespeichert werden:

Delphi-Quellcode:
var
  Tabelle: TStrings; // Tabelle := TStringList.Create;
begin
  Tabelle.Values[Trim(EingabeEdit.Text)] := ErgebnisString;
end;
Freundliche Grüße


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:07 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz