Вставьте определенный текст буфера обмена в 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://
также.