Текущий архив: 2011.02.06;
Скачать: CL | DM;
ВнизПара вопросов по Дэльфи 7 Найти похожие ветки
← →
Анонимус (2010-11-14 18:18) [0]Добрый день. У меня есть два вопроса, которые для знатоков должны быть совсем не сложными.
1. Каким образом можно обновить Image? Если подробнее, то я попиксельно переношу из Image1 в Image2 картинку, например, с разрешением 100х100. Потом в Image1 загружаю картинку с разрешением 10х10 и также попиксельно переношу её в Image2. При этом, в Image2, помимо перенёсонной 10х10 картинки, там по прежнему виднеются остатки и той картинки, которая 100х100 и получается так, что маленькая картинка как будто бы накладывается на большую. Так вот, как этого избежать?
Пробовал искать в гугле, порылся по онлайн-учебникам — не нашёл. Пробовал наугад всякие Refresh, Repaint — тоже не помогает.
2. Как во время выполнения процедуры прервать выполнение этой самой процедуры? Т.е. у меня после нажатия некой кнопки идёт процедура, но в самом её начале проверяются некие условия. Так вот, как при невыполнении этих условий прервать дальнейшее выполнение процедуры?
← →
v_a_belousov (2010-11-14 18:56) [1]
> как этого избежать?
Перед переносом в Image2 надо его очистить Image2.Picture := nil если не ошибаюсь
← →
v_a_belousov (2010-11-14 18:59) [2]
> Т.е. у меня после нажатия некой кнопки идёт процедура, но
> в самом её начале проверяются некие условия. Так вот, как
> при невыполнении этих условий прервать дальнейшее выполнение
> процедуры?
>
//если условие не выполнено, то выходим
if условие<>true then exit
else
//если условие выполнено
то делай необходимые тебе операции
← →
Andy BitOff © (2010-11-14 19:07) [3]> v_a_belousov (14.11.10 18:59) [2]
> if условие<>true then exit
if not условие then exit
← →
Анонимус (2010-11-14 19:13) [4]v_a_belousov
Спасибо, помогло!
← →
Anatoly Podgoretsky © (2010-11-14 19:22) [5]И выбрал самый плохой вариант, ламерский.
← →
v_a_belousov (2010-11-14 19:29) [6]
> if not условие then exit
Ну да или так)
> И выбрал самый плохой вариант, ламерский.
В смысле?
← →
Анонимус (2010-11-14 19:50) [7]
> И выбрал самый плохой вариант, ламерский.
Вот вместо того, чтобы делать вид, что ты умнее всех, лучше бы написал как сделать лучше.
← →
clickmaker © (2010-11-14 20:04) [8]> то я попиксельно переношу из Image1 в Image2 картинку
а зачем попиксельно?
есть же Canvas.Draw
← →
И. Павел © (2010-11-14 20:07) [9]
> попиксельно переношу из Image1 в Image2 картинк
Прям в двойном цикле по Canvas.Pixels? Если никаких сложный преобразований не ведется, то проще и быстрее копировать все сразу.
Правильно и [2] и [3], но [2] считается плохим стилем.
← →
v_a_belousov (2010-11-14 20:13) [10]
> Правильно и [2] и [3], но [2] считается плохим стилем.
исправлюсь
← →
Анонимус (2010-11-14 20:26) [11]
> есть же Canvas.Draw
Это скопирует всю картинку сразу?
> Прям в двойном цикле по Canvas.Pixels?
Да, именно в нём=)
> Если никаких сложный преобразований не ведется, то проще
> и быстрее копировать все сразу.
Как раз таки мне нужны значения яркости цветов каждого пикселя, т.к. с ними производятся некоторые манипуляции. Поэтому приходиться попиксельно.
> Правильно и [2] и [3], но [2] считается плохим стилем.
Да я вообще-то не об этом спрашивал, я спрашивал о том, по какой команде прекращает своё выполнение процедура. Этой командой оказалось слово exit=)
А сама проверка условия у меня выглядит так:
if условие1 and условие2 and условие3 then ...
← →
Анонимус (2010-11-14 20:47) [12]
> а зачем попиксельно?есть же Canvas.Draw
Что-то не получается через Canvas.Draw. Как правильно задавать надо?
← →
{RASkov} © (2010-11-14 21:06) [13]> [12] Анонимус (14.11.10 20:47)
procedure TForm1.Image1Click(Sender: TObject);
begin
with TOpenPictureDialog.Create(self) do try
if Execute then begin
Image1.Picture.LoadFromFile(FileName);
Image2.Picture.Assign(Image1.Picture);
end;
finally
Free;
end;
end;
> Потом в Image1 загружаю картинку с разрешением 10х10 и также
> попиксельно переношу её в Image2.
ну или сразу грузить в оба Image"са одну и туже картинку....
← →
Анонимус (2010-11-14 22:45) [14]
> Image2.Picture.Assign(Image1.Picture);
Ага, переносит. Спасибо.
> ну или сразу грузить в оба Image"са одну и туже картинку.
> ...
В принципе, можно. Но мне вариант v_a_belousov"а больше нравится.
Страницы: 1 вся ветка
Текущий архив: 2011.02.06;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.004 c