Erfassung von Daten in einem Eingabefenster



  • Hi zusammen,

    ich hab mal wieder ein Problem und hoffe das Ihr mir weiter helfen könnt!
    Mein Programm soll so gestalltet werden, das der Benutzter einige Daten
    einzugeben hat. Die Eingabe soll aber nicht in einem einzigen Fenster statt
    finden, so Soll er z. B. erst seinen Vor- und Nachnamen eingeben
    dann im weiteren Schritt seine Adressanschrift und seine Telefonnummer:

    1. Abfrage

    -------------
    Vorname  |             |
              -------------
              -------------
    Nachname |             |
              -------------
                               |WEITER|
    

    2. Abfrage

    -------------
    Adresse  |             |
             |             |
             |             |
              -------------
              -------------
    Telefon  |             |
              -------------
                     |ZURÜCK| |WEITER|
    

    Zum Aufbau:
    Ich will ein Form1 in welchem beide Abfragen erfolgen.
    So soll in einem einzigem Fenster erst die 1. Abfrage erfolgen
    und wenn man dann auf den Button "WEITER" klickt, soll in dem
    gleichem Fenster der Inhalt von der "1. Abfrage" 'gelöscht' werden
    und der die 2. Abfrage erfolgen.
    In Excel gibt es sowas auch, eine Abfrage von Datensätzen in einem Fenster
    in welchen in einzelnen "Stepps" verschiedene Daten Abgefragt werden.
    Oder von der Installation eines Programms kennt man das auch her, da öffnet
    sich ein fenster, dann wird als erstes ein Copyrigt und weiteres sinnloses Zeugs
    mitgeteilt, dann wenn man auf weiter klickt wird man nach dem Einferständnis
    der Lizensbedingungen gefragt, als dritten schritt soll man dann seinen Namen
    und seine Inizialen eingeben bla bla bla...Ihr wisst schon!

    ICH DANKE EUCH SCHON JETZT EINMAL FÜR EURE VORSCHLÄGE

    P.S. mit mehreren Panels habe ich das schon mal ausprobiert,
    da hab ich dann immer nur ein Panel auf Visible gestallt und die anderen
    einfach ausgeblendet, dann wenn ich auf weiter geklickt hab,
    hat sich das aktuelle Panel ausgeblendet und das nächste wurde eingeblendet.
    Aber wenn man dann viele Datensätze abfragen will, wird das ganz schön unübersichtlich. Da muss es doch was besseres geben oder nicht?
    Hier einmal der Quellcode zu meinen Vorstellungen aber mit Panels:

    //---------------------------------------------------------------------------
    
    #include <vcl.h>
    #pragma hdrstop
    
    #include "Unit1.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    AnsiString E1, E2;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm1::Button4Click(TObject *Sender)
    {
      Panel1->Visible = true;          
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm1::Button2Click(TObject *Sender)
    {
     Panel1->Visible = false;
      Panel2->Visible = true;
      E1 = Edit3->Text;
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm1::Button3Click(TObject *Sender)
    {
    Panel2->Visible = false;
      E2 = Edit4->Text;
    
      if((E1 != "")  && (E2 != ""))
      {
        Edit1->Text = E1;
        Edit2->Text = E2;
      }
      else
      {
      }        
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button5Click(TObject *Sender)
    {
    Panel2->Visible = false;
      Panel1->Visible = true;        
    }
    
    //---------------------------------------------------------------------------
    void __fastcall TForm1::FormCreate(TObject *Sender)
    {
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Timer1Timer(TObject *Sender)
    {
      Form1->Label1->Caption = Label1->Caption;
    }
    //---------------------------------------------------------------------------
    


  • also so vom prinzip ist es geschmackssache. aber ich als user mag so arten der eingabe nicht. ich hab gerne die ganze maske vor mir ( ok ausser es ist eine scien. tology fragebogen, der sehr gross ist, und eh in den mülleimer landet ). so immer nur häppchenweise was vorgesetzt bekommen, wo am schluss nach 5 min, irgendwelche "perversen" sachen gefragt werden ist nicht mein ding.

    aber nun gut

    also eine möglichkeit wäre.

    2 statictextfelder
    2 eingabeboxen
    weiter button und ein disable back button
    und eine BOOL oder short int variable zum beispiel ( ne flag variable halt )

    wenn er am anfang ist
    ist back button disable. und die BOOL oder short int auf 0 zum bsp.
    dann gibt er seine 2 daten ein
    und klickt auf weiter

    im weiterbutton code

    wird die eine flag variable++ gemacht
    und dann ein switch
    und wenn halt der flag 0 ist
    heisst es
    1.eingbabefeld wird der vorname gespeichert ( wenn flag 1 ist dann wird der wert in strasse zum bsp gespeichert )
    2. der nachname
    das disable beim back wird rausgemacht
    und die 2 statctextfelder gekommen anderen wert ( sprich anderen text. z.b. strasse oder so )
    bei back wird die falgvariable-- gemacht

    usw

    so wird halt alles in einem weiterbutton code fkt gemacht über ein switch zum bsp

    also viel spass beim coden, so schwer ist es nun wirklich nicht.



  • achja was mir aufgefallen ist: bitte nimm nicht die vorgeschlagenen variablennamen. ist zwar prog. techn. egal, aber ich kann bei sowas kopfschmerzen bekommen 😉 und du auch, wenn das projekt grösser wird und du musst mal in einem jahr codepflege machen



  • Das ist VCL und kein MFC ! -> Falsches Forum also.

    Devil


Anmelden zum Antworten