Главная страница
    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.01 c
11-1129201301
ECM
2005-10-13 15:01
2006.06.25
BUG: SizeGrip и ASM-версия NewForm


2-1149139006
Ezorcist
2006-06-01 09:16
2006.06.25
написание компонента от TClientSocket


3-1146052175
Сергей А.
2006-04-26 15:49
2006.06.25
Перехват исключений в ClientDataSet


4-1142961749
Woolen
2006-03-21 20:22
2006.06.25
Определение блокировки рабочей станции


1-1147788452
Neo Trinitron
2006-05-16 18:07
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский