0 / 0 / 0
Регистрация: 07.09.2011
Сообщений: 34
1

Мерцание компонента Timage и перемещение Timage при нажатии

19.10.2011, 06:43. Показов 6516. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте!
Помогите убрать мерцание компонента Timage при изменении размера. Нашел в поиске, советуют так:
Код
procedure TForm1.FormCreate(Sender: TObject);
begin
  Image1.Controlstyle :=image1.Controlstyle + [csopaque]
end;
Но все равно мерцает.
И подскажите, пожалуйста, с реагированием кнопки на нажатие. Нужно при клике на Timage( использую как кнопку) немного сместить ее вниз и вправо, а при отжатии, чтобы она вставала на свое место.
Нашел только перемещение за курсором:
Код
implementation

var x0,y0:integer;
move:boolean;

{$R *.DFM}

procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
    if button<>mbLeft then move:=false //если нажали не левой кнопкой, то перемещать не будем!
  else begin
     move:=true;
    x0:=x; //запоминаем начальные координаты
    y0:=y; //запоминаем начальные координаты
  end;
end;

procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
   if move then begin
     image1.SetBounds(image1.Left+x-x0,image1.Top+y-y0,image1.width,image1.height);
   end;
end;

procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
   move:=false;
end;
Немного переделал код:
Код
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  if move then begin
     image1.SetBounds(image1.Left+1,image1.Top+3,image1.width,image1.height);
  end;
end;
Но перемещается за мышкой, а не просто на определенное место.
Как переделать код(или другой), чтобы всего навсего немного вниз и вправо, а при отжимании кнопки мыши - коспонент Timage вставал на место?

Добавлено через 23 часа 13 минут
Код
procedure TForm1.FormResize(Sender: TObject);
begin
  Form1.Doublebuffered:=true;
end;
Убирается мерцание.
0
19.10.2011, 06:43
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.10.2011, 06:43
Ответы с готовыми решениями:

При нажатии на определенную область TImage вывести сообщение или подсказку
Дана картинка TImage и при нажатии определенной области выводится сообщение или подсказка о компоненте. Например картинка палитры...

Как по нажатию мыши менять TImage и перерисовывать на него bmp с другого TImage?
Есть два TImage. На Image1 картинка TBitmap, Image1 растянут на всю форму. При нажатии на Image1 и OnMouseMove var x1, y1: integer; ...

Как устранить мерцание объектов формы (timage, tshape)?
у меня на форме есть объект timage, свойство picture которого меняется в зависимости от событий на форме, но при изменении этого свойства...

4
7 / 7 / 5
Регистрация: 01.01.2012
Сообщений: 111
17.04.2012, 14:13 2
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// Нажали на кнопку мыши
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
 Image1.Left := Image1.Left + 1;
 Image1.Top := Image1.Top + 1;
end;
 
// Отпустили
procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
 Image1.Left := Image1.Left - 1;
 Image1.Top := Image1.Top - 1;
end;
0
Житель Земли
 Аватар для DenNik
3002 / 3011 / 390
Регистрация: 26.07.2011
Сообщений: 11,465
Записей в блоге: 1
18.04.2012, 10:06 3
Цитата Сообщение от Sologen Посмотреть сообщение
Помогите убрать мерцание компонента Timage при изменении размера.
при старте формы напиши
Delphi
1
DoubleBuffered:= true
или

положи Image на Panel, тоже помогает (не забудь растянуть на всю клиентскую область)
0
Заблокирован
20.04.2012, 22:57 4
Объясните конкретнее для чего это нужно. Мне кажется вы все тут фигнёй заниметесь
0
Житель Земли
 Аватар для DenNik
3002 / 3011 / 390
Регистрация: 26.07.2011
Сообщений: 11,465
Записей в блоге: 1
23.04.2012, 12:39 5
Цитата Сообщение от Lirrk Посмотреть сообщение
Объясните конкретнее для чего это нужно. Мне кажется вы все тут фигнёй заниметесь
Перекрестился?
0
23.04.2012, 12:39
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.04.2012, 12:39
Помогаю со студенческими работами здесь

Перемещение Timage
Как сделать перемещение TImage по клику, т.е нажать на Timage, а затем в место куда ее переместить?

Движение компонента TImage.
Здравствуйте. Нужна помощь в реализации движения компонента TImage. В программе есть класс. У каждого объекта класса есть свои параметры,...

Создание компонента Timage
Необходимо создать компонент на основе Timage, со встроенными событиями. при OnMouseDown размеры уменьшались, а при OnMouseUp размер...

Перемещение TImage по форме
Вопрос такой: Можно ли перемещать image по форме без сторонних компонентов, так, чтобы изображение в ней не мигало? Побывал просто...

Перемещение Timage мышью
У меня на форме есть картинка как мне её перемещать мышкой? Заранее спасибо!


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Опции темы

Новые блоги и статьи
Возврат файла к состоянию указанного коммита Git
hw_wired 12.02.2025
Git - распределенная система контроля версий, без которой сложно представить современную разработку программного обеспечения. Когда речь заходит о восстановлении файлов, Git предоставляет целый. . .
Сброс локальной ветки Git до состояния HEAD удаленного репозитория
hw_wired 12.02.2025
Работая в команде разработчиков, часто сталкиваешься с ситуацией, когда локальная версия кода существенно отличается от той, что находится в центральном репозитории. Такое расхождение может. . .
Запрет подсветки выделения текста с помощью CSS
hw_wired 12.02.2025
Выделение текста - одна из базовых возможностей взаимодействия пользователя с контентом на веб-странице. Однако в некоторых случаях стандартное поведение выделения может нарушать задуманный дизайн. . .
Выполнение другой программы из приложения Python
hw_wired 12.02.2025
При разработке современных приложений часто возникает потребность в запуске и взаимодействии с другими программами прямо из кода. Python предоставляет множество эффективных средств для выполнения. . .
Отличия между let и var в JavaScript
hw_wired 12.02.2025
Работа с переменными - один из основных моментов при написании программ на JavaScript. От правильного объявления и использования переменных зависит не только читаемость кода, но и его надежность, а. . .
Подключение файла JavaScript в других файлах JavaScript
hw_wired 12.02.2025
Самый современный и рекомендуемый способ подключения JavaScript-файлов - использование системы модулей ES6 с ключевыми словами 'import' и 'export'. Этот подход позволяет явно указывать зависимости. . .
Отмена изменений, не внесенных в индекс Git
hw_wired 12.02.2025
Управление изменениями в Git - одна из важнейших задач при разработке программного обеспечения. В процессе работы часто возникают ситуации, когда нужно отменить внесенные изменения, которые еще не. . .
Что такое px, dip, dp, and sp в Android
hw_wired 12.02.2025
При разработке мобильных приложений для Android одним из ключевых вызовов становится адаптация интерфейса под различные устройства. А ведь их действительно немало - от компактных смартфонов до. . .
Отличия POST и PUT в HTTP
hw_wired 12.02.2025
В основе современного интернета лежит протокол HTTP, который определяет правила взаимодействия между клиентами и серверами. Этот протокол предоставляет набор методов, позволяющих клиентам выполнять. . .
Перемещение последних коммитов в новую ветку Git
hw_wired 12.02.2025
В процессе разработки иногда возникает ситуация, когда последние изменения в основной ветке нужно переместить в отдельную ветку разработки. Может оказаться, что вы внесли несколько коммитов в ветку. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru