Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Zur Laufzeit prüfen, ob was in ein Eingabefeld geschrieben wurde

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
07.07.2004, 11:50 Uhr
t10ottoo



Hi,

jo, ich bins mal wieder

Also ich hab zwei Eingabefeld, eins hat ne CString-Variable, das andere eine int-Variable. Dann hab ich noch ein Button, der ist, sobald ich den Dialog öffne deaktiviert (enable(FALSE)).

Nun meine Frage, wie kann ich das machen, dass, wenn in beide Eingabefelder was drinne steht, dass der Button dann wieder aktiv wird? Ich bekomme das nicht hin.
Egal was ich mache, egal, was ich reinschreib in die Eingabefelder, der Button bleibt immer deaktiviert.

Vielen Dank schonmal
Thomas
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
07.07.2004, 13:18 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


in nem extra thread prüfen ob was drin steht und der thread schaltet deinen button dann an oder aus
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
07.07.2004, 13:49 Uhr
t10ottoo



Najo, ich wollt net allzu viel Threads benutzen
Hab das nun so gemacht:

ERSTES EINGABEFELD:

C++:
void CTestDlg::OnUpdateProdukt()
{
    name_zahl1 = 1;
    if (name_zahl1 + menge_zahl1 == 2)
    {
        GetDlgItem(IDC_SPEICHERN)->EnableWindow(TRUE);
    }
    else
    {
        GetDlgItem(IDC_SPEICHERN)->EnableWindow(FALSE);
    }
}



ZWEITES EINGABEFELD

C++:
void CTestDlg::OnUpdateMenge()
{
    menge_zahl1 = 1;
    if (name_zahl1 + menge_zahl1 == 2)
    {
        GetDlgItem(IDC_SPEICHERN)->EnableWindow(TRUE);
    }
    else
    {
        GetDlgItem(IDC_SPEICHERN)->EnableWindow(FALSE);
    }
}



Najo, und wenn halt beide Variablen = 2 ergeben, dann soll der Button halt aktiv werden.
Nun muss ich das nur noch umkehren, also wenn ich den Text wieder lösche, dass dann auch der Button wieder deaktiviert wird

Erstmal Danke
Thomas

Dieser Post wurde am 07.07.2004 um 13:55 Uhr von t10ottoo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
07.07.2004, 14:05 Uhr
t10ottoo



Ok,

hab da noch ne kleine andere Frage:

Ich hab ja einem Eingabefeld eine UINT-Variable zugewiesen, also ich kann ja prüfen, ob da ne 0 drinne steht, aber wie kann ich prüfen, ob das Eingabefeld ganz leer ist?
Wenn ich das hier schreibe:

C++:
if (menge_zahl == "")


Dann sagt er mir:

Code:
error C2446: '==' : Keine Konvertierung von 'char *' in 'unsigned int'


Und das hier geht auch nicht:

C++:
if (menge_zahl == )


Ich weiß, dass man es wegen dem UINT nicht so prüfen kann, aber es muss ja ne andere Möglichkeit dafür geben, oder?

Gruß
Thomas

Dieser Post wurde am 07.07.2004 um 14:08 Uhr von 0xdeadbeef editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
07.07.2004, 15:52 Uhr
~LEO_III
Gast


Hallo
Noch besser ( finde ich ) ist es wenn Du eifach eine Klasse von CEdit ableitest un da die OnKeyDown() Funktion überschreibst und dann mit
GetParent()->SendMessage(NAME_DEINER_NACHRICHT,0,m_iLenStr)
deine Dialogklasse immer auf den neusten Stand der Inhalte bringst wenn das Intresse weckt und Du nicht weiss wie einfach noch mal Posten ...
am besten im Titel HELP_LEO_III eingeben dann finde ich die Nachricht schneller ...
bis dann
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
07.07.2004, 16:02 Uhr
t10ottoo



Naja, also das mit der Funktion "OnKeyDown" und dann halt immer auf dem aktuellen halten, das mache ich ja mit der Funktion "Onupdate" auch. Es geht ja darum, wie ich einem Textfeld, dem ich eine UINT Variable zugewiesen habe, sage, dass er am Anfang nicht ne 0 reinschreiben soll. Mit CString könnte ich das machen, jo, aber ich möchte es mit UINT machen. Irgendwie muss es ja gehen

Dann noch ne andere Frage, wenn ich einem Steuerlement ne UINT-Variable zuweise und anstelle einer Zahl nen Buchstaben eingebe, dann kommt ja immer diese Meldung "Bitte geben Sie eine ganze positive Zahl ein" oder so ähnlich, kann man das irgendwie ändern, bzw. ganz rausnehmen, sodass gar keine Meldung mehr kommt?

Gruß
Thomas
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
07.07.2004, 16:14 Uhr
~LEO_III
Gast


einfach in der OnInitfunktion von deinem Dialog
GetDlgItem(IDC_MEINEZAHL)->SetWindowText("");

Wenn du die Meldung nicht haben möchtest dann mach doch kein UINT daraus sonder wenn da was drin ist und Dein Button gedrückt wird einfach
CString str;
GetDlgItem(IDC_EDIT1)->GetWindowText(str);
int qq = atoi(str.operator LPCTSTR());

if ( qq >0 && qq < UINTMAX )
...
else
Fehler

Du musst also keine Variable mit dem Editfeld binden
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
07.07.2004, 17:10 Uhr
~toxic
Gast


hi, warum so umständlich ? ### das aktivieren des buttons ###
- gieb dem 1.edit mittels klassenassi die EN_CHANGE, und nenne sie zb."OnChangeEditX"
- dann dem 2.edit auch, die selbe !!!
- dann brauchst nur noch folgenden code:
C++:
void CTempDlg::OnChangeEdit1()
{
    CString tmp1="", tmp2="";
    GetDlgItemText(IDC_EDIT1, tmp1);
    GetDlgItemText(IDC_EDIT2, tmp2);
    if ( tmp1.GetLength() > 0 && tmp2.GetLength() > 0 )
        GetDlgItem(IDC_BUTTON1)->EnableWindow(TRUE);
    else
        GetDlgItem(IDC_BUTTON1)->EnableWindow(FALSE);
    return;
}
--
grusz
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
07.07.2004, 17:31 Uhr
t10ottoo



Danke für die Antworten. Kann das aber leider erst morgen testen, werde es dann auch hier schreiben, obs geklappt hat oder weitere Probleme geben, sieht aber schonmal vielversprechend aus.

Also nochmal danke
Thomas
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: