powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Undeclared identifier: 'Text'
14 сообщений из 14, страница 1 из 1
Undeclared identifier: 'Text'
    #39665741
elimpion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
При выполнение программы возникает ошибка, в этом месте
Код: pascal
1.
2.
3.
4.
if (p is TCheckedComboBox) then begin
                                if (p as TCheckedComboBox).Text <> '' then
                                  FLD.PutVal([Mask+Copy(p.Name,3,Length(p.Name))],(p as TCheckedComboBox).Text);
                              end;


что не так?
Код: pascal
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.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
procedure FillFldByCompontents(aForm: TForm; FLD: TVars; Mask:string);
var
  i,j : Integer;
  p : TComponent;

begin
  with aForm do
    for i := 0 to ComponentCount-1 do begin
      p := Components[i];
     // if (Pos(AnsiUpperCase('fld'),AnsiUpperCase(p.Name))=1) then begin
        if (p is TMemo) then
          FLD.PutVal([Mask+Copy(p.Name,3,Length(p.Name))],FormatFromStrEnd((p as TMemo).Text))
        else
          if (p is TCurrencyEdit)then begin
            if (p as TCurrencyEdit).Text <> '' then
              FLD.PutVal([Mask+Copy(p.Name,3,Length(p.Name))],(p as TCurrencyEdit).Value)
            else
              FLD.PutVal([Mask+Copy(p.Name,3,Length(p.Name))],'');
          end
            else
              if (p is TDateEdit) then begin
                if (p as TDateEdit).Date<>0 then
                  FLD.PutVal([Mask+Copy(p.Name,3,Length(p.Name))],(p as TDateEdit).Text)
                else
                  FLD.PutVal([Mask+Copy(p.Name,3,Length(p.Name))],'');
              end
              else
                if (p is TMaskEdit) then begin
                  if (p as TMaskEdit).Text<>'' then
                    FLD.PutVal([Mask+Copy(p.Name,3,Length(p.Name))],(p as TMaskEdit).EditText)
                  else
                    FLD.PutVal([Mask+Copy(p.Name,3,Length(p.Name))],'');
                end
                else
                  if (p is TCustomEdit) then begin
                    if (p as TCustomEdit).Text<>'' then
                      FLD.PutVal([Mask+Copy(p.Name,3,Length(p.Name))],(p as TCustomEdit).Text)
                    else
                      FLD.PutVal([Mask+Copy(p.Name,3,Length(p.Name))],'');
                  end
                  else
                    if (p is TRadioGroup) then begin
                      if (p as TRadioGroup).ItemIndex<>-1 then
                        FLD.PutVal([Copy(Mask+p.Name,3,Length(p.Name))],(p as TRadioGroup).ItemIndex)
                      else
                        FLD.PutVal([Copy(Mask+p.Name,3,Length(p.Name))],'');
                    end
                    else
                      if (p is TCheckBox) then begin
                        if (p as TCheckBox).Visible then begin
                          j:= INTEGER((p as TCheckBox).Checked);
                          FLD.PutVal([Mask+Copy(p.Name,3,Length(p.Name))],j);
                        end;  
                      end
                      else
                        if (p is TRxDbLookupCombo) then begin
                          if (p as TRxDBLookupCombo).Text <> '' then
                            FLD.PutVal([Mask+Copy(p.Name,3,Length(p.Name))],(p as TRxDBLookupCombo).Value)
                          else
                            FLD.PutVal([Mask+Copy(p.Name,3,Length(p.Name))],'');
                        end
                        else
                          if (p is TRxDBComboBox) then begin
                            if (p as TRxDBComboBox).Text <> '' then
                             FLD.PutVal([Mask+Copy(p.Name,3,Length(p.Name))],(p as TRxDBComboBox).Text);
                          end
                          else
                            if (p is TComboBox) then begin
                               if (p as TComboBox).Text <> '' then
                                 FLD.PutVal([Mask+Copy(p.Name,3,Length(p.Name))],(p as TComboBox).Text);
                            end
                            else
                              if (p is TCheckedComboBox) then begin
                                if (p as TCheckedComboBox).Text <> '' then
                                  FLD.PutVal([Mask+Copy(p.Name,3,Length(p.Name))],(p as TCheckedComboBox).Text);
                              end;
     // end;
    end;
end;
...
Рейтинг: 0 / 0
Undeclared identifier: 'Text'
    #39665770
elimpion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
исправил text на CheckedCount
Код: pascal
1.
2.
                        if (p is TCheckedComboBox) then
                        (p as TCheckedComboBox).CheckedCount := FLD.GetValDef([Mask+Copy(p.Name,3,Length(p.Name))],'')


