Wie öffne ich einen Frame im OnClick-Ereignis?
-
Hallo Ihr!
Ich möchte oben in meinem Hauptmenü ein Untermenü "Hilfe" machen, in dem dann ein Unterpunkt "Info..." drin steht.
Das ganze hätte ich jetzt mit einem neuen Frame gemacht, auf dem ein OK-Button liegt, mit dem ich den Frame wieder schließen kann.
Aber wie öffne ich diese Fenster erstmal? Hab versucht in der Hilfe etwas zu finden, gegoogelt und hier im Forum hab ich auch gesucht. Leider nichts gefunden, weil ich leider auch nicht mal einen Ansatzpunkt habe, wie sowas gehen könnte?!
Hoffentlich weiß von euch jemand Rat. Wäre auch für eine bessere Lösung ohne Frame dankbar.
Liebe Grüße Nora
-
Warum willst du denn einen Frame nehmen?
TForm *InfoForm = new TForm(this); InfoForm->ShowModal(); delete InfoForm;
-
Hi!
Danke für deine Antwort!
Ich würde einfach nur einen Frame nehmen, weil ich nicht weiß, was man sonst nimmt

Ich hab noch wirklich kaum Ahnung von GUI-Programmierung. Was nimmt man normalerweiße dafür?Liebe Grüße Nora
-
Hallo,
Wie oben schon gesagt nimmt man dafür eine Form. Ein TFrame-Objekt müsste auch erst auf eine Form gepackt werden.
Vielleicht verwechselst du das ja auch. Was verstehst du unter einem Frame?
-
Normalerweise nimmt man beim C++ Builder ein "TForm" für so etwas (siehe meinen Code-Ausschnitt oben); ein Frame ist lediglich ein Control, welches andere Controls darstellt, das selber Teil eines Controls ist (wie der Name halt sagt: ein "Fenster").
Einen Frame könnte man mit einem TPanel vergleichen; Nur dass der Frame flexibler ist.
Für dein Vorhaben hast du zwei Möglichkeiten: Du erstellst dir dein Form zur Entwurfszeit und zeigst es per InfoForm->Show(); bzw. InfoForm->ShowModal(); an, oder zur Laufzeit, dann etwa so:
TForm *InfoForm = new TForm(this); InfoForm->BorderStyle = bsSingle; InfoForm->Position = poScreenCenter; InfoForm->Caption = "Über mein Programm"; TLabel Label = new TLabel(InfoForm); Label->Parent = InfoForm; Label->Caption = "Mein Programm"; InfoForm->ShowModal(); delete Label; delete InfoForm;Der Code ist jetzt frei aus'm Kopf, er könnte also ein zwei Fehler enthalten

-
DANKE!!!

Verratet ihr mir jetzt noch, wie ich die Symbole rechts oben für Minimieren und Maximieren weg bekomme?
Gruß Nora
-
einfach das Property BorderIcons des Forms verändern!
entweder im object inspector zur entwurfszeit oder halt per zuweisung zu laufzeit