Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

OnSetText


Страницы:   1 2

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


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо