Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Undeclared identifier: 'Text' / 14 сообщений из 14, страница 1 из 1
26.06.2018, 09:59
    #39665741
elimpion
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Undeclared identifier: 'Text'
При выполнение программы возникает ошибка, в этом месте
Код: 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
26.06.2018, 10:24
    #39665770
elimpion
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Undeclared identifier: 'Text'
исправил 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
26.06.2018, 10:26
    #39665773
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Undeclared identifier: 'Text'
elimpion,

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

P.S. Что ты там проверяешь и т.п. - не вникал.
...
Рейтинг: 0 / 0
26.06.2018, 10:43
    #39665793
schi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Undeclared identifier: 'Text'
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
26.06.2018, 11:03
    #39665819
Gerasimenko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Undeclared identifier: 'Text'
elimpion,

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

Хотел то чего: поясни...
...
Рейтинг: 0 / 0
26.06.2018, 11:27
    #39665850
elimpion
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Undeclared identifier: 'Text'
сделал так.
Код: 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
26.06.2018, 11:33
    #39665864
Gerasimenko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Undeclared identifier: 'Text'
elimpion,

авторне отображает значени е котор ые я выбрал изначально. пустую строку отображает
Автор, лучше по простому расскажи всем, что ты хочешь получить по итогу и в каком виде.
А так : даже в данной фразе Вы противоречите сами себе
...
Рейтинг: 0 / 0
26.06.2018, 12:53
    #39665953
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Undeclared identifier: 'Text'
Код УЖАСНЫЙ, причём повторяется через строчку
Нужно сделать так
Код: 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
26.06.2018, 13:01
    #39665960
makhaon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Undeclared identifier: 'Text'
Для начала почистить жуткое полотнище кода, может и вообще лучше станет.
Для информации, проще все свойства утащить по названиям:

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

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

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

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

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


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