Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.07.2012, 14:31   #1
BlackHawk74
Новичок
Джуниор
 
Регистрация: 20.07.2012
Сообщений: 1
По умолчанию Проблемы с RzComboBox

Доброго всем времени суток)
В своем проекте использую пакет RaizeComponents v.5.3 среда разработки Delphi 7.
Возникла проблема при использовании RzComboBox.
Ситуация следующая: есть два RzComboBox, строки которых заполняются из таблиц БД. Причем строки RzComboBox2 заполняются в зависимоти от выбранного значения в RzComboBox1 из разных таблиц БД. При управлении комбобоксами в процессе работы проекта с помощью мыши проблем не возникает, но если выбор строки в комбобоксе осуществлять с помощью клавиатуры, то наблюдается такая картина:

1. Допустим в 1-м комбобоксе выбираем 1-е значение, в результате этого формируются строки 2-го комбобокса из таблицы БД в количестве 5 штук.
При переходе на 2-й комбик все работает отлично.
2. Возвращаемся в 1-й комбобокс и выбираем 2-е значение, в результате чего формируются строки 2-го комбобокса из другой таблицы БД в количестве 10 штук.
3. При переходе на 2-й комбик все строки (10 штук) сформированы и присутствуют), но при попытке выбрать значение комбика (с помощью стрелок клавы) ниже 5 строки происходит циклическое смещение на первую строку комбика (т.е. выбрать 6,7,8,9 и 10 строки таким образом не возможно). При этом не важно, открыта выпадающая часть комбика или нет. При управлении мышкой из выпадающего списка можно выбрать ЛЮБУЮ сторку (от 1 до 10).
Т.о. при динамическом заполнении 2-го комбика каким-то образом в нем сохраняется предыдущее значение Count и если оно меньше текущего количества строк в комбике, то все строки ниже этого значения клавой выбрать не возможно.


PHP код:
procedure TForm3.SprInit(SenderTRzComboBoxTablestring);
var 
CountRec,j:Integer;
begin
  Sender
.Items.Clear;
  
Form3.ZTable1.TableName:=Table;
  
Form3.ZTable1.Active:=True;
  
CountRec:=Form3.ZTable1.RecordCount;
  
j:=Sender.Tag;
  
with Form3.ZTable1 do
    
begin
      First
;
      while 
not Eof do
        
begin
          
case j of
          1
:
            
begin
              Sender
.AddItemValue(Form3.ZTable1.FieldValues['Naim'],IntToStr(Form3.ZTable1.FieldValues['Id']));
            
end;
          
2:
            
begin
              Sender
.AddItemValue(Form3.ZTable1.FieldValues['Abr']+' - '+Form3.ZTable1.FieldValues['Naim'],IntToStr(Form3.ZTable1.FieldValues['Id']));
            
end;
          
3:
            
begin
              Sender
.AddItemValue(Form3.ZTable1.FieldValues['cut'],IntToStr(Form3.ZTable1.FieldValues['Id']));
            
end;
          else
            
Sender.AddItemValue(IntToStr(Form3.ZTable1.FieldValues['Id'])+'-'+Form3.ZTable1.FieldValues['Naim'],IntToStr(Form3.ZTable1.FieldValues['Id']));
          
end;
          
Next;
        
end;
    
end;
  if 
CountRec<20 then Sender.DropDownCount:=CountRec else Sender.DropDownCount:=20;
  
Form3.ZTable1.Active:=False;
end;

procedure TForm3.RzComboBox1Change(SenderTObject);
var
  
iInteger;
begin
  i
:=StrToInt(Form3.RzComboBox1.Value);
  case 
i of
  1
:
    
begin
      Form3
.RzComboBox2.Left:=441;
      
Form3.RzComboBox2.Width:=354;
      
Form3.RzComboBox2.Tag:=1;
      
Form3.SprInit(Form3.RzComboBox2,'public."SprLpu"');
      
Form3.RzComboBox2.Style:=csDropDown;
    
end;
  
2:
    
begin
      Form3
.RzComboBox2.Left:=441;
      
Form3.RzComboBox2.Width:=354;
      
Form3.RzComboBox2.Tag:=3;
      
Form3.SprInit(Form3.RzComboBox2,'public."SprAdr"');
      
Form3.RzComboBox2.Style:=csDropDown;
    
end;
  
end;
end
Может кто-то сталкивался с такой проблемкой и сможет подсказать в чем беда. Сразу скажу, что использовать стандартный ComboBox не пробовал, да и не хотелось бы, т.к. на форме множество визуальных компонентов, оформленных в одном стиле, да и не уверен, что стандартный комбик поможет в данной ситуации.

Заранее благодарен за любую помощь.
BlackHawk74 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблемы из-за 7-ки? nimbus2000 Помощь студентам 4 09.02.2012 17:35
проблемы с IE Tradua HTML и CSS 1 05.08.2011 06:54
Проблемы с С# PDV199003 Помощь студентам 0 04.06.2010 14:38
проблемы с if Vergil Общие вопросы C/C++ 8 21.04.2010 21:43
проблемы с IE xakzona Помощь студентам 1 16.12.2008 21:53