Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

DBComboBox


Страницы:   1 2 3 4 5 6 7 8

Andrewtitoff ©   (2009-11-02 15:39:00) 

Здравствуйте!, подскажите пожалуйста как сделать что бы в DBComboBox работал выпадающий список?, не ручным заполнением, т.к. у меня в таблице 80 полей и 7тысяч записей, а при ручном заполнении получается приличная тормозня т.к. при ручном заполнении приходится еще и проверять на наличие уже такой записи в DBComboBox-е (в таблице только одно поле ключевое и уникальное, все остальные могут повторяться сколько угодно хоть все 7тыс одинаковые...), или может быть что то другое использовать, а не DBComboBox, но нужна возможность редактирования...


Сергей М.   (2009-11-06 13:39:00) [21]

Мдя..
Что ни шаг, то грабли)


Amoeba   (2009-11-06 13:39:00) [22]

Подсказываю тупящему:
[Form1.ADOTable4.Fields[tag].AsString]
или
[Form1.ADOTable4.Fields[tag].Value]
в зависимости от типа поля.


Сергей М.   (2009-11-06 13:38:00) [23]

Св-во Fields[] имеет тип TField, а не String.
Потому и invalid or incompatible)


Andrewtitoff   (2009-11-06 13:37:00) [24]

так
   Form1.ADOQuery1.SQL.Text:=Format('select distinct %'+inttostr(tag)+':s from lift',[Form1.ADOTable4.Fields[tag]]);

ту же ошибку выдает...


Amoeba   (2009-11-06 13:37:00) [25]


> [Form1.ADOTable4.Fields[tag]

Здесь строку должно передать, а у тебя что? Объект поле!


Andrewtitoff   (2009-11-06 13:35:00) [26]

что сюда

Form1.ADOTable4.Fields[i]

вместо "i" писать то?


Andrewtitoff   (2009-11-06 13:32:00) [27]

Млин, чет я уже совсем с ума схожу, пишу так:
for i := 0 to Form2.ComponentCount - 1 do
if Form2.Components[i] is TDBComboBox then
   with TDBComboBox(Form2.Components[i]) do
   begin
   Form1.ADOQuery1.SQL.Text:=Format('select distinct %s from lift',[Form1.ADOTable4.Fields[tag]]);
    while not Form1.ADOQuery1.Eof do
    begin
     Items.Add(Form1.ADOQuery1.Fields[0].AsString);
     Form1.ADOQuery1.Next;
    end;
{}   ShowMessage(name+ '='+inttostr(Form2.Components[i].Tag)+'='+inttostr(i));
   end;


В строке
   Form1.ADOQuery1.SQL.Text:=Format('select distinct %s from lift',[Form1.ADOTable4.Fields[tag]]);


выдает ошибку Format '%s' invalid or incompatible with argument


Сергей М.   (2009-11-06 13:14:00) [28]


> а что это плохо?


А разве плохо зайдя в подъезд доехать на лифте до нужного 7го этажа, просто нажав кнопку с цифрой "7", вместо того чтобы шлепать туда пешком по лестнице и считать этажи самому ?)


Andrewtitoff   (2009-11-06 13:04:00) [29]


> Сергей М. ©   (06.11.09 12:55) [123]
> > делаю прям на формеНа форме кроме тех комбобоксов у тебя
> наверняка еще туева хуча всякоразных компонентов.И сей факт
> исключает возможность обойтись без проверки Components[i]
> is TComboBox

Да, так я с проверкой делаю, а что это плохо?


Сергей М.   (2009-11-06 12:55:00) [30]


> делаю прям на форме


На форме кроме тех комбобоксов у тебя наверняка еще туева хуча всякоразных компонентов.
И сей факт исключает возможность обойтись без проверки
Components[i] is TComboBox


Anatoly Podgoretsky   (2009-11-06 12:51:00) [31]

> Andrewtitoff  (06.11.2009 12:40:59)  [119]

У компонентов нет порядковых номеров.


Andrewtitoff   (2009-11-06 12:46:00) [32]


> Сергей М. ©   (06.11.09 12:42) [120]
> > какое свойство отвечает за порядковый номер компонента?
> Компонент не имеет порядкового номера.

Да, я уже осознал, делаю уже через Таг, правда не стал никуда размещать, делаю прям на форме


Сергей М.   (2009-11-06 12:42:00) [33]


> какое свойство отвечает за порядковый номер компонента?


Компонент не имеет порядкового номера.


Andrewtitoff   (2009-11-06 12:40:00) [34]


> Сергей М. ©   (06.11.09 12:03) [118]
> > опять я тупанулЧто-то подозрительно часто это происходит)

Ну да, бывает, =)))
просто отвлекают часто еще... =)))

А какое свойство отвечает за порядковый номер компонента?, т.е. что-бы без Таг-а обойтись - а так же по Components[i] обращаться?, или так нельзя?


Сергей М.   (2009-11-06 12:03:00) [35]


> опять я тупанул


Что-то подозрительно часто это происходит)


Andrewtitoff   (2009-11-06 12:02:00) [36]

Undeclared identifier: 'TDBComboBox'
Сорри, это опять я тупанул, там в юсесах небыло прописано DB...


Сергей М.   (2009-11-06 11:56:00) [37]


> подчеркивает TDBComboBox


Молча подчеркивает ?)


Andrewtitoff   (2009-11-06 11:53:00) [38]


> Сергей М. ©   (06.11.09 11:26) [113]
> Одно из простейших решений:Помести свои комбобоксы на, например,
>  TPanel, в св-ве Tag каждого укажи индекс соотв.поля в своей
> таблице.Тогдаfor i := 0 to ComboPanel.ComponentCount - 1
> do   if ComboPanel.Components[i] is TComboBox then     with
> TComboBox(ComboPanel.Components[i]) do      begin      
>  FieldIndex := Tag;....     end;


А почему так ему нравится:
if Form2.Components[i] is TComboBox then
а так не хочеТ:
if Form2.Components[i] is TDBComboBox then
подчеркивает TDBComboBox....


sniknik   (2009-11-06 11:35:00) [39]

> кстати, есть такая фишка, как множественные рекордсеты.
access/jet не поддерживает.


Сергей М.   (2009-11-06 11:26:00) [40]

Одно из простейших решений:
Помести свои комбобоксы на, например, TPanel, в св-ве Tag каждого укажи индекс соотв.поля в своей таблице.

Тогда

for i := 0 to ComboPanel.ComponentCount - 1 do
 if ComboPanel.Components[i] is TComboBox then
    with TComboBox(ComboPanel.Components[i]) do
    begin
       FieldIndex := Tag;
....
    end;


Страницы:   1 2 3 4 5 6 7 8

Наверх

Титульная страница Поиск, карта сайта Написать письмо