Okno dynamiczne w oknie głównym

dział ogólny

Okno dynamiczne w oknie głównym

Nowy postprzez duf » piÄ…tek, 26 marca 2010, 21:16

Jak utworzyć okno dynamicznie w oknie głównym tak żeby okno potomne nie wychodziło za obrys okna głównego?
Kod: Zaznacz cały
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  form2 = new TForm2(this);
  form2->Parent = Form1;
  form2->Show();
}

Wbrew pozorom ten sposób wyczerpuje moje oczekiwanie ale niestety okno potomne nie jest aktywne i Edit na nim też nie jest aktywny. Proszę o jakieś wskazówki.
Avatar użytkownika
duf
Intelektryk
Intelektryk
 
Posty: 175
Dołączył(a): czwartek, 9 października 2008, 13:02
PodziÄ™kowaÅ‚ : 17
OtrzymaÅ‚ podziÄ™kowaÅ„: 2
System operacyjny: Windows 10
Kompilator: XE8
Gadu Gadu: 0
    Windows XPFirefox

Re: Okno dynamiczne w oknie głównym

Nowy postprzez Cyfrowy Baron » sobota, 27 marca 2010, 10:15

Podałeś trochę za mało informacji. Na przykład czy okno główne jest aktywne czy nie, gdyż okno potomne którego rodzicem jest okno główne zawsze przejmie właściwości okna głównego takie jak AlphaBlend, Enabled.

Wydaje mi się, że do tego celu najlepiej nadawałaby się aplikacja MDI.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
PodziÄ™kowaÅ‚ : 12
OtrzymaÅ‚ podziÄ™kowaÅ„: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: Okno dynamiczne w oknie głównym

Nowy postprzez duf » sobota, 27 marca 2010, 15:01

Cyfrowy Baron napisał(a):...czy okno główne jest aktywne czy nie, ...

Oczywiście, że jest. I to jest dziwne.
Cyfrowy Baron napisał(a):Wydaje mi się, że do tego celu najlepiej nadawałaby się aplikacja MDI.

Tak, ale chciałem tego uniknąć.
Avatar użytkownika
duf
Intelektryk
Intelektryk
 
Posty: 175
Dołączył(a): czwartek, 9 października 2008, 13:02
PodziÄ™kowaÅ‚ : 17
OtrzymaÅ‚ podziÄ™kowaÅ„: 2
System operacyjny: Windows 10
Kompilator: XE8
Gadu Gadu: 0
    Windows XPFirefox

Re: Okno dynamiczne w oknie głównym

Nowy postprzez Cyfrowy Baron » sobota, 27 marca 2010, 15:38

Dodaj więc funkcję aktywującą okno form2:

Kod: Zaznacz cały
  form2 = new TForm2(this);
  
form2->Parent Form1;
  
form2->Show();
  
dorm2->Enabled true// <-- tutaj  
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
PodziÄ™kowaÅ‚ : 12
OtrzymaÅ‚ podziÄ™kowaÅ„: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: Okno dynamiczne w oknie głównym

Nowy postprzez duf » niedziela, 28 marca 2010, 18:46

Niestety, wykonałem chyba wszystkie możliwe próby i nic.
Avatar użytkownika
duf
Intelektryk
Intelektryk
 
Posty: 175
Dołączył(a): czwartek, 9 października 2008, 13:02
PodziÄ™kowaÅ‚ : 17
OtrzymaÅ‚ podziÄ™kowaÅ„: 2
System operacyjny: Windows 10
Kompilator: XE8
Gadu Gadu: 0
    Windows XPFirefox

Re: Okno dynamiczne w oknie głównym

Nowy postprzez Cyfrowy Baron » poniedziaÅ‚ek, 29 marca 2010, 07:35

To jest po prostu niemożliwe! Coś źle robisz, gdzieś popełniasz błąd.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
PodziÄ™kowaÅ‚ : 12
OtrzymaÅ‚ podziÄ™kowaÅ„: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: Okno dynamiczne w oknie głównym

Nowy postprzez usermaw » poniedziaÅ‚ek, 29 marca 2010, 19:04

Linijka powodującą ową nieaktywność jest to:
Kod: Zaznacz cały
form2->Parent=Form1;

Bez tego wszystko jest OK, ale nie spelnia oczekiwań, okno jest przesuwalne poza macierzyste.
Czy to jedyny sposób, aby zachowac okno w oknie a'la MDI, bez stosowania aplikacji MDI... hmmm
Ciekawe jest to, że przeniesienie Fokusa na form2 nie zmienia nic.
Może to bug środowiska, Ja używam Turbo, a Wy?
Avatar użytkownika
usermaw
Homos antropiczny
Homos antropiczny
 
Posty: 55
Dołączył(a): piątek, 2 stycznia 2009, 20:43
PodziÄ™kowaÅ‚ : 2
OtrzymaÅ‚ podziÄ™kowaÅ„: 0
    Windows XPFirefox

Re: Okno dynamiczne w oknie głównym

Nowy postprzez Cyfrowy Baron » poniedziaÅ‚ek, 29 marca 2010, 20:50

Ja korzystam ze środowiska C++Builder 2007. Nie wiem jak to jest w Turbo++, ale osoby korzystające z tego środowiska nigdy podobnego błędu nie zgłaszały.

BÅ‚Ä…d jest chyba tutaj:


Kod: Zaznacz cały
form2 = new TForm2(this);


Powinno chyba być:

Kod: Zaznacz cały
 form2 = new TForm2(Form1); 
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
PodziÄ™kowaÅ‚ : 12
OtrzymaÅ‚ podziÄ™kowaÅ„: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox


Powrót do Ogólne problemy z programowaniem

Kto przeglÄ…da forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 2 gości