ich weiß das Textout mit umlauten umgehen kann das Problem muss also in meiner schleife sein, aber wo ?
Code: Alles auswählen
procedure TMyMemo.Paint;
var
i,y,x,px:Integer;
p:TPoint2;
str:String;
begin
y:=0; px:=0;
for i:=0 to TextView.Count-1 do begin
p:=TPoint2.Create; p.x:=0; p.y:=y;
str:=TextView.Strings[i];
for x:=1 to Length(str) do begin
if px+Buffer.canvas.TextWidth(str[x]) > Width then begin
px:=0;
break;
end
else begin
Buffer.canvas.TextOut(px,y,str[x]);
px:=px + Buffer.canvas.TextWidth(str[x]);
end;
end;
px:=0;
y:=y + Buffer.canvas.TextHeight(TextView.Strings[1]);
p.y2:=y;
TextView.Objects[i]:=p;
end;
// Buffer.Canvas.TextRect(Rect(0,0,Width,Height),0,0,TextView.Text);
// Der cuser wird gezeichnet
// buffer.canvas.pen.color:=clred;
// buffer.canvas.moveto(ct.x,zi );
// buffer.canvas.LineTo(ct.x,zi+15);
// Paintbox1.Canvas.CopyRect(TextRect,buffer.canvas,TextRect)
inherited Paint;
Canvas.Draw(0,0,buffer)
end;
aus irgendeinen Grund Werden alle umlaute ausgelassen also: öäüÖÄÜ ß warum ? ich habe festgestellt das es am string liegen muss den weil in str[x] ist niemals ein umlaut drin !!!