Registriert seit: 19. Sep 2003
4 Beiträge
|
Re: Zeilenumbruch innerhalb von einer Stringgrid-Zelle
29. Okt 2004, 11:49
1.
Delphi-Quellcode:
var I : integer;
begin
i := pos('~#',S);
while i <> 0 do
begin
Delete(S,i,2);
Insert(#13#10,s,i);
i := pos('~#',S);
end;
delete(s,1,1); //erstes Zeichen löschen
<- ist schneller als deine funk.
2. das grid malt auf einen canvas.
d.h #13#10 wird als Pipe | dargestellt.
musst also die draw routine verbiegen
als bespiel :
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol,
ARow: Integer; Rect: TRect; State: TGridDrawState);
var s : string;
x : integer; //abstand zur nächsten zeile
begin
s := target.Cells[ACol,ARow] ;
while pos(#13#10,s) <> 0 do
begin
canvas.textout(Rect.X + x,Rect.Y,copy(S,1,pos(#13#10)-1);
delete(s,1,pos(#13#10)+1);
x:= x + canvas.TextHeight(S);
end;
canvas.textout(Rect.X + x,Rect.Y,s); //rest zeichen
end;
was du noch einbauen mußt ist die höhe der zelle sonst mal der ins nirvana.
[edit=sakura] [delphi]Tags Mfg, sakura[/edit]
|
|
Zitat
|