Einzelnen Beitrag anzeigen

Meister_Kika

Registriert seit: 19. Sep 2003
4 Beiträge
 
#2

Re: Zeilenumbruch innerhalb von einer Stringgrid-Zelle

  Alt 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]
  Mit Zitat antworten Zitat