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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.12.2008, 14:16   #1
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию Grid c выпадающим списком

Кто нибудь знает компонент грида со встраиваемым в колонки combobox
SERG1980 вне форума Ответить с цитированием
Старый 11.12.2008, 14:46   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Нужно было скачать мой справочник...
Код:
Как показывать нестандартный встроенный редактор в ячейке stringgrid (например combobox)

procedure TForm1.FormCreate(Sender: TObject);
begin
  {Высоту combobox'а не изменишь, так что вместо combobox'а
     будем изменять высоту строки grid'а !}
  StringGrid1.DefaultRowHeight := ComboBox1.Height;
  {Спрятать combobox}
  ComboBox1.Visible := False;
  ComboBox1.Items.Add('ProgrammersForum');
  ComboBox1.Items.Add('Форум программистов Дельфи');
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;
mihali4 вне форума Ответить с цитированием
Старый 11.12.2008, 14:52   #3
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

Спасибо Mihali4!
SERG1980 вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пустые строки в выпадающим списке в ячейке Shavminator Microsoft Office Excel 4 12.08.2008 18:36
Проблемма с выпадающим списком mma БД в Delphi 1 24.01.2008 18:31
Помогите с раскрывающимся списком regdown Microsoft Office Excel 1 25.12.2006 20:17