Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
KaKTyc_MyTareH
0 / 0 / 0
Регистрация: 23.12.2010
Сообщений: 18
1

Сделать так, чтобы при щелчке мышью на одной из фигурок управление передавалось на эту фигуру

26.03.2011, 12:32. Просмотров 1585. Ответов 10
Метки нет (Все метки)

здравствуйте, надеюсь на помощь, вопрос такой
Дано игровое поле на катором расположено 20 фигурок (поле сделано в графическом редакторе), делать ход нужно одной из этих фигурок (фигурки тоже сделаны в графическом редакторе), вопрос в том как сделать чтобы при щелчке мышью на одной из фигурок управление передавалось на эту фигуру, т.е. если нужно сдвинуть первую фигуру, то щелкаем по ней и управляем ей, если же фигуру под номером 2, то после щелчка мыши по 2ой фигурке управление передавалось ей.
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.03.2011, 12:32
Ответы с готовыми решениями:

Как сделать так чтобы value в форме стирался, при щелчке мыши по полю
Господа, здравствуйте ! Подскажите пожалуйста как можно реализовать чтобы в форме удалялся value...

Как сделать так чтобы при изменении одной переменной изменялась другая?
Как сделать так чтобы при изменении одной переменной изменялась другая?

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

Как сделать так,чтобы при решении 2 функций выводил результат одной функции
#include<stdio.h> #include<math.h> #include<stdlib.h> int main (int argc, char *argv) { float...

Сделать так, чтобы форма не двигалась когда берут её мышью за название
здравствуйте, собственно сабж, Ворд ВБА, спасибо

10
sanya923
69 / 69 / 43
Регистрация: 26.01.2011
Сообщений: 160
26.03.2011, 13:01 2
Запихнуть каждую фигурку в Image. Если у вас, например, курсор над 7-ой фигурой, то вы к ней и обратитесь.
0
KaKTyc_MyTareH
0 / 0 / 0
Регистрация: 23.12.2010
Сообщений: 18
26.03.2011, 13:36  [ТС] 3
фигуры через Image и сделаны, чтобы ими управлять кнопки сделаны, там для движения фигуры шаг задан в виде
Delphi
1
2
3
4
5
6
if(k1.Left-66)>=460 then
if not ((k1.left-66=526) and (k1.top=455)) then
if not ((k1.left-66=526) and (k1.top=521)) then
if not ((k1.left-66=526) and (k1.top=191)) then
if not ((k1.left-66=526) and (k1.top=125)) then
k1.Left:=k1.Left-66;
где k1- это имя фигуры
и вот нужно сделать так чтобы при выборе определенной фигуры она двигалась по этому же условию, т.е. чтобы "k1" поменялось на "k2" например
0
sanya923
69 / 69 / 43
Регистрация: 26.01.2011
Сообщений: 160
26.03.2011, 15:11 4
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Delphi
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
type
  TForm1 = class(TForm)
    Image1: TImage;
    Button1: TButton;
    Image2: TImage;
    procedure Button1Click(Sender: TObject);
    procedure Image1Click(Sender: TObject);
    procedure Image2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
  Figura: TImage;
 
implementation
 
{$R *.dfm}
 
//кнопка для смещения вправо
procedure TForm1.Button1Click(Sender: TObject);
begin
  Figura.Left:=Figura.Left+10;  
end;
 
//выбор 1-ой фигуры кликом по ней
procedure TForm1.Image1Click(Sender: TObject);
begin
  Figura:=Image1;
end;
 
//выбор 2-ой фигуры кликом по ней
procedure TForm1.Image2Click(Sender: TObject);
begin
  Figura:=Image2;
end;
 
end.
1
26.03.2011, 15:11
KaKTyc_MyTareH
0 / 0 / 0
Регистрация: 23.12.2010
Сообщений: 18
30.03.2011, 09:58  [ТС] 5
спасибо за помощь)
ещё вот вопрос, как я уже говорил поле сделано графически, состоит оно из клеток, можно ли как нибудь задать клеткам поля значения вида А[i,j], ну т.е. чтобы ячейки были сделаны как двумерныймассив? если можно то как?
0
Евгений В
890 / 652 / 131
Регистрация: 01.03.2010
Сообщений: 1,241
30.03.2011, 10:45 6
KaKTyc_MyTareH,
Твой вопрос похоже полностью пересекается с темой Создать класс шахматной фигуры, присвоить ей картинку и разместить ее на доске
Но если ты не хочешь использовать поле из Panel, как в этой ссылке сделано, а хочешь рисовать его, то вместо массива из TPanel можно сделать массив из TImage. Из этого массива сделай поле, совпадающее с картинкой. Идея в том, что пустой Image прозрачный, и его не видно будет на твоем графическом поле.
0
KaKTyc_MyTareH
0 / 0 / 0
Регистрация: 23.12.2010
Сообщений: 18
30.03.2011, 12:33  [ТС] 7
вот это как раз и нужно через TImage, только не пойму это мне номера ячеек например [1,1] [1,2] в имени элемента TImage нужно писать или где?
0
DedBoroda
ComfyMobile
88 / 88 / 8
Регистрация: 04.11.2010
Сообщений: 376
30.03.2011, 13:35 8
это пятнашки?
0
KaKTyc_MyTareH
0 / 0 / 0
Регистрация: 23.12.2010
Сообщений: 18
30.03.2011, 13:41  [ТС] 9
нет, игра 20 кур и 2 лисы
0
reb00t365
7 / 7 / 2
Регистрация: 04.03.2011
Сообщений: 58
30.03.2011, 20:06 10
KaKTyc_MyTareH,
Юзай статические массивы, типа figure[k], где k номер фигуры...
0
KaKTyc_MyTareH
0 / 0 / 0
Регистрация: 23.12.2010
Сообщений: 18
30.03.2011, 21:36  [ТС] 11
reb00t365,
несовсем понял о чем ты, но помоему это не то=) нужен именно двумерный массив, просто это первое что я пишу на делфи, работу уже скоро сдавать надо, а я запарился на том как сделать массив, вот Евгений В, говорил нащет TImage, я их расставил, как вы и говорили когда они пустые- они прозрачные, но как мне теперь все это обозначить в массив?
0
30.03.2011, 21:36
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.03.2011, 21:36

Как сделать так, чтобы при вводе данных в одной таблице, они вводились автоматически во второй?
У меня есть две таблицы в SQL Заявки и Материалы. В Материалах есть поля код материала,...

Как сделать так, чтобы при открытии одной папки появлялось окно с запросом логина и пароля, а другой — нет?
Добрый день ! У меня такая проблема: есть КД Windows Server 2012 R2 Essential и расшаренная...

Как сделать чтобы при щелчке в ListView выделялась вся строка?
Как сделать чтобы при щелчке в ListView выделялась вся строка? (как в TotalComander)


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.