Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
26 / 26 / 3
Регистрация: 10.04.2013
Сообщений: 167

Тамагочи: Подскажите как изменить программу, чтобы картинка не мигала при перетаскивании

29.07.2013, 00:36. Показов 2412. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
По маленьку пишу тамагочи для себя )
так вот

у меня есть 2 картинки
1)какашки
2)Совок

когда тамагочик покакал у меня появляются какашка и совок, что бы убрать какашки я совок переношу в область какашки)

только вот тем методом как я роблю, когда двигаю картинку у меня она мигает.
может быть можно его сделать без этого мигания? вроде drag and drop - но я не выкупаю как.

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
procedure TForm1.img20MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
 if (img20.Left > 248) and (img20.left < 344) and (img20.Top in kaktop) then
  begin
 
      form1.img2.Visible := False;
  form1.mmo1.Lines.Add('Убрал какашки, заработал +30 Опыта.');
  colobok.addExp(30);
  form1.img20.Visible := false;
  ubratkaky := true;
 
    img20.left := 280;
    img20.top := 224;
  end
  else
  begin
    img13.left := 280;
    img13.top := 224;
 
  end;
end;
 
procedure TForm1.img20MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
    if (img20.Left > 248) and (img20.left < 344) and (img20.Top in kaktop) then
    begin
     img2.Visible:=false;
     Form1.img20.Picture.LoadFromFile('data\img\sovok-w-kak.png');
     end
     else begin
         img2.Visible:=true;
         Form1.img20.Picture.LoadFromFile('data\img\sovok.png');
 
     end;
 
  if flag then
  begin
 
    (Sender as Timage).left := (sender as Timage).left + x - x0;
    (Sender as Timage).top := (sender as Timage).top + y - y0;
 
  end;
end;
 
procedure TForm1.img20MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  if Button <> mbleft then
    flag := False
  else
  begin
 
    flag := true;
    x0 := x;
    y0 := y;
  end;
end;
Ниже скомпилированая программа.
Создайте новую игру, через 1.15 увидите.
и еще купите еду и зайдите в холодильник.
Бывает подвожу курсор к картинке еды и она двигается. Сделал тоже методом выше. Немного напрягает)

cори что линк. не влез файл на форум(15.8 мгб).

http://rghost.ru/47737780
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.07.2013, 00:36
Ответы с готовыми решениями:

Изменить программу так, чтобы картинка двигалась по контуру формы
Ребят, привет. Помогите, пожалуйста изменить программу, так, чтобы картинка двигалась по контору формы. Вот программа: using System; ...

Как сделать, чтобы форма мигала
Как зделать чтобы форма мигала

Как сделать, чтобы надпись в поле мигала?
На форме есть поле с именем &quot;Поле1&quot;. Как сделать, чтобы она мигала с частотой 2-3 сек.

3
Модератор
 Аватар для FIL
3492 / 2614 / 742
Регистрация: 19.09.2012
Сообщений: 7,977
29.07.2013, 01:04
Попробуй добавить в ОнКрит формы:
Delphi
1
  DoubleBuffered := True;
1
Заблокирован
29.07.2013, 03:23
Оно давно уже свойством формы видно.
0
26 / 26 / 3
Регистрация: 10.04.2013
Сообщений: 167
29.07.2013, 13:32  [ТС]
Цитата Сообщение от FIL Посмотреть сообщение
Попробуй добавить в ОнКрит формы:
Delphi
1
  DoubleBuffered := True;
спасибо, помогло.


Цитата Сообщение от Dr_Quake Посмотреть сообщение
Оно давно уже свойством формы видно.
не совсем вас понял)

Добавлено через 40 минут
У меня в программе есть обькты
При новой игре или загрузке сохранения я их активирую
Обьекты:
Тамагочи
Викторина
Лотарея
Еда
...


у меня 17 форм в программе и где - то я это еще использую.

Где мне нужно освобождать память ?

Добавлено через 53 минуты
Нашел у Себя баг.


Использую код для переноса картинок с едой на морду тамагочика.
Заметил cледуйщее, Если я не нажму ПКМ возле картинок, то получается у меня когда навожу на любую картинку с едой, она у меня начинает двигатся туда куда движется курсор.
как мне сделать условие или что то типо того, что бы после того как я двину картинку нажималась толи пкм или я хз

Pascal
1
mouse_event(MOUSEEVENTF_LEFTUP,X,Y,0,0);
но что то не помогло

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
procedure TForm1.img13MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  if Button <> mbleft then
    flag := False
  else
  begin
 
    flag := true;
    x0 := x;
    y0 := y;
  end;
end;
 
procedure TForm1.img13MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  if (img13.Left in eatleft) and (img13.Top in eattop) then
  begin
    EatFood.eat(Tomat);
    img13.left := 432;
    img13.top := 464;
  end
  else
  begin
    img13.left := 432;
    img13.top := 464;
  mouse_event(MOUSEEVENTF_RIGHTDOWN,img13.left,img13.top,0,0);
 
  end;
end;
 
procedure TForm1.img13MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
 
begin
 
  Form1.img13.ShowHint := True;
  form1.img13.Hint := 'Количество - ' + IntToStr(EatFood.CTomat);
  if flag then
  begin
 
    (Sender as Timage).left := (sender as Timage).left + x - x0;
    (Sender as Timage).top := (sender as Timage).top + y - y0;
 
  end;
 
end;
Добавлено через 1 час 12 минут
Все, с изображениями вроде разобрался.

Скажите мне, где мне в каком месте программы нужно освобождать память, которую занимают екземпляры класса?
У меня их много и пользуюсь на разных формах.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.07.2013, 13:32
Помогаю со студенческими работами здесь

Как сделать чтобы при перетаскивании формы с нарисованым рисунком Canvas рисунок сохранялся
Я нарисовал на форме фигуру с помощью Canvas и при перетаскивании формы за пределы экрана содержимое рисунка стирается как сделать чтобы...

Как получить имя файла при перетаскивании на программу?
Ну т.е. у меня консольное приложение, и нужно работать с файлом.

Как сделать, чтобы звезда мигала полностью красным цветом?
Прошу подсказать как сделать что б звезда мигала полностью красным цветом? у меня получается только линии. Вот мои наброски: ...

Подскажите,как сделать,чтобы картинка(из таблицы)отображалась на форме?
Никак не получается...при нажатии только открывается...а так нет

Изменить иконку, используемую при перетаскивании мышью
Всем здравствуйте. Речь о DragAndDrop. private void label1_MouseDown(object sender, MouseEventArgs e) { //p =...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru