Cita:
Empezado por michal
Cómo puedo centrar el texto de un ComboBox sin usar espacios?
Cómo puedo agregarle el simbolo $ a una celda de un DBGrid, alineado a la izquierda, mientras que el valor monetario lo haga a la derecha?
|
En ambos casos debes utilizar los eventos de pintado (Draw) de los componentes, para redibujar los elementos como desees. (para ello utiliza el Canvas del componente)
En el caso del
TCombobox tienes el
OnDrawItem, y para el
TDBGrid tienes el
OnDrawColumnCell y el
OnDrawDataCell.
Un ejemplo el Delphi (espero que te sirva) podría ser este:
Código Delphi
[-]procedure TForm3.ComboBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
var
R:TRect;
str:String;
begin
R := Rect;
str := TComboBox(Control).Items[Index];
InflateRect(R, -1, -1);
TComboBox(Control).Canvas.TextRect(R, Str, [tfCenter]);
end;
Algo similar deberás realizarlo para el TDBGrid.
Has pruebas con el
Canvas.
Si buscas en los foros seguro que encuentras mensajes al respecto (
revisa estos métodos de TCanvas; Canvas.
TextRect, Canvas,
TextOut, Canvas.
TextExtent,...).