![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
OnSetText
sdram © (2002-09-12 11:52:00)Подскажите почему компилятор, в месте присвоения событию процедуру обработки, ругается "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;
ЮЮ (2002-09-12 13:04:00) [1]попробуй обойтись без with, кто знает что за OnSetText ты пытаешься изменить
sdram (2002-09-12 13:03:00) [2]На 15 мин отойду, код длинный.
Alx2 (2002-09-12 13:01:00) [3]Может у тебя fGen вовсе не типа TFGen?
Код нужен. С описанием переменных и классов.
sdram (2002-09-12 13:01:00) [4]Да Нет, я же изменяю параметры процедуры для OnChange , иначе не работает.
Alx2 (2002-09-12 12:58:00) [5]Ага
sdram (2002-09-12 12:56:00) [6]Причем
OnChange := fGen.LoockUpFieldSetText;
работает без проблем ??!!
Alx2 (2002-09-12 12:54:00) [7]Вышли unit. Скорее всего где-то еще что-то с точно таким же именем сидит, но другого типа.
sdram (2002-09-12 12:51:00) [8]Разницы, с первого (да и со второго) взгляда нет только в классе.
Alx2 (2002-09-12 12:45:00) [9]>sdram © (12.09.02 12:42)
У меня компилируется (см Alx2 © (12.09.02 12:19)). Найди разницу.
sdram (2002-09-12 12:42:00) [10]
> ЮЮ ©
Так все и сделал невкакую с той-же ошибкой.
ЮЮ (2002-09-12 12:35:00) [11]Это к тому, что в случае
procedure TForm1.FormActivate(Sender: TObject);
begin
...
end;
Form1.FormActivate(Sender: TObject); - procedure
Form1.onActivate - TNotifyEvent
ЮЮ (2002-09-12 12:30:00) [12]А у него, наверное
TfGen = class(TForm) ???
Надо не
OnSetText := fGen.LoockUpFieldSetText;
а
OnSetText := LoockUpFieldSetText;
При этом назови свою первую процедур как-нибудь иначе
Alx2 (2002-09-12 12:19:00) [13]У меня это компилируется :)
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;
sdram (2002-09-12 12:19:00) [14]
> Игорь Шевченко © (12.09.02 12:10)
Я не написал, но оно и так внутри метода формы TfGen
sdram (2002-09-12 12:13:00) [15]
> sdram © (12.09.02 11:52)
> >fGen.dsGenSpec - какого типа?
TADODataSet
ЮЮ (2002-09-12 12:11:00) [16]procedure (не метод объекта)LoockUpFieldSetText
OnSetText := какого типа переменнаяOnSetText ?
AL2002 (2002-09-12 12:10:00) [17]Parameter lists differ
Два параметра? Sender & Text?
Игорь Шевченко (2002-09-12 12:10:00) [18]sdram © (12.09.02 12:01)
Попробуйте это присваивание сделать внутри метода формы TfGen, к примеру
Alx2 (2002-09-12 12:09:00) [19]sdram © (12.09.02 11:52)
>fGen.dsGenSpec - какого типа?
sdram (2002-09-12 12:08:00) [20]Событие определенно:
type TFieldSetTextEvent = procedure(Sender: TField; const Text: String) of object;
property OnSetText: TFieldSetTextEvent;
но действительно что-то с параметрами полное ругательство звучит так:
incompatible types : Parameter lists differ