Форум: "Основная";
Текущий архив: 2005.02.20;
Скачать: [xml.tar.bz2];
ВнизОкошко с пунктами Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.037 c