Tener retornos de carro en una celda de un TStringGrid
Artículo por Club Developers · 02 marzo 2006
2593 vistas
Para ello, tendremos que activar la opción goAlwaysShowEditor y codificar el evento OnKeyDown de la siguiente manera:
y en el OnDrawCell
delphi
procedure TForm1.StringGrid1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if Key = VK_RETURN then StringGrid1.Cells[StringGrid1.Col, StringGrid1.Row] := StringGrid1.Cells[StringGrid1.Col, StringGrid1.Row] + sLineBreak; end;
y en el OnDrawCell
delphi
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); begin with Sender as TStringGrid do with Canvas do begin { selección del color de fondo } if gdFixed in State then Brush.Color := clBtnFace else if gdSelected in State then Brush.Color := clNavy else Brush.Color := clWhite; { pintamos el fondo } FillRect(Rect); { selección del color del texto } if gdSelected in State then SetTextColor(Canvas.Handle,clWhite) else SetTextColor(Canvas.Handle,clBlack); { pintado del texto usando la API } DrawText(Canvas.Handle, PChar(Cells[ACol,ARow]), -1, Rect ,DT_NOPREFIX or DT_WORDBREAK ); end; end;