Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2008.06.01;
Скачать: [xml.tar.bz2];

Вниз

директива Overload   Найти похожие ветки 

 
Palladin ©   (2008-04-15 13:38) [0]

от ведь как... 10 минут думал, чего компилятору не нравится... ищет, видимо, перегрузку с параметром Pointer...
век живи ..., как говорится...

Type
TMethod=Procedure of Object;
TClass1=Class
 Private
  Procedure lcMethod;
 Public
  Constructor Create;
End;

Procedure TClass1.lcMethod;
Begin
End;

Procedure Proc(Const s:String;m:TMethod); Overload;
Begin
End;

Procedure Proc(n:Integer;m:TMethod); Overload;
Begin
End;

Constructor TClass1.Create;
Begin
Proc(1,Nil);
End;


D6, не компилируется

кто может проверить на других версиях, если есть желание - отпишитесь


 
Kolan ©   (2008-04-15 13:45) [1]

> кто может проверить на других версиях, если есть желание
> — отпишитесь

Constructor TClass1.Create;
Begin
Proc(1,Nil); <-&#151; [Pascal Error] Unit1.pas(46): E2250 There is no overloaded version of "Proc" that can be called with these arguments
End;


 
Ega23 ©   (2008-04-15 13:48) [2]


Constructor TClass1.Create;
Begin
Proc(1,Nil);
End;


There is no overloaded version of "Proc" that can be called with these arguments

D7, SP2


 
AlexKniga ©   (2008-04-15 13:50) [3]

Если поменять:
TMethod=Procedure of Object;
на
TMethod=Procedure;

Всё нормально компилиться.
D5


 
Игорь Шевченко ©   (2008-04-15 13:51) [4]

Proc(1,TMethod(Nil));

D2006


 
Palladin ©   (2008-04-15 13:57) [5]


> Игорь Шевченко ©   (15.04.08 13:51) [4]

так это понятно :)
другое интересно: неявное приведение не реализовали при поиске перегруженной


> AlexKniga ©   (15.04.08 13:50) [3]

метод и процедура это разные вещи


 
Оригинал   (2008-04-15 13:58) [6]


> Constructor TClass1.Create;
> Begin
> Proc(1,Nil);
> End;


Constructor TClass1.Create;
Begin
 Proc(1,TMethod(Nil));
End;


 
Palladin ©   (2008-04-15 14:00) [7]


> Игорь Шевченко ©   (15.04.08 13:51) [4]
> Оригинал   (15.04.08 13:58) [6]

я не совета просил, мне ситуация с компиляторами интересна


 
Kolan ©   (2008-04-15 14:02) [8]

> [1]

Забыл сказать &#151; BDS2006


 
Оригинал   (2008-04-15 14:03) [9]


> Palladin ©   (15.04.08 14:00) [7]
>
> > Игорь Шевченко ©   (15.04.08 13:51) [4]
> > Оригинал   (15.04.08 13:58) [6]
>
> я не совета просил, мне ситуация с компиляторами интересна


А разве компилятор не прав?


 
Kolan ©   (2008-04-15 14:05) [10]

Тоже самое и в RAD 2007.


 
b z   (2008-04-15 14:05) [11]


> другое интересно

наверное из-за этого
Procedure Proc(n:Integer;m:TMethod1); Overload;
Begin
End;

Procedure Proc(n:Integer;m:TMethod2); Overload;
Begin
End;


 
Kolan ©   (2008-04-15 14:06) [12]

А FPC (Lazarus) схавал.


 
Palladin ©   (2008-04-15 14:07) [13]


> Оригинал   (15.04.08 14:03) [9]

TMethod=Procedure of Object;
Procedure Proc(n:Integer;m:TMethod);

...
Proc(1,Nil); // неявное приведение к TMethod
...


так где компилятор неправ? в [0] или тут?


 
Игорь Шевченко ©   (2008-04-15 14:07) [14]


> Proc(1,Nil); // неявное приведение к TMethod


С какой радости ?


 
Palladin ©   (2008-04-15 14:07) [15]


> b z   (15.04.08 14:05) [11]

из-за чего этого?


 
Palladin ©   (2008-04-15 14:08) [16]


> Игорь Шевченко ©   (15.04.08 14:07) [14]

с такой, что компилируется


 
Игорь Шевченко ©   (2008-04-15 14:08) [17]

TMethod смотрим объявление:

 TMethod = record
   Code, Data: Pointer;
 end;

В честь чего компилятор неявно должен nil к TMehtod приводить ?


 
Игорь Шевченко ©   (2008-04-15 14:09) [18]


> с такой, что компилируется


если overload нету ?


 
Palladin ©   (2008-04-15 14:11) [19]


> Игорь Шевченко ©   (15.04.08 14:08) [17]

а с какой стати ты его явно приводишь в [4]?


 
Palladin ©   (2008-04-15 14:11) [20]


> Игорь Шевченко ©   (15.04.08 14:09) [18]

да


 
Игорь Шевченко ©   (2008-04-15 14:18) [21]

Palladin ©   (15.04.08 14:11) [20]

Ну напиши в QC


 
Bless ©   (2008-04-15 16:58) [22]


> Игорь Шевченко ©   (15.04.08 13:51) [4]
>
> Proc(1,TMethod(Nil));
>
> D2006



> Palladin ©   (15.04.08 13:57) [5]
> > Игорь Шевченко ©   (15.04.08 13:51) [4]
>
> так это понятно :)


А в D7 так тоже не компилируется. Invalid typecast


 
Palladin ©   (2008-04-15 17:21) [23]


> Bless ©   (15.04.08 16:58) [22]

не обращай внимания... я не вдумался чего там Игорь написал...



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2008.06.01;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.042 c
2-1209975923
NIIL
2008-05-05 12:25
2008.06.01
PopUpMenu и Images


2-1210232151
troyan_81
2008-05-08 11:35
2008.06.01
ValueListEditor1 - Как юзать?


2-1210649320
noviceman
2008-05-13 07:28
2008.06.01
Как передать запись (TMyRecord) в процедуру...


2-1210151052
ekto
2008-05-07 13:04
2008.06.01
Разворачивание окна при BorderStyle = bsNone


9-1170746481
maxProg
2007-02-06 10:21
2008.06.01
Текстура (Direct3D)





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский