На главную
ПРАВИЛА FAQ Помощь Участники Календарь Избранное DigiMania 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;
Еще раз. Определись по каклиу признаку должгы очищаться строки. И вместо очистки всех строк сразу пробегись по всем строкам и удали только подподающие под условия
"Воля - это то, что заставляет тебя побеждать, когда твой рассудок говорит тебе, что ты повержен" Карлос Кастанеда
1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
0 пользователей:


Рейтинг@Mail.ru
[ Script Execution time: 0,0848 ]   [ 20 queries used ]   [ Generated: 22.06.18, 00:08 GMT ]