TCheckListBox als zeiger und Checked methode



  • hallo

    ich übergebe einer methode einer anderen klasse (in einer dll) einen parameter als zeiger auf eine TCheckListBox. Der zugriff auf Items scheint anstandslos zu klappen. Jedoch ergibt Checked immer false. In der anwendung habe ich die checkboxen mal an mal aus. Immer das gleiche ergebniss. Woran könnte sowas liegen? Gibt es hierbei etwas zu beachten?



  • Bitte, immer den ProblemCode posten.
    Zeig mal, wie du auf die CheckListBox zugreifst.



  • bool Extract(String filename, TCheckListBox *Filter)
    {
        for(int i = 0; i < Filter->Items->Count; i++)
        {
            String ext = filename.SubString(filename.LastDelimiter("."), filename.Length());
        	if(LowerCase(ext) == LowerCase(Filter->Items->Strings[i]) && Filter->Checked[i])
            {
            	return true;
            }
        }
        return false;
    }
    


  • filename.SubString(filename.LastDelimiter("."), filename.Length());
    

    sieht nicht so gut aus

    ext soll der Teil von filename sein, der an der Stelle beginnt, wo das letzte "." steht IN DER LÄNGE DES GESAMTEN STRINGS von filename??

    Schau mal unter ExtractFileExt nach

    Vermute der erste Teil deiner dann folgenden Bedingung ist schon immer false. Dann wird der Zweite nicht mehr geprüft.



  • Ich kenne TCheckListBox nicht, aber müsste es nicht

    Filter->Items->Checked[i]
    

    statt

    Filter->Checked[i]
    

    heißen?



  • IN DER LÄNGE DES GESAMTEN STRINGS

    die methode Length() erkennt selbstständig ob und wie count dann aussehen muss wenn index > Length() ist.

    ExtractFileExt

    es handelt sich um eine URL, leider funktioniert ExtractFileExt dort nicht.

    Vermute der erste Teil deiner dann folgenden Bedingung ist schon immer false

    wenn ich && Filter->Checked[i] weglasse funktioniert es.

    Ich kenne TCheckListBox nicht, aber müsste es nicht

    nein. 🕶



  • aber kanns ja nicht sein oder? zugriff auf TCheckListBox geht ja. insofern ist der zeiger ja nicht ungerichtet. dann müsste doch auch die Checked methode anspringen? ergibt für mich keinen sinn das es dort immer false ergibt.



  • Gut das man einen Debugger hat, mit dem man das überprüfen kann ...



  • 👍 👍

    .......



  • 5 code zeilen debugen ist ja sehr hilfreich. naja egal...


Anmelden zum Antworten