Member
Статус: Не в сети Регистрация: 03.01.2004 Откуда: Питер
У меня проблемка с StringGrid. Он по onKeyPress не ловит нажатие Del (ну и ессно др. типа Ins, End, Alt и т.д., но меня интересует только Del), как это можно поправить?
_________________ Здесь так мало тех, с кем легко говорить,
Еще меньше тех, с кем не страшно молчать (c)
Member
Статус: Не в сети Регистрация: 04.01.2004 Откуда: Владивосток
как пролистать мемо до определенного слова. пример. есть текст. в нем где то в середине есть слово "Нужное слово". И мне нужно пролистнуть весь текст до этого слова. как можно сделать?
если не понятно - то еще пример - нажмите в браузере контр+F. появится меню поиска. наберите что нить. нажмите поиск. и у вас страница прокрутится до искомого слова. жду ответа
Member
Статус: Не в сети Регистрация: 23.09.2003 Откуда: South Ural
SardoX через посылку сообщений EM_FINDTEXT (для нахождения позиции) и EM_SETSEL (для перехода к слову) - в делфи удобно использовать для этого метод perform объекта
смотри к примеру http://win32assembly.online.fr/tut34.html
хотя конечно никто не запрещает пользоваться встроенной функциональностью trichedit (методы FindText и SetCaretPos)
Member
Статус: Не в сети Регистрация: 04.01.2004 Откуда: Владивосток
вопрос быдет глупый. я хочу сделать тулбар. т.е будут кнопки с картинками.
тащу на форму контрлбар, на него тулбар, а в тулбаре создаю тулбаркнопки. но где этим кнопкам(как) выставить картики?? а то уже создал ImageList, в него забил все картинки.
Добавлено спустя 4 минуты, 16 секунд: блин. уже сам ответ нашел.
Добавлено спустя 8 часов, 17 минут, 54 секунды: Как сжать базу аксес. Просто она имеет большой размер.
что б при запуске база разархивиролалась, а при выходе- заархивировалась
Добавлено спустя 2 часа, 33 минуты, 41 секунду: и еще:
база аксесс. есть таблица из тысячи строк. 2 стобца: Nazvanie / Recept
названия короткие, но вот рецепты - бывают и по пол страницы..
мне нужно искать слово(edit1.text) в рецепте(Recept).
сделал так
var zapros:string;
----
form1.ADOQuery1.active:=false;
form1.ADOQuery1.close;
form1.ADOQuery1.SQL.Clear;
zapros:='SELECT nazvanie FROM MYNEWTABLE Where recept like "%' + edit1.text + '%"';//в эдите храниться искомое слово
form1.ADOQuery1.SQL.text:=zapros ;
form1.ADOQuery1.open;
но уж очень долго это. можно как нить побыстрее?
Member
Статус: Не в сети Регистрация: 10.03.2004 Откуда: Минск
Вопрос по MDI приложениям. Если на родительской форме находится какой-либо компонент (кнопка там или Edit), то дочерняя форма как бы прозрачна, т.е этот компонент виден через неё. Как можно этого избежать? Т.е чтобы компонент, который находится на главной форме не был виден через дочернюю
Member
Статус: Не в сети Регистрация: 04.01.2004 Откуда: Владивосток
юзаю адо и аксесс
надо создать запрос на поиск определенного кол-ва слов.
есть такой запрос
zapros:='SELECT nazvanie,recept FROM MYNEWTABLE Where recept like "%' + edit1.text + '%" or nazvanie like "%' + edit1.text + '%"';
form1.ADOQuery1.SQL.text:=zapros ;
это поиск в двух полях одного слова.
а мне надо найти 2 или 3, а может и 4 и т.д слов.
т.е зависит от пользователя.
т.е человек введет: delphi + memo
и должно найтись поле, в котором встретиться как слово delphi, так и слово memo. для определенного кол-ва слов я могу создать запрос, а вот для неопределенного...т.е мож человек введет: delphi + memo + проблема.........
а про тот вопрос:
Ray Adams можно сделать так
использовать фильтр для клиентского НД.
ADOQuery1.Filtered := true; //1 раз
................
ADOQuery1.Filter := 'recept like ...
Но лучше всего в даном случае (мое личное мнение) использовать OnFilterRecord для DBGrid, т.к фильтр не всегда можно составить так, как тебе требуется (по текстовому полю), есть ограничения на маску, почитай в MSDN.
или же быстрее будет если использовать поиск по индексу (тот который индекс будет использовать) и соответственно этот иддекс по этому полю должен быть.
в данном случае индекс не используется, вот если убрать первый знак % то будет... но смысл запроса несколько поменяется.ищеш вхождение в большом тексте, это не только полный скан таблици но и скан каждого "нехилого" текста, по твоим же словам, в каждой записи.если не менять смысла, заменить форму всетаки придется, есть такой способ с дополнительной индексированной таблицей куда вносятся слова из текста и ссылка на запись в которой оно находится. это в общем, если подробности, найди описание как реаализован полнотекстовый поиск в MSSQL тебе придется тоже самому реализовывать.
Advanced member
Статус: Не в сети Регистрация: 09.06.2003 Откуда: USSR
Фильтр еще более тормозна штука чем сам поик,
Сделать поиск по не определенному кол-ву слов это тебе придется просто составлять длинный запрос , включая каждое слово.
Если прога для личного пользования и стоит на своей же тачке, то попробуй InterBase - все боее серьезная база данных нежеле тормозной Access.
Member
Статус: Не в сети Регистрация: 04.01.2004 Откуда: Владивосток
Ray Adams дело в том, что я не знаю сколько слов будет... я их могу посчитать, но как тогда я их в запрос впишу??ведь если чел введет одно слово - то все будет супер, а если 3? у меня то стоит запрос из 1 слова? а если он 4 введет?
Member
Статус: Не в сети Регистрация: 04.01.2004 Откуда: Владивосток
делал по другому. нашел одно слово. потом в том чт оу меня нашлось искал второе и т.д, т.е отсеивал.
но как осуществить это? создаю я запрос на 1 - е слово. мне находятся куча рецептов с этим словом. а как теперь из них отсеять те, в которых нет 2 слова?
Добавлено спустя 11 минут, 57 секунд: и..дело в том, если я буду юзать объединение - то у меня просто найдутся рецепты с словом 1, словом 2 и т.д а мне надо что находились те рецепты, В КОТОРЫХ ЕСТЬ ВСЕ ЭТИ СЛОВА, т.е слово 1, слово 2 и т.д. теперб понятно?
Advanced member
Статус: Не в сети Регистрация: 09.06.2003 Откуда: USSR
SardoX Блин ты или учится не хочеш или понимать не хочеш!
zapros:='SELECT nazvanie,recept FROM MYNEWTABLE where 0=0 ';
for i:=1 to [колво слов] do
begin
zapros:=' and recept like "%'+слово+'%";
-- следующее слово
end;
а разбор введенной строки уже делай сам, тривиальная задача, разделить предложение на слова
Member
Статус: Не в сети Регистрация: 14.08.2003 Откуда: Питер
Вопрос Извините что спрашиваю глупость но что то я на этом подвис.
Допустим имеется динамический массив массив
Mas[1..9] = (1,3,4,7,6,0,0,0,0). У него High(Mas) равно 10. А как мне из него сделать High(Mas)=6 т.е. "отрубить" последние четыре значения и преобразовать в массив Mas[1..5] = (1,3,4,7,6) ???
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения