На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! ПРАВИЛА РАЗДЕЛА · FAQ раздела Delphi · Книги по Delphi
Пожалуйста, выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.
Следующие вопросы задаются очень часто, подробно разобраны в FAQ и, поэтому, будут безжалостно удаляться:
1. Преобразовать переменную типа String в тип PChar (PAnsiChar)
2. Как "свернуть" программу в трей.
3. Как "скрыться" от Ctrl + Alt + Del (заблокировать их и т.п.)
4. Как прочитать список файлов, поддиректорий в директории?
5. Как запустить программу/файл?
... (продолжение следует) ...

Вопросы, подробно описанные во встроенной справочной системе Delphi, не несут полезной тематической нагрузки, поэтому будут удаляться.
Запрещается создавать темы с просьбой выполнить какую-то работу за автора темы. Форум является средством общения и общего поиска решения. Вашу работу за Вас никто выполнять не будет.


Внимание
Попытки открытия обсуждений реализации вредоносного ПО, включая различные интерпретации спам-ботов, наказывается предупреждением на 30 дней.
Повторная попытка - 60 дней. Последующие попытки бан.
Мат в разделе - бан на три месяца...
Модераторы: jack128, D[u]fa, Shaggy, Rouse_
  
> nextgrid
    доброго дня! стоит такая задача, никак не могу разобраться: есть 2 компонента интересных: TcxImageComboBox и TNextGrid. заполнение TNextGrid происходит в обработчике TcxImageComboBoxPropetiesChange.
    При переключении TcxImageComboBox меняются данные и в таблице, предварительно очищаясь, то есть TNextGrid.ClearRows. в некоторые строки пользователь вносит данные вручную с клавиатуры. теперь вопрос:
    как сделать так, чтобы при переключении TcxImageComboBoxPropetiesChange строки, в которые пользователь вводит данные вручную, не удалялись?
      pats
      Так и удаляй не все строки, а делай проверку. Пробегай по всем строкам и если есть определенный признак, удаляй её. Например этим признаком может быть значение ридонли для строк не вводимых вручную.
        Guru, никак не получается
        ExpandedWrap disabled
          procedure TfrmCreate.cmbTypePropertiesChange(Sender: TObject);
          ...
          begin
            if cmbType.ItemIndex=-1 then cmbType.ItemIndex:=0;
            CDS.Data:=RunMethod('GetInfoAboutType',[cmbType.Text,1,ReturnCode,ErrorMessage]);
           
            end;
            TypeID:=cmbType.Properties.Items[cmbType.ItemIndex].Value;
            Index:=TypeIndexByID(TypeID);
           
            LockWindowUpdate(Handle);
            Tree.Items.Clear;
            GridAttrs.ClearRows;//если я убираю эту строку и делаю отдельно каждую, то строки табл. не очищаются. происходит накопление данных при каждом выборе в TcxImageComboBox
            PanelMiddle.DestroyComponents;
            PanelMiddle.Height:=0;
            Frames:=nil;
            while not CDS.Eof do begin
              CDS2.Data:=RunMethod('GetInfoAboutAttribute',[CDS.FieldByName('_NAME').AsString,2,ReturnCode,ErrorMessage]);
              CDS2.Filter:='_DEFAULT=1';
              CDS2.Filtered:=True;
              if not CDS2.Eof then
                MeasureID:=CDS2.FieldByName('_ID_MEASURE').AsString
              else
                MeasureID:='';
              CDS2.Filtered:=False;
           
              if CDS.FieldByName('_OBLIGATORY').AsInteger=0 then begin
                if CDS.FieldByName('_ATTRTYPE').AsInteger in [0,1,2,3,5] then begin
                  GridAttrs.AddRow;
                  GridAttrs.CellByName['ColImg',GridAttrs.LastAddedRow].AsInteger:=Icon_Attr;
                  GridAttrs.CellByName['ColAttr',GridAttrs.LastAddedRow].AsString:=CDS.FieldByName('_NAME').AsString;
                  GridAttrs.CellByName['ColAttrType',GridAttrs.LastAddedRow].AsInteger:=CDS.FieldByName('_ATTRTYPE').AsInteger;
                  GridAttrs.CellByName['ColValueList',GridAttrs.LastAddedRow].AsString:=CDS.FieldByName('_LIST').AsString;
                  GridAttrs.CellByName['ColMeasureID',GridAttrs.LastAddedRow].AsString:=MeasureID;
                  GridAttrs.CellByName['ColValue',GridAttrs.LastAddedRow].AsString:=CDS.FieldByName('_DEFAULT').AsString;
                  if CDS.FieldByName('_ATTRTYPE').AsInteger=3 then GridAttrs.CellByName['ColValue',GridAttrs.LastAddedRow].AsDateTime:=Date;
                  if CDS.FieldByName('_NAME').AsString='Наименование' then GridAttrs.CellByName['ColValue',GridAttrs.LastAddedRow].AsString:=TypeList[Index].DefaultName;
                  if CDS.FieldByName('_NAME').AsString='Отдел разработки' then GridAttrs.CellByName['ColValue',GridAttrs.LastAddedRow].AsString:='';
                  if CDS.FieldByName('_NAME').AsString='Разработал' then GridAttrs.CellByName['ColValue',GridAttrs.LastAddedRow].AsString:='';
                  if CDS.FieldByName('_NAME').AsString='Описание' then GridAttrs.CellByName['ColValue',GridAttrs.LastAddedRow].AsString:='';
                   end;
              end


        Добавлено
        условие я такое ставила:
        ExpandedWrap disabled
          if not ColValue.Editing then begin
                   if CDS.FieldByName('_NAME').AsString='Разработал' then
                   GridAttrs.CellByName['ColValue',GridAttrs.LastAddedRow].AsString:='' end else
                  if ColValue.Editing  then begin
                   if CDS.FieldByName('_NAME').AsString='Разработал' then
                   GridAttrs.CellByName['ColValue',GridAttrs.LastAddedRow].AsString:='sddsc'
                  end;
          Еще раз. Определись по каклиу признаку должгы очищаться строки. И вместо очистки всех строк сразу пробегись по всем строкам и удали только подподающие под условия
          0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
          0 пользователей:


          Рейтинг@Mail.ru
          [ Script execution time: 0,0228 ]   [ 16 queries used ]   [ Generated: 28.03.24, 20:18 GMT ]