Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-03-2013
darkamerico darkamerico is offline
Miembro
 
Registrado: dic 2010
Posts: 235
Poder: 14
darkamerico Va por buen camino
Cool Reto: Justificar un TRichEdit

Saludos mis amigos, este es un problema recurrente que tengo haec tiempo y quizas de muchos de ustedes, propongo solucionarlo de una vez por todas, estuve investigando y encontre esta funcion, sin embargo, al parecer tiene un error:

Código Delphi [-]
function Justifica(mCad:string;mMAx:integer):string;
var
mPos,mPont,mTam,mNr,mCont :integer;
mStr : string;

begin
  mTam:=Length(mCad);
  if mTam>=mMax then
  Result:=copy(mCad,1,mMax)
  else
  begin
    mStr:='''';
    mCont:=0;
    mPont:=1;
    mNr:=mMax-mTam;
  end;

  while mCont mPos
    mPos:=pos(mStr,copy(mCad,mPont,100));
    if mPos=0 then
    begin
      mStr:=mStr+' ';
      mPont:=1;
      continue;
    end
    else
    begin
      mCont:=mCont+1;
      Insert(' ',mCad,mPos+mPont);
      mPont:=mPont+mPos+length(mStr);
    end;
  Result:=mCad;
end;

Si alguien tiene una funcion que haga el trabajo, por favor comparta el codigo aqui.


Muchos saludos
Responder Con Cita
  #2  
Antiguo 19-03-2013
darkamerico darkamerico is offline
Miembro
 
Registrado: dic 2010
Posts: 235
Poder: 14
darkamerico Va por buen camino
Wink Solucion

Encontre esta funcion que realiza el trabajo.

Código Delphi [-]
procedure JustifyRichText(RichEdit :TRxRichEdit; 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));
      RichEdit.SelStart := SelStart;
      RichEdit.SelLength := SelLength;
  end;
end;

Espero que sea de utilidad para ustedes.

Atte
Americo
Responder Con Cita
  #3  
Antiguo 19-03-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
Cita:
Empezado por darkamerico Ver Mensaje
Encontre esta funcion que realiza el trabajo.
...
Espero que sea de utilidad para ustedes.

Atte
Americo
Hola darkamerico.

Gracias por compartirla con nosotros.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
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
¿Qué les parece un reto? D-MO PHP 20 24-07-2007 18:45:11
Esto si es un reto perrogrun OOP 10 09-07-2004 22:49:25
Un reto a todos Rendertaker Internet 3 14-04-2004 22:51:29
Justificar texto en TrichEdit Delphi 4.0 vmladino API de Windows 1 19-11-2003 00:26:36


La franja horaria es GMT +2. Ahora son las 14:35:54.


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