Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #2  
Antiguo 20-10-2016
Mendizabal Mendizabal is offline
Miembro
NULL
 
Registrado: sep 2014
Posts: 31
Poder: 0
Mendizabal Va por buen camino
Finalmente logré solucionarlo

Código Delphi [-]
procedure TDBRichMemo2.WMPaint(var Message: TWMPaint);
var
  lBmp: TBitmap;
  lCanvas: TCanvas;
  lRichEdit: TCustomRichEdit;
  s: string;
  ch: integer;
  Stream: TStringStream;
begin
  if not (csPaintCopy in ControlState) then
  begin
    inherited;
  end
  else
  begin
    lRichEdit := TCustomRichEdit.Create(nil);
    lRichEdit.ParentWindow := Application.Handle;

    TRichEdit(lRichEdit).Color := Color;
    TRichEdit(lRichEdit).BorderStyle := BorderStyle;
    TRichEdit(lRichEdit).BorderWidth := BorderWidth;
    TRichEdit(lRichEdit).Ctl3D := Ctl3D;
    TRichEdit(lRichEdit).Font.Assign(Font);
    TRichEdit(lRichEdit).MaxLength := MaxLength;
    TRichEdit(lRichEdit).PlainText := PlainText;
    TRichEdit(lRichEdit).ScrollBars := ScrollBars;


    Stream := TStringStream.Create(s);
    try
      lRichEdit.Lines.LoadFromStream(Stream);
    finally
      Stream.Free;
    end;

    lBmp := TBitmap.Create;
    lCanvas := TCanvas.Create;
    lBmp.Width := ClientRect.Right - ClientRect.Left;
    lBmp.Height := ClientRect.Bottom - ClientRect.Top;

    lCanvas.Handle := Message.Dc;
    ch := 0;

    lBmp.Canvas.Brush.Color := Color;
    lBmp.Canvas.Brush.Style := bsSolid;
    lBmp.Canvas.FillRect(ClientRect);

    RichEditToCanvas(lRichEdit,lBmp.Canvas,Screen.PixelsPerInch);
    lCanvas.Draw(0,0, lBmp);

    lRichEdit.Free;
    lBmp.free;
    lCanvas.free;
  end;
end;

Saludos.

Perdón, me había dejado la función RicheditToCanvas:

Código Delphi [-]
procedure RicheditToCanvas(aRichEdit: TCustomRichEdit; BMP: TBitmap; var LastChar: Integer);
var
  Range: TFormatRange;
  LogX, LogY: Integer;
  TextLenEx: TGetTextLengthEx;
  MaxLen: LongInt;
begin
  //SendMessage(aRichEdit.Handle, EM_FORMATRANGE, 0, 0);
  LogX := GetDeviceCaps(BMP.Canvas.Handle, LOGPIXELSX);
  LogY := GetDeviceCaps(BMP.Canvas.Handle, LOGPIXELSY);

  FillChar(Range, SizeOf(Range), 0);

  Range.rcPage.Top    := 0;
  Range.rcPage.Left   := 0;
  Range.rcPage.Right  := PixelsToTwips(BMP.Width, LogX);
  Range.rcPage.Bottom := PixelsToTwips(BMP.Height, LogY);

  Range.rc := Range.rcPage;
  Range.chrg.cpMin := LastChar;
  Range.chrg.cpMax := -1;
  Range.hdc := BMP.Canvas.Handle;
  Range.hdcTarget := Range.hdc;

  try
    LastChar := aRichEdit.Perform(EM_FORMATRANGE, 1, Integer(@Range));
    aRichEdit.Perform(EM_DISPLAYBAND, 0, Integer(@Range.rc));

    //MaxLen:= aRichEdit.GetTextLen;
    with TextLenEx do
    begin
      flags:= GTL_DEFAULT;
      codepage:= CP_ACP;
    end;
    MaxLen := aRichEdit.Perform(EM_GETTEXTLENGTHEX, WParam(@TextLenEx), 0);

    if LastChar >= MaxLen then
      LastChar:= -1;
  finally
    Range.hdc := BMP.Canvas.Handle;
    Range.hdcTarget := Range.hdc;
    aRichEdit.Perform(EM_FORMATRANGE, 0, 0);
  end;
end;

Última edición por Mendizabal fecha: 20-10-2016 a las 15:00:52.
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
DBctrlGrid, DBimage y JPG jcamalmx Gráficos 4 18-02-2018 19:20:54
JPG, DBImage y DBCtrlGrid jcamalmx Gráficos 2 19-07-2011 23:46:46
Dbctrlgrid e insert marcosmendozaa Varios 1 29-12-2008 01:02:52
Acerca del DBCtrlGrid lgarcia OOP 2 05-03-2005 00:04:59
DBLookupComboBox y DBCtrlGrid javiermorales OOP 1 07-05-2003 02:48:44


La franja horaria es GMT +2. Ahora son las 19:25:59.


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