26 / 26 / 3
Регистрация: 10.04.2013
Сообщений: 167
1

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

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

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

у меня есть 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.07.2013, 00:36
Ответы с готовыми решениями:

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

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

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

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

3
Модератор
3490 / 2613 / 741
Регистрация: 19.09.2012
Сообщений: 7,974
29.07.2013, 01:04 2
Попробуй добавить в ОнКрит формы:
Delphi
1
  DoubleBuffered := True;
1
Заблокирован
29.07.2013, 03:23 3
Оно давно уже свойством формы видно.
0
26 / 26 / 3
Регистрация: 10.04.2013
Сообщений: 167
29.07.2013, 13:32  [ТС] 4
Цитата Сообщение от 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
29.07.2013, 13:32
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.07.2013, 13:32
Помогаю со студенческими работами здесь

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

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

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

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru