Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Se puede justificar a la derecha el texto de un TEdit?

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Se puede justificar a la derecha el texto de un TEdit? Responder citando

Simplemente esa es la pregunta. Como se podria justificar a la derecha el texto de un TEdit? He buscado en el foro y no he encontrado alguna pista.

Gracias por cualquier ayuda.
_________________
Dios es real... a menos que se declare entero!
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Cuando hablas de justificar, ¿te refieres a que se vaya escribiendo a la derecha del campo cómo se haría con los números?
En un TEDit directamente no se puede. Podrías hacerlo a través del evento OnKeyDown, por ejemplo:
Código:
Edit1->Text = AnsiString::StringOfChar(' ', Edit1->MaxLength - Edit1->Length()) + Edit1->Text;
Edit1->SelStart = Edit1->Length();

No lo he probado, pero se me ocurre que algo así podría funcionarte.
_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Hasta lo que yo se, debes de usar un TMemo (de una línea y que no admita return) , aunque parezca mentira el TEdit no tiene esa propiedad.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Yo he sugerido ese código para no tener que instalar paquetes adicionales. COn las LMD-Tools, los elementos TEdit sí tienen la posibilidad de justificar.
_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Listo.

Muchas gracias por su ayuda Angel y Juanma. Voy a probar lo que me dicen.

Gracias!
_________________
Dios es real... a menos que se declare entero!
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

En un TEdit es relativamente fácil como habeis dicho, pero que ocurre en un TStringGrid, con los valores numéricos.

¿Como podemos alinear a la izquierda toda una columna?
_________________
La pintura es la expresión de la mente.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

¡Hay que usar el buscador!.Tienes un montón de código en:
Variar la posición del texto en un TDBGrid
_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Siempre agoto las posibilidades antes de hacer una consulta.

Aunque a lo mejor es que no he buscado de forma correcta.

De todos modos gracias
_________________
La pintura es la expresión de la mente.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Angel, si te fijas yo pregunto por un StringGrid no por un DBGrid.

StringGrid no tiene el evento OnDrawColumnCell.

Un saludo
_________________
La pintura es la expresión de la mente.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

No, pero tienes el OnDrawCell y ahí sí puedes aplicar los efectos. Te pongo aquí código que uso yo, que lo hice modificando otro que encontré por aquí.
    1. Tengo un TStringGrid con 8 columnas y 13 filas, siendo fijas una de cada. Como quiero que el fondo del StringGrid esté en blanco cuando se "escribe" en él pero los items fijos no, pongo el color de todo el elemento en uno que no sea blanco (por ejemplo cl3DLight) tanto la propiedad Color como FixedColor.
    2. En el evento OnDrawCell:
    Código:
    void __fastcall TfTpv::EstadisDrawCell(TObject *Sender, int nCol,
    int nRow, TRect &Rect, TGridDrawState State)
    {
         // Variables de trabajo.
         TStringGrid *Grid = dynamic_cast<TStringGrid*>(Sender);
         TCanvas *Canvas   = dynamic_cast<TStringGrid*>(Sender)->Canvas;
         TRect r(Rect);

         Canvas->Brush->Color = Grid->Color;
         Canvas->Font         = Grid->Font;
         Canvas->FillRect(r);

         // Cambio color si no es la primera fila o columna
         if (nRow != 0 && nCol != 0)
              Canvas->Brush->Color = clWhite;

         // Fuente en negrita si es la primera fila o columna
         if (nRow == 0 || nCol == 0)
         {
              Canvas->Font->Style = TFontStyles()<<fsBold;
              DrawText(Canvas->Handle, Grid->Cells[nCol][nRow].c_str(), Grid->Cells[nCol][nRow].Length(), &r, DT_VCENTER);
         }

         // Escribimos el texto a la derecha de la celda si no es la primera columna
         if (nCol != 0)
              Canvas->TextRect(Rect, (Rect.Left + (Rect.Width() - Canvas->TextWidth(Grid->Cells[nCol][nRow]))-5), (Rect.Top + 1), Grid->Cells[nCol][nRow]);
    }

Es evidente que en este caso todas las celdas excepto las fijas son números y van justificados a al derecha. El resultado, con este código, es este:

_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.