/ Forside/ Teknologi / Udvikling / Delphi/Pascal / Spørgsmål
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Delphi/Pascal
#NavnPoint
oldwiking 603
jrossing 525
rpje 520
EXTERMINA.. 500
gandalf 460
gubi 270
DJ_Puden 250
PARKENSS 230
technet 210
10  jdjespers.. 200
Udskriv på konvolut med modtager-afsende~
Fra : MonieJacobsen
Vist : 931 gange
70 point
Dato : 23-01-04 15:09

Hej

Jeg forsøger med nedstående procedure, at udskrive adresse til en modtageren
og samtidig afsenderadressen på en konvolut, af almindelige størrelse.

Har brugt så mange stykker papir, at jeg må bede om hjælp til, at få udskrivningrn til, at fungerer!
Vil selv kunne indsætte værdierne i Canvas.TextOut(x,Y
Håber meget du vil hjælpe mig.
Benytter Delphi 6.
Da jeg har forsøgt "mangt og meget", er proceduren nedenunder skrevet som forslag/ide!

procedure TfmUdskrivning.BitBtn1Click(Sender: TObject);
Var
Line : integer;
begin
Printer.Canvas.Font := UdskrivRichEdit.Font;
Printer.Canvas.Font.Size := UdskrivRichEdit.Font.Size;
Printer.Canvas.Font.Size := 18;

with Printer do
begin
BeginDoc;
for Line := 0 to UdskrivRichEdit.Lines.Count -1 do

{Til adresse i UdskrivRichEdit,som skal placeres midt på konvoluten}
Canvas.TextOut(1000,100,UdskrivRichEdit.Lines.Strings[Line]);

for Line := 0 to Memo1.Lines.Count -1 do

{Afsender adresse i Memo1, som skal placeres nederste i højere hjørne af konvoluten}
Canvas.TextOut(2000,2000,Memo1.Lines.Strings[Line]);

EndDoc;
end;

end;

Med venlig hilsen
Monie Jacobsen

My mail adress is
monie at sunwind dot dk

 
 
Kommentar
Fra : oldwiking


Dato : 23-01-04 19:27

Davs, jeg skal lige kigge lidt på det, men foreløbigt tror at du har glemt at definerer Font.color
mvh OW

Kommentar
Fra : MonieJacobsen


Dato : 24-01-04 11:10

Hej Oldwiking

Det med definering af Font.color er ikke noget der volder mig problem.
Har også forsøgt med koderne nedenfor!

Var
Line : integer;

begin
Printer.BeginDoc;
with Printer.Canvas do begin
for Line := 0 to UdskrivRichEdit.Lines.Count -1 do // Her ønskes udskrives Adressen til
begin
TextOut(1000,1000,UdskrivRichEdit.Lines.Strings[Line]);
end;

with Printer.Canvas do begin
for Line := 0 to UdskrivRichEdit.Lines.Count -1 do
begin
TextOut(2000,2000,Memo1.Lines.Strings[Line]); // Her ønskes udskrives afsenderadressen
end;
end;
Printer.EndDoc;
end;
end;

Men heller ikke indførelsen med begin mellem hver Line-udskrivning gav nogen brubarligt resultat.
Får kun i UdskrivRichEdit den sidste linje printet ud og det samme gælder for Memo1,
hvor afsenderadressen er skrevet.

Håber dette forklarer problemmet bedere!

Med venlig hilsen
Monie Jacobsen

My mail adress is
monie at sunwind dot dk


Kommentar
Fra : jrossing


Dato : 24-01-04 13:47

TextOut(x,y,text)

For mig ser det ud som om du udskriver den allelinierne på samme sted (1000,1000) og (2000,2000). Det forklarer jo også at det kun er den sidste linie der bliver skrevet.


Prøv noget i retning af

with Printer.Canvas do begin
for Line := 0 to UdskrivRichEdit.Lines.Count -1 do // Her ønskes udskrives Adressen til
begin
TextOut(1000,1000 + line * 50,UdskrivRichEdit.Lines.Strings[Line]);
end;

Det vil selvfølgelig virke mere avanceret at bruge højden på fonten + linieafstand i stedet for de 50

Mvh
Janus

Kommentar
Fra : jrossing


Dato : 24-01-04 13:48

Søg evt. på TextOut i hjælpefilen, der er et eksempel der viser noget af det...

Accepteret svar
Fra : oldwiking

Modtaget 70 point
Dato : 24-01-04 14:25

Her lidt code som kan afhjælpe dit problem
Mvh OW

unit testrich;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, printers;

type
TForm1 = class(TForm)
UdskrivRichEdit: TRichEdit;
Memo1: TMemo;
Button1: TButton;
procedure FormActivate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
Procedure printout;
Procedure PrepMemo;
end;

var
Form1: TForm1;

implementation

{$R *.dfm}


Procedure TForm1.printout;
Var
Line : integer;
space : integer;

begin
Printer.BeginDoc;
with Printer.Canvas do
begin
space := abs(printer.Canvas.Font.Height);
space := space + (space div 2);
for Line := 0 to UdskrivRichEdit.Lines.Count -1 do // Her ønskes udskrives Adressen til
begin
TextOut(1000,1000+(line * space),UdskrivRichEdit.Lines.Strings[Line]);
end;

with Printer.Canvas do
begin
for Line := 0 to UdskrivRichEdit.Lines.Count -1 do
begin
TextOut(2000,2000+(line * space),Memo1.Lines.Strings[Line]); // Her ønskes udskrives afsenderadressen
end;
end;
Printer.EndDoc;
end;
end;
//uses ComCtrls;

//procedure TForm1.FormCreate(Sender: TObject);
Procedure TForm1.PrepMemo;
begin
// with TRichEdit.Create(Self) do
with form1.UdskrivRichEdit do
begin
// Parent := Self;
// Align := alClient;
Lines.Clear;
// set numbering style
Paragraph.Numbering := nsBullet;
Lines.Add('Introduction');
Lines.Add('New members to our team');
Lines.Add('New Budget discussion');
Lines.Add('Facilities');
Lines.Add('Q & A');
Paragraph.Numbering := nsNone;
Paragraph.Alignment := taCenter;

Lines.Add('');
Lines.Add('Suggested Topics:');
Lines.Add('');
Paragraph.Alignment := taLeftJustify;
Paragraph.FirstIndent := 10;
Lines.Add('');
Lines.Add('Parking lot repair');
Lines.Add('Cost overruns');
end;
end;

procedure TForm1.FormActivate(Sender: TObject);
begin
prepmemo;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
printout;
end;

end.



Godkendelse af svar
Fra : MonieJacobsen


Dato : 24-01-04 15:41

Tak for svaret oldwiking.
                        

Du har følgende muligheder
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.

Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
Søg
Reklame
Statistik
Spørgsmål : 177549
Tips : 31968
Nyheder : 719565
Indlæg : 6408820
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste