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. :-/
projekt/właściwości i w okienku po lewej zostaw tylko główną formę
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
Może spróbuj zwykłe Form2.Show, jako, że jest to formularz klienta MDI.
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;
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;
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
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
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.