FormStyl - fsMDIChild

0

Witam mam problemik może banalny ale zawsze
co zrobić żeby foremka2 otwierała się w formie1-fsmdiChild po naciśnięciu buttona z formy1.
Mi po starcie programu otwiera się form2 automatycznie
cóż zrobić żeby się nie otwierała automatycznie tylko po nacisnięciu na button. :-/

0

projekt/właściwości i w okienku po lewej zostaw tylko główną formę

0

Dzięki bardzo Misiekd proste prawda / szacuneczek / jeszcze jedno do pierwszego pytania do butonu na formie 1 daje procedure

var
Form2 : TForm;
begin
Form2 := TForm2.Create(self);
Form2.ShowModal;
end;

i wywala mi błąd Acces violation at addres 004BEF54 in module
poprosze o rade pozdrawiam

0

Może spróbuj zwykłe Form2.Show, jako, że jest to formularz klienta MDI.

0
brodny napisał(a)

Może spróbuj zwykłe Form2.Show, jako, że jest to formularz klienta MDI.

To nie ma nic do rzeczy. Załóżmy, że Twoja dorma mdi nazywa się TNewForm, więc może zrób tak:

var
  forma: TNewForm;  
begin
  forma:=TNewForm.Create(application);
  forma.showModal
end;
0
wers78 napisał(a)

Dzięki bardzo Misiekd proste prawda / szacuneczek / jeszcze jedno do pierwszego pytania do butonu na formie 1 daje procedure

var
Form2 : TForm;
begin
Form2 := TForm2.Create(self);
Form2.ShowModal;
end;

i wywala mi błąd Acces violation at addres 004BEF54 in module
poprosze o rade pozdrawiam

Tak powinno zadzialac:

Application.CreateForm(TForm2,Form2);
Form2.showmodal;
0
wers78 napisał(a)

var
Form2 : TForm;
begin
Form2 := TForm2.Create(self);
Form2.ShowModal;
end;

zobacz jakiego typo jest Form2 u Ciebie - TForm (Form2 : TForm;), a potem tworzysz ją "na wzór" TForm2 (Form2 := TForm2.Create(self);). Czy widzisz już gdzie masz błąd?

Juhas napisał(a)

To nie ma nic do rzeczy.

ma i to bardzo dużo - formy typu MDIChild nie da się pokazać przez ShowModal

Juhas napisał(a)

Załóżmy, że Twoja dorma mdi nazywa się TNewForm

Nic nie trzeba zakładać bo autor napisał, że nazywa się ona TForm2

Marcin napisał(a)

Tak powinno zadzialac:

Application.CreateForm(TForm2,Form2);
Form2.showmodal;

śmiem wątpić :) - patrz wyżej

0

Dobra jest nie ma co się spierać
wymóżdzyłem coś takiego

Form16 := TForm16.Create(Self);

ale problem leżał zupełnie gdzieś indziej, ogólnie w kodzie zakrzaczył się jakiś błąd usunełem go i poszło
Dzięki za wszystko pozdrawiam

0
Misiekd napisał(a)

zobacz jakiego typo jest Form2 u Ciebie - TForm (Form2 : TForm;), a potem tworzysz ją "na wzór" TForm2 (Form2 := TForm2.Create(self);). Czy widzisz już gdzie masz błąd?

To na pewno nie ma nic do rzeczy - wszak możliwe jest tworzenie przypisanie instancji klasy pochodnej do zmiennej o typie klasy bazowej. Przecież klasa pochodna to klasa bazowa + cośtam.

1 użytkowników online, w tym zalogowanych: 0, gości: 1