Ver Mensaje Individual
  #3  
Antiguo 01-03-2024
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - Espańa
Posts: 18.285
Reputación: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por michal Ver Mensaje
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,...).
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita