![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
|
Estoy haciendo un pequeño editor con un RxRichEdit, pero no sé como insertar una imagen; si la tengo en el portapapeles sí, claro, pero si el usuario elige un archivo de imagen como puedo cargarlo en el RxRich?
Salu2 a tod@s. |
|
#2
|
||||
|
||||
|
Hay muchas formas de hacerlo, esta creo que es más que fácil:
Código:
var
Pic: TPicture;
begin
if OpenPictureDialog1.Execute Then
begin
Pic := TPicture.Create;
try
Pic.LoadFromFile(OpenPictureDialog1.FileName);
Clipboard.Assign(Pic);
RxRichEdit1.PasteFromClipboard;
finally
Pic.Free;
end;
end;
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
|
|
#3
|
|||
|
|||
|
Gracias, lo acabo de probar y va bastante bien, el único problema es cuando quiero insertar un gif con transparencias, que la transparencia "se la salta" y pone un fondo de imagen negro ¿alguna idea?
Un saludo |
|
#4
|
||||
|
||||
|
Desconozco si el RTF y el RichEdit soportan imágenes transparentes.
Saludos!
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
|
|
#5
|
|||
|
|||
|
Creo que sí porque cuando lo pego con Control+V sí coge bien las transparencias.
Salu2 |
|
#6
|
||||
|
||||
|
Probé usar el TGIFImage de las RxLibs, pero también falla porque lo copia al portapapeles como si cada frame del Gif fuera un Bitmap:
Código:
Frames[0].Bitmap.SaveToClipboardFormat(AFormat, AData, APalette); Código:
uses
RxGIF, Clipbrd;
procedure TForm1.Button1Click(Sender: TObject);
var
GIF: TGIFImage;
MyFormat : Word;
AData : THandle;
APalette : HPALETTE;
begin
if OpenPictureDialog1.Execute Then
begin
GIF := TGIFImage.Create;
try
GIF.LoadFromFile(OpenPictureDialog1.FileName);
GIF.SaveToClipBoardFormat(MyFormat, AData, APalette);
ClipBoard.SetAsHandle(MyFormat, AData);
RxRichEdit1.PasteFromClipboard;
finally
GIF.Free;
end;
end;
end;
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
|
![]() |
|
|
|