Construção do Editor de Textos
Quarta parte
Passemos ao submenu Localizar.
Coloque um componente FindDialog no projeto. Em seguida abra o Menu Designer e dê um duplo clique em Localizar. No Editor Properties, entre as chaves { e } que se abrirem, digite:
FindDialog1->Execute();
int FoundAt, StartPos, ToEnd; // declara três variáveis int
////////////////////////////////////////////////////////////////////////
// INICIA A BUSCA A PARTIR DA SELEÇÃO ATUAL
// OU DE OUTRA FORMA
// INICIA A PARTIR DO INÍCIO DO TEXTO
/*SelLength devolve o número de caracteres selecionados*/
if (RichEdit1->SelLength) /* se há caracteres selecionados em RichEdit1*/
/*SelStart devolve a posição do primeiro caracter selecionado no texto*/
/*o código abaixo devolve a posição do último caracter selecionado*/
StartPos = RichEdit1->SelStart + RichEdit1->SelLength;
else
StartPos = 0;
///////////////////////////////////////////////////////////////////////////
/*Length() retorna o número de caracteres de AnsiString*/
/*Ou ToEnd será igual a Text.Lengt() ou igual ao número dos
caracteres a serem contados após o último caracter selecionado*/
ToEnd = RichEdit1->Text.Length() - StartPos;
/*FindText busca o texto num controle rich edit para a string
especificada no parametro SearchStr (no exemplo: FindDialog1->FindText)*/
FoundAt = RichEdit1->FindText(FindDialog1->FindText,
StartPos, ToEnd, TSearchTypes());
if (FoundAt != -1) // se a variável for difetente de -1
RichEdit1->SetFocus(); // coloca o foco em RichEdit1
// coloca o cursor na primeira ocorrência
RichEdit1->SelStart = FoundAt;
// seleciona a string procurada no texto do RichEdit1
RichEdit1->SelLength = FindDialog1->FindText.Length();
|
No Object Inspector, no evento (Events) OnFind de FindDialog1 escolha a opção Localizar1Click. Em Properties, dê um duplo clique em Options. Altere de false para true as seguintes opções:
|
frHideMatchCase |
true |
|
frHideWholeWord |
true |
|
frHideUpDown |
true |
Agora seu editor já se encontra apto para efetuar algumas buscas de textos ou caracteres.
|
HOME || MAPA DO SITE || CURSOS || TUTORIAIS || LINKS || FORUM || CONTATO |