Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-12-2005
YaninaGenia YaninaGenia is offline
Miembro
 
Registrado: jun 2005
Ubicación: Buenos Aires
Posts: 95
Poder: 19
YaninaGenia Va por buen camino
Smile Contar líneas en un QRDBText

Tengo un QRDBText al que le puse las propiedades AutoStretch y WordWrap en true para que siga abajo si el contenido del campo que tiene relacionado tiene muchas palabra sy no entran en un solo renglón. ¿Hay alguna manera de contar los renglones de ese QRDBText? Si hago QRDBText.lines.count no funciona, devuelve siempre cero pero en realidad hay cuatro o más lineas.

Yanina Genia

Última edición por YaninaGenia fecha: 02-12-2005 a las 16:32:22. Razón: Me olvide de aclarar algo
Responder Con Cita
  #2  
Antiguo 02-12-2005
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Puedes "recorrerlo" y contar los caracteres 13 (intro) que tiene

Código:
 var iX, iLineas :integer;
 var cT :string;
 begin
   iLineas:=0;
   cT := qrTEXT.asString;
   for iX:=1 to length(cT) do
 	if cT[iX]=#13 then
 	  inc(iLineas);
 
 // en iLineas tienes el número de líneas
 end;
Responder Con Cita
  #3  
Antiguo 02-12-2005
YaninaGenia YaninaGenia is offline
Miembro
 
Registrado: jun 2005
Ubicación: Buenos Aires
Posts: 95
Poder: 19
YaninaGenia Va por buen camino
Thumbs down ...

No funciona!!!
No necesariamente se pasa de línea con un Enter, es algo que hace el QRDBText al setearle yo el AutoStretch y el WordWrap, el largo se lo pongo yo, y si los datos que saca de la base son más largos de lo que yo le puse, entonces continúa abajo, es algo automático.

Yanina Genia
Responder Con Cita
  #4  
Antiguo 02-12-2005
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 29
jhonny Va camino a la famajhonny Va camino a la fama
Seria = a la cantidad de caracteres que fueron impresos en ese QRDBText divididos la cantidad de caracteres que caben en una sola linea, Por ejemplo:

Esta es la capacidad maxima de una linea <- Hasta aqui hay 41 caracteres
Esta es la segunda linea <- Hata aqui hay 65 caracteres

Entonces la cantidad de lineas seria 65/41 que es igual a 1.4878048780487804878048780487805

Alli puedes deducir ya que hay 2 lineas y con la funcion Ceil arreglartelas para acomodar la cosa
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #5  
Antiguo 02-12-2005
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por YaninaGenia
No funciona!!!
No necesariamente se pasa de línea con un Enter, es algo que hace el QRDBText al setearle yo el AutoStretch y el WordWrap, el largo se lo pongo yo, y si los datos que saca de la base son más largos de lo que yo le puse, entonces continúa abajo, es algo automático.Yanina Genia
Había entendido otra cosa
Responder Con Cita
  #6  
Antiguo 03-12-2005
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 29
jhonny Va camino a la famajhonny Va camino a la fama
Para ampliar un poco, la funcion puede ser algo asi:

Código Delphi [-]
Ceil(Length(TDataSetCampo.AsString)/41);

espero te sirva.
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #7  
Antiguo 05-12-2005
YaninaGenia YaninaGenia is offline
Miembro
 
Registrado: jun 2005
Ubicación: Buenos Aires
Posts: 95
Poder: 19
YaninaGenia Va por buen camino
Unhappy Ceil function

Tengo que declarar algo antes para usar esta funcion? Porque se enojó Delphi, dice que no lo declaré en ningún lado y que por eso ahora no lo va a usar.
A mi se me ocurrió algo así, pero lo hice sin función y estaba buscando algo para que quede más prolijo, hice:

DetalleReporte.Height := DetalleReporte.Height + 17*((length(trim(query3.FieldByName('PAQ_SOLICITADO').AsString))div 80)+1);

Se supone que aumenta el ancho del detalle a medida que se incrementan las líneas. Y me funciona bastante bien, pero buscaba eso, algo más estético.
Hice 17 porque es el ancho de una línea, y le sumo 1 porque si tengo por ejemplo 150 caracteres, el div me va a dar 1. Y si los caracteres son 70, el div da cero, así que le suma 1 y queda bien.

Yanina Genia
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


La franja horaria es GMT +2. Ahora son las 04:44:20.


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