Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) dúvida quanto a função IF em delphi


Sonyer

Pergunta

Olá amigos!

Gostaria de saber como, se existir um texto selecionado e, se no que estiver selecionado haver por exemplo a palavra google sem espaços, por exemplo se selecionar google.com.br, ele encontra a paçavra google, tipo se encontrar google no que estiver selecionado então seta 3 varo[aveis com um determinado valor.

Há como?!

Desde já agradeço!

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0
Gostaria de saber como, se existir um texto selecionado e, se no que estiver selecionado haver por exemplo a palavra google sem espaços, por exemplo se selecionar google.com.br, ele encontra a paçavra google, tipo se encontrar google no que estiver selecionado então seta 3 varo[aveis com um determinado valor.
Sonyer, uma vez que no esquema de localização (acho que diz respeito a seu outro tópico sobre este assunto), no evento OnFind, quando RichEdit1.FindText retorna uma posição válida, você terá o texto selecionado baseado no código que lá está:

...
  FoundPos := RichEdit1.FindText(ReplaceDialog1.FindText, StartSearch, EndSearch, Options);
// Marca (seleciona) o texto encontrado
  if FoundPos <> -1 then
  begin
    RichEdit1.SelStart := FoundPos;
    RichEdit1.SelLength := Length(ReplaceDialog1.FindText);
    RichEdit1.SetFocus;
  end;
end;
O que ocorre ao termino do bloco (após o SetFocus), é que a propriedade SelText conterá o texto selecionado. No seu exemplo, seria: google.com.br; Então, se você ainda precisa fazer algum outro teste sobre o conteúdo selecionado, este é o momento:
...
  FoundPos := RichEdit1.FindText(ReplaceDialog1.FindText, StartSearch, EndSearch, Options);
// Marca (seleciona) o texto encontrado
  if FoundPos <> -1 then
  begin
    RichEdit1.SelStart := FoundPos;
    RichEdit1.SelLength := Length(ReplaceDialog1.FindText);
    RichEdit1.SetFocus;
    FoundPos := Pos('google', RichEdit1.SelText);
    if FoundPos > 0 then
    begin
      // aqui você faz algum processamento 
    end;
  end;
end;

Pode ser conveniente que você converta para upper case ou lower case o texto para uma comparação sem erros:

FoundPos := Pos('google', LowerCase(RichEdit1.SelText));

ou

FoundPos := Pos('GOOGLE', UpperCase(RichEdit1.SelText));

Caso a tal palavra a ser procurada na seleção esteja armazenada em uma variável ou algo assim (ou seja, não seja estática - constante), então pode ser conveniente usar uma das funções sobre ela também.

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0

Olá!

Infelizmente não é o que pretendo... Mas valeu a tua bela explicação até me ajudou em outro menu!

Por exemplo tenho um edit, eu coloco um endereço de um vídeo do youtube nele, ai ao clicar no botão para adicionar ele terá de comparar de terá de adicionar a baliza do youtube do Dailymotion ou do google vídeos ai gostaria que ele procurasse se o começo for do google então ele adiciona a baliza relacionada ao google, se for do Dailymotion ele adiciona a baliza do Dailymotion.

Veja se compreende!

Link para o comentário
Compartilhar em outros sites

  • 0
Por exemplo tenho um edit, eu coloco um endereço de um vídeo do youtube nele, ai ao clicar no botão para adicionar ele terá de comparar de terá de adicionar a baliza do youtube do Dailymotion ou do google vídeos ai gostaria que ele procurasse se o começo for do google então ele adiciona a baliza relacionada ao google, se for do Dailymotion ele adiciona a baliza do Dailymotion.
Sonyer, de qualquer modo, o caminho é similar:

procedure TForm1.BtnBalizarClick(Sender :Object);
begin
  if Pos('google', Edit1.Text) > 0 then
    // adiciona na baliza do google
  else if Pos('dailymotion', Edit1.Text) > 0 then
    // adiciona na baliza do dailymotion
  else if Pos('youtube', Edit1.Text) > 0 then
    // adiciona na baliza do youtube
end;

No seu Edit, altere a propriedade CharCase para ecLowerCase de modo que o texto estará sempre minúsculo.

Acho que era isso.

Abraços

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,2k
×
×
  • Criar Novo...