Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создание своего компонента, Нужна помощь 
:(
    Опции темы
Superklug
Дата 5.12.2008, 11:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 227
Регистрация: 16.6.2006

Репутация: нет
Всего: нет



Доброго всем времени суток!
Мне необходимо написать свой компонент. Это ComboBox похожий на строку адреса в IE. Суть его поведения в том, что элементы выпадающего списка фильтруются по мере ввода текста в поле.
Никогда не писал свои компоненты, поэтому очень надеюсь на вашу помощь...
От чего лучше наследовать новый класс? Если от TEdit, то как добавить всплывающее окно? Если от TComboBox, то как изменить его поведение?

Буду рад примерам и ссылкам на литературу...
PM MAIL   Вверх
MoLeX
Дата 5.12.2008, 12:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 1
Всего: 140



Superklug, я уже наподобие такой темы создал =)))) если получится у тебя то поделись


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
UniBomb
Дата 5.12.2008, 12:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
***
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 1754
Регистрация: 24.10.2006
Где: Санкт-Петербург

Репутация: 3
Всего: 97



Цитата(Superklug @  5.12.2008,  11:54 Найти цитируемый пост)
От чего лучше наследовать новый класс? ... TEdit ... TComboBox

Месье слышал про множественное наследование? Хотя в этом случае лечше использовать не Эдит а Мемо (или Рич)....

Хотя вообще то я бы сделал по другому - TEdit + TMemo+ TStringList + TBitBtn (Если нужно будет принудительно закрывать выпадающий список). Как только ты начинаеш вводить текст в Эдит появляется Мемо с вожможными вариантами. Сортировка в TStringList'е уже реализована, так что проблем не будет. А исчезать оно (Мемо) будет в том случае, если Edit или BitBtn будут терять фокус. Соответсвенно в TStringList'е будут храниться все-все-все значения. Ну про BitBtn думаю всё понятно...

Это сообщение отредактировал(а) UniBomb - 5.12.2008, 12:23
PM MAIL ICQ Skype   Вверх
Superklug
Дата 5.12.2008, 12:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 227
Регистрация: 16.6.2006

Репутация: нет
Всего: нет



UniBomb, видимо надо было мне раньше упомянуть, что элементы списка берутся из БД. Т.е. по мере ввода будет просто меняться SQL запрос... 
Теперь про Memo.. Во-первых почему именно оно? Ведь в нем отображается текст, а не список элементов. Во-вторых отобразить Memo - это значит разместить его на форме родителе, так? Как тогда ему "всплывать" за пределы формы?
PM MAIL   Вверх
UniBomb
Дата 5.12.2008, 13:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
***
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 1754
Регистрация: 24.10.2006
Где: Санкт-Петербург

Репутация: 3
Всего: 97



Цитата(Superklug @  5.12.2008,  12:50 Найти цитируемый пост)
по мере ввода будет просто меняться SQL запрос

хм... а не будет это дело тормозить?


Цитата(Superklug @  5.12.2008,  12:50 Найти цитируемый пост)
 Memo.. Во-первых почему именно оно?

ну да, тут я неподумавши сказал. Нужно TListBox.


Цитата(Superklug @  5.12.2008,  12:50 Найти цитируемый пост)
 Как тогда ему "всплывать" за пределы формы?

Про "всплывать за пределы формы" ни я, ни ты не говорили. Непонятно к чему вопрос...

Добавлено через 1 минуту и 51 секунду
а ещё лучше поискать готовый компонент..
PM MAIL ICQ Skype   Вверх
MoLeX
Дата 5.12.2008, 13:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 1
Всего: 140



Цитата(UniBomb @  5.12.2008,  13:00 Найти цитируемый пост)
а ещё лучше поискать готовый компонент.. 

угу... тока гугл меня на этот раз подводит


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
UniBomb
Дата 5.12.2008, 13:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
***
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 1754
Регистрация: 24.10.2006
Где: Санкт-Петербург

Репутация: 3
Всего: 97



PM MAIL ICQ Skype   Вверх
MoLeX
Дата 5.12.2008, 13:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 1
Всего: 140



Superklug, короче нашел  один, вроде неплохой =)))

Добавлено через 16 секунд
UniBomb, на торри они же платные?!

Добавлено через 1 минуту и 16 секунд
Superklug это обычный едит который появляется на вкладке стандарт

Присоединённый файл ( Кол-во скачиваний: 11 )
Присоединённый файл  AutoCompleteEdit.rar 4,09 Kb


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
UniBomb
Дата 5.12.2008, 13:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
***
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 1754
Регистрация: 24.10.2006
Где: Санкт-Петербург

Репутация: 3
Всего: 97



Цитата(MoLeX @  5.12.2008,  13:26 Найти цитируемый пост)
на торри они же платные?!

не все...
PM MAIL ICQ Skype   Вверх
MoLeX
Дата 5.12.2008, 13:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 1
Всего: 140



ну я там тока платные видел.. может плохо смотрел..


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
Rrader
  Дата 5.12.2008, 13:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Inspired =)
***


Профиль
Группа: Экс. модератор
Сообщений: 1535
Регистрация: 7.5.2005

Репутация: 13
Всего: 191



Вообще-то Windows предоставляет возможность управлять стандартным списком с помощью SHAutoComplete  или IAutoComplete (более функционален)
Код

//---------------------------------------------------------------------------

#include <vcl.h>
#include <shlwapi.h>
#pragma hdrstop
#pragma comment(lib, "shlwapi.lib")

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
    CoInitialize(NULL);
    int Res;
    Res = SHAutoComplete(Edit1->Handle, SHACF_FILESYSTEM | SHACF_URLALL |
        SHACF_USETAB);
    if SUCCEEDED(Res) {
        ShowMessage("Edit AutoComplete is on");
    }
    Res = SHAutoComplete(GetWindow(ComboBox1->Handle, GW_CHILD),
        SHACF_FILESYSTEM | SHACF_URLALL | SHACF_USETAB);
    if SUCCEEDED(Res) {
        ShowMessage("ComboBox AutoComplete is on");
    }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormDestroy(TObject *Sender)
{
    CoUninitialize();
}
//---------------------------------------------------------------------------



--------------------
Let's do this quickly!
Rest in peace, Vit!
PM MAIL Skype   Вверх
MoLeX
Дата 5.12.2008, 14:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 1
Всего: 140



Rrader, вполне возможно)))

дело в том что я нуб в С++ и мне легче найти компонент и научиться с ним работать чем вот это вытворять.



--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
mrbrooks
Дата 5.12.2008, 14:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 167
Всего: 306



Цитата(MoLeX @  5.12.2008,  14:05 Найти цитируемый пост)
дело в том что я нуб в С++

С++ - здесь не причем. Это WinAPI  smile 
PM MAIL   Вверх
MoLeX
Дата 5.12.2008, 14:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 1
Всего: 140



Цитата(mrbrooks @  5.12.2008,  14:17 Найти цитируемый пост)
С++ - здесь не причем. Это WinAPI 

угу. но пока мои знания скупы (сам об этом знаешь), особенно с этим новым для меня зверем =)))

за все время знакомства со С++ я прочитал тока одну книжку, очень тонкую и не самую хорошую.


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
Superklug
Дата 5.12.2008, 21:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 227
Регистрация: 16.6.2006

Репутация: нет
Всего: нет



Rrader, почитал про SHAutoComplete и IAutoComplete. Первое не подходит, т.к. позволяет вводить только URL и каталоги. Второе, т.к. возникает ограничение на ОС(

Зато нашел вот это.
Помогите мне "прикрутить" этот класс к проекту. Мои попытки не увенчались успехом(( Куча ошибок...

Это сообщение отредактировал(а) Superklug - 6.12.2008, 00:00
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0753 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.