Форум: "Начинающим";
Текущий архив: 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.01 c