Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.49 MB
Время: 0.012 c
1-73704
Anar
2002-09-10 14:15
2002.09.23
Вопрос к вам, мастера!


3-73481
Bishop
2002-08-30 12:52
2002.09.23
FIB


1-73596
carmen
2002-09-12 00:47
2002.09.23
Нужна библ. для работы с эл.таблицами (без установк Excel)


7-73898
!Reset
2002-06-04 19:34
2002.09.23
Удалить файл?


1-73582
zavdim
2002-09-11 07:04
2002.09.23
Восстановление звука в DirectX




   Наверх