Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.022 c
14-1134396390
kaif
2005-12-12 17:06
2006.01.08
Взглянул на баннер Visual Studio :)


4-1130938577
Piter
2005-11-02 16:36
2006.01.08
Shutdown компьютера.


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


2-1134849844
malenkii_myk
2005-12-17 23:04
2006.01.08
Данные из TFileStream в TString, как реализовать ?


4-1130767725
RomeoGolf
2005-10-31 17:08
2006.01.08
Свернуть дочернее окно в панель задач




   Наверх