Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.01.2010, 17:13   #1
-BlindGuardian-
Пользователь
 
Аватар для -BlindGuardian-
 
Регистрация: 09.01.2010
Сообщений: 14
По умолчанию Image обновление

Вот такая проблема у меня появилась. Программа наподобие графического редактора - на форме есть 2 image.
Один - рабочее поле, второй - миниизображение (навигатор) а-ля фотошоп. При каждом изменении первого имеджа, картинка заносится во временный файл (для возможности шага назад). Из этого же временного файла сразу же беру картинку для навигатора - чтобы изображения соответствовали. Но навигатор подвисает.
Т.е в нем не отображается последнее изменение. Однако если свернуть форму, затем развернуть - ситуация меняется и все обновляется. Это конечно хорошо, но пользователь каждый раз сворачивать окно не будет.
Пробовал метод Image.Refresh - безрезультатно.
В чем проблема?
Хороший, плохой...да какая разница? Главное - у кого ружье!
-BlindGuardian- вне форума Ответить с цитированием
Старый 31.01.2010, 17:19   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Из этого же временного файла сразу же беру картинку для навигатора
Зачем из файла ?
Почему просто не сделать Assign ?
mihali4 вне форума Ответить с цитированием
Старый 31.01.2010, 17:39   #3
-BlindGuardian-
Пользователь
 
Аватар для -BlindGuardian-
 
Регистрация: 09.01.2010
Сообщений: 14
По умолчанию

Цитата:
Сообщение от mihali4 Посмотреть сообщение
Зачем из файла ?
Почему просто не сделать Assign ?
Можно подробнее? Как работает процедура? Работаю не на своей машине сейчас, тут хелпника к делфи нету...^^
Хороший, плохой...да какая разница? Главное - у кого ружье!

Последний раз редактировалось -BlindGuardian-; 31.01.2010 в 17:41.
-BlindGuardian- вне форума Ответить с цитированием
Старый 31.01.2010, 17:58   #4
MadReason
Ищу работу
Форумчанин
 
Аватар для MadReason
 
Регистрация: 16.02.2007
Сообщений: 269
По умолчанию

Код:
Image2.Picture.Assign(Image1.Picture);
Пишу на Delphi все что угодно, недорого, красиво, с комментариями
###icq 107335###
MadReason вне форума Ответить с цитированием
Старый 31.01.2010, 19:30   #5
-BlindGuardian-
Пользователь
 
Аватар для -BlindGuardian-
 
Регистрация: 09.01.2010
Сообщений: 14
По умолчанию

Тоже самое. Обновляется только при сворачивании и разворачивани формы.
Хороший, плохой...да какая разница? Главное - у кого ружье!
-BlindGuardian- вне форума Ответить с цитированием
Старый 31.01.2010, 19:35   #6
Kotofff
Участник клуба
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Сообщений: 1,917
По умолчанию

А может все-таки вместо Image.Refresh попробовать Image.Repaint - потому как при разворачивании формы как раз происходит перерисовка всех контролов ...
"Заряженному танку в дуло не смотрят" @Dekmer in WoT
Kotofff вне форума Ответить с цитированием
Старый 31.01.2010, 20:43   #7
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Опробовал простенько - никаких "затыков" не вижу:
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
Image2.Picture.Assign(Image1.Picture);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
with Image1.Canvas do
begin
MoveTo(20,20);
Pen.Width:=5;
LineTo(100,100);
end;
end;
Проявляется моментально, безо всяких "репэйнтов"...
Может вы не на той канве рисуете ?
mihali4 вне форума Ответить с цитированием
Старый 01.02.2010, 00:32   #8
-BlindGuardian-
Пользователь
 
Аватар для -BlindGuardian-
 
Регистрация: 09.01.2010
Сообщений: 14
По умолчанию

Опытным путем выяснено что проблема заключается в том, что второй имедж находиться на панели.
Если его с панели убрать - все прекрасно обновляется.
Пробовал обновлять саму панель - фиг.
Хороший, плохой...да какая разница? Главное - у кого ружье!
-BlindGuardian- вне форума Ответить с цитированием
Старый 01.02.2010, 00:43   #9
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Переложил Image2 на Panel1 - ничего не изменилось...
Все так же прекрасно обновляется.
Без выкрутасов.
mihali4 вне форума Ответить с цитированием
Старый 16.01.2022, 06:34   #10
noveek
Пользователь
 
Регистрация: 26.05.2015
Сообщений: 56
По умолчанию

Сегодня столкнулся ровно с этой же проблемой
Код:
Image1.Picture.FreeImage;
Image1.Refresh;
Image1.Repaint;
Image1.picture.Assign(bmp);
Не помогает

UPD:
Помогло так:
Код:
Image1.picture.Assign(bmp);
Image1.visible:=false;
Image1.visible:=true;

Последний раз редактировалось noveek; 16.01.2022 в 07:00.
noveek вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Полупрозрачный image postal2 Мультимедиа в Delphi 11 23.05.2012 19:30
Вопрос по Image (скачанная картинка не хочет выводиться в Image) Radnor Мультимедиа в Delphi 2 06.07.2009 02:20
Image IVANSour Общие вопросы Delphi 10 19.01.2009 18:11
image Черничный Общие вопросы Delphi 2 25.06.2008 16:09
image Elm0 Свободное общение 4 21.06.2007 17:34