Suchen und Klicks zählen

Luja

Grünschnabel
Hallo zusammen,

ich versuche in einem MFC-Programm Klicks auf einen Button zu zählen, abhängig davon ob schoneinmal geklickt wurde sollen verschiedene Methoden ausgeführt werden. Das soll ein "suchen" Button werden der beim zweiten Klick weitersuchen soll und zwar mit der Eingabe die schon stattgefunden hat. Müsste j airgendwie mit Zuständen gehen, habt ihr eine Idee?

Und noch nen Probemchen, ich will nach teilstrings suchen (CString), ich habe das mit sting.find ausprobiert, bekomme aber seltsame Ergebnisse. Hat da jemand eine Idee wie das funktioniert?

Grüße,
Luja :p
 
Hi,
erstes Problem: Nutze eine Zaehlervariable, die in deiner Routine für deinen Mausklick hochgezählt wird. Wenn noch nicht geklickt wurde - setze die Variablen (Suchstring usw.) Wenn halt schonmal geklickt wurde, dann nehme eben die gesetzten Variablen. Und nach Ende der Suche die Variable zurücksetzen.
Zweites Problem: Teilstrings mit Find zu selektieren sollte eigentlich gehen. Poste doch mal den Code der Funktion, damit man sehen kann, wo es hakt.

Mfg

langer
 
Ach ja,
wenn du nur wissen willst, ob schon geklickt wurde, reicht auch ein Flag, das beim ersten Klick gesetzt wird und am Ende zurückgesetzt wird.

Mfg

langer
 
Danke für deine Antwort.
Mir würde es tatsächlich reichen, zu wissen, ob schon ein Mal geklickt wurde, aber ich weiß nicht so genau, wie ich den Flag setzten muß. Hab mal was versucht, das hat dann böse Fehler in irgendeiner Headerdatei gegeben, die ich überhaupt nicht verändert hatte...

Hier noch die Suchfunktion...:
Code:
void CaufgabeView::search()
{

if(m_strNumber==m_strSuche)
MessageBox("Dieser Datensatz enthält Ihren Suchbegriff");
else
	do{
OnBnClickedButton1();
 { 
if( m_strNumber.Find(m_strSuche))

MessageBox("Dieser Datensatz enthält Ihren Suchbegriff");
 }

}while(m_strNumber!=m_strSuche);
}

Gruß,
Luja
 
Ich gehe mal davon aus, dass OnClickedButton1() die Funktion ist, die du meinst. Dann setze in dieser Funktion ein Flag
Code:
      flag=TRUE;

In dem Schleifenzweig, wo deine MessageBox mit der Meldung über gefundenen String erscheint, baust du ein
Code:
     flag=FALSE;

Die Frage ist jetzt, wo du das Flag definierst. Entweder als globale Variable oder du übergibst es in der Funktion - weil du es ja in zwei Funktionen verwenden willst. Und beim Programmstart musst du es natürlich mit FALSE initialisieren.

Mfg

langer
 
Zurück