Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.01.08;
Скачать: [xml.tar.bz2];

Вниз

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

 
з. танька   (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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.007 c
14-1134631855
vecna
2005-12-15 10:30
2006.01.08
Путин хочет запретить иностранные банки в России


5-1120815943
hair
2005-07-08 13:45
2006.01.08
иерархический dbgrid


14-1134464687
ZeroDivide
2005-12-13 12:04
2006.01.08
Исполение новогодних желаний


2-1134833592
dude
2005-12-17 18:33
2006.01.08
что в Delphi называется словом ?


14-1134028622
WondeRu
2005-12-08 10:57
2006.01.08
Начинаю ненавидеть людей, которые присылают "письма счастья"!





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский