Thread View: de.comp.lang.c++
3 messages
3 total messages
Started by Wolfgang Deiss
Wed, 25 Oct 1995 07:17
BC4.5: Definition des Main Windows
Author: Wolfgang Deiss
Date: Wed, 25 Oct 1995 07:17
Date: Wed, 25 Oct 1995 07:17
17 lines
930 bytes
930 bytes
Bei der Ableitung von TApplication wird das Main Window normalerweise wie folgt definiert: SetMainWindow(new TFrameWindow, "Header", new TGenericWindow); So funktioniert es auch: TFrameWindow *frame; frame = new TFrameWindow; SetMainWindow(frame, "Header", new TGenericWindow); So aber nicht: TFrameWindow frame; SetMainWindow(&frame, "Header", new TGenericWindow); Wieso nicht?
Re: BC4.5: Definition des Main Windows
Author: Wolfgang Deiss
Date: Wed, 25 Oct 1995 07:31
Date: Wed, 25 Oct 1995 07:31
17 lines
985 bytes
985 bytes
Sorry, der Aufruf von SetMainWindow war nicht ganz korrekt. Es muss natuerlich heissen: SetMainWindow(new TFrameWindow(0, "Header", new TGenericWindow)); So geht's auch: TFrameWindow *frame; frame = new TFrameWindow(0, "Header", new TGenericWindow); SetMainWindow(frame); So aber nicht: TFrameWindow frame(0, "Header", new TGenericWindow); SetMainWindow(&frame); Wieso nicht?
Re: BC4.5: Definition des Main Windows
Author: Wolfgang Deiss
Date: Sat, 28 Oct 1995 08:25
Date: Sat, 28 Oct 1995 08:25
18 lines
1457 bytes
1457 bytes
Gestern habe ich den Grund herausgefunden: Wenn man das TFrameWindow wie in der dritten Alternative definiert, bleibt die Variable frame nur lokal in TApplication::InitMainWindow() gΓΌltig. Die Definition und Initialisierung ist dann schon ok, leider wird frame dann aber beim Verlassen von InitMainWindow() wieder destruiert. Dass Windows nichts mehr mit einem 'verblichenen' Fenster anfangen kann, ist natuerlich klar. Definiert man frame global, so gibt es wieder Probleme, weil der Konstruktor von TFrameWindow dann direkt bei Programmstart, also vor jeglicher Windows- Initialisierung aufgerufen wird. Dies fuehrt zu einer Schutzverletzung :-( Also: Erzeugte Fenster duerfen erst in InitMainWindow definiert werden und muessen ab dann bis zur Beendigung des Programmlaufs verfuegbar sein. Es geht also kein Weg umhin, das Fenster mit new zu erzeugen. Wolfgang
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads