Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-09-2013
Caroso Caroso is offline
Miembro
NULL
 
Registrado: jul 2013
Posts: 44
Poder: 0
Caroso Va por buen camino
Exclamation Agregar puntos suspensivos a cadena extensa

hola muchachos aqui vengo con otra duda... si alguien conocía algún procedimiento para colocar puntos suspensivos al final de una cadena de texto extensa, es decir... tengo un LABEL de un tamaño definido y quiero que al intentar superar el largo total, en ves de ocultarse, se coloquen los puntos suspensivos...

un ejemplo aqui:


en la imagen anterior el primer label muestra lo que quiero cambiar... y el segundo lo que en realidad quiero...
el label 2 se carga en tiempo de ejecución y cambia el texto indefinida cantidad de veces...

Desde ya muchísimas gracias a todos porque siempre me ayudaron.. Saludos
Responder Con Cita
  #2  
Antiguo 14-09-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 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 Caroso.

Podes hacer:
Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TLabel = class(StdCtrls.TLabel)
  protected
    procedure Paint; override;
  end;

  TForm1 = class(TForm)
    Label1: TLabel;
    Button1: TButton;
    Edit1: TEdit;
    procedure FormCreate(Sender: TObject);
  private
  public
  end;

var
  Form1: TForm1;

implementation {$R *.dfm}

{ TLabel }
procedure TLabel.Paint;
var
  R : TRect;
  str: string;
begin
  str := Caption;
  R   := ClientRect;
  Canvas.Brush.Color := Color;
  DrawText(Canvas.Handle, PChar(str), -1, R, DT_SINGLELINE + DT_END_ELLIPSIS);
end;

{ TForm1 }
procedure TForm1.FormCreate(Sender: TObject);
begin
  with Label1 do
  begin
    AutoSize := False;
    Caption  := 'En un lugar de la Mancha, de cuyo nombre no quiero acordarme,' +
      ' no ha mucho tiempo que vivía un hidalgo de los de lanza en astillero,' +
      ' adarga antigua, rocín flaco y galgo corredor.';
  end;
end;

end.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 14-09-2013
Caroso Caroso is offline
Miembro
NULL
 
Registrado: jul 2013
Posts: 44
Poder: 0
Caroso Va por buen camino
Lightbulb Solucionado

muchísimas gracias ecfisa... siempre tan solidario con la comunidad y conmigo...

Un Saludo y gracias
Responder Con Cita
  #4  
Antiguo 14-09-2013
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Cita:
Empezado por Caroso Ver Mensaje
muchísimas gracias ecfisa... siempre tan solidario con la comunidad y conmigo...

Un Saludo y gracias
La solución ya dada es perfecta, no obstante, recordemos la propiedad "EllipsisPosition" de los componentes "TLabel", pues con esta (y quizá con "AutoSize" igual a "False") se logra el efecto que quieres y puedes además usar otros.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #5  
Antiguo 14-09-2013
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
Caroso,

Cita:
Empezado por dec
...recordemos la propiedad "EllipsisPosition" de los componentes "TLabel"...
Revisa este código:
Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
   
   Label1.AutoSize := False;
   
   Label1.EllipsisPosition := epEndEllipsis;
   
   Label1.Caption := 'El valor aproximado de PI es : 3.141592653589793238462643383279502884197169' +
                     '399375105820974944592307816406286208998628034825342117067982148086513282306' +
                     '647093844609550582231725359408128481117450284102701938521105559644622948954' +
                     '930381964428810975665933446128475648233786783165271201909145648566923460348' +
                     '610454326648213393607260249141273724587006606315588174881520920962829254091' +
                     '715364367892590360011330530548820466521384146951941511609433057270365759591' +
                     '953092186117381932611793105118548074462379962749567351885752724891227938183' +
                     '011949129833673362440656643086021394946395224737190702179860943702770539217' +
                     '176293176752384674818467669405132000568127145263560827785771342757789609173' +
                     '637178721468440901224953430146549585371050792279689258923542019956112129021' +
                     '960864034418159813629774771309960518707211349999998372978049';

end;

end.
El código anterior es una variante en Delphi 2010, del código sugerido en el Msg #2.

Revisa estos links:
Espero sea útil

Nelson.

Última edición por nlsgarcia fecha: 14-09-2013 a las 15:30:42.
Responder Con Cita
  #6  
Antiguo 14-09-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 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.

Recién me desayuno con EllipsisPosition... Sucede que en la versión de Delphi que poseo, el control TLabel no posee esa propiedad.

¿ A partir de que versión se implementó ?

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #7  
Antiguo 14-09-2013
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Cita:
Empezado por ecfisa Ver Mensaje
Hola.

Recién me desayuno con EllipsisPosition... Sucede que en la versión de Delphi que poseo, el control TLabel no posee esa propiedad.

¿ A partir de que versión se implementó ?

Saludos
Yo estuve a punto de no decirlo, precisamente, por eso: porque creía que estaba sólo a partir de XE2. Sin embargo, miré en Delphi 2007 y allí estaba también, así que me atreví a mencionar la propiedad. Y eso puedo decir, que, al menos a partir de Delphi 2007 existe dicha propiedad.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #8  
Antiguo 14-09-2013
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
ecfisa,

Cita:
Empezado por ecfisa
...EllipsisPosition...¿ A partir de que versión se implementó ?...
A partir de Delphi 2005, revisa este link:
Cita:
Changes to the Win32 VCL in Delphi 2005 (VCL Folder) : http://delphi.wikia.com/wiki/Changes...8VCL_Folder%29
Nunca he utilizado Delphi 2005, pero en Delphi 2006 esta propiedad esta implementada en el componente TLabel, no obstante el código sugerido en el Msg #2 muestra la vigencia, potencia y flexibilidad de Delphi 7 para la resolución de problemas en la plataforma Win32.

Espero sea útil

Nelson.

Última edición por nlsgarcia fecha: 14-09-2013 a las 17:54:30.
Responder Con Cita
Respuesta



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
Convertir cadena aleatoria en cadena de N caracteres DANY OOP 3 12-03-2009 20:49:21
Funciones para limpiar y buscar una cadena en otra cadena o en un fichero xaguilars Trucos 1 29-07-2007 22:20:14
Funcion para borrar la cadena que aparesca repetida dentro de otra cadena flystar Varios 1 02-07-2007 23:51:10
Funcion para buscar cadena dentro de otra cadena y el numero de veces flystar Varios 3 02-07-2007 22:48:08
Busqueda blanda extensa seb@ Conexión con bases de datos 4 09-02-2004 20:19:09


La franja horaria es GMT +2. Ahora son las 13:02:17.


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