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

Вниз

выгрузить картинку из имаги   Найти похожие ветки 

 
з. танька   (2005-12-18 15:37) [0]

привет!
закрасить можно понятное дело цветом фона но! у имаги autosize = true, и она находится в скролбоксе. так что после закрашивания остаются полосы прокрутки, и понятно, что там что то есть "невидимое". Так вот, как вообще выгрузить изображение из имаги?


 
MBo ©   (2005-12-18 16:00) [1]

А если вопрос без жаргона сформулировать?


 
з. танька   (2005-12-18 16:12) [2]

есть imgStored: TImage. он находится внутри ScrollBox. у imgStored св-во Autosize = true. далее код:


//процедура загрузки из файла:
procedure TForm1.LoadImage(path: string);
begin
 imgStored.Align := alNone;

 imgStored.Picture.LoadFromFile(path);

 if (imgStored.Width < ScrollBox1.Width) and (imgStored.Height < ScrollBox1.Height) then
   imgStored.Align := alClient
 else
   if (imgStored.Width < ScrollBox1.Width) or (imgStored.Height < ScrollBox1.Height) then
     imgStored.Align := alTop;
end;

//процедура выбора из листбокса:
procedure TForm1.lbImagesClick(Sender: TObject);
var
 s: PShortString;
begin
 if lbImages.ItemIndex = -1 then Exit;
 s := PShortString(lbImages.Items.Objects[lbImages.ItemIndex]);
 LoadImage(s^);
end;

//выбор итема в листбоксе:
procedure TForm1.lbImagesClick(Sender: TObject);
var
 s: PShortString;
begin
 if lbImages.ItemIndex = -1 then Exit;
 s := PShortString(lbImages.Items.Objects[lbImages.ItemIndex]);
 LoadImage(s^);
end;

//процедура удаления из листбокса:
procedure TForm1.btDelClick(Sender: TObject);
var
 i: Integer;
begin
 i := lbImages.ItemIndex;      //номер удаляемой

 if i > -1 then
 begin
   Dispose(PShortString(lbImages.Items.Objects[i]));
   lbImages.Items.Delete(i);
 end;

 if lbImages.Items.Count > 0 then
 begin
   if i < lbImages.Count then  //удаляемая не последняя
     lbImages.ItemIndex := i
   else
     lbImages.ItemIndex := i - 1;  //удаляемая последняя

   lbImagesClick(nil);
 end
 else begin
   //ВОТ ОНО!
   //все картинки из списка удалены, нужно очистить imgStored!
   //на данный момент там остается картинка, которая была удалена
   //только что. КАК убрать её оттуда? если просто закрасить канвас
   //цветом скроллбокса, то imgStored всё равно никуда не денется и
   //в скроллбоксе будут присутствовать полосы прокрутки. Можно
   //их убрать но потом опять ставить я не хочу! можно ли каким нибудь
   //образом убрать последнюю картинку?
 end;
end;


 
з. танька   (2005-12-18 16:15) [3]

зы:
в листбоксе имена картинок и пути к ним в св-ве Objects
в имейдже отоброжается то что выбрано в листбоксе..


 
MBo ©   (2005-12-18 16:21) [4]

не поможет ли
imgStored.Picture:=Nil;
и задание нулевых размеров TImage?


 
з. танька   (2005-12-18 16:25) [5]


> MBo ©   (18.12.05 16:21) [4]

спасибо Picture := nil работает!
я почему то пыталась делать Picture.Graphic := nil.

а нулевые размеры неработают т.к. autosize=true.



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

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

Наверх




Память: 0.48 MB
Время: 0.018 c
1-1133883673
Харько
2005-12-06 18:41
2006.01.08
Тихо шифером шурша....


14-1134230811
Kerk
2005-12-10 19:06
2006.01.08
Федеральная служба государственной статистики.


10-1111013938
val_5
2005-03-17 01:58
2006.01.08
Как работать с TwebConnection ?


2-1135223968
kaginava
2005-12-22 06:59
2006.01.08
MDIForm


2-1135222562
DelphiN!
2005-12-22 06:36
2006.01.08
Out of memory On data fetching