Вставьте определенный текст буфера обмена в TEdit в CBB 10

Я хочу, чтобы, когда пользователь нажимал кнопку, ТОЛЬКО ТЕКСТ, КОТОРЫЙ СОДЕРЖИТ URL (начиная с http://) на Clipboard автоматически вставляется в TEdit,

Я попробовал следующий код, но не работает вообще.

#include <Clipbrd.hpp>

void __fastcall TForm1::Button1Click(TObject *Sender)
{
String Text = "http://";

  if (Clipboard()->HasFormat(CF_TEXT))
  {
    Edit->Text = ContainsText(Clipboard()->AsText, Text);
    // Clipboard()->Clear();
  }
}

1 ответ

Решение

ContainsText() возвращает bool указывающий, был ли найден подтекст или нет. Вы присваиваете этот результат непосредственно вашему TEdit вместо того, чтобы использовать его для принятия решения о том, назначать ли текст буфера обмена TEdit,

Попробуйте это вместо этого:

#include <Clipbrd.hpp>
#include <StrUtils.hpp>

void __fastcall TForm1::Button1Click(TObject *Sender)
{
    if (Clipboard()->HasFormat(CF_TEXT))
    {
        String CBText = Clipboard()->AsText;
        if (ContainsText(CBText, "http://"))
        {
            Edit->Text = CBText;
            // Clipboard()->Clear();
        }
    }
}

КСТАТИ, http:// не единственная широко используемая схема URL. Как минимум, рассмотрите также поиск https:// также.

Другие вопросы по тегам