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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.01.2011, 10:33   #1
Waqq
Пользователь
 
Регистрация: 16.11.2010
Сообщений: 26
Восклицание ValueListEditor

Всем доброго времени суток!!!
У меня возник вопрос как поместить ComboBox в ValueListEditor???
В заранее благодарен!!!
Waqq вне форума Ответить с цитированием
Старый 31.01.2011, 10:42   #2
mss
Заблокирован
 
Регистрация: 27.05.2010
Сообщений: 1,099
По умолчанию

Так же как в любой иной наследник TCustomGrid
mss вне форума Ответить с цитированием
Старый 31.01.2011, 11:14   #3
theYozh
Пользователь
 
Аватар для theYozh
 
Регистрация: 28.01.2009
Сообщений: 75
По умолчанию

отрисовывать поверх в нужной позиции
theYozh вне форума Ответить с цитированием
Старый 31.01.2011, 15:34   #4
asmodey1
Подтвердите свой е-майл
 
Регистрация: 19.12.2010
Сообщений: 808
По умолчанию

В качестве примера - как поместить ComboBox в StringGrid :
Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
  {Высоту combobox'а не изменишь, так что вместо combobox'а будем изменять высоту строки grid'а !}
  StringGrid1.DefaultRowHeight := ComboBox1.Height;
  {Спрятать combobox}
  ComboBox1.Visible := False;
  ComboBox1.Items.Add('ProgammersClub');
  ComboBox1.Items.Add('ProgammersForum');
end;

procedure TForm1.ComboBox1Change(Sender: TObject);
begin
  {Перебросим выбранное в значение из ComboBox в grid}
  StringGrid1.Cells[StringGrid1.Col,
  StringGrid1.Row] :=ComboBox1.Items[ComboBox1.ItemIndex];
  ComboBox1.Visible := False;
  StringGrid1.SetFocus;
end;

procedure TForm1.ComboBox1Exit(Sender: TObject);
begin
  {Перебросим выбранное в значение из ComboBox в grid}
  StringGrid1.Cells[StringGrid1.Col,
  StringGrid1.Row] :=ComboBox1.Items[ComboBox1.ItemIndex];
  ComboBox1.Visible := False;
  StringGrid1.SetFocus;
end;

procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol,
          ARow: Integer; var CanSelect: Boolean);
var
  R: TRect;
begin
  if ((ACol = 3) AND (ARow <> 0)) then
    begin
      {Ширина и положение ComboBox должно соответствовать ячейке StringGrid}
      R := StringGrid1.CellRect(ACol, ARow);
      R.Left := R.Left + StringGrid1.Left;
      R.Right := R.Right + StringGrid1.Left;
      R.Top := R.Top + StringGrid1.Top;
      R.Bottom := R.Bottom + StringGrid1.Top;
      ComboBox1.Left := R.Left + 1;
      ComboBox1.Top := R.Top + 1;
      ComboBox1.Width := (R.Right + 1) - R.Left;
      ComboBox1.Height := (R.Bottom + 1) - R.Top;
      {Покажем combobox}
      ComboBox1.Visible := True;
      ComboBox1.SetFocus;
    end;
  CanSelect := True;
end;
Все, что вам осталось сделать - это заменить StringGrid на ValueListEditor
asmodey1 вне форума Ответить с цитированием
Старый 02.09.2015, 20:54   #5
qwertEHOK
Новичок
Джуниор
 
Регистрация: 02.10.2014
Сообщений: 2
По умолчанию

никогда так не делайте

нужно все-лишь
var
vle: TValueListEditor
sl: TSringList;

...
sl.Add('Значение №1');
sl.Add('Значение №2');
sl.Add('Произвольное значение);

vle.ItemProp['МОЙ_КЛЮЧ'].PickList := sl;
qwertEHOK вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ValueListEditor shanluu Общие вопросы Delphi 8 06.12.2010 19:37
ValueListEditor Pasha_Sh Помощь студентам 1 26.11.2010 13:19
ValueListEditor StartMis Общие вопросы Delphi 3 23.12.2009 01:02
ValueListEditor miqo Компоненты Delphi 1 23.09.2009 12:23
ValueListEditor Artem Компоненты Delphi 3 10.07.2007 20:19