Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.09.23;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.014 c
1-73683
гость23
2002-09-10 22:59
2002.09.23
Кубический корень....


3-73501
Александр9999
2002-08-31 16:38
2002.09.23
DataBaseName


3-73558
chistyakov
2002-08-30 13:04
2002.09.23
Кодировки


1-73634
Porolonchick
2002-09-12 15:33
2002.09.23
TreeView.


3-73513
VICTOR_
2002-08-30 14:19
2002.09.23
NET DIR для PARADOX