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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.12.2009, 15:29   #1
like_cloud
Пользователь
 
Аватар для like_cloud
 
Регистрация: 09.12.2009
Сообщений: 29
По умолчанию Вопрос по формам и перемещению объектов

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

в программе(гоночки) есть 2 формы. При запуске программы на монитор отображается главная форма Form1(типа главного меню). При нажатии на кнопку скрываем главную форму и отображаем форму с собственно игрой Form2.
Код:
procedure TForm1.StartGameButtonClick(Sender: TObject);
begin
    Form2.Show;
    Form1.Hide;
end;
Во второй форме есть обьект TImage, который можно перемещать на ней
стрелками с клавиатуры

Код:
procedure TForm2.FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
if ProcessMark<>2 then begin 
    if key=vk_left then begin
       CarLeft:=true;
    end else
    if key=vk_right then begin   
       CarRight:=ture;
    end;
end;
После нажатия собственно вызывется процедура перемещения обьекта, на которой висит таймер,вызывающий при обработке onShow етой формы.
При нажатии на кнопку Form2 должна скрываться
Код:
procedure TForm2.CloseButtonClick(Sender: TObject);
begin 
  CarLeft:=false; // на тот случай,если при клике кнопки были нажаты
  CarRight:=false;
  Form1.Show;
  Form2.Hide;
end;
Если затем мы опять нажмем на Form1 на кнопку -> скроем Form1 и покажем From2, то картинка перестает перемещаться. Проблема решается только полным перезапуском приложения.

собстна вопрос в том, как ето поправить.

или как правильно оформить процедуру что бы при клике на кнопки форма создавалась или уничтожалась и что тогда написать в главном файле проекта.
спасибо
like_cloud вне форума Ответить с цитированием
Старый 10.12.2009, 15:44   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

М.м.м а можно пощупать весь твой проект?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.12.2009, 15:49   #3
like_cloud
Пользователь
 
Аватар для like_cloud
 
Регистрация: 09.12.2009
Сообщений: 29
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
М.м.м а можно пощупать весь твой проект?
там очень много сумбурного кода - ето мой первый опыт в делфи после читания всяких учебников, правда я все откомментил по возможности.

В папке Music там должны быть 2 файла: 8bit.wav и 777.wav, закинте туда что-нито с таким названием иначе запустить не получится (с етими файлами архив весил больше положенного на етом форуме)
Вложения
Тип файла: rar 8bitRace.rar (1.46 Мб, 14 просмотров)
like_cloud вне форума Ответить с цитированием
Старый 10.12.2009, 18:02   #4
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Код:
procedure TForm2.FormKeydown (Sender: TObject; var Key: Word; Shift: TShiftState);
begin

//if GameOverMark=false then
Вот и все...

З.Ы. Хотя нет, еще не все.
Разберитесь, когда эту переменную устанавливать, а когда сбрасывать.

Последний раз редактировалось mihali4; 10.12.2009 в 18:13.
mihali4 вне форума Ответить с цитированием
Старый 10.12.2009, 18:24   #5
like_cloud
Пользователь
 
Аватар для like_cloud
 
Регистрация: 09.12.2009
Сообщений: 29
По умолчанию

Цитата:
Сообщение от mihali4 Посмотреть сообщение
Код:
procedure TForm2.FormKeydown (Sender: TObject; var Key: Word; Shift: TShiftState);
begin

//if GameOverMark=false then
Вот и все...

З.Ы. Хотя нет, еще не все.
Разберитесь, когда эту переменную устанавливать, а когда сбрасывать.
вот я дурак не заметил! Просто преогромнейшее спасибо! уже несколько часов мучаюсь

тогда вопрос на будущее:

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

Последний раз редактировалось like_cloud; 10.12.2009 в 18:28.
like_cloud вне форума Ответить с цитированием
Старый 10.12.2009, 19:03   #6
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Лучше формы (кроме главной) создавать динамически.
Этот вопрос обсуждался неоднократно, например:
http://www.programmersforum.ru/showt...E4%E0%ED%E8%E5
mihali4 вне форума Ответить с цитированием
Старый 11.12.2009, 21:49   #7
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
Лампочка

Цитата:
и что тогда написать в главном файле проекта
А там лучше не надо ничего писать...

Цитата:
как корректо открыть и закрыть форму из другой формы(вк. освобождение памяти из под нее и всех ее компонентов)?
Нажимаем "Alt + F11" и подключаем к одному юниту другой, после чего можно будет управлять из формы первого юнита формой второго юнита...
Например подключаем Unit1 к Unit2 и тогда можно из Form1 вызывать методы и свойства Form2:
Код:
procedure TForm1.ButtonClick(Sender: TObject);
begin
...
Form2.Show; // показать/открыть форму №2
...
Form2.Hide; // спрятать форму №2
...
Form2.Close; // закрыть форму №2
...
Form2.Free; // полностью убить форму №2 (не очень хорошая идея :) )
...
Form2.AlphaBlendValue:=100; // задаём "полупрозрачность" форме №2
Form2.AlphaBlend:=True; // включаем "полупрозрачность" формы №2
...
end;
Но надо помнить, что при Close главной формы закроется вся программа...

Цитата:
При запуске программы на монитор отображается главная форма Form1(типа главного меню). При нажатии на кнопку скрываем главную форму и отображаем форму с собственно игрой Form2.
Я б наоборот делал... Форму с игрой - главной, а форму "главное меню" - динамически (как предложил mihali4)...


Хм... А нужно ли вообще для "главного меню" отдельную форму лепить?
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос по перемещению курсора MoDErahN Общие вопросы Delphi 9 19.03.2010 10:53
небольшой вопрос по перемещению файлов в c# adwaer Помощь студентам 0 05.11.2009 11:08
Вопрос по формам Armatus Общие вопросы C/C++ 11 18.05.2009 17:44
Вопрос по формам max38934 Общие вопросы Delphi 4 18.05.2009 13:41
Вопрос по формам UserOK Общие вопросы Delphi 6 13.05.2008 21:25