Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.02.27;
Скачать: CL | DM;

Вниз

TBitmap   Найти похожие ветки 

 
DJ_Sedoy ©   (2003-02-17 02:28) [0]

Подскажите, что плохого в следующем:

Var a: TBitmap;
i: TImage;

.....

procedure Something;
Begin
a:=TBitmap.Create;
a:=Image1.Picture.Bitmap;
end;

......

procedure Lala;
Begin
i:=TImage.Create(nil);
i.Parent:=Form1;
i.Picture.Bitmap:=a;
a.free;
end;

Пытается обратиться по адресу 0000000 в момент присваивания i.Picture.Bitmap:=a;
Такая же сидуация и при TPicture.
То есть я просто хочу в некой переменной сохранить картинку, чтобы потом когда нужно поместить её в какой-нить Image.


 
Ну   (2003-02-17 02:59) [1]

вот например явная чушь:

>procedure Something;
>Begin
>a:=TBitmap.Create;
>a:=Image1.Picture.Bitmap;

переменной a сначала присваивается указатель на вновь созданную структуру (object) TBitmap. Затем, в следующей строке, этой переменной присваивается указатель на что-то иное (неизвестно на что, поскольку в тексте сабжа нигде не описана переменная Image1.
Что будет далее при обращении к переменной "а" - только бог знает, а точнее (поскольку я не верю в ЕГО существование), то никто не знает!


 
DJ_Sedoy ©   (2003-02-17 03:20) [2]

Type TForm1 = class (TForm)
Image1 : TImage
..........
end;

Var a: TBitmap;
i: TImage;
.....

procedure Something;
Begin
a:=TBitmap.Create;
a:=Image1.Picture.Bitmap;
end;
......

procedure Lala;
Begin
i:=TImage.Create(nil);
i.Parent:=Form1;
i.Picture.Bitmap:=a;
a.free;
end;

Есть та картинка. Она есть, с загруженным изображением.

with Image1.Picture.Bitmap do
begin
Width:= Image1.Width;
Height:= Image1.Height;
Canvas.CopyRect(Rect(0, 0, Width, Height), a.Canvas, Rect(0, 0, Width, Height));
end;


Так тоже не хочет.


 
Drin ©   (2003-02-17 03:21) [3]


> i.Picture.Bitmap:=a;


"а" в этот момент равняется 0, потому что "а" это указатель на объект класса.


 
DJ_Sedoy ©   (2003-02-17 03:39) [4]

Действительно.
Спасибо. Всё получилось. Такое присваивание было некорректным, конечно.
Я должен был Canvas.CopyRect как в ту, так и другую сторону.

Тогда еще вопрос:

Var f: TFont;
Begin
.....
f:=TFont.Create;
f:=Label1.Font;
....
end;

а в таком случае как быть? Есть ли выход?


 
ЮЮ ©   (2003-02-17 04:45) [5]

Есть ещё такой метод Assign

a.Assigh(Image1.Picture.Bitmap);
f.Assign(Label1.Font);



Страницы: 1 вся ветка

Текущий архив: 2003.02.27;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.014 c
1-87362
Victa
2003-02-15 22:42
2003.02.27
DCOM Events


9-87236
NikotiN
2002-09-21 11:14
2003.02.27
Как сохранить и как использовать ландшафт из 3DSMax5(4,3) в Delph


1-87509
Ricks
2003-02-16 15:11
2003.02.27
Hide underlined letters for keyboard navigation....


1-87500
cyberwolf
2003-02-15 21:43
2003.02.27
Повтор события onkeydown


3-87319
Брат
2003-02-10 15:58
2003.02.27
Просмотр VIEW