Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.12.2009, 23:46   #1
Baaandit
Заблокирован
 
Регистрация: 10.11.2009
Сообщений: 99
По умолчанию Возможно ли?

Много раз видел как при поиске слова или фразы в тексте она-если найдена выделяется. Возможно ли так сделать в DBmemo?Запрос составил работает вроде?

Код:
procedure TForm4.BitBtn2Click(Sender: TObject);
begin
with datamodule2.ADOQuery1
do
begin
Active:=false;
SQL.Clear;
SQL.Add('select *');
SQL.Add('From table1');
SQL.Add('WHERE Opican LIKE  ''%'+Edit4.Text+'%''');
Active:=true;
end;
end;
Изображения
Тип файла: jpg Безимени-1.jpg (12.0 Кб, 58 просмотров)
Baaandit вне форума Ответить с цитированием
Старый 12.12.2009, 01:01   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Да ради бога...
Используем стандартные методы:
Код:
Pos(), PosEx()
DBMemo.SelStart
DBMemo.SelLength

Последний раз редактировалось mihali4; 12.12.2009 в 01:04.
mihali4 вне форума Ответить с цитированием
Старый 12.12.2009, 01:10   #3
Baaandit
Заблокирован
 
Регистрация: 10.11.2009
Сообщений: 99
По умолчанию

Pos(), PosEx()-знаю.
DBMemo.SelStart
DBMemo.SelLength-буду разбираться. А в ячейки Dbgrid тоже возможно?
Baaandit вне форума Ответить с цитированием
Старый 12.12.2009, 01:43   #4
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

По-моему, нет.
Вообще, для ДБГрида резоннее использовать Locate().
Например, в ДБГриде у вас - прайс-лист.
В Эдите вы начинаете набирать первые цифры кода товара и Locate сразу встанет на нужную группу (при условии сортировки по коду)...

Последний раз редактировалось mihali4; 12.12.2009 в 01:46.
mihali4 вне форума Ответить с цитированием
Старый 12.12.2009, 01:59   #5
Baaandit
Заблокирован
 
Регистрация: 10.11.2009
Сообщений: 99
По умолчанию

С dbmemo почти разобрался. Первый раз выделяется, но когда перемещаюсь по записями бд выделение исчезает? Наверно надо в обработчике

Код:
procedure TForm4.Button1Click(Sender: TObject);
begin
datamodule2.ADOQuery1.First;
end;
писать ти по того?Или еще как можно?
Код:
s1:=dbmemo1.Text;
s2:=Edit4.Text;
a:=pos(s2,s1);
dbmemo1.SelStart:=a-1;
dbmemo1.SelLength:=length(s2);
dbmemo1.SetFocus;
Просто у меня 4 поля в Dbgrid находятся и одно в Dbmemo1. И когда кликаешь Dbgrid-меняется данные и в Dbmemo1-и выделение пропадает. Или в обработчике каком-то Dbgrid написать можно?
Baaandit вне форума Ответить с цитированием
Старый 12.12.2009, 02:13   #6
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Перемещение по записям вызывает событие QueryAfterScroll.
Там и обработчик должен быть.
mihali4 вне форума Ответить с цитированием
Старый 12.12.2009, 13:18   #7
Baaandit
Заблокирован
 
Регистрация: 10.11.2009
Сообщений: 99
По умолчанию

И еще вопросы- если в мемо встречается слово несколько раз возможно все слова выделить? И цвет выделения поменять?

Последний раз редактировалось Baaandit; 12.12.2009 в 13:30.
Baaandit вне форума Ответить с цитированием
Старый 12.12.2009, 14:32   #8
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Можно. Мы уже упоминали PosEx()...
Ищем темки вроде "цветные строки".
mihali4 вне форума Ответить с цитированием
Старый 12.12.2009, 15:34   #9
Baaandit
Заблокирован
 
Регистрация: 10.11.2009
Сообщений: 99
По умолчанию

Вот пример простой сделал для себя не выделяет два куска строки в dbmemo. Выделяет один кусок. Почему?

Код:
procedure TForm4.Button1Click(Sender: TObject);
begin
dbmemo1.SelStart:=4;
dbmemo1.SelLength:=9;
dbmemo1.SelStart:=12;
dbmemo1.SelLength:=16;
dbmemo1.SetFocus;
end;
Baaandit вне форума Ответить с цитированием
Старый 12.12.2009, 15:41   #10
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Э-э-э нет, Мемо такого не позволяет...
Используйте DBRichEdit.
mihali4 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подскажите возможно ли. . .. ? _GOMER_ Общие вопросы C/C++ 3 24.04.2009 10:04
Возможно ли...? Dubineanschi Microsoft Office Excel 3 23.07.2008 11:39
Возможно ли... Dubineanschi Microsoft Office Excel 2 23.07.2008 11:09
Возможно ли... SunKnight БД в Delphi 9 27.02.2008 02:51
Возможно ли это...? jungo Microsoft Office Excel 7 20.11.2007 00:01