![Старый](images/statusicon/post_old.gif)
04.01.2009, 14:24
|
![Аватар для Profi](image.php?s=c26204b0672bb97e5c34556acc454936&u=5859&dateline=1230191991) |
Прохожий
|
|
Регистрация: 21.12.2008
Сообщения: 10
Репутация: 10
|
|
Не воспринимает BITMAP
Программа должна вставлять изображения из буфера в компонент Image, но формат CF_BITMAP почему-то не распознается. Как вы думаете, почему?
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls,Clipbrd, jpeg;
type
TForm1 = class(TForm)
Button1: TButton;
PasteButton: TButton;
Image1: TImage;
procedure Button1Click(Sender: TObject);
procedure PasteButtonClick(Sender: TObject);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
FClipboardOwner:HWnd;
procedure ClipboardChanged;
procedure WMDrawClipboard(var Msg: TWMDrawClipboard);
message WM_DRAWCLIPBOARD;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
Clipboard.Assign(Image1.Picture);
end;
procedure TForm1.PasteButtonClick(Sender: TObject);
begin
Image1.Picture.Assign(Clipboard);
end;
procedure TForm1.ClipboardChanged;
var
i:integer;
begin
PasteButton.Enabled:=False;
for i:=0 to Clipboard.FormatCount - 1 do //до колва форматов в буфере
begin
if Clipboard.HasFormat(CF_BITMAP) then
begin
PasteButton.Enabled:=True;
Break;
end;
end;
end;
procedure TForm1.WMDrawClipboard(var Msg: TWMDrawClipboard);
begin
SendMessage(FClipboardOwner,WM_DRAWCLIPBOARD,0,0);
Msg.Result:=0;
ClipboardChanged;
end;
procedure TForm1.FormShow(Sender: TObject);
begin
FClipboardOwner:=SetClipboardViewer(Handle);
ClipboardChanged;
end;
end.
lmikle: Используем правильные теги!
|