На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! ПРАВИЛА РАЗДЕЛА · FAQ раздела Delphi · Книги по Delphi
Обязательно выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.

Этот раздел предназначен для вопросов, посвященных разработке компонентов, а также для тестирования собственных бесплатных компонентов с открытым исходным кодом.

Здесь запрещается:
1. Размещать ссылки на какие-либо коммерческие компоненты, реализующие требуемую функциональность.
2. Обсуждать и тестировать коммерческие компоненты или компоненты с закрытым кодом.
3. Давать ссылки на сайты с исходным кодом компонентов. Все тестируемые исходные коды должы быть размещены на сайте ИСХОДНИКИ.RU.
Модераторы: Rouse_, DimaBr
  
> Не появляется выпадающий список TComboBox добавленный в ячейку TstringGrid.
    В ячейку StringGrid добавляется ComboBox. Но при клике на ComboBox, не виден выпадающий список. Вернее, он отображается шириной в 2 пиксела. Добавленные элементы в списке ComboBox есть. Между ними можно переключаться (выбирать) при помощи клавиш вверх-вниз. Delphi 7.

    ExpandedWrap disabled
      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;
      ExpandedWrap disabled
        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;
      0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
      0 пользователей:


      Рейтинг@Mail.ru
      [ Script execution time: 0,0748 ]   [ 16 queries used ]   [ Generated: 29.03.24, 07:33 GMT ]