"Fenster" im Programm wechseln



  • Guten Abend zusammen...

    hab mich mal hier angemeldet da ich gerade am c++ lernen bin.

    Ich konnte schon paar erfahrungen mit konsolenanwendungen machen und wag mich
    jetzt an die tichtige Windows Programmierung.

    So viel mal zu mir und nun zu meinem Problem:

    Ich möchte ein Programm schreiben, bei dem sich ein Fenster öffnet(Form1).
    Dort gibt es einen Button Fenster 2 mit dem das Programm zum zweiten Fenster(Form3) bzw. einer anderen Ansicht wechseln soll.

    Dabei soll das Fenster von Test nicht geschlossen werden.Damit meine ich den Rahmen und die obere Menuebar(Datei,Bearbeiten,Ansicht).

    Es sollen also nur die Buttons und Edit-Felder verschwinden und dafür ein graues Feld mit dem Panel 1 angezeigt werden.

    So und da fangen dann die Problemchen an...

    Hab das ganze mal so gelöst:

    Form3->Visible=true;
    Form1->Visible=false;

    Nur ist das halt nicht das was ich weil, denn er macht dann ja ein neues Fenster auf.

    Die beiden Fenster sind VCL-Formularanwendungen.

    Ist das "Format" des 2ten Fensters überhaupt korrekt?
    Müsste das nich eher ein Frame sein?

    Und wenn ja wie schaff ichs diesen anderen Inhalt in meinem ersten Fenster aufzurufen?

    Bin mir durchaus bewusst das das erst mal ne einbahnstraße wird, aber soll ja zur übung sein.

    Betriebssystem ist XP und arbeiten tu ich mit Borland Builder.

    Hab auch mal schnell paar Bilder hochgeladen:

    http://www.sven-l.de/programmieren.html

    Danke für Antworten

    MFG

    Sven



  • Wieso machst du die buttons+edit-felder nicht einfach auch invis?
    Oder legst irgendwas obendrüber?

    Was auch sehr gut geht:
    Du kannst die Buttons/Labels/... (alle Elemente) auch dynamisch erzeugen und wieder löschen, wenn du sie nicht mehr brauchst...
    Ist aber wohl ein wenig ungewohnt für den Anfang...

    bb



  • sven-ef87 schrieb:

    arbeiten tu ich mit Borland Builder.

    Dann wäre das VCL/Builder-Forum besser geeignet für deine Anfrage.
    Ein freundlicher Moderator wird dich bestimmmt verschieben.



  • Dieser Thread wurde von Moderator/in pumuckl aus dem Forum C++ in das Forum VCL (C++ Builder) verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • mad_martin schrieb:

    Dann wäre das VCL/Builder-Forum besser geeignet für deine Anfrage.
    Ein freundlicher Moderator wird dich bestimmmt verschieben.

    Soeben geschehen.
    @sven: bitte demnächst erst die mt wichtigmarkierten Threads lesen und dich etwas orientieren, bevor du deine Fragen einfach irgendwohin postest.



  • Hm, wenn es wirklich nur eine andere Ansicht, des gleichen Fensters ist, reicht es doch, die Oberflächenelemente so zu positionieren, wie Du es gern hättest. Elemente die Du in einer der Ansichten nicht brauchst, kannst Du entsprechend sichtbar / unsichtbar machen.

    Alternativ gibt es noch die Frames. Schau mal in der Hilft zu TFrames, ob dies eventuell was für Dich ist.



  • So ganz verstanden hab ich dich noch nicht.
    1. Warum muss es im selben Fenster sein ?
    2. Warum erstellst du ein neues Fenster, und versteckst nicht alle Elemente und machst das Panel sichtbar, das wird zwar unübersichtlich aber so hab ich dich verstanden.
    3. Warum lässt du die Fenster über Labels nicht "Komunizieren" ?



  • Das ruft irgendwie nach

    TPageControl

    Schau mal dazu in der Hilfe nach!
    Gruss
    Frank



  • oder TFrame



  • @ moderator sorry fürs falsche Forum

    TPageControl hab ich ma eben kurz probiert
    kann ich jeder einzelnen Karteikarte eine Action zuweisen?
    bei mir werden aktionen wie buttons sichtbar machen usw. nur beim wechsel einer karteikarte durchgeführt

    TFrame hab ich auch grad probiert...
    Hab ein neues Frame erstellt und es meinem Fenster "zugewiesen"
    hab dann mal versucht in meiner Form1 mit hilfe eines buttons und der Action:
    Frame->visible=true; das Frame sichtbar zu machen,das führte aber zu einer bösen
    Fehlermeldung

    werde mich aber wenn ich mehr zeit habe nochmal mit den 2 dingen bschäftigen

    gruß sven



  • Hallo

    1. Siehe TPageControl::OnChange bzw. OnChanging

    2. Du must das Frame zur Entwurfszeit erstmal auf deine Form setzen. Du kannst dann in den Eigenschaften des Frames aber Visible erstmal auf false setzen, und zur Laufzeit dann beliebig auf true und wieder zurück setzen.

    bis bald
    akari


Anmelden zum Antworten