Ver Mensaje Individual
  #2  
Antiguo 20-10-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola JXJ
Cita:
Empezado por JXJ Ver Mensaje
¿como se puede dibujar texto en un stringgrid?

quiero poner texto en una celda. que este a centrado a la mitad de la celda y poner en las esquinas de la celda otros texto.
Un ejemplo:
Código Delphi [-]
...
implementation

type
  TFiveStr = record
    tleft, tright: string;
    middle       : string;
    bleft, bright: string;
  end;
  TFiveStrArray = array of TFiveStr;

var
  FiveArray: TFiveStrArray;

procedure TForm1.FormCreate(Sender: TObject);
var
  i: Integer;
begin
  with StringGrid1 do
  begin
    ColCount:= 3;
    RowCount:= 6;
    for i:= FixedCols to ColCount-1 do ColWidths[i] := 100;
    for i:= FixedRows to RowCount-1 do RowHeights[i]:= 65;
    if FixedRows = 1 then
      Rows[0].CommaText:= 'Columna1,Columna2,Columna3';
    SetLength(FiveArray, RowCount + FixedRows);
    for i:= Low(FiveArray)+FixedRows to High(FiveArray) do
    begin
      FiveArray[i].tleft := Format('izq_arr %d',[i]);
      FiveArray[i].tright:= Format('der_arr %d',[i]);
      FiveArray[i].middle:= Format('centro: %d',[i]);
      FiveArray[i].bleft := Format('izq_abj %d',[i]);;
      FiveArray[i].bright:= Format('der_abj %d',[i]);;
    end;
  end;
end;

procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
begin
  with Sender as TStringGrid do
    if (ACol = 1)and not(gdFixed in State) then
    begin
      Canvas.FillRect(Rect);
      DrawText(Canvas.Handle, PChar(FiveArray[ARow].tleft) , -1, Rect, DT_SINGLELINE+DT_LEFT+DT_TOP);
      DrawText(Canvas.Handle, PChar(FiveArray[ARow].tright), -1, Rect, DT_SINGLELINE+DT_RIGHT+DT_TOP);
      DrawText(Canvas.Handle, PChar(FiveArray[ARow].middle), -1, Rect, DT_SINGLELINE+DT_CENTER+DT_VCENTER);
      DrawText(Canvas.Handle, PChar(FiveArray[ARow].bleft) , -1, Rect, DT_SINGLELINE+DT_LEFT+DT_BOTTOM);
      DrawText(Canvas.Handle, PChar(FiveArray[ARow].bright), -1, Rect, DT_SINGLELINE+DT_RIGHT+DT_BOTTOM);
    end;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  SetLength(FiveArray, 0);
end;

Salida:


Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 20-10-2014 a las 09:57:32.
Responder Con Cita