Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #22  
Antiguo 28-01-2020
compuin compuin is offline
Miembro
 
Registrado: oct 2010
Posts: 230
Poder: 16
compuin Va por buen camino
Cita:
Empezado por escafandra Ver Mensaje
Te muestro como usar dos fuentes en un texto alineado a la derecha:


Código Delphi [-]
procedure PrintText(Canvas: TCanvas; Text: String; Rect: TRect);
var
  OldAlign: cardinal;
  FName: String;
begin
  InflateRect(Rect, -1, -1);
  Canvas.FillRect(Rect);
  OldAlign:= SetTextAlign(Canvas.Handle, TA_UPDATECP or TA_RIGHT);
  MoveToEx(Canvas.Handle, Rect.Right, Rect.Top, nil);
  FName:= Canvas.Font.Name;
  Canvas.Brush.Style:= bsClear;
  TextOut(Canvas.Handle, 0, 0, PCHAR(Copy(Text, 2, Length(Text)-1)), Length(Text)-1);
  Canvas.Font.Name:= 'Symbol';
  TextOut(Canvas.Handle, 0, 0, PCHAR(Copy(Text, 1, 1)), 1);
  SetTextAlign(Canvas.Handle, OldAlign);
  Canvas.Font.Name:= FName;
end;



En este caso usa una fuente "Symbol" para el primer carácter del texto y la predeterminada para el resto.


Saludos.
Estoy intentando asi, pero no me logra posicionar en la segunda columna que es donde lo necesito

Código Delphi [-]
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
var
  Alin: integer;
  FName: String;
  OldAlign: cardinal;
begin
  with Sender as TStringGrid do
  begin
    if ARow = 0 then
       Alin:= DT_CENTER
    else
       Alin:= DT_RIGHT;

    if ACol = 0 then
       Alin:= DT_LEFT;

     if ARow = 0 then
       Alin:= DT_CENTER;

    // Dibujar texto centrado horizontal y verticalmente o a la derecha
    InflateRect(Rect, -1, -1);
    Canvas.FillRect(Rect);
    FName:= Canvas.Font.Name;
    InflateRect(Rect, -3, -3);
    FName:= Canvas.Font.Name;
    Canvas.Brush.Style:= bsClear;
    //TextOut(Canvas.Handle, 0, 0, PCHAR(Copy(Text, 2, Length(Text)-1)), Length(Text)-1);
    Canvas.Font.Name:= 'Symbol';
    //TextOut(Canvas.Handle, 0, 0, PCHAR(Copy(Text, 1, 1)), 1);
    SetTextAlign(Canvas.Handle, OldAlign);
    Canvas.Font.Name:= FName ;
    DrawText(Canvas.Handle, PAnsiChar(Cells[ACol, ARow]), Length(Cells[ACol, ARow]), Rect,
      Alin or DT_VCENTER or DT_SINGLELINE);
  end;
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Foco en primera fila cxgrid dardusso23 Varios 1 17-10-2016 18:15:52
Obtener la primera fila por grupos de una consulta anidada gluglu SQL 5 11-04-2012 12:36:20
agregar una linea en la primera fila de un memo ingabraham Varios 1 08-07-2010 16:45:56
Primera columna y fila de un StringGrid gironella OOP 3 01-10-2008 09:42:30
Primera fila visible de un grid RONPABLO Conexión con bases de datos 9 08-11-2004 07:15:44


La franja horaria es GMT +2. Ahora son las 18:36:42.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi