Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Combobox и TstringGrid 
V
    Опции темы
AleksandraN
Дата 17.8.2009, 08:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Добрый день всем!
Проблема в следующем: необходимо вставить комбобокс в нужную ячейку StringGrid-a. Посмотрела в инете советуют следующее...кинуть кобобокс на форму, сделать его невидимым...далее при нажатии на нужную ячейку StringGrid-a подгонять размеры комбобокса под размеры ячейки StringGrid-a....потом при событии комбобокса oneExit присваивать нужной ячейки выбранное значение комбобокса...Вроде все хорошо, но у меня комбобокс рисуется под StringGrid-ом. перерисовала комбобокс cmbType.Repaint; все равно комбобокс не видимый....изменила положение комбобокса, он появился....но мне-то нужно, чтоб он рисовался именно в нужной ячейки. Проблема вроде пустяковая....помогите, плиз)
Прилагаю код:
Код

procedure TfrmSCREdit.SelectCell(Sender: TObject; ACol, ARow: Longint; var CanSelect: Boolean);
var
        R: TRect;
        i: integer;
begin

  if ((ACol = 3) AND
      (ARow <> 0)) then begin
   //Размер и расположение combobox подгоняем под ячейку
    R := TStringGrid(Sender).CellRect(ACol, ARow);
    R.Left := R.Left + TStringGrid(Sender).Left;
    R.Right := R.Right + TStringGrid(Sender).Left;
    R.Top := R.Top + TStringGrid(Sender).Top;
    R.Bottom := R.Bottom + TStringGrid(Sender).Top;
    cmbType.Left :=  R.Left + 1;
    cmbType.Top := R.Top + 1;
    cmbType.Width := (R.Right + 1) - R.Left;
    cmbType.Height :=(R.Bottom + 1) - R.Top;
   //Показываем combobox
    cmbType.Visible := true;
    cmbType.SetFocus;
  end;
  CanSelect := True;
  cmbType.Repaint;
end;

procedure TfrmSCREdit.cmbTypeExit(Sender: TObject);
begin
//Получаем выбранный элемент из ComboBox и помещаем его в грид
 {'Это мой TstringGrid -} TableAtribTbl[tmpTbl].Table.Cells[3,tmpRow+1] :=
    cmbType.Items[cmbType.ItemIndex];
  cmbType.Visible := False;
  TableAtribTbl[tmpTbl].Table.SetFocus;
end;


PM MAIL   Вверх
Akella
Дата 17.8.2009, 08:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


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

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



Что такое TableAtribTbl?
Что такое  tmpTbl?

А почему ты не присваиваешь комбобоксу родителя? Ведь родитель у комбобокса должен быть стринггрид.

Добавлено через 6 минут и 41 секунду
Цитата(AleksandraN @  17.8.2009,  08:20 Найти цитируемый пост)
потом при событии комбобокса oneExit присваивать нужной ячейки выбранное значение комбобокса..

Лучше в OnChange комбобокса

Это сообщение отредактировал(а) Akella - 17.8.2009, 08:32
PM MAIL   Вверх
AleksandraN
Дата 17.8.2009, 08:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



В общем, изначально задача была следующая....у меня есть дерево таблиц, которые есть в базе. при вытаскивании мышкой (Drag&Drop) таблицы из дерева появляется StringGrid, в первом столбце которого поля этой таблицы...в остальных разные другие характеристики....ну и если несколько таблиц, то рисуются ещё связи между ними...но это уже не важно..так вот TableAtribTbl - массив этих StringGrid - ов . 
tmpTbl - текущий StringGrid. Поэтому TableAtribTbl[tmpTbl].Table - нужный StringGrid.
Теперь комбобоксу присвоила родитела, но ничего не получилось всё равно.

Добавлено через 4 минуты и 29 секунд
О, вопрос разрешился))) Проблема действительно была в том, что я комбобоксу родителя не присвоила.... smile

Добавлено через 5 минут и 51 секунду
Ах, да) Спасибо!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

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

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

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

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


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

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


 




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


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

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