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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.04.2010, 17:49   #1
Ital1cs
 
Регистрация: 26.03.2010
Сообщений: 7
Злость ShowModal, close!!!!

Всем привет.

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

unit Unit2;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, jpeg, ExtCtrls;

type
TForm2 = class(TForm)
Image1: TImage;
Image2: TImage;
Image3: TImage;
procedure FormCreate(Sender: TObject);
procedure Image2MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Image2MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form2: TForm2;

implementation

uses Unit1;

{$R *.dfm}
procedure TForm2.FormCreate(Sender: TObject);
begin
form2.ShowModal;
end;


procedure TForm2.Image2MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Image2.Visible:=false;
Image3.Visible:=true;
end;


procedure TForm2.Image2MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Image3.Visible:=false;
Image2.Visible:=true;

Form1:= TForm1.Create(Application);
form1.Show;
form1.WindowState:=wsMaximized;
form2.Close; //не срабатывает с первого раза!! только со второго!!
end;
Ital1cs вне форума Ответить с цитированием
Старый 02.04.2010, 18:39   #2
Alex2009
Proger Man
Форумчанин
 
Аватар для Alex2009
 
Регистрация: 07.03.2009
Сообщений: 584
По умолчанию

Вот сделал вот так и у меня все заработало.

Код:
procedure TForm2.Image1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
form2.Close; //íå ñðàáàòûâàåò ñ ïåðâîãî ðàçà!! òîëüêî ñî âòîðîãî!!
form1.Show;
form1.WindowState:=wsMaximized;
Form1:= TForm1.Create(Application);
end;
ShowMessage('Добро пожаловать!');
Alex2009 вне форума Ответить с цитированием
Старый 02.04.2010, 18:39   #3
Alex2009
Proger Man
Форумчанин
 
Аватар для Alex2009
 
Регистрация: 07.03.2009
Сообщений: 584
По умолчанию

Вот сделал вот так и у меня все заработало.

Код:
procedure TForm2.Image1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
form2.Close; //íå ñðàáàòûâàåò ñ ïåðâîãî ðàçà!! òîëüêî ñî âòîðîãî!!
form1.Show;
form1.WindowState:=wsMaximized;
Form1:= TForm1.Create(Application);
end;
ShowMessage('Добро пожаловать!');
Alex2009 вне форума Ответить с цитированием
Старый 02.04.2010, 19:50   #4
Ital1cs
 
Регистрация: 26.03.2010
Сообщений: 7
По умолчанию

не получилось, может причина в том что form1 это дочерняя форма в MDI приложении?
причем получается так что при первом нажатии создется эта форма, но form2 не закрывается, при повторном нажатии кнопки второй раз создается form1 и на этот раз уже закрывается form2.
Ital1cs вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Open&Close в С++ sabov Помощь студентам 8 11.12.2009 23:30
activeWorkBook.Close на вылет tolikman Microsoft Office Excel 3 05.09.2008 23:43
вызов из dll не ShowModal. Roof Общие вопросы Delphi 7 25.07.2008 15:22
AlphaBlend + ShowModal Cardagant Общие вопросы Delphi 2 11.06.2008 15:42
В дельфи это ShowModal а в Си-шарпе? Gauss Общие вопросы .NET 8 02.04.2008 15:35