Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
3-73495
@Ujin
2002-08-31 19:12
2002.09.23
ADO - проблема!!! А Ж... уже горит....


14-73889
начинающий програмер
2002-08-29 20:57
2002.09.23
Delphi и глюки


3-73490
Real
2002-08-31 01:32
2002.09.23
Помогите разобраться: нужно в БД хранить кучу документов


1-73709
Alex_Che
2002-09-11 11:34
2002.09.23
Звук


4-73940
Alibaba
2002-08-07 17:29
2002.09.23
Запуск макроса Excel





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский