Есть ли будущее у DELPHI?
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.43] |
|
|
Правила раздела:
| Страницы: (245) « Первая ... 102 103 [104] 105 106 ... 244 245 ( Перейти к последнему сообщению ) |
Есть ли будущее у DELPHI?
|
Сообщ.
#1546
,
|
|
|
|
|
Сообщ.
#1547
,
|
|
|
|
Цитата Shaggy @ написать обычные функции в модуле и всё... В Java нет "обычных функций" |
|
Сообщ.
#1548
,
|
|
|
|
Цитата Мяут-Настоящий @ В Java нет "обычных функций" бугога! родили себе проблему и "мужественно" её преодолели... смотрите, мол, как мы можем...PS to korvin: use "with" Lyke ©... |
|
Сообщ.
#1549
,
|
|
|
|
Цитата Shaggy @ Изначальный вопрос был о возможности импорта статических методов класса. |
|
Сообщ.
#1550
,
|
|
|
|
Цитата Shaggy @ PS to korvin: use "with" Lyke ©... Это ты в каком синтаксисе сейчас написал? И что такое «Lyke»? Напомни-ка мне, имеют ли в Делфи функции модуля доступ к strict private данным объекта? |
|
Сообщ.
#1551
,
|
|
|
|
Цитата D_KEY @ Изначальный вопрос был о возможности импорта статических методов класса. функции описаны в классе, значит создатель класса либо (по какой-то причине) хотел, чтобы их вызывали именно так: class.method либо по другому описать эти функции просто не мог если очень хочется вызывать как method, то в делфи есть ключевое слово with... Цитата korvin @ Напомни-ка мне, имеют ли в Делфи функции модуля доступ к strict private данным объекта? напомни-ка, когда у нас появился объект? до сих пор был только класс... |
|
Сообщ.
#1552
,
|
|
|
|
ЫЫ))) Фирмовый акцесс виолетион Цитата Shaggy @ написать обычные функции в модуле и всё... use ООП luke |
|
Сообщ.
#1553
,
|
|
|
|
Цитата Shaggy @ если очень хочется вызывать как method, то в делфи есть ключевое слово with... С которым можно огрести неплохой геморрой — это уже обсуждалось. Цитата Shaggy @ напомни-ка, когда у нас появился объект? до сих пор был только класс... да хоть когда ![]() ![]() public class Int { private final int value; public Int(int value) { this.value = value; } static public Int add(Int x, Int y) { return new Int(x.value + y.value); } } |
|
Сообщ.
#1554
,
|
|
|
|
Цитата Besha @ use ООП luke ООП ради ООП? Добавлено Цитата korvin @ С которым можно огрести неплохой геморрой — это уже обсуждалось. какой? в данном случае? Цитата korvin @ да хоть когда ну если у меня обычные функции, то класс как-бы не нужен... а с функциями strict private секции, прекрасно справится секция implementation Добавлено Цитата korvin @ да хоть когда погоди-ка, чего-то я не понял т.е. ![]() ![]() import static mypackage.myunit.Foo.*; принимает экземпляр класса(ака объект)? |
|
Сообщ.
#1555
,
|
|
|
|
Цитата Shaggy @ какой? в данном случае? В любом случае. Имя метода может оказаться перекрытым другим методом, у меня такое было, ЕМНИП метод Next датасета перекрывался методом Next формы: ![]() ![]() procedure TSomeForm.SomeActionExecute (Sender : TObject); begin with SomeDataSet do begin while not Eof do begin DoSomething; Next; end; end; end; или не Next, а Eof, точно не помню и Делфи под рукой нет, чтобы воспроизвести. Естественно даже хинта от компилятора не было. Цитата Shaggy @ а с функциями strict private секции, прекрасно справится секция implementation Ну так раскажи каким образом независимая функция модуля получит доступ к strict private полю. Добавлено Цитата Shaggy @ принимает экземпляр класса(ака объект)? import ничего не принимает. import static импортирует все статические члены класса в текущее пространство имен. Как если бы они были членами модуля (в Делфи). Только в реализации статических методов есть полный доступ к внутренностям объектов их класса при работе с этими объектами. Я же показал пример с Int, он вроде прост и понятен. |
|
Сообщ.
#1556
,
|
|
|
|
Цитата korvin @ Имя метода может оказаться перекрытым другим методом может, как и в твоём случае Цитата korvin @ у меня такое было, ЕМНИП метод Next датасета перекрывался методом Next формы: impossible, только если наоборот... но я могу убрать неоднозначность, указав явно чей метод вызывается, а ты? Цитата korvin @ Ну так раскажи каким образом независимая функция модуля получит доступ к strict private полю пардон, понял тогда да, класс, такой-же как у тебя + with |
|
Сообщ.
#1557
,
|
|
|
|
Цитата Shaggy @ 1) может, как и в твоём случае 2) impossible, только если наоборот... 3) но я могу убрать неоднозначность, указав явно чей метод вызывается, а ты? 4) какое strict private поле? у меня класса нет 1) В моем — нет, в Джаве такое невозможно. 2) К сожалению possible. 3) В джаве конфликты имен невозможны — компилятор не позволит. 4) А что у тебя есть? Перепиши мой пример с Int на Делфи. |
|
Сообщ.
#1558
,
|
|
|
|
Цитата Shaggy @ у меня класса нет А куда он делся-то из исходной задачи ? Покажи аналог кода korvin'а с Int. |
|
Сообщ.
#1559
,
|
|
|
|
Цитата Shaggy @ если очень хочется вызывать как method, то в делфи есть ключевое слово with... И забыть о возможностях отладки того куска. Такое мощное слово, только среда его не понимает. Во время отладки не покажет его значение, не даст возможность увидеть декларацию... Да, что-то я уже Delphi начал забывать. Правда твой код все равно не скомпилируется - в конце стоит точка с запятой |
|
Сообщ.
#1560
,
|
|
|
|
[S]mike, забыл смайлик
|