[C++ Builder] find

0

co tu jest źle??


void __fastcall TScratchPad::Find(TObject *Sender)
{
TSearchTypes st;
TFindDialog *cd;
int newpos;

if ((cd = dynamic_cast<TFindDialog *> (Sender)) == 0)
    MessageBox(NULL, "Dynamic Cast Failed!", "Find/Rep", MB_OK);

if (cd->Options.Contains(frMatchCase))
    st << stMatchCase;
if (cd->Options.Contains(frWholeWord))
    st << stWholeWord;

if (Memo->SelLength)
    Memo->SelStart += 1;

newpos = FindDialog1->FindTextA(cd->FindText,
                    Memo->SelStart,
                    Memo->Text.Length(),st); //tu mi pokazuje błąd: [C++ Error] SPMain.cpp(152): E2314 Call of nonfunction

if (newpos != -1)
{
    Memo->SelStart = newpos;
    Memo->SelLength = cd->FindText.Length();
}
else
{
    MessageBox(NULL, "End of document reached.", "Find/Rep", MB_OK);
    Memo->SelStart = 0;
}

}


Napisałem cały find bo chyba coś tu jest źle??

0

No przecież ci kompilator napisał :) :

Memo->Text.Length(),st); //tu mi pokazuje błąd: [C++ Error] SPMain.cpp(152): E2314 Call of nonfunction

Czyli po prostu odwołałeś się do czegoś co nie jest funkcją tak, jakby nią było:)

Może chodziło ci o RichEdit1->FindText(..., ale TMemo tej funkcji nie zawiera, więc po prostu zamiast TMemo użyj TRichEdit z ustawionym

PlainText = true;
0

bardzo dobrze działa tylko opcja "Zamień" (Replace). A "Znajdź" wyszukuje tylko pierwsze słowo a jak klikam "Znajdź następne" to nic.

1 użytkowników online, w tym zalogowanych: 0, gości: 1