только появилась ошибка [Error] Cannot assign to a read-only property
...
Рейтинг: 0 / 0
Undeclared identifier: 'Text'
    #39665773
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
elimpion,

Подозреваю, что тебе по Items нужно будет пройтись и выставить Checked у нужных.

P.S. Что ты там проверяешь и т.п. - не вникал.
...
Рейтинг: 0 / 0
Undeclared identifier: 'Text'
    #39665793
schi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
elimpionисправил text на CheckedCount
Код: pascal
1.
2.
                        if (p is TCheckedComboBox) then
                        (p as TCheckedComboBox).CheckedCount := FLD.GetValDef([Mask+Copy(p.Name,3,Length(p.Name))],'')


только появилась ошибка [Error] Cannot assign to a read-only property

Попробуй еще куда-нибудь потыкать.
Если человек не хочет учиться, он все равно может принести пользу стране. Стране всегда нужен метан.
...
Рейтинг: 0 / 0
Undeclared identifier: 'Text'
    #39665819
Gerasimenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
elimpion,

автор .CheckedCount :=
Не редактируемое свойство. А ты ему что-то пытаешься присвоить.

Хотел то чего: поясни...
...
Рейтинг: 0 / 0
Undeclared identifier: 'Text'
    #39665850
elimpion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
сделал так.
Код: pascal
1.
2.
 if (p is TCheckedComboBox) then
(p as TCheckedComboBox).EmptyValue := FLD.GetValDef([Mask+Copy(p.Name,3,Length(p.Name))],'')



только при просмотре данных CheckedComboBox не отображает значение которые я выбрал изначально. пустую строку отображает
...
Рейтинг: 0 / 0
Undeclared identifier: 'Text'
    #39665864
Gerasimenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
elimpion,

авторне отображает значени е котор ые я выбрал изначально. пустую строку отображает
Автор, лучше по простому расскажи всем, что ты хочешь получить по итогу и в каком виде.
А так : даже в данной фразе Вы противоречите сами себе
...
Рейтинг: 0 / 0
Undeclared identifier: 'Text'
    #39665953
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код УЖАСНЫЙ, причём повторяется через строчку
Нужно сделать так
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
function GetComponentText(C: TControl): string;
begin
  Result := '';
  if C is TMemo then Result := FormatFromStrEnd(TMemo(C).Text)) else
  if C is TDateEdit then Result := TDateEdit(C).Text else
  if C is TMaskEdit then Result := TMaskEdit(C).EditText else
  if C is TCustomEdit then Result := TCustomEdit(C).Text else
// и так далее
.....
end;


begin
for i := 0 to ComponentCount-1 do begin
  p := Components[i];
  AText := GetComponentText(P);
  FLD.PutVal([Mask+Copy(p.Name,3,MaxInt)],AText);
end;
...
Рейтинг: 0 / 0
Undeclared identifier: 'Text'
    #39665960
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для начала почистить жуткое полотнище кода, может и вообще лучше станет.
Для информации, проще все свойства утащить по названиям:

Код: pascal
1.
2.
3.
 Cm: TObject; const Prop: string
 if Assigned(GetPropInfo(Cm, Prop)) then
  StrValue := GetPropValue(Cm, Prop);
...
Рейтинг: 0 / 0
Undeclared identifier: 'Text'
    #39665976
elimpion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Gerasimenko,

вношу данные для "Вид связи", "Дата установки", "Статус работоспособности" "Платежные сиcтемы". Первые три сохраняются и отображаются при следующем просмотре, а Платежные сиcтемы не отображаются при просмотре.
Отображение идет через тот код что я привел
...
Рейтинг: 0 / 0
Undeclared identifier: 'Text'
    #39666004
elimpion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DimaBr,

какой uses необходимо подключить для работы GetComponentText?
...
Рейтинг: 0 / 0
Undeclared identifier: 'Text'
    #39666010
Gerasimenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
elimpion,

Есть подозрения, что статус 1 и статус 2 компоненты одного типа. Самописная обработка FLD.PutVal() идет по ложному следу. Точка останова Вам очень сильно поможет.
З.ы. Все зло сосредоточено в FLD.PutVal
...
Рейтинг: 0 / 0
Undeclared identifier: 'Text'
    #39666045
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
elimpionDimaBr,

какой uses необходимо подключить для работы GetComponentText?
Никакой. Гоголя нужно читай, "Вий" в частности.
...
Рейтинг: 0 / 0
Undeclared identifier: 'Text'
    #39666141
elimpion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
т.к. компоненты TCheckedComboBox выводит несколько результатов, думаю необходимо с помощью цикла, проверять все элементы находящиеся в items
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Undeclared identifier: 'Text'
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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