Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.02.20;
Скачать: CL | DM;

Вниз

Окошко с пунктами   Найти похожие ветки 

 
Dr. Genius   (2005-01-30 16:57) [0]

Если, например, в Delphi где-нибудь в коде программы написать SysUtils и поставить точку, то откроется небольшое окошко с функциями и процедурами библиотеки SysUtils. Вообще, такое меню часто встречается в приложениях Windows. Вот, к примеру, если запустить Internet Explorer и в поле для ввода адреса написать www и поставить точку, то в таком окошке появится список всех сайтов, которые были посещены пользователем. Вопрос: как мне сделать в своей программе так, чтобы в Edit’е при вводе символа { (открывающая фигурная скобка), открывалось такое же меню и можно было бы выбирать пункты. Да, и как заполнить это меню нужными пунктами?


 
Neznaika ©   (2005-01-30 17:29) [1]

Ну во-первых я так понимаю не edit а combobox...

1.Читаем первый введенный символ
2.Если это "{" то
3.Ждем пока пользователь закончит ввод и нажмет например Enter
4.Читаем что ввел пользователь
5.Если введеная строка когда либо вводилась то предлагаем ее
6.Если введенная строка не вводилась то записываем ее в *.txt
7.При повторной попытке пользователя ввести что либо, после каждого keyup ищем в *.txt такойже набор символов если есть то предлагаем если нет то ждем оригинальную строку и записываем ее в файл

просто мои мысли по этому поводу... :-0


 
Dr. Genius   (2005-01-30 19:44) [2]

Да, но КАК открыть это окошко с пунктами?


 
Dr. Genius   (2005-02-04 14:06) [3]

Нет, нет, Вы меня не так поняли. Я это хочу сделать не с помощью средств компонента ComboBox, а с помощью Edit’а. Я знаю, что в Edit’е это возможно, т. к. встречал подобное в приложениях Windows. Мне требуется сделать так, чтобы при вводе определённого символа (вне зависимости от того, какова позиция введённого символа в строке) открывалось окошко с пунктами (в Windows оно белого цвета и, если не ошибаюсь, в нижнем правом его краю есть область для растягивания (изменения размера) этого окошка). Неужели никто не знает, как это сделать?


 
TUser ©   (2005-02-04 14:10) [4]

Окошко в Delphi IDE очень мало похоже на комбобокс из эксплорера. А что тебе надо от эдита - вообще загадка.


 
esu ©   (2005-02-04 14:16) [5]


> Dr. Genius   (04.02.05 14:06) [3]

ну что бы окошко появилось его нужно создать :) Насколько оно будет похоже на то что ты видел зависит от параметров которые ты задашь при создании. Ну а в нем уже рисуй что хочешь.


 
wl ©   (2005-02-04 14:17) [6]

нужно сделать ещё одно окно без заголовка и с ListBox-ом на всё окно, и когда его надо вывести, заполнить ListBox и вывести окошко по координатам курсора. как только окно потеряет фокус или пользователь сделает выбор - прятать окно


 
Плохиш ©   (2005-02-04 14:23) [7]

>Dr. Genius

В моей версии IE 6.х строка ввода адреса является комбобоксом.


 
wl ©   (2005-02-04 14:35) [8]

Плохиш ©   (04.02.05 14:23) [7]

там не только комбобокс, окошко автокомплекции можно порастягивать во все стороны. вот в Opera - там только комбобокс


 
Плохиш ©   (2005-02-04 14:43) [9]

>wl ©   (04.02.05 14:35) [8]

Хм, и правда :-) никогда не обращал внимания. Ну тогда как ты в [6] и описал.


 
snake_r   (2005-02-04 15:14) [10]

function SHAutoComplete(hwndEdit: THandle; Flags: Cardinal): HRESULT; stdcall;

function EnableAutoComplete(Handle: THandle; FileSystem, URL: Boolean): Boolean;

implementation

function SHAutoComplete; external "ShlWApi" name "SHAutoComplete";

function EnableAutoComplete(Handle: THandle; FileSystem, URL: Boolean): Boolean;
const
 SHACF_FILESYSTEM = $00000001;
 SHACF_URLHISTORY = $00000002;
 SHACF_URLMRU = $00000004;
 SHACF_USETAB = $00000008;
const
 IFileSystem: array[Boolean] of Cardinal = (0, SHACF_FILESYSTEM);
 IURL: array[Boolean] of Cardinal = (0, SHACF_URLHISTORY or SHACF_URLMRU);
var
 Flags: Cardinal;
begin
 Result := False;

 Flags := IFileSystem[FileSystem] or IURL[URL];
 if Flags <> 0 then
 begin
   Flags := Flags or SHACF_USETAB;
   Result := SHAutoComplete(Handle, Flags) = 0;
 end;

end;

// Пример использования:
// Для комбобокса:
// EnableAutoComplete(FindWindowEx(ComboBox1.Handle, 0, "Edit", nil), False, True)
// работает в точности как на IE


 
wl ©   (2005-02-04 15:21) [11]

snake_r   (04.02.05 15:14) [10]

решение красивое, но только для url и файлов.
вопрос был также и о самостоятельном заполнении списка


 
Igor_thief   (2005-02-04 16:54) [12]

snake_r   (04.02.05 15:14) [10]
EnableAutoComplete(FindWindowEx(ComboBox1.Handle, 0, "Edit", nil), False, True)

Чего-то никак не врублю, как этот код использовать?


 
Dr. Genius   (2005-02-07 12:21) [13]


> Чего-то никак не врублю, как этот код использовать?


Я тоже...


 
Dr. Genius   (2005-02-07 12:22) [14]


> Чего-то никак не врублю, как этот код использовать?


Я тоже...


 
Dr. Genius   (2005-02-07 12:22) [15]


> Чего-то никак не врублю, как этот код использовать?


Я тоже...



Страницы: 1 вся ветка

Текущий архив: 2005.02.20;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.047 c
1-1107432911
Павел
2005-02-03 15:15
2005.02.20
Компоненты для работы с регулярными выражениями


4-1104765228
Error202
2005-01-03 18:13
2005.02.20
Передача данных из IE в приложение


8-1099938083
belpyro
2004-11-08 21:21
2005.02.20
помогите пожалуйста с фильтрами!!!


1-1107510977
viola
2005-02-04 12:56
2005.02.20
Выделение активной строки StringGrid


14-1107087547
Думкин
2005-01-30 15:19
2005.02.20
Кто последний в дурку? Я за вами.