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



Код: pascal
1.
[Error]  Undeclared identifier: 'GetCheckComboBoxValue'


Код: pascal
1.
2.
3.
4.
5.
uses
...
  function GetCheckComboBoxValue(ctrl: TCheckedComboBox): string;
...
implementation
...
Рейтинг: 0 / 0
Не определяет функцию
    #39669991
elimpion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
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 (p is TCheckedComboBox) then begin
      if (p as TCheckedComboBox).EmptyValue <> '' then
      FLD.GetCheckComboBoxValue([Mask+Copy(p.Name,3,Length(p.Name))],(p as TCheckedComboBox).EmptyValue);
      end;
    end;
end;
...
Рейтинг: 0 / 0
Не определяет функцию
    #39669993
goldmi45
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
elimpion,

GetCheckComboBoxValue описана в модуле или у класса?
Код: pascal
1.
FLD.GetCheckComboBoxValue // Что за класс имеет переменная FLD? И есть ли у неё public метод GetCheckComboBoxValue
...
Рейтинг: 0 / 0
Не определяет функцию
    #39670001
elimpion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот её описание
Код: 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.
unit BrsDevInfra_FUtils;

interface
uses
  {$IFDEF UNICODE}
  Variants,
  {$ENDIF}
  API_UFuncApp,
  RxLookup,
  API_uQIService,
  API_UEdAccOrClientTools,
  SYS_UVAR,
  SYS_uStr,
  SYS_UQIntAbstr,
  SYS_uCRC32,
  SYS_uMsg,
  SYSLIB_UQIServ,
  SYS_uSessMan,
  API_FDBPassword,
  CheckCombo,
  EXP_uDlgDBPick,
  Windows, Messages, SysUtils, OraScript, Ora, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, DB, mask, CurrEdit, ToolEdit, ExtCtrls, CheckLst, TB2Item,
  frxVariables,
  BrsApi_Odac,RxDBComb;

  procedure FillFldByCompontents(aForm: TForm; FLD: TVars; Mask:string);
  procedure FillCompontentsByFld(aForm: TForm; FLD: TVars; Mask:string);
  procedure Str2Params(const aStr, aSectName : string; out aParams : TVars);
  function Params2Str(const varsFld : TVars; SectName: string = ''): String;
  procedure SetupStatusModesButton(
                           App : TFuncApp;
                           tbSubModes : TTBSubmenuItem;
                           tbiModeClick : TNotifyEvent;
                           aRef : string);
  function nvl(aValue: string; aDefault: string): string;
  function CheckControl(p: TComponent; isWarning: boolean):boolean;
  procedure SetDefaultComboValues(aForm: TForm;aFormTuneKind:integer;FLD: TVars);
  function GetCheckComboBoxValue(ctrl: TCheckedComboBox): string;

implementation

function CheckControl(p: TComponent; isWarning: boolean):boolean;
...
Рейтинг: 0 / 0
Не определяет функцию
    #39670002
elimpion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: pascal
1.
      FLD.GetCheckComboBoxValue([Mask+Copy(p.Name,3,Length(p.Name))],(p as TCheckedComboBox).EmptyValue);


если удалить FLD то функция определяется
...
Рейтинг: 0 / 0
Не определяет функцию
    #39670005
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
elimpion
Код: pascal
1.
      FLD.GetCheckComboBoxValue([Mask+Copy(p.Name,3,Length(p.Name))],(p as TCheckedComboBox).EmptyValue);


если удалить FLD то функция определяется

Логично, правда?

MyUNIT.FunctionName() - берет функцию из конкретного модуля.
MyCLASS.FunctionName() - берет функцию/метод из класса/обьекта/record
FunctionName() - берет функцию из текущего модуля, если она есть, или из модулей, которые в Uses.
...
Рейтинг: 0 / 0
Не определяет функцию
    #39670010
elimpion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DarkMaster,
так функция в uses объявлена, но она не определяется
...
Рейтинг: 0 / 0
Не определяет функцию
    #39670014
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
elimpion,

Ну а зачем ты вместо того, чтобы использовать функцию, которая у тебя в модуле, пытаешься использовать функцию, которая, как ты думаешь, принадлежит какому-то классу?
...
Рейтинг: 0 / 0
Не определяет функцию
    #39670020
elimpion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DarkMaster,

так я и хочу использовать функцию которая в модуле прописана, класс же даже нигде не объявлен
...
Рейтинг: 0 / 0
Не определяет функцию
    #39670026
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
elimpion,

FLD - у тебя TVars. Твой GetCheckBlaBla() принимает TCheckedComboBox. Ты же пытается вызывать у TVars метод GetCheck...., которого нет (наверное), и запихать в этот метод что-то вообще несуразное.

Наиболее логичным будет что-то вроде:
Код: pascal
1.
2.
3.
4.
    if (p is TCheckedComboBox) then
         begin
            GetCheckComboBoxValue( p as TCheckedComboBox );
         end;


А твои попытки впихнуть невпихуемое - от лукавого в общем...
...
Рейтинг: 0 / 0
Не определяет функцию
    #39670028
goldmi45
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
elimpionDarkMaster,
так функция в uses объявлена, но она не определяется
Функция не объявляется в uses. В Uses объявляются модули, которые использует данный модуль.
У модуля имеется две секции: интерфейсная часть (interface) и реализация (implementation).
Функции могут не быть описаны в интерфейсе, но иметь реализацию. Если функция описывается в интерфейсе модуля, то к этой функции можно обратиться из другого модуля, предварительно добавив этот модуль в список используемых (uses).

ЗЫ: С кашей в голове не удастся научиться программированию.
...
Рейтинг: 0 / 0
Не определяет функцию
    #39670054
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
elimpion,

хочешь использовать функцию - используй, зачем ты FLD добавляешь? у класса TVars нет функции GetCheckComboBoxValue, даже компилятор в этом разобрался :)
...
Рейтинг: 0 / 0
Не определяет функцию
    #39670062
elimpion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DarkMaster,

вот смотрите, этот код из той же процедуры что и TCheckedComboBox,
Код: pascal
1.
2.
3.
4.
                            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


PutVal объявлен в модуле SYS_UVar, и никаких ошибок при работе не возникает.
Я побывал объявить GetCheckComboBoxValue там же. Но у меня возникла ошибка.
...
Рейтинг: 0 / 0
Не определяет функцию
    #39670067
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
elimpionесли удалить FLD то функция определяется
Мне кажется, я понял, что ты хочешь.

замени
Код: pascal
1.
FLD.GetCheckComboBoxValue

на
Код: pascal
1.
BrsDevInfra_FUtils.GetCheckComboBoxValue
...
Рейтинг: 0 / 0
Не определяет функцию
    #39670069
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRockМне кажется, я понял, что ты хочешь
Ааа, нет

elimpionPutVal объявлен в модуле SYS_UVar, и никаких ошибок при работе не возникает
PutVal есть у класса TVars, вот почему тут нет ошибок.
...
Рейтинг: 0 / 0
Не определяет функцию
    #39670070
goldmi45
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
elimpionDarkMaster,
Код: pascal
1.
2.
3.
4.
                            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


PutVal объявлен в модуле SYS_UVar, и никаких ошибок при работе не возникает.
Я побывал объявить GetCheckComboBoxValue там же. Но у меня возникла ошибка.
Может, PutVal и объявлен в модуле SYS_UVar, но используется метод у переменной FLD: TVars.

У класса TVars есть метод PutVal?
...
Рейтинг: 0 / 0
Не определяет функцию
    #39670071
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
elimpionDarkMaster,

вот смотрите, этот код из той же процедуры что и TCheckedComboBox,
Код: pascal
1.
2.
3.
4.
                            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


PutVal объявлен в модуле SYS_UVar, и никаких ошибок при работе не возникает.
Я побывал объявить GetCheckComboBoxValue там же. Но у меня возникла ошибка.

Ты что-то такое хочешь получить?

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
            
 var StrComboValue:string;
 // .... 
 if (p is TCheckComboBox) then begin
    begin
        StrComboValue:=GetCheckComboBoxValue(p as TCheckComboBox);
        if  StrComboValue<> '' then   // 
            FLD.PutVal([Mask+Copy(p.Name,3,Length(p.Name))], StrComboValue);
    end



Бяда-бяда с безумным копипастом :(
...
Рейтинг: 0 / 0
Не определяет функцию
    #39670079
elimpion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
goldmi45elimpionDarkMaster,
Код: pascal
1.
2.
3.
4.
                            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


PutVal объявлен в модуле SYS_UVar, и никаких ошибок при работе не возникает.
Я побывал объявить GetCheckComboBoxValue там же. Но у меня возникла ошибка.
Может, PutVal и объявлен в модуле SYS_UVar, но используется метод у переменной FLD: TVars.

У класса TVars есть метод PutVal?
есть.
...
Рейтинг: 0 / 0
Не определяет функцию
    #39670080
elimpion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DarkMaster,

достает данные из fld и отображает из на форме
...
Рейтинг: 0 / 0
Не определяет функцию
    #39670087
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
elimpionDarkMaster,

достает данные из fld и отображает из на форме

Как достает, куда достает? Давай попробуем на пальцах:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
   // засунем в FLD: TVars  все значения, собранные с формы
   for i:=0 to Pred(AForm.ComponentCount) do
        begin
            //........
           if (Components[i] is .....) then
               begin
                   StringForPut:= GetControlXXXXValue (Components[i] as .....);
                   FLD.PutVal( _Name_, StringForPut);
               end;
            //.... 
        end;

   // теперь нам нужно где-то отобразить то, что мы насобирали
   for i:=0 to Pred(FLD.Count) do
        Memo.Lines.Add(FLD.GetValue(_NAME_));


Так?
...
Рейтинг: 0 / 0
Не определяет функцию
    #39670101
elimpion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DarkMaster,

Код: 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.
procedure TfrmEditDevice.InitCheckComboBox(App: TFuncApp; ctrl: TCheckedComboBox; aSql: string; aStr: string; const ParamArr: array of const);
var s: string;
    i: integer;
    bool: boolean;
    que: TOraQuery;
begin
  que := GetQueryBySQL(aSql, ParamArr);
  try
    with ctrl do begin
      Clear;
      with que do begin
        First;
        while not Eof do begin
          s := '';
          if (que.FieldCount = 6) then
            if Fields[2].asString <> '' then
              s := '['+Fields[2].asString+'] ';
          Items.Add(Fields[0].asString+' - '+s+Fields[1].asString);
          Next;
        end;
      end;
      for i := 1 to Items.Count do begin
        s := Trim(GetWord(1,Items[i-1],['-']));
        bool := IsWordPresent(s,aStr,[',']);
        Checked[i-1] := bool;
      end;
    end;
  finally
    que.Close;
    App.QI.FreeQuery(que);
  end;
end;
...
InitCheckComboBox(aApp, ccbDEV_PAYSYSTEM, shDEV_PAYSYSTEM.SQL.Text, GetCheckComboBoxValue(ccbDEV_PAYSYSTEM), []);
...


для записи этот использую, а чтобы отобразить тот что выше
...
Рейтинг: 0 / 0
Не определяет функцию
    #39670115
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
elimpion,

Все, мой хрустальный шар запотел, а телепатометр - вообще взорвался от перегрева... Я окончательно перестал понимать, что и для чего используешь и что хочешь в конце-концов получить.
...
Рейтинг: 0 / 0
Не определяет функцию
    #39670120
asutp2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
elimpionDarkMaster,
так функция в uses объявлена , но она не определяетсяМммм, что то новое
...
Рейтинг: 0 / 0
Не определяет функцию
    #39670128
goldmi45
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asutp2ИдиУчиМатЧасть...
Следующий вопрос у ТСа будет, где найти этот модуль :)
...
Рейтинг: 0 / 0
Не определяет функцию
    #39670138
elimpion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
goldmi45,

Код: pascal
1.
2.
3.
                            if (p is TCheckedComboBox) then
                            StrComboValue:=GetCheckComboBoxValue(p as TCheckedComboBox);
                            (p as TCheckedComboBox).EmptyValue := FLD.GetValDef([StrComboValue],'')




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


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