Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.06.25;
Скачать: [xml.tar.bz2];

Вниз

Вопрос по формам   Найти похожие ветки 

 
Tempora   (2006-06-08 13:18) [0]

Как вывести при запуске приложения не главную форму, а Form2 и что бы при этом главная форма была не видна пока не нажмешь кнопку ОК на Form2?
Я пробовал в коде программы использовать showmainform:=false, все работает, только если свернуть прогу - то показывается главная форма при восстановлении -(


 
_dimka ©   (2006-06-08 13:20) [1]

сделай главной форму2 а потом уже выводи форму1


 
StriderMan ©   (2006-06-08 13:25) [2]

в Form1.FormCreate показывай Form2 модально


 
Tempora   (2006-06-08 13:30) [3]

StriderMan
При этом же возникает ошибка?


 
Loginov Dmitry ©   (2006-06-08 13:33) [4]

Tempora   (08.06.06 13:30) [3]
При этом же возникает ошибка?


Создавай Form2 вручную


 
Tempora   (2006-06-08 13:36) [5]

Нет, что-то не получается... вылетает ошибка и все...


 
StriderMan ©   (2006-06-08 13:38) [6]

убери Form2 из автоматически создаваемых форм и в Form1.FormCreate

 with TForm2.Create(nil) do
 try
   ShowModal;
 finally
   Free;
 end;


 
Tempora   (2006-06-08 13:41) [7]

StriderMan
Спасибо, но опять ошибка вылазиет...


 
StriderMan ©   (2006-06-08 13:42) [8]

в каком месте? код в студию


 
Tempora   (2006-06-08 13:46) [9]

Все дело в CoolTrayIcon -(
Без нее все работает.
Даже если CoolTrayIcon поставить в enabled:=false программа вылетает с ошибкой...


 
StriderMan ©   (2006-06-08 13:53) [10]

Че за ошибка-то?
на каком месте вылетает?
че такое CoolTrayIcon


 
Tempora   (2006-06-08 14:04) [11]

Все, с cooltrayicon (компонент для работы с иконкой в трее) разобрался.
Теперь другая проблема.
Запускается программа, идет обработка события создания главной формы, там создается form2. На Form2 есть кнопка, там идет кое-какая обработка и в конце должно закрываться это окно и показываться основная форма.
Если прописать в конце form2.close, то программа вылетает с ошибкой. Как правильно закрыть форму?


 
Tempora   (2006-06-08 14:15) [12]

Вот код программы:
program Project2;

uses
 Forms,
 Unit1 in "Unit1.pas" {Form1},
 Unit2 in "Unit2.pas" {Form2};

{$R *.res}

begin
 Application.Initialize;
 Application.CreateForm(TForm1, Form1);
 Application.Run;
end.


Вот код главной формы:
unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs;

type
 TForm1 = class(TForm)
   procedure FormShow(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation
uses unit2;
{$R *.dfm}

procedure TForm1.FormShow(Sender: TObject);
begin
with TForm2.Create(nil) do
try
  ShowModal;
finally
  Free;
end;
end;

end.


Код второй формы:

unit Unit2;

interface

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

type
 TForm2 = class(TForm)
   Button1: TButton;
   procedure Button1Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form2: TForm2;

implementation

{$R *.dfm}

procedure TForm2.Button1Click(Sender: TObject);
begin
form2.close;
end;

end.


Место ошибки выделено полужирным.


 
xfree   (2006-06-08 14:18) [13]

Ты чего блуждаешь в трех соснах. Загляни в п.м. Project -> Options
Там в левом окне автосоздаваемые формы. Они обе создадутся автоматом, но видна будет только первая.
Поставь кнопку или чего хошь на первую форму и по событию OnClick Напиши Form2.Show или Form2.ShowModal.
только не забудь добавить ссылку на вторую форму в первую, п.м. File -> Use unit или Alt+F11


 
Tempora   (2006-06-08 14:46) [14]

изменил form2.close на просто close - все получилось.
Ошибку понял.
Спасибо всем.



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2006.06.25;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.011 c
1-1147934077
Damager
2006-05-18 10:34
2006.06.25
Градиентные цвета компонентов


15-1149242870
Вопрошающий
2006-06-02 14:07
2006.06.25
Алгоритм определения дня недели по дате


2-1149757702
Gamer
2006-06-08 13:08
2006.06.25
Изменение размера выпавшего окна ComboBox


15-1148769285
yurik05
2006-05-28 02:34
2006.06.25
Срочно! Помогите раскодировать?


2-1149758283
Tempora
2006-06-08 13:18
2006.06.25
Вопрос по формам





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский