Форум: "Основная";
Текущий архив: 2002.09.23;
Скачать: [xml.tar.bz2];
ВнизOnSetText Найти похожие ветки
← →
sdram (2002-09-12 11:52) [0]Подскажите почему компилятор, в месте присвоения событию процедуру обработки, ругается "incompatible types"?
procedure LoockUpFieldSetText(Sender: TField; const Text: String);
...
with TStringField.Create(fGen.dsGenSpec) do
OnSetText := fGen.LoockUpFieldSetText; // incompatible types
...
procedure TfGen.LoockUpFieldSetText(Sender: TField; const Text: String);
begin
...
end;
← →
AL2002 (2002-09-12 11:59) [1]Потому что Incompatible types :)
TfGen.LoockUpFieldSetText(Sender) попробуй.
← →
sdram (2002-09-12 12:01) [2]Нет.
← →
AL2002 (2002-09-12 12:05) [3]Значит, и не получится.
Ну, попробуй TfGen.LoockUpFieldSetText(Text).
Хотя это ересь.
← →
still (2002-09-12 12:08) [4]У тебя в первом случае - procedure
а во втором - procedure of object, т.е. метод
Они не compatible
← →
sdram (2002-09-12 12:08) [5]Событие определенно:
type TFieldSetTextEvent = procedure(Sender: TField; const Text: String) of object;
property OnSetText: TFieldSetTextEvent;
но действительно что-то с параметрами полное ругательство звучит так:
incompatible types : Parameter lists differ
← →
Alx2 (2002-09-12 12:09) [6]sdram © (12.09.02 11:52)
>fGen.dsGenSpec - какого типа?
← →
Игорь Шевченко (2002-09-12 12:10) [7]sdram © (12.09.02 12:01)
Попробуйте это присваивание сделать внутри метода формы TfGen, к примеру
← →
AL2002 (2002-09-12 12:10) [8]Parameter lists differ
Два параметра? Sender & Text?
← →
ЮЮ (2002-09-12 12:11) [9]procedure (не метод объекта) LoockUpFieldSetText
OnSetText := какого типа переменная OnSetText ?
← →
sdram (2002-09-12 12:13) [10]
> sdram © (12.09.02 11:52)
> >fGen.dsGenSpec - какого типа?
TADODataSet
← →
sdram (2002-09-12 12:19) [11]
> Игорь Шевченко © (12.09.02 12:10)
Я не написал, но оно и так внутри метода формы TfGen
← →
Alx2 (2002-09-12 12:19) [12]У меня это компилируется :)
type
tfgen = class
procedure LoockUpFieldSetText(Sender: TField; const Text: String);
end;
procedure TfGen.LoockUpFieldSetText(Sender: TField; const Text: String);
begin
end;
procedure TForm1.FormCreate(Sender: TObject);
Var fGen : TFGen;
begin
with TStringField.Create(nil) do
OnSetText := fGen.LoockUpFieldSetText;
end;
← →
ЮЮ (2002-09-12 12:30) [13]А у него, наверное
TfGen = class(TForm) ???
Надо не
OnSetText := fGen.LoockUpFieldSetText;
а
OnSetText := LoockUpFieldSetText;
При этом назови свою первую процедур как-нибудь иначе
← →
ЮЮ (2002-09-12 12:35) [14]Это к тому, что в случае
procedure TForm1.FormActivate(Sender: TObject);
begin
...
end;
Form1.FormActivate(Sender: TObject); - procedure
Form1.onActivate - TNotifyEvent
← →
sdram (2002-09-12 12:42) [15]
> ЮЮ ©
Так все и сделал невкакую с той-же ошибкой.
← →
Alx2 (2002-09-12 12:45) [16]>sdram © (12.09.02 12:42)
У меня компилируется (см Alx2 © (12.09.02 12:19)). Найди разницу.
← →
sdram (2002-09-12 12:51) [17]Разницы, с первого (да и со второго) взгляда нет только в классе.
← →
Alx2 (2002-09-12 12:54) [18]Вышли unit. Скорее всего где-то еще что-то с точно таким же именем сидит, но другого типа.
← →
sdram (2002-09-12 12:56) [19]Причем
OnChange := fGen.LoockUpFieldSetText;
работает без проблем ??!!
← →
Alx2 (2002-09-12 12:58) [20]Ага
← →
sdram (2002-09-12 13:01) [21]Да Нет, я же изменяю параметры процедуры для OnChange , иначе не работает.
← →
Alx2 (2002-09-12 13:01) [22]Может у тебя fGen вовсе не типа TFGen?
Код нужен. С описанием переменных и классов.
← →
sdram (2002-09-12 13:03) [23]На 15 мин отойду, код длинный.
← →
ЮЮ (2002-09-12 13:04) [24]попробуй обойтись без with, кто знает что за OnSetText ты пытаешься изменить
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.09.23;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.008 c