CYFROWY BARON • PROGRAMOWANIE • Zobacz wÄ…tek - MDIChild i użycie ReplaceDialoga
Strona 1 z 1

MDIChild i użycie ReplaceDialoga

Nowy postNapisane: wtorek, 23 grudnia 2014, 09:51
przez Rumcajs
Witam,

Mam formę typu MDIChild, na której mam RichEdita i funkcję Wyszukaj/Zamień zrobioną przy użyciu ReplaceDialogu.
Sama funkcja wyszukiwania jest zrobiona standardowo i działa prawidłowo.
Problem polega na tym, że jak na formie ReplaceDialogu klikam "Znajdź następny",
to nie widać tego wyszukanego tekstu na formie MDIChild.
Dopiero jak sam kliknę na RichEdita, to widzę, gdzie został znaleziony tekst.
Jak forma z RichEditem jest typu Normal, to działa to dobrze.

Co trzeba dodać, aby na formie MDIChild działało to tak samo jak na normalnej???

Re: MDIChild i użycie ReplaceDialoga

Nowy postNapisane: wtorek, 23 grudnia 2014, 10:03
przez Cyfrowy Baron
Wpisz w funkcji wyszukującej na końcu polecenie:

KOD cpp:   •  UKRYJ  •
RichEdit1->SetFocus();

Re: MDIChild i użycie ReplaceDialoga

Nowy postNapisane: wtorek, 23 grudnia 2014, 10:32
przez Rumcajs
Mam wpisane RichEdit1->SetFocus().
Tak wyglÄ…da moja funkcja w zdarzeniu OnFind ReplaceDialoga:
Kod: Zaznacz cały
if(RichEdit1->SelLength) RichEdit1->SelStart += 1;

int MatchPos = RichEdit1->FindText(ReplaceDialog1->FindTextA,
           RichEdit1->SelStart, RichEdit1->Text.Length(),SearchTypes()<< stMatchCase);

if( MatchPos != -1 )
{
   RichEdit1->SetFocus();
   RichEdit1->SelStart = MatchPos;
   RichEdit1->SelLength = ReplaceDialog1->FindTextA.Length();
}
else
{
    RichEdit1->SelStart = 0;
}

Re: MDIChild i użycie ReplaceDialoga

Nowy postNapisane: wtorek, 23 grudnia 2014, 11:35
przez Cyfrowy Baron
Ale powinna być na końcu wyszukiwania, a nie na końcu. Przecież chodzi o to żeby ustawić focus na kontrolkę po zakończeniu operacji. Z drugiej strony, jeśli aktywne jest okienko ReplaceDialog, to przywołaniu focusa na kontrolkę w oknie nic nie da, trzeba by jeszcze przywołać to okno.

Re: MDIChild i użycie ReplaceDialoga

Nowy postNapisane: wtorek, 23 grudnia 2014, 12:54
przez Rumcajs
A w jaki sposób przywołać to okno ???

Re: MDIChild i użycie ReplaceDialoga

Nowy postNapisane: wtorek, 23 grudnia 2014, 14:25
przez Cyfrowy Baron
http://programowanie.cal.pl/cyfbar/api2.html#api37

Tylko, że jeżeli okno dialogowe ReplaceDialog jest modalne to nie da się go tak przywołać.