AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Tabelle mit eigenem Text drucken

Ein Thema von Marcel_Mars · begonnen am 26. Jan 2007 · letzter Beitrag vom 6. Mär 2007
Antwort Antwort
Seite 1 von 2  1 2      
Marcel_Mars
(Gast)

n/a Beiträge
 
#1

Tabelle mit eigenem Text drucken

  Alt 26. Jan 2007, 21:49
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!
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Tabelle mit eigenem Text drucken

  Alt 26. Jan 2007, 22:13
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
  Mit Zitat antworten Zitat
Marcel_Mars
(Gast)

n/a Beiträge
 
#3

Wie kann man mehrere Zellen benützen? Danke!

  Alt 27. Jan 2007, 20:10
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
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: Tabelle mit eigenem Text drucken

  Alt 27. Jan 2007, 20:37
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
  Mit Zitat antworten Zitat
Pfoto

Registriert seit: 26. Aug 2005
Ort: Daun
541 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Tabelle mit eigenem Text drucken

  Alt 27. Jan 2007, 21:26
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
Jürgen Höfs
  Mit Zitat antworten Zitat
Marcel_Mars
(Gast)

n/a Beiträge
 
#6

Re: Tabelle mit eigenem Text drucken

  Alt 27. Jan 2007, 21:46
Diese Links waren gut, aber wo genau muss ich dann meinen text einfügen, und wie!

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
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#7

Re: Tabelle mit eigenem Text drucken

  Alt 28. Jan 2007, 08:54
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
  Mit Zitat antworten Zitat
Daniel G
(Gast)

n/a Beiträge
 
#8

Re: Tabelle mit eigenem Text drucken

  Alt 28. Jan 2007, 09:31
Moin Marcel,

Mal abgesehen davon, dass die Sparte definitiv falsch ist (), 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:

PrintGrid(StringGrid1, 'Mein Titel'); Gruß,
Daniel
  Mit Zitat antworten Zitat
Marcel_Mars
(Gast)

n/a Beiträge
 
#9

Re: Tabelle mit eigenem Text drucken

  Alt 28. Jan 2007, 10:07
Also die Eingaben wandelte ich von String zu Integer um. Und die Resultate sind Strings (z.B.: 'falsch 244').
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#10

Re: Tabelle mit eigenem Text drucken

  Alt 28. Jan 2007, 12:07
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
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:24 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz