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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.04.2008, 15:38   #1
August550
 
Регистрация: 21.04.2008
Сообщений: 7
По умолчанию Несовместимость двух операторов

Здравствуйте, помогите разобраться.

вот код Процедуры

Код:
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift : TShiftState; X, Y : Integer);
begin
 Image1.Tag := 1;
 Shift := Y;  // Здесь линия ошибки
 Shift := X;
end;
а вот ошибка

Код:
Incompatible types: 'TShiftState' and 'Integer'
Я понял что Shift присвоен TShiftState, а Y и X - Integer и в этом беда их несовместимости.
Какую корректировку нужно произвести?
August550 вне форума Ответить с цитированием
Старый 21.04.2008, 15:43   #2
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

В данном случае переменная Shift определяет состояния клавиш шифт контрл или альт, если у вас есть переменная с таким же названием то переименуйте её
SERG1980 вне форума Ответить с цитированием
Старый 21.04.2008, 15:56   #3
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Посмотрите внимательно на заголовок процедуры и особое внимание обратите на список параметров.
У вас там есть:
Shift : TShiftState;
X, Y : Integer
Честно говоря, смысл операторов
Shift := Y;
Shift := X;
я абсолютно не улавливаю, даже если бы вместо Shift было бы другое имя переменной.
Ну и конечно, нельзя присваивать друг другу значения разнотипных переменных, о чем вам и написал компилятор в ошибке...
mihali4 вне форума Ответить с цитированием
Старый 22.04.2008, 23:37   #4
August550
 
Регистрация: 21.04.2008
Сообщений: 7
По умолчанию

Кстати товарищи еще есть такой вопросик.
Т.к. тематика топика относится к той же программе, о которой я хочу задать свой следующий вопрос - не стану нагружать вас еще одной темой и спрошу здесь же. Извиняюсь если не так что.

Вот я создал проект. В него входит, как бы то сказать, несколько встроенных игр. Работать это все должно следующим образом: Я нажимаю на клавишу, и появляется новая форма с игрой, которую можно также закрыть чтобы вернуться к основной форме с кнопками из предложенных других игр.
Ошибок нет, все исправлено но мне вот что выдает всегда при запуске программы


=> насладиться я своим творением не могу Прошу подсказать что может где и как я накосячил.
August550 вне форума Ответить с цитированием
Старый 22.04.2008, 23:48   #5
MusicMan
Пользователь
 
Аватар для MusicMan
 
Регистрация: 19.04.2008
Сообщений: 66
По умолчанию

Косяк реальный. Ищи чё, где и почему. И кстати, компилер строчек
никаких не высвечивает?
Нет таких проблем, которых мы не можем себе создать
MusicMan вне форума Ответить с цитированием
Старый 23.04.2008, 00:30   #6
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
насладиться я своим творением не могу Прошу подсказать что может где и как я накосячил.
Под Дельфи запускаете и смотрите по шажочкам.
Сразу могу сказать - обращение к несуществующему объекту...
mihali4 вне форума Ответить с цитированием
Старый 23.04.2008, 00:44   #7
MusicMan
Пользователь
 
Аватар для MusicMan
 
Регистрация: 19.04.2008
Сообщений: 66
По умолчанию

Если "обращение к несуществующему объекту", обычно
не может обратиться к $00000000 memory
Нет таких проблем, которых мы не можем себе создать
MusicMan вне форума Ответить с цитированием
Старый 23.04.2008, 01:55   #8
August550
 
Регистрация: 21.04.2008
Сообщений: 7
По умолчанию

Ну на счет обращения к несуществующему объекту вполне реально т.к. сама игра можно сказать прикреплена и написана не мной. Исправил недочеты все вроде т.к. ошибок не выступает и в момент запуска программы вот такая вот "байда".

А кстати ошибки потом указывает выделенной синим строчкой на один из end; 'ов
August550 вне форума Ответить с цитированием
Старый 23.04.2008, 02:10   #9
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
А кстати ошибки потом указывает выделенной синим строчкой на один из end; 'ов
Вот. Поставьте бряку на первый оператор этого блока бегин/энд и пройдитесь шагами.
mihali4 вне форума Ответить с цитированием
Старый 23.04.2008, 08:00   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Нда... Гадания на кофейной гуще.
Автор, если хочеш путевый ответ задавай путевый вопрос, ошибки и код желательно приводить, если конечно эти ошибки не являются секретной собственностью ЦэРэУ )
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программы с использованием операторов ветвления и циклов Vitas1234 Помощь студентам 1 11.06.2008 17:41
Перегрузка операторов, Организация перегрузки операторов chagin_yav Помощь студентам 2 12.05.2008 09:15
Использование операторов цикла кася Паскаль, Turbo Pascal, PascalABC.NET 3 02.05.2008 00:32
Оптимизировать перегрузку операторов Иллидан Общие вопросы C/C++ 14 24.04.2008 11:18
Несовместимость Софта и железа Stilet Софт 6 04.10.2007 09:12