tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
3
ZUGRIFFE
409
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    gehrti gehrti ist offline Mitglied Silber
    Registriert seit
    Apr 2005
    Beiträge
    50
    Hallo!

    Ist es irgendwie möglich die Bereichsprüfung die man ua. mit dem Klassenassisten (Member-Variable) oder unter DoDataExchange(CDataExchange* pDX) für eine Variable (float, int, usw.) einstellen kann, zur Laufzeit zu ändern?

    MfG. Thomas
     

  2. #2
    Rearhh Rearhh ist offline Mitglied Bronze
    Registriert seit
    Feb 2005
    Beiträge
    34
    Keine Ahnung. Ich bin dem Problem ausgewichen, indem ich die Bereichsprüfung in einer eigenen Funktion vorgenommen habe...

    Ein Beispiel:
    ** in einem Dialog können über die Editfelder Strings eingelesen werden, die anschließend beim Klicken auf OK auf richtige Eingabe überprüft werden sollen (man kann es natürlich auch so machen, dass sie überprüft werden sollen, wenn das Editfeld den Eingabefokus verliert):

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    
    bool stringzahlen (CString straps)
    {
    int kommas=0;
    for(int i=0; i<straps.GetLength(); i++)
    {
         if(straps.GetAt(i)==44 || straps.GetAt(i)==46) //KOMMA UND PUNKT EINGABE EINMAL() ERLAUBT
                     kommas++;
    if(!((straps.GetAt(i)>=48 && straps.GetAt(i)<=57) || straps.GetAt(i)==44 || straps.GetAt(i)==46)) //SOLANGE DER STRING AUS ZAHLEN, KOMMAS UND PUNKTEN BESTEHT IST ALLES IN ORDNUNG
     
    return FALSE;
    }
    if(kommas<=1) 
         return TRUE;
    else return FALSE;
    }
     
     
    void Dateneingabe::OnOK()
    {
    int i;
    bool okornotok=TRUE;
    CString eingabe;
    GetDlgItemText(IDC_EDITFELD,eingabe);
    if( !stringzahlen(eingabe) )
    {
             MessageBox("GIB WAS ORDENTLICHES EIN, DU DEPP","Achtung!",MB_OK );
             okornotok=FALSE;
    }
     
    if(okornotok)
             CDialog::OnOK();
    }
     

  3. #3
    Avatar von jokey2
    jokey2 jokey2 ist offline Mitglied Smaragd
    Registriert seit
    Nov 2004
    Beiträge
    1.235
    Das sollte funktionieren, wenn Du im DoDataExchange im entsprechenden Funktionsaufruf DDV_MinMaxInt(...) für Dein Anzeigeelement die konstanten minVal und maxVal Parameter (Parameter 3 und 4) durch Variablen ersetzt. Ich gehe jetzt davon aus, daß die Zeile mit dem DDV_MinMaxInt(...) vom Wizard hinzugefügt wurde.
     

  4. #4
    gehrti gehrti ist offline Mitglied Silber
    Registriert seit
    Apr 2005
    Beiträge
    50
    @ jokey2: vielen Dank, hat funktioniert.
    Ich hatte das zwar auch schon versucht, aber ich hatte da Variablen genommen, die erst später im Dialog von einem anderen Dialog her übergeben wurden .. hab da irgendwie gepennt

    @ Rearhh: jupp, habe ich auch bei manchen Sachen so gemacht, aber bei dieser spezielen Sache brauchte ich die vordefinierte Bereichsprüfung. Danke trotzdem

    MfG. Thomas
     

Ähnliche Themen

  1. [C++] unerklärliches ändern einer variable
    Von cycovery im Forum C/C++
    Antworten: 4
    Letzter Beitrag: 28.05.08, 08:05
  2. Antworten: 2
    Letzter Beitrag: 21.12.06, 15:59
  3. Werte einer Java 5 Annotation zur Laufzeit ändern.
    Von Thomas Darimont im Forum Java
    Antworten: 0
    Letzter Beitrag: 22.10.06, 19:17
  4. Größe einer Picturebox zur Laufzeit ändern
    Von PoNr im Forum Visual Basic 6.0
    Antworten: 4
    Letzter Beitrag: 07.01.05, 11:19
  5. Antworten: 7
    Letzter Beitrag: 12.10.04, 08:41