powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / строки в nextgrid
15 сообщений из 15, страница 1 из 1
строки в nextgrid
    #39656502
TsYekaterina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго дня! на форме есть cxImageComboBox и NextGrid, данные в NextGrid попадают при вызове другой формы. при смене в cxImageComboBox Itemsа данные в NextGrid меняются. как сделать так,
чтобы при смене индекса в cxImageComboBox данные в NextGrid оставались, не очищаясь? что-то никак не соображу...
NextGrid заполняется так:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
 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:='' ;
         end;


форма -редактор называется frmEditAttrValue.
спасибо!
...
Рейтинг: 0 / 0
строки в nextgrid
    #39656507
TsYekaterina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в последних двух строках крокозябры - это 'Наименование' и 'Разработал'
...
Рейтинг: 0 / 0
строки в nextgrid
    #39656631
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Запихивая данные в NextGrid вы занимаетесь ерундой.
Подозреваю что CDS - ClientDataSet.
В приведённом коде cxImageComboBox никак не фигурирует, поэтому как ваш NextGrid связан с cxImageComboBox неясно
...
Рейтинг: 0 / 0
строки в nextgrid
    #39656633
TsYekaterina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DimaBr,
естественно, это часть кода. добавление происходит как раз в обработчике cxImageComboBox
Код: sql
1.
procedure TfrmCreate.cmbTypePropertiesChange(Sender: TObject);


мб целесообразно весь код процедуры показать....
...
Рейтинг: 0 / 0
строки в nextgrid
    #39656637
TsYekaterina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
begin
  if cmbType.ItemIndex=-1 then cmbType.ItemIndex:=0;
  CDS.Data:=RunMethod('GetInfoAboutType',[cmbType.Text,1,ReturnCode,ErrorMessage]);

  TypeID:=cmbType.Properties.Items[cmbType.ItemIndex].Value;
  Index:=TypeIndexByID(TypeID);

  LockWindowUpdate(Handle);
  Tree.Items.Clear;
  GridAttrs.ClearRows;
  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:='' ;
         end;


опять же часть кода, показывающая связь с cxImageComboBox .
...
Рейтинг: 0 / 0
строки в nextgrid
    #39656638
TsYekaterina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я предположила сделать
Код: sql
1.
2.
if Index=TypeIndexByID(TypeID) then
           if CDS.FieldByName('_NAME').AsString='Разработал' then GridAttrs.CellByName['ColValue',GridAttrs.LastAddedRow].AsString:=frmEditAttrValue.Value;


но Access Violation...
...
Рейтинг: 0 / 0
строки в nextgrid
    #39656639
TsYekaterina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
при этом данные в строке "Разработал" при смене Itemsa в cxImageComboBox не исчезают
...
Рейтинг: 0 / 0
строки в nextgrid
    #39656936
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
при смене в cxImageComboBox Itemsа данные в NextGrid меняются
Вы же сами их очищаете и заполняете снова при смене cmbTypePropertiesChange
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
procedure TfrmCreate.cmbTypePropertiesChange(Sender: TObject);
begin
  if cmbType.ItemIndex=-1 then cmbType.ItemIndex:=0;
  CDS.Data:=RunMethod('GetInfoAboutType',[cmbType.Text,1,ReturnCode,ErrorMessage]);

  TypeID:=cmbType.Properties.Items[cmbType.ItemIndex].Value;
  Index:=TypeIndexByID(TypeID);

  LockWindowUpdate(Handle);
  Tree.Items.Clear;
  GridAttrs.ClearRows;
...
...
Рейтинг: 0 / 0
строки в nextgrid
    #39657026
TsYekaterina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DimaBr,

если не очищать, то при каждой смене индекса cxImageComboBox будет накопление в NextGrid. как это побороть тогда?
...
Рейтинг: 0 / 0
строки в nextgrid
    #39657027
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну так вы определитесь, нужно менять данные при смене cxImageComboBox или не нужно.
чтобы при смене индекса в cxImageComboBox данные в NextGrid оставались, не очищаясь?
противоречит
если не очищать, то при каждой смене индекса cxImageComboBox будет накопление в NextGrid
...
Рейтинг: 0 / 0
строки в nextgrid
    #39657035
TsYekaterina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DimaBr,

нужно, чтобы при переключении не очищались некоторые строки в Nextgrid. просто если не очищать таблицу, то при переключении в ней будет накопление данных.
...
Рейтинг: 0 / 0
строки в nextgrid
    #39657037
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsYekaterinaнужно, чтобы при переключении не очищались некоторые строки в Nextgrid.
Ну так не очищайте, разрешаю
...
Рейтинг: 0 / 0
строки в nextgrid
    #39657039
TsYekaterina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DimaBr,

спасибо! только как не очищать отдельную строку?
...
Рейтинг: 0 / 0
строки в nextgrid
    #39657049
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну если есть
Код: pascal
1.
GridAttrs.AddRow;


то наверняка есть и
Код: pascal
1.
GridAttrs.DeleteRow;


Поймите, с такими экзотическими компонентами как NextGrid никто не работает.
Да и вообще, для работы с данными в датасете есть cxGrid с DB-вьюшками
...
Рейтинг: 0 / 0
строки в nextgrid
    #39657053
TsYekaterina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DimaBr,

понятно! спасибо!)
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / строки в nextgrid
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]