Autor Beitrag
Masenko
Hält's aus hier
Beiträge: 9



BeitragVerfasst: Mi 13.07.05 20:01 
Hi,

wie kann ich die Memo.Lines in das Cavas eines Images, mit samt den Tabs, zeichnen?

Habs erst mal damit probiert:

Image1.Canvas.TextOut(50,50,memo1.Text);

123
abc
123
abc
sieht dann nur leider so aus:
123IIabcII123IIabc

danke für Antworten.
maxk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1696
Erhaltene Danke: 1

Win XP, Debian Lenny
Delphi 6 Personal
BeitragVerfasst: Mi 13.07.05 20:06 
Quick & very dirty:
ausblenden Delphi-Quelltext
1:
2:
3:
Memo1.BorderStyle:=bsNone;
Memo1.PaintTo(Image1.Canvas,50,50);
Memo1.BorderStyle:=bsSingle;


Besser wäre es, wenn du Zeile für Zeile durchgehst und dann jede einzeln mit TextOut zeichnen würdest. Dann musst du aber auch die Tabulatoren einzeln behandeln. Ist gar nicht so schwierig. Falls Bedarf besteht, setz ich mich nachher nochmal ran...

Gruß,
maxk


// Edit: Mir war furchtbar langweilig ;) Hier ist der Code. Allerdings wird der grafisch evtl. etwas anders aussehen, als gewohnt. Man kann einfach nicht alles berücksichtigen... Wieviele Zeichen ein Tabulator hat und wo angefangen werden soll zu zeichnen kannst du angeben!


ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
var i,y:integer;
begin
 y:=50;
 for i:=0 to Memo1.Lines.Count-1 do begin
  Image1.Canvas.TextOut(50,y,StringReplace(Memo1.Lines[i],#9,StringOfChar(' ',8),[rfReplaceAll]));
  Inc(y,Image.1Canvas.TextHeight(Memo1.Lines[i]));
 end;

_________________
Ein Computer wird das tun, was Du programmierst - nicht das, was Du willst.
Masenko Threadstarter
Hält's aus hier
Beiträge: 9



BeitragVerfasst: Mi 13.07.05 20:17 
cool
Vielen Dank!

Hast mir sehr weitergeholfen.

MfG Masenko