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 07-05-2003
Inral Inral is offline
Registrado
 
Registrado: may 2003
Posts: 2
Poder: 0
Inral Va por buen camino
Imprimir RichEdit justificado en QReport

Hola,

Necesito insertar un RichEdit en un informe de QuickReport pero que el contenido se imprima justificado a derecha e izquierda.

Si fuese necesario usar algun componente u otro motor de reportes no me importaría.

Gracias de antemano
Responder Con Cita
  #2  
Antiguo 07-05-2003
Avatar de SnaKe
SnaKe SnaKe is offline
Miembro
 
Registrado: may 2003
Ubicación: Madrid (España)
Posts: 227
Poder: 21
SnaKe Va por buen camino
Hola,

Eso es imposible y no conozco ningún componente que lo haga, el formato RTF no admite la justificación completa (izquierda y derecha). Una posible solución sería que utilizases un tipo de letra en el RichEdit no proporcional (Tipo Courier), esto es, que todas las letras tienen el mismo ancho en pixeles y mediante programación añadir espacios en blanco entre las palabras para que todas las lineas tengan el mismo número de caracteres.

Otra opción sería utilizar FastReport que si que admite la justificación completa (no recuerdo si en controles RichText pero si en texto normal).

Un saludo.
Responder Con Cita
  #3  
Antiguo 07-05-2003
Avatar de José Luis Garcí
[José Luis Garcí] José Luis Garcí is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Las Palmas de G.C.
Posts: 1.372
Poder: 22
José Luis Garcí Va camino a la fama
Lo que yo he llegado a usar es una función que justifica el texto

Prueba en esta misma Web


http://www.Clubdelphi.com/saiyine/BCDelphi/bctodo.html

Si no funciona mandame un email y te la mandare.


Un saludo desde Canarias
Responder Con Cita
  #4  
Antiguo 18-09-2007
Avatar de CarlosHernandez
CarlosHernandez CarlosHernandez is offline
Miembro
 
Registrado: oct 2003
Posts: 139
Poder: 21
CarlosHernandez Va por buen camino
hola, lei este post, y de verdad me interesa como justificar en quick report, y la pagina que colocaste no funciona, podrias volver a poner un link donde si se vea o me puedes explicar por favor, gracias........
__________________
begin
Elverdugo79@hotmail.com
end;
Responder Con Cita
  #5  
Antiguo 09-11-2009
ingel ingel is offline
Miembro
 
Registrado: jun 2003
Posts: 239
Poder: 21
ingel Va por buen camino
Hola... alguien a encontrado alguna solucion a este problema ?

Necesitaria jutificar el TQRMemo o el de Richedit que tambien podria usar ..
o algun otro componente que Justifique el texto ...
sds
GRACIAS
Responder Con Cita
  #6  
Antiguo 13-11-2009
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Arrow

Cita:
Empezado por ingel Ver Mensaje
Necesitaria jutificar el TQRMemo o el de Richedit que tambien podria usar ..
o algun otro componente que Justifique el texto ...
sds
GRACIAS
Pues aunque el hilo es muy viejo; creo que puedes usar un QRRichText y modificar a tu antojo la propiedad Alignment (alinear ala izquierda, derecha o centro).
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
  #7  
Antiguo 13-11-2009
ingel ingel is offline
Miembro
 
Registrado: jun 2003
Posts: 239
Poder: 21
ingel Va por buen camino
gracias ... peeero

esta propiedad que mencionas no JUSTIFICA el texto .. solo lo centra en el mejor de los casos .. pero los 'bordes' o margenes quedan desparejos....
Estoy desarrollando una funcion que parece que funciona bastante bien ..
cuando la finalice la subire con gusto ...
SDs
Responder Con Cita
  #8  
Antiguo 13-11-2009
Avatar de José Luis Garcí
[José Luis Garcí] José Luis Garcí is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Las Palmas de G.C.
Posts: 1.372
Poder: 22
José Luis Garcí Va camino a la fama
_Hola Compañeros aqui os dejo unos procedure que justifican en un Richedit, espero que te valga, lo baje de la red de donde ??


Código Delphi [-]
//------------------------------------------------------
function MenorEspacioEntrePalabras(cad : string) : integer;
var
menor,actual,i : integer;
enespacio : boolean;
begin
  actual:=0;
  menor:=50;
  result:=0;
  enespacio:=false;
  for i:=1 to length(cad) do
  begin
    if cad[i]=' ' then
    begin
      if enespacio
      then actual:=actual+1
      else
      begin
        enespacio:=true;
        actual:=1;
      end;
    end
    else
    if enespacio then
    begin
      enespacio:=false;
      if actual < menor then
      begin
        menor:=actual;
        result:=i-actual;
        actual:=0;
      end;
    end;
  end;
end;
//------------------------------------------------------------------
function LargoTexto(texto : string; f : TFont) : integer;
var
aux : TFont;
begin
  aux:=Screen.ActiveForm.Canvas.font;
  Screen.ActiveForm.Canvas.font:=f;
  result:=Screen.ActiveForm.Canvas.textwidth(texto);
  Screen.ActiveForm.Canvas.font:=aux;
end;
//----------------------------------------------------------
function Distancia(a,b : integer) : integer;
begin
  result:=abs(a-b);
end;
//----------------------------------------------------------
procedure Justifica(cadenas : tstrings; fuente : TFont; ancho : integer);
var
i : integer;
aux : string;
begin
  for i:=0 to cadenas.count-1 do
  while Distancia(LargoTexto(cadenas[i],fuente),ancho)>10 do
  begin
    aux:=cadenas[i];
    Insert(' ',aux,MenorEspacioEntrePalabras(aux));
    cadenas[i]:=aux;
  end;
end;
//--------------------------------------------------------------

// AllText : True=todo o texto; False=parágrafo atual
procedure JustifyRichEdit(RichEdit :TRichEdit; AllText :Boolean);
const
  TO_ADVANCEDTYPOGRAPHY   = $1;
  EM_SETTYPOGRAPHYOPTIONS = (WM_USER + 202);
  EM_GETTYPOGRAPHYOPTIONS = (WM_USER + 203);
var
  ParaFormat :TParaFormat;
  SelStart,
  SelLength :Integer;
begin
  ParaFormat.cbSize := SizeOf(ParaFormat);
  if SendMessage(RichEdit.handle,
              EM_SETTYPOGRAPHYOPTIONS,
              TO_ADVANCEDTYPOGRAPHY,
              TO_ADVANCEDTYPOGRAPHY) = 1 then
  begin
    SelStart := RichEdit.SelStart;
    SelLength := RichEdit.SelLength;
    if AllText then
      RichEdit.SelectAll;
    ParaFormat.dwMask := PFM_ALIGNMENT;
    ParaFormat.wAlignment := PFA_JUSTIFY;
    SendMessage(RichEdit.handle, EM_SETPARAFORMAT, 0, LongInt(@ParaFormat));
// Restaura seleção caso tenhamos mudado para All
    RichEdit.SelStart := SelStart;
    RichEdit.SelLength := SelLength;
  end;
end;


Modo de uso

Código Delphi [-]
Justifica(redtrededitcion.Lines,redtrededitcion.Font,redtrededitcion.Width);




 if Length(redtrededitcion.selText)>0 then JustifyRichEdit(redtrededitcion,FAlse)
                                        else JustifyRichEdit(redtrededitcion,True);
__________________
Un saludo desde Canarias, "El abuelo Cebolleta"

Última edición por Casimiro Notevi fecha: 09-12-2015 a las 16:34:54.
Responder Con Cita
  #9  
Antiguo 13-11-2009
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Thumbs up

Cita:
Empezado por José Luis Garcí Ver Mensaje
_Hola Compañeros aqui os dejo unos procedure que justifican en un Richedit, espero que te valga, lo baje de la red de donde ??

...
Buen aporte Jose Luis.
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
  #10  
Antiguo 09-12-2015
Avatar de ingabraham
ingabraham ingabraham is offline
Miembro
 
Registrado: ago 2007
Posts: 614
Poder: 17
ingabraham Va por buen camino
Cool

pense que era complicado. pero es tan fácil como esto.
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin

with RichEdit1 do
begin
//SelectAll;
   Paragraph.Alignment:=taLeftJustify;
   SelStart:=0;
   SelLength:=0;
end;
 RichEdit1.Lines.Add('mensaje izq');
end;

procedure TForm1.Button2Click(Sender: TObject);
begin

with RichEdit1 do
begin
//SelectAll;
   Paragraph.Alignment:=taRightJustify;
   SelStart:=0;
   SelLength:=0;
end;
 RichEdit1.Lines.Add('mensaje der');
end;
__________________
Enseñar es la virtud de un sabio.
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
Imprimir Filagrama en QReport BlueSteel Impresión 9 25-12-2005 16:39:02
Imprimir una tabla con qreport!!! Rafe Impresión 1 26-07-2005 18:47:35
Imprimir un campo memo...en QReport BlueSteel Impresión 4 17-02-2005 19:36:56
Imprimir Factura con QReport keys Impresión 2 31-05-2004 21:51:52
Problemas al imprimir con QReport keys Impresión 2 13-02-2004 22:40:21


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


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