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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не появляется выпадающий список TComboBox 
V
    Опции темы
TechnoMag
Дата 12.12.2010, 01:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



В ячейку StringGrid добавляется ComboBox. Но при клике на ComboBox, не виден выпадающий список. Вернее, он  отображается шириной в 2 пиксела. Добавленные элементы в списке ComboBox есть. Между ними можно переключаться (выбирать) при помощи клавиш вверх-вниз. Delphi 7.

Код

TMBList = class(TStringGrid)
  private
     FParams: TParamsCollection;
     procedure AddItem(...);
  protected
    procedure DrawCell(ACol, ARow: Longint; ARect: TRect; AState:TGridDrawState);override;
  public
    constructor Create(AOwner: TComponent); override;
  published
    property Params: TParamsCollection read FParams write SetParams;
  end;


constructor TMBList.Create(AOwner: TComponent);
var
  i:integer;
begin
  inherited Create(AOwner);
  FParams := TParamsCollection.Create(Self);
    RowCount:=3;
    FixedCols:=1;
    FixedRows:=0;
    ColCount:=3;
    Options:=[goHorzLine, goFixedHorzLine, goFixedVertLine,
        goVertLine, goEditing];
    ColWidths[0]:=18;
    ColWidths[1]:=100;
    ColWidths[2]:=100;
    for i:=0 to RowCount-1 do
      RowHeights[i]:=18;
end;


procedure TMBList.AddItem(....);
begin
  if (TypeOfControl=tcIndex) then
  begin
    FParams.Items[FParams.Count-1].FComboBox:=TComboBox.Create(self);
    //FParams.Items[FParams.Count-1].FComboBox.Caption:='';
    FParams.Items[FParams.Count-1].FComboBox.Parent:=self;
    FParams.Items[FParams.Count-1].FComboBox.Visible:=False;
    //FParams.Items[FParams.Count-1].FComboBox.SetSubComponent(true);
    FParams.Items[FParams.Count-1].FComboBox.Style:=csDropDownList;
    //FParams.Items[FParams.Count-1].FComboBox.Tag:=3001; // генерировать тэги для контрола
    FParams.Items[FParams.Count-1].FComboBox.Items.Add('Item1');
    FParams.Items[FParams.Count-1].FComboBox.Items.Add('Item2');
    FParams.Items[FParams.Count-1].FComboBox.ItemIndex:=0;
  end;
end;

procedure TMBList.DrawCell(ACol, ARow: Longint; ARect: TRect; AState: TGridDrawState);
begin
   if FParams.Items[arow].FComboBox<>nil then
   begin
    FParams.Items[arow].FComboBox.BoundsRect:=ARect;
    FParams.Items[arow].FComboBox.Visible:=true;
   end;
  end;
end;

PM MAIL ICQ   Вверх
БелАмор
Дата 12.12.2010, 02:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Псмотрите, возможно что-то заинтересует:
http://www.delphikingdom.com/asp/answer.asp?IDAnswer=60379
PM   Вверх
TechnoMag
Дата 12.12.2010, 05:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Код

      procedure TMBList.AddItem(....);
      begin
          FParams.Items[FParams.Count-1].FComboBox:=TComboBox.Create(self);
          //FParams.Items[FParams.Count-1].FComboBox.Caption:='';
          FParams.Items[FParams.Count-1].FComboBox.Parent:=self.parent;
      ...
      end;
       
      procedure TMBList.DrawCell(ACol, ARow: Longint; ARect: TRect; AState: TGridDrawState);
      var
       r: Trect;
      begin
         if FParams.Items[arow].FComboBox<>nil then
         begin
         r:=ARect; //self.CellRect(cell_x,arow);
          r.Left:=r.left+self.left+2;
          r.right:=r.right+self.left+2;
          r.top:=r.top+self.top+2;
          r.bottom:=r.bottom+self.top+2;
          FParams.Items[arow].FComboBox.BoundsRect:=r;
          FParams.Items[arow].FComboBox.Visible:=true;
       
         end;
        end;
      end;

PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

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

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

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

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


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

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


 




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


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

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