Sziasztok!
A főiskolai képzés keretein belül fejlesztünk (félig a gyakorlaton, félig otthon) egy alkalmazást Visual C++-ban. Ezzel kapcsolatban némi problémába ütköztünk, a tanár sem tudott megoldást nyújtani.
Adott egy form, rajta egy textbox és két gomb. A buttonOk megnyomására ellenőrizni kellene, hogy a textboxban megadott string szerepel-e egy adott fájlban, illetve hogy nem-e 0 karakter hosszúságú. A hibajelzésre az errorprovidert használjuk, azonban van egy kis probléma. A validálás során megadott feltétel-vizsgálatok lefutnak a buttonBezar esetén is, amit nem sikerült kikerülnünk.
A teljes kód itt olvasható:
http://pastebin.ubuntu.com/584939/
(a kód tartalmaz olyan elemeket, melyek feleslegesek lehetnek, pl. a MegseClick adattag, melyet én iktattam be a hiba kiküszöbölésére - nulla sikerrel)
http://pastebin.ubuntu.com/584955/
Hogyan lehetne ezt a problémát megoldani?
Hozzászólások
Mi van akkor, ha nem a componentsre raksz errorprovidert, hanem csak a buttonra?
Nem vagom ezt az ms dialektust, de ugy tunik, hogy a components minden elemere ervenyes a validacio.
--
A gyors gondolat többet ér, mint a gyors mozdulat.
Közben észrevettem két dolgot:
1) Az elsőnek linkelt kód rosszul működik, ez a próbálkozások egy vakvágányát mutatja. Ezt futtatva sehogy sem ad hibát.
A "tiszta" kód ez: http://pastebin.ubuntu.com/584955/
2) Az ablak fejlécében található bezárás gombbal minden ellenőrzés nélkül bezáródik a form. Nem lehetne az a rendszerhívást kiváltani, amit az a gomb hív?
Persze nem túl elegáns, de egy megoldásnak megtenné.
Nincs a buttonnak valami beállítása, hogy validáljon-e? .NET-ban CausesValidation a neve.
--
joco voltam szevasz
De, valóban van, itt is CausesValidation.
Nem ismerem a .NET-es C++-t de ha az == operátor megfelelően van felülbírálva akkor: