Главная страница
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.019 c
2-1135062553
Vf
2005-12-20 10:09
2006.01.08
график


14-1134396057
VirEx
2005-12-12 17:00
2006.01.08
синхронизация потоков в API


2-1135035793
kizam
2005-12-20 02:43
2006.01.08
картинка на RichEdit-e


2-1135071433
thvfrjd
2005-12-20 12:37
2006.01.08
Вопрос по ADOStoredProc


2-1135109926
newhite
2005-12-20 23:18
2006.01.08
?