![]() |
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! |
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:
Es gibt aber noch viele andere Wege.
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; Freundliche Grüße vom marabu |
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 |
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 |
Re: Tabelle mit eigenem Text drucken
Hi Marcel!
schau mal auf dieser Seite: ![]() ![]() Vielleicht wirst du als Anfänger nicht alles verstehen, aber es könnte Dein Problem lösen... ;-) Gruß Pfoto |
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 |
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 |
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 ![]()
Delphi-Quellcode:
Gruß,
PrintGrid(StringGrid1, 'Mein Titel');
Daniel |
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').
|
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:
Dabei musst du auf die Randbedingungen achten, welche in PrintGrid() versteckt sind und die ich dir bereits geschrieben habe.
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; Willst du deine Daten mit PrintNamedValues() drucken, dann müssen sie in einer StringList zwischengespeichert werden:
Delphi-Quellcode:
Freundliche Grüße
var
Tabelle: TStrings; // Tabelle := TStringList.Create; begin Tabelle.Values[Trim(EingabeEdit.Text)] := ErgebnisString; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:07 Uhr. |
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