- Код: Выделить всё
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
ExtCtrls, ExtDlgs;
type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
PaintBox1: TPaintBox;
OpenDialog1: TOpenDialog;
Button2: TButton;
procedure FormCreate(Sender: TObject);
procedure PaintBox1Paint(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ private declarations }
public
b: TBitmap;
end;
var
Form1: TForm1;
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.FormCreate(Sender: TObject);
begin
b:= TBitmap.Create;
end;
procedure TForm1.PaintBox1Paint(Sender: TObject);
begin
PaintBox1.Canvas.Draw(0,0, b);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
b.LoadFromFile(OpenDialog1.FileName);
PaintBox1Paint(Sender);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
b.LoadFromFile('C:\111\16000x12000.bmp');
PaintBox1Paint(Sender);
end;
end.
Через OpenDialog1 сразу же вылектает, через прямой путь Button2 грузится около миниту. Не вылетает, но PaintBox после загрузки становится чёрным (картинку не видно).
Скорее всего не хватает памяти (стоит Win-7 x86, ОЗУ - 4 ГГб).
А с загрузкой в Image не получилось?