Aber klappen tuts doch noch net.
Meine Prozedure sieht nun so aus:
Delphi-Quellcode:
var
I, II: Integer;
Left, Top: Integer;
MS: TMemoryStream;
begin
if pdPrint.Execute then //Print-Dialog
begin
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('SELECT Mitgliederv4.* FROM Mitgliederv4');
Query1.Open;
Query1.First;
while not Query1.Eof do
begin
MS := TMemoryStream.Create; // MemoryStream erstellen
reMessage.Lines.SaveToStream(MS); // Eingabe-RichEdit speichern
MS.Position := 0; // an Position 0 gehen
temp.Lines.LoadFromStream(MS); // Ausgabe-Richedit laden
MS.Free; // MemoryStream freigeben
//Ersetzen der "Tags"
Replace('<<Vorname>>', 'vorname');
Replace('<<Nachname>>', 'name');
Replace('<<GB>>','geburtstag');
Replace('<<Straße>>', 'strasse');
Replace('<<HSN>>', 'hausnummer');
Replace('<<PLZ>>', 'plz');
Replace('<<Ort>>', 'ort');
//Drucken;
Left := 100;
Top := 100;
Printer.Copies := 1;
with Printer do
begin
Canvas.Font.Assign(Temp.Font);
Title := 'Serienbrief';
BeginDoc;
for II := 0 to temp.Lines.Count - 1 do
Canvas.TextOut(Left, Top + (II * Canvas.TextHeight(Temp.Lines[II])),
Temp.Lines[II]);
EndDoc;
end;
Query1.Next;
end;
end;
end;
Aber trotzdem wird (obwohl 2 Datensätze vorhanden sind) nur ein Datensatz gedruckt. Warum?