Форум: "Начинающим";
Текущий архив: 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