Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.08.03;
Скачать: CL | DM;

Вниз

Ищу работу   Найти похожие ветки 

 
AEN   (2008-06-13 18:11) [0]

Опытный пользователь ПК, ан.яз., MS Office знание комплектующих, программирование: Delphi, C/C++, HTML... Быстрая обучаемость... Образование: высшее неоконченное... Не посоветуете чего-нибудь?


 
Игорь Шевченко ©   (2008-06-13 18:12) [1]

Метлу ?


 
McSimm ©   (2008-06-13 18:15) [2]

В каком штате ?
В офис в Кливлинде на собеседование подъедете на след. неделе ?


 
AEN   (2008-06-13 18:16) [3]

В Москве:)


 
wicked ©   (2008-06-13 18:20) [4]


> Опытный пользователь ПК, ан.яз., MS Office знание комплектующих,
>  программирование: Delphi, C/C++, HTML

звучит как "видел, когда то делали какие то лабораторки"


 
AEN   (2008-06-13 18:23) [5]

>>wicked ©   (13.06.08 18:20) [4]
Не так... В этой области я считаю себя продвинутым...Delphi, C/C++, HTML + Ассемблер ещё......


 
Игорь Шевченко ©   (2008-06-13 18:26) [6]


> В этой области я считаю себя продвинутым...


Продвинутость обычно надо как-то показывать.


> Delphi, C/C++, HTML + Ассемблер ещё......


А Lisp ?


 
AEN   (2008-06-13 18:28) [7]

А Lisp ?
:)))

Пожалейте, помогите найти работу...


 
Azize ©   (2008-06-13 18:32) [8]

200 уе в месяц за
> Опытный пользователь ПК

думаю тебе везде заплотят


 
AEN   (2008-06-13 18:34) [9]

Azize ©   (13.06.08 18:32) [8]
Посерьезнее чего-нибудь...


 
oxffff ©   (2008-06-13 18:36) [10]


> В этой области я считаю себя продвинутым


Чем интроспекция отличается от метаинформации?


 
AEN   (2008-06-13 18:44) [11]

смыслом


 
Smile   (2008-06-13 18:47) [12]

Уважаю
> Игорь Шевченко ©   (13.06.08 18:12) [1]

> McSimm ©   (13.06.08 18:15) [2]

за продвинутое хамство, самоудовлетворенность и наглость.


 
McSimm ©   (2008-06-13 20:21) [13]

Не надо меня уважать за чужие качества. Я думаю у вас просто не очень ладно с чувствм юмора :)

(Кстати, у компании, где я работаю действительно много вакансий и офис в Кливлинде тоже есть. Правда резюме не подходит)


 
TUser ©   (2008-06-13 21:25) [14]

Врач, умею каталогизировать истории болезни, подклеивать анализы, ... лечение рака легких (100% эффективность) ... помогите найти работу.


 
Dmitry S ©   (2008-06-13 21:37) [15]


> Быстрая обучаемость

А как ты это определил?:)


 
VingtQuatrieme ©   (2008-06-13 23:41) [16]

>AEN   (13.06.08 18:11):
>Опытный пользователь ПК, ан.яз., MS Office знание комплектующих,
>программирование: Delphi, C/C++, HTML... Быстрая обучаемость...

Да Вы чего!? Это ж, нарасхват теперь! И в Москве?
Ой, Боже мой, я Вас умоляю!

Я тут давеча дурёху, которая не то, чтобы ан.яз., которая даже
русским с трудом владеет (прописка, правда, есть) пытался отговорить
от аж четырёх оффисных предложений.

Мне кажется, что Вы просто цену себе набиваете. Нет?


 
Плохиш ©   (2008-06-13 23:57) [17]


> Опытный пользователь ПК, ан.яз., MS Office знание комплектующих,
>  программирование: Delphi, C/C++, HTML... Быстрая обучаемость.
> .. Образование: высшее неоконченное... Не посоветуете чего-
> нибудь?

Спасибо, мне сантехник не нужен.


 
Игорь Шевченко ©   (2008-06-14 01:02) [18]

Плохиш ©   (13.06.08 23:57) [17]

Да ты и не в Москве, ездить на работу каждый день далековато будет.


 
Германн ©   (2008-06-14 01:29) [19]


> Плохиш ©   (13.06.08 23:57) [17]


> Игорь Шевченко ©   (14.06.08 01:02) [18]

Купились на развод?


 
Германн ©   (2008-06-14 02:03) [20]

Пардон.
В данном случае меня подвёл метод чтения.. :(


 
Илья Корстин ©   (2008-06-14 06:53) [21]

Я вот одного не понимаю. Студентами никто из вас не был?


 
korneley ©   (2008-06-14 08:25) [22]


> Илья Корстин ©   (14.06.08 06:53) [21]

Некоторые, только курсантами :) Имхо, говорить надо не о "знании" Delphi/C etc., а об опыте создания чего-нибудь путного.  Дельфи и си сегодня "знает" любой, у кого два раза по 21 день нашлось... Что, видимо, и говорит о "быстрой обучаемости"  :)))


 
Илья Корстин ©   (2008-06-14 09:37) [23]

Да я больше про то, что человек еще студент, пока не знает как себя подать :) Не стоит просто быть такими жестокими.


 
korneley ©   (2008-06-14 10:06) [24]


> Илья Корстин ©   (14.06.08 09:37) [23]
> Да я больше про то, что человек еще студент, пока не знает
> как себя подать :) Не стоит просто быть такими жестокими.
>

Ему и помогают. Правда, может, не так, как он жидал :)


 
имя   (2008-06-14 10:34) [25]

Удалено модератором


 
Пробегал2....   (2008-06-14 10:43) [26]

AEN   (13.06.08 18:11)
Опытный пользователь ПК, ан.яз., MS Office знание комплектующих, программирование: Delphi


Где здесь ошибка?

procedure TForm1.Button1Click(Sender: TObject);
begin
 Form1.Caption := "Где здесь ошибка?" ;
end;


P.S. Народ, спрашиваю автора.


 
isasa ©   (2008-06-14 12:45) [27]

Не, ну зачем так свирепствовать.
Плохой стиль и ошибки, разные вещи.
После одного - двух сексов с переименованием это проходит ...


 
McSimm ©   (2008-06-14 12:50) [28]


> Плохой стиль и ошибки, разные вещи.

Здесь ошибка


 
Тын-Дын ©   (2008-06-14 13:14) [29]


> Где здесь ошибка?
>
> procedure TForm1.Button1Click(Sender: TObject);
> begin
>  Form1.Caption := "Где здесь ошибка?" ;
> end;


Здесь нет ошибки.


 
McSimm ©   (2008-06-14 13:28) [30]


> Здесь нет ошибки.

Спор ради спора ? Можно доказывать и это. Только для частных случаев.
А на собеседовании лучше будет ответить какая здесь грубая ошибка.


 
No_Dead ©   (2008-06-14 13:32) [31]

Удалено модератором
Примечание: да


 
oxffff ©   (2008-06-14 13:47) [32]


> McSimm ©   (14.06.08 12:50) [28]
>
> > Плохой стиль и ошибки, разные вещи.
>
> Здесь ошибка


Здесь ничего не приводит к ошибке.


 
Тын-Дын ©   (2008-06-14 14:09) [33]


> А на собеседовании лучше будет ответить какая здесь грубая
> ошибка.


Так какая же здесь ошибка. Всё-таки?
ну нет здесь никаких проблем.
То, что используется префикс Form1, не является ошибкой. Более того, это даже не является какой-либо стилевой ошибкой.


 
McSimm ©   (2008-06-14 14:16) [34]

Это не префикс, а переменная. Указатель.

Возможно он действительно указывает на экземпляр класса TForm1. Более того, бывает даже, что он указывает именно на тот экземпляр класса, который надо. И в этом случае код действительно не приведет к ошибке.

Но на программиста работу с таким кодом я бы не взял.


 
DVM ©   (2008-06-14 14:23) [35]


> Пробегал2....   (14.06.08 10:43) [26]


> McSimm ©   (14.06.08 14:16) [34]

a := 5;
Где здесь ошибка?

Может лучше задачу формулировать правильно, чем искать проблемы на пустом месте? Вот такие и пишут вопросы в тестах из за которых руководствуясь здравым смыслом тест проваливают люди вполне компетентные. А все потому, что тест не подразумевает обсуждения, а подразумевает лишь выбор правильного ответа.


 
DVM ©   (2008-06-14 14:26) [36]

А я бы не взял на работу буквоеда, который будет неделю обсасывать 10 строчек программы, пытаясь их привести к идеальному со всех точек зрения виду вместо того, чтобы выполнить работу в срок, пусть и не столь идеально. Клиенту оно пофиг, как там внутри все устроено, надо чтобы работало.


 
oxffff ©   (2008-06-14 14:28) [37]


> McSimm ©   (14.06.08 14:16) [34]


А что есть принципиальная разница что экземпляр должен быть класса Tform1. Что только у него есть caption?
Как ты можешь судить не имея условий задачи.
Даже если он будет Tform1.
И явное указание объекта не является ошибкой.
Почему ты например не рассматриваешь вариант, что экземпляров Tform1 может быть >1, а менять caption нужно только у экземпляра form1.

В силу этих фактов ждем доказательства McSimm ©   (14.06.08 12:50) [28]?


> Но на программиста работу с таким кодом я бы не взял.


Марку своего звездолета не подскажешь?


 
McSimm ©   (2008-06-14 14:30) [38]


> DVM ©   (14.06.08 14:23) [35]

Не тот случай.
Использование внешнего указателя на себя же внутри метода объекта - достаточно очевидная и грубая ошибка.

Подобные ошибки достаточно распространены. Что будет когда вы создадите второй экземпляр TForm1 ?

Ради спора можно доказывать, что в приведенном коде возможно имелся в виду совсем другой Form1 и его капшин. Но это или из желания поспорить или ради отмазки.


 
Тын-Дын ©   (2008-06-14 14:30) [39]


> McSimm ©   (14.06.08 14:16) [34]
> Это не префикс, а переменная. Указатель.
>
> Возможно он действительно указывает на экземпляр класса
> TForm1. Более того, бывает даже, что он указывает именно
> на тот экземпляр класса, который надо. И в этом случае код
> действительно не приведет к ошибке.
>
> Но на программиста работу с таким кодом я бы не взял.


Это исключительно субъективное суждение.
Такое же, когда некоторые не переваривают буквы "goto" даже на слух.
но это их личные проблемы, зашоренность и преклонение перед авторитетами.


 
McSimm ©   (2008-06-14 14:33) [40]


> Клиенту оно пофиг, как там внутри все устроено, надо чтобы
> работало.

Не знаю как у других, а у нас коллектив среднего размера и проекты (хоть это и не Делфи) в коллективной разработке. Косяки одного из программиста становятся неприятностями и для клиента в конце концов, даже если сначала работало.


 
Тын-Дын ©   (2008-06-14 14:33) [41]


> McSimm ©   (14.06.08 14:30) [38]
>
> > DVM ©   (14.06.08 14:23) [35]
>
> Не тот случай.
> Использование внешнего указателя на себя же внутри метода
> объекта - достаточно очевидная и грубая ошибка.


Максим, ну не является это ошибкой. Тем более очевидной.
Нет конкретики в задании, а только общие предположения.

Если Form1 - экземпляр TForm1, то можно рассматривать, как ошибку. А если нет?


 
McSimm ©   (2008-06-14 14:36) [42]


> Тын-Дын ©   (14.06.08 14:30) [39]
> Это исключительно субъективное суждение.

В какой его части ?
В том что это не префикс, а указатель?
Или что он может не равняться self через две недели разработки ?


 
DVM ©   (2008-06-14 14:37) [43]


> Ради спора можно доказывать, что в приведенном коде возможно
> имелся в виду совсем другой Form1 и его капшин. Но это или
> из желания поспорить или ради отмазки.

Надо было просто написать:

var
 Form1: TForm1;
....
procedure TForm1.Button1Click(Sender: TObject);
begin
Form1.Caption := "Где здесь ошибка?" ;
end;

Но в любом случае ошибки тут нет, есть лишь пример плохо написанного кода, не более.


 
DVM ©   (2008-06-14 14:39) [44]


> McSimm ©

кстати, каков ваш вариант строки Form1.Caption := "Где здесь ошибка?" ; ???


 
Riply ©   (2008-06-14 14:44) [45]

> [26] Пробегал2....   (14.06.08 10:43)
> Где здесь ошибка?

Я бы завалила собеседование, потому что
искала бы (не знаю как назвать) "реальную" ошибку, а не "потенциальную" :(


 
@!!ex ©   (2008-06-14 14:44) [46]

Вопрос не корректен. Соответственно и ответ не очевиден.
Что ошибочного в присвоении некоторой переменной значения?
Если есть какие-то дополнительные условия, то надо их указывать отдельно.
В приведенном коде ошибок нет.


 
DVM ©   (2008-06-14 14:46) [47]


> Form1.Caption := "Где здесь ошибка?" ;

Может Form1 это вообще имя модуля, а Caption это глобальная переменная в этом модуле.


 
oxffff ©   (2008-06-14 14:47) [48]

Уважаемые а вы представляете как много таких вопросов в университетах, о тестах я вообще молчу.


 
Тын-Дын ©   (2008-06-14 14:47) [49]


> Но в любом случае ошибки тут нет, есть лишь пример плохо
> написанного кода, не более.



> @!!ex ©   (14.06.08 14:44) [46]


В случае, если Form1 - экземпляр реализуемого класса, для получения конкретной ошибки достаточно вынести класс с реализацией в отдельный модуль.


 
oxffff ©   (2008-06-14 14:47) [50]


> DVM ©   (14.06.08 14:46) [47]
>
> > Form1.Caption := "Где здесь ошибка?" ;
>
> Может Form1 это вообще имя модуля, а Caption это глобальная
> переменная в этом модуле.


[37]


 
McSimm ©   (2008-06-14 14:52) [51]

Я дкмаю, всем смотревшим пример было понятно, что метод меняет капшин собственного класса. Все остальное придирки и отмазки, которые вполне можно вернуть проводящему собеседование после объяснения где ошибка.

> кстати, каков ваш вариант строки Form1.Caption := "Где здесь
> ошибка?" ; ???


Мой ответ мог быть таким.
"Я понял вопрос, нельзя ссылаться на поля и методы класса через внешнюю ссылку, здесь надо использовать прямое обращение к свойству Caption или иногда можно использовать Self, если возможна неоднозначность при чтении кода."
Опционально:
" Но ваш код может быть и правильным, например Form1 вовсе не указатель на собственный экземпляр"


 
DVM ©   (2008-06-14 14:52) [52]


> Тын-Дын ©   (14.06.08 14:47) [49]


> для получения конкретной ошибки достаточно

Для получения ошибки проще вместо := поставить = или кавычки убрать. Никто же не спрашивает, что надо сделать для получения ошибки, спрашивают какие ошибки есть в этом коде. А их там нет. И компилятор с этим согласен.


 
DVM ©   (2008-06-14 14:54) [53]


> McSimm ©   (14.06.08 14:52) [51]


> или иногда можно использовать Self

с ним может быть еще больше проблем ибо он может быть вообще nil, может быть другого типа и у него может не быть Caption в общем случае.


 
@!!ex ©   (2008-06-14 14:54) [54]

> В случае, если Form1 - экземпляр реализуемого класса, для
> получения конкретной ошибки достаточно вынести класс с реализацией
> в отдельный модуль.

Если, если если... Что если? Почему этого "если", нет в вопросе?
"Если бы, да кабы..."


 
McSimm ©   (2008-06-14 14:56) [55]


> И компилятор с этим согласен.

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

Потом вопросы "Почему не работает" именно с этой неошибкой улетают из основной в "Начинающим". Чаще всего, правда, такой "косяк" возникает с Form2 и больше.


 
@!!ex ©   (2008-06-14 14:56) [56]

> Я дкмаю, всем смотревшим пример было понятно, что метод
> меняет капшин собственного класса.

Лично мне было понятно, что метод меняет кэпшн некой формы.
Все. Больше из вопроса ничего не понятно.
Домыслы о том, что лично вам понятно - не надо выдавать за общее мнение.


 
DVM ©   (2008-06-14 14:59) [57]

Все же мое мнение, этот вопрос либо вообще для полного новичка, который скажет, что ошибок там нет и будет прав, тем самым подтвердит свой новичковский уровень, либо для более продвинутого, если он начнет дебаты по этому поводу с тем кто вопрос задал. Хотя спор на собеседовании мне кажется только навредит.


 
oxffff ©   (2008-06-14 15:01) [58]


> с ним может быть еще больше проблем ибо он может быть вообще
> nil, может быть другого типа и у него может не быть Caption
> в общем случае.


А это как?


 
DVM ©   (2008-06-14 15:03) [59]


> А это как?

Тьфу ты, я писал про Sender, а не про Self


 
McSimm ©   (2008-06-14 15:03) [60]


> спор на собеседовании мне кажется только навредит.

Я провожу собеседования довольно много. В моем случае не навредит, если покажет, что человек знает больше чем ответ на заданный вопрос. Часто и я с удовольствием узнаю что-то во время собеседований.
Если это не попытка свалить свое непонимание на якобы неоднозначность вопроса, которая имеено его и сбила с толку, а на самом деле он все это понимает и т.п.


 
Тын-Дын ©   (2008-06-14 15:04) [61]


> oxffff ©   (14.06.08 15:01) [58]
>
> > с ним может быть еще больше проблем ибо он может быть
> вообще
> > nil, может быть другого типа и у него может не быть Caption
>
> > в общем случае.
>
>
> А это как?


Это к кому вопрос?


 
Тын-Дын ©   (2008-06-14 15:07) [62]


> @!!ex ©   (14.06.08 14:54) [54]
> > В случае, если Form1 - экземпляр реализуемого класса,
> для
> > получения конкретной ошибки достаточно вынести класс с
> реализацией
> > в отдельный модуль.
>
> Если, если если... Что если? Почему этого "если", нет в
> вопросе?


Ответить почему? - Потому.

Потому что при собеседовании не ожидается ответа "Да" или "Нет".
Как правило, ожидается пониманиеЮ а не констатация фактов.


 
DVM ©   (2008-06-14 15:07) [63]


> Тын-Дын ©   (14.06.08 15:04) [61]


> Это к кому вопрос?

это мне, я попутал.


 
oxffff ©   (2008-06-14 15:07) [64]


>
> Это к кому вопрос?


Не к вам.


 
McSimm ©   (2008-06-14 15:08) [65]


> Как правило, ожидается понимание, а не констатация фактов.

100%


 
DVM ©   (2008-06-14 15:09) [66]


> McSimm ©   (14.06.08 15:03) [60]


> В моем случае не навредит, если покажет, что человек знает
> больше чем ответ на заданный вопрос

В моем тоже, но вот бывает на собеседовании сидят такие фрукты, что лучше не спорить. У них на лице написано "Истина в последней инстанции"


 
oxffff ©   (2008-06-14 15:09) [67]

Ребята предлагаю остановится.


 
@!!ex ©   (2008-06-14 15:12) [68]

> Потому что при собеседовании не ожидается ответа "Да" или
> "Нет".
> Как правило, ожидается пониманиеЮ а не констатация фактов.

Где здесь ошибка?

15X=0
X=O


 
@!!ex ©   (2008-06-14 15:12) [69]

Чорт. Неправильно написал. надо так:
15X=O
X=O


 
DVM ©   (2008-06-14 15:14) [70]


> @!!ex ©   (14.06.08 15:12) [69]

тут ошибок бесконечное количество, зависит от того кто как понял


 
oxffff ©   (2008-06-14 15:17) [71]


> Где здесь ошибка?
>
> 15X=0
> X=O


С++?


 
oxffff ©   (2008-06-14 15:20) [72]


> Где здесь ошибка?
>
> 15X


The following characters are legal as the first character of an identifier, or any subsequent character:

 Copy Code
_ a b c d e f g h i j k l m
n o p q r s t u v w x y z
A B C D E F G H I J K L M
N O P Q R S T U V W X Y Z


 
@!!ex ©   (2008-06-14 15:30) [73]

> [70] DVM ©   (14.06.08 15:14)

О чем и речь. :)


> [71] oxffff ©   (14.06.08 15:17)

Нет. Первое - уравнение, второе - решение.


 
AndreyV ©   (2008-06-14 15:35) [74]

> [69] @!!ex ©   (14.06.08 15:12)

X=O/15


 
@!!ex ©   (2008-06-14 15:43) [75]

> [74] AndreyV ©   (14.06.08 15:35)

Это решение системы уравнений.
А там одно уравнение и ответ на него.
Это же очевидно! ;)
А все кто подумал по другому - либо ньюбы в математике 6 класса, либо отмазываются.

Ну не бред ли?
Господа, учитесь правильно задавать вопросы.
Ссылка есть у Анатолия.


 
McSimm ©   (2008-06-14 16:04) [76]


> Ну не бред ли?

он самый


 
Milk   (2008-06-14 16:20) [77]

Мастера, а не забыли ли Вы
о  ищу работу
AEN   (13.06.08 18:11).

Даже независимо от того, что эта ветка находится в "Потрепаться". Открывайте свои интересные ветки, и, пожалуйста, не "долбите" в ветки, кем то умышленно переведенные в сторону от поста автора (это просто стыдно).


 
oxffff ©   (2008-06-14 16:43) [78]


> @!!ex ©   (14.06.08 15:30) [73]
> > [70] DVM ©   (14.06.08 15:14)
>
> О чем и речь. :)
>
>
> > [71] oxffff ©   (14.06.08 15:17)
>
> Нет. Первое - уравнение, второе - решение.


Ты что куришь?
У тебя там буква O, а не ноль.


 
ketmar ©   (2008-06-14 16:57) [79]

>[23] Илья Корстин © (2008-06-14 09:37:00)
>Да я больше про то, что человек еще студент, пока не знает как себя подать

а мы тут «бюро добрых услуг с подлизыванием ануса», да? не знает — пусть узнаёт. наши проблемы, что он не знает, что ли? он же не просил помочь более-менее вменяемо оформить резюме, а выложил свой бред. мусор на входе — мусор на выходе.

>[36] DVM © (2008-06-14 14:26:00)
>вместо того, чтобы выполнить работу в срок, пусть и не столь идеально

не надо «идеально». достаточно «качественно». если человек отвечает «в приведённом коде нет ошибки», то он рядом с качеством даже не стоял.

>[41] Тын-Дын © (2008-06-14 14:33:00)
>Максим, ну не является это ошибкой.

является. не являлось бы, если бы были заданы более точные условия. в любом другом случае надо предполагать худшее.

>[51] McSimm © (2008-06-14 14:52:00)
>Я дкмаю, всем смотревшим пример было понятно, что метод меняет капшин
>собственного класса

мне — нет. libthelepaty сглючило.

>[52] DVM © (2008-06-14 14:52:00)
>спрашивают какие ошибки есть в этом коде. А их там нет. И компилятор с этим
>согласен.

понимать так, что если компилятор скомпилировал, то в коде ошибок нет? слушай, поделись таким компилятором. я тогда gdb снесу — зачем gdb с таким компилятором-то?

>[77] Milk (2008-06-14 16:20:00)
>Мастера, а не забыли ли Вы

мы и не вспоминали. топикстартер задал вопрос в идиотской форме, обсуждать идиотию неинтересно.

---
All Your Base Are Belong to Us


 
DVM ©   (2008-06-14 17:15) [80]


> ketmar ©   (14.06.08 16:57) [79]


> если человек отвечает «в приведённом коде нет ошибки», то
> он рядом с качеством даже не стоял.

В приведенном коде ошибок нет. Про то, насколько код хорош изначально никто не спрашивал. Каков вопрос, таков и ответ.


> понимать так, что если компилятор скомпилировал, то в коде
> ошибок нет? слушай, поделись таким компилятором. я тогда
> gdb снесу — зачем gdb с таким компилятором-то?

Тебе он не поможет. Да и небесплатный он.


 
ketmar ©   (2008-06-14 17:36) [81]

>[80] DVM © (2008-06-14 17:15:00)
>В приведенном коде ошибок нет

бугога. в a = 5; b = intrand(0); c = a/b; тоже ошибок нет. по крайней мере с точки зрения транслятора. это значит, что в коде ошибок нет вовсе?

я надеюсь, ты пишешь софт, который не выходит на публику. а если выходит — скажи, чтобы я мог посоветовать знакомым, что покупать не надо.

---
All Your Base Are Belong to Us


 
DVM ©   (2008-06-14 18:02) [82]


> бугога. в a = 5; b = intrand(0); c = a/b; тоже ошибок нет.
>  по крайней мере с точки зрения транслятора. это значит,
>  что в коде ошибок нет вовсе?

Та чушь и в том виде, которую ты написал скомпилирована не будет. Код выше, о котором идет речь - будет.


> я надеюсь, ты пишешь софт, который не выходит на публику.
>  а если выходит — скажи, чтобы я мог посоветовать знакомым,
>  что покупать не надо.

Ну ну.


 
Riply ©   (2008-06-14 18:47) [83]

> Offtop
Сразу оговорюсь: ни на кого не намекаю и никого конктерно не имею ввиду. Просто общие рассуждения.
Вот собрались люди, увлеченные программированием и с интелектом ну уж всяко не ниже среднего :)
Почему же даже здесь, у нас, споры по программированию, не редко заканчиваются "переходом на личности" ?
Ведь все же великолепно понимают, что это (переход на личности) не делает аргумент более убедительным :)
> Offtop end


 
Zeqfreed ©   (2008-06-14 19:11) [84]

> Riply ©   (14.06.08 18:47) [83]

Зато делает дискуссию более интересной ;)


 
Юрий Зотов ©   (2008-06-14 19:35) [85]

О, да! Ничто не может быть интереснее, чем обозвать оппонента.

И ведь это действительно люди "с интелектом ну уж всяко не ниже среднего". Грустно как-то...


 
Kostafey ©   (2008-06-14 21:07) [86]

>
> [0] AEN   (13.06.08 18:11)

Хех. Советовать-то?
Ставить цель.
repeat
 Оббивать_пороги;
until  success_is_true;

:)


 
Renegat   (2008-06-14 21:31) [87]

> [86] Kostafey ©   (14.06.08 21:07)

А вы точно уверены в конечности данного цикла? %)


 
@!!ex ©   (2008-06-14 21:35) [88]

> [86] Kostafey ©   (14.06.08 21:07)

Я бы через функциб и while сделал...
while not Обивание_порога_успешно do ;


 
@!!ex ©   (2008-06-14 21:36) [89]

и, кстати, этот цикл должен быть бесконечным. Даже если нашел работу, нужно продолжать искать, вдруг чего получше появится.


 
Kostafey ©   (2008-06-14 21:51) [90]

> [87] Renegat   (14.06.08 21:31)

Да я вообще ни в чем не уверен последнее время :)


> [88] @!!ex ©   (14.06.08 21:35)
> Я бы через функциб и while сделал...

Цикл с предусловием — цикл, который выполняется пока истинно некоторое условие, указанное перед его началом. Это условие проверяется до выполнения тела цикла, поэтому тело может быть не выполнено ни разу (если условие с самого начала ложно). (с) Википедия

А нам нужно, чтобы цикл выполнился хотя бы раз:

Цикл с постусловием — цикл, в котором условие проверяется после выполнения тела цикла. Отсюда следует, что тело всегда выполняется хотя бы один раз. (с) Википедия

Так что с филосовской точки зрения Цикл с постусловием более подходит
в данной ситуации :)


> [89] @!!ex ©   (14.06.08 21:36)

Черт! Я не предусмотрел эту возможность.
Опять весь код перелопачивать :)


 
isasa ©   (2008-06-14 22:12) [91]

Milk   (14.06.08 16:20) [77]
А чем руководствовался топикстартер, посылая сюда пост?
В раздел потрепаться.
Именно потрепаться, а не потрепаться о работе ...

Вот счас все брошу и ...


 
Renegat   (2008-06-14 22:35) [92]

> [90] Kostafey ©   (14.06.08 21:51)
> [89] @!!ex ©   (14.06.08 21:36)

Вот чуть более проработанный алгос =)

PUSHAD
XOR ESI, ESI
MOV EDI, Макс_кол-во_попыток

@loop:
 PUSH Резюме
 PUSH OFFSET Запрос_рабочего_места
 CALL Оббить_следующий_порог
 TEST EAX, EAX
 JE @loop
 TEST EAX, ESI
 JGE @skip
   SUB EDI, 1
   JL @quit
   JMP @loop
 @skip:
 MOV EDI, Макс_кол-во_попыток
 MOV ESI, EAX
 MOV EBX, Запрос_рабочего_места
JMP @loop

@quit:
PUSH EBX
CALL Возрадоваться
POPAD
RET


 
ProgRAMmer Dimonych ©   (2008-06-14 22:47) [93]

> Renegat   (14.06.08 22:35) [92]

Всё равно не выполняется пожелание

> @!!ex ©   (14.06.08 21:36) [89]

Вот оно по-нашему, по-неучёному... :)

JobSearch:=FindFirstJob(@NecessaryConditions);
while FProgrammerAlive do
begin
 Job:=FindNextJob(JobSearch);
 ProcessJob(Job);
end;

FindJobClose(JobSearch);
PutIntoGrave(Self);
Halt;


Пессимистично, но реалистично :)


 
DVM ©   (2008-06-14 22:47) [94]


> Renegat   (14.06.08 22:35) [92]

Для более эффективного поиска работы надо под SSE заточить :)


 
DVM ©   (2008-06-14 22:49) [95]


> ProgRAMmer Dimonych ©   (14.06.08 22:47) [93]

FindFirstJob несовременно. Надо EnumJobs() + функция обратного вызова :)


 
Игорь Шевченко ©   (2008-06-14 22:49) [96]

И все-таки метлу


 
Тын-Дын ©   (2008-06-14 22:50) [97]


> isasa ©   (14.06.08 22:12) [91]
> Milk   (14.06.08 16:20) [77]А чем руководствовался топикстартер,
>  посылая сюда пост?


А чем руководствовался Розыч, когда писал сбюда объявление о вакансии?


 
Kostafey ©   (2008-06-14 22:52) [98]

> [92] Renegat   (14.06.08 22:35)

жестко :]


> [93] ProgRAMmer Dimonych ©   (14.06.08 22:47)


> PutIntoGrave(Self);

улыбнуло :)

self.destroy();

:)


 
ProgRAMmer Dimonych ©   (2008-06-14 22:57) [99]

> Kostafey ©   (14.06.08 22:52) [98]
> > [93] ProgRAMmer Dimonych ©   (14.06.08 22:47)
> > PutIntoGrave(Self);
> улыбнуло :)
> self.destroy();
> :)

Не... Ну, не... Не по-христьянски ето. Останки должны быть преданы земле, а Destroy() - это развеять прах в чистом поле... :)


 
isasa ©   (2008-06-14 23:00) [100]

Тын-Дын ©   (14.06.08 22:50) [97]
А чем руководствовался Розыч, когда писал сбюда объявление о вакансии?


Ну дак, его тут многие знают ...


 
Игорь Шевченко ©   (2008-06-14 23:01) [101]


> А чем руководствовался Розыч, когда писал сбюда объявление
> о вакансии?


Очевидно не до конца изжил в себе наивность


 
Anatoly Podgoretsky ©   (2008-06-14 23:20) [102]

> Тын-Дын  (14.06.2008 22:50:37)  [97]

Наивный


 
Плохиш ©   (2008-06-15 14:09) [103]


> McSimm ©   (14.06.08 14:52) [51]

Поздравляю, ты сразу столько сантехников вывел на чистую воду :-)


 
Плохиш ©   (2008-06-15 14:13) [104]


> DVM ©   (14.06.08 14:52) [52]
> спрашивают какие ошибки есть в этом коде. А их там нет.
> И компилятор с этим согласен.

Ошибки бывают не только синтаксические. Если сантехник не с той прокладкой трубы соединит, то никакой компилятор ошибки не покажет, только будет поздно, когда газ включат...

PS. Оказывается на чистую воду вывели сантехников-недоучек...


 
Тын-Дын ©   (2008-06-15 14:16) [105]


> Плохиш ©   (15.06.08 14:09) [103]
> > McSimm ©   (14.06.08 14:52) [51] Поздравляю, ты сразу
> столько сантехников вывел на чистую воду :-)


Ну это тебе близко и знакомо. никто же не спорит-)


 
Kostafey ©   (2008-06-15 18:51) [106]

Да, а ведь реально ошибочный код. Даже не компилируется :)

prоcеdurе TFоrm1.Buttоn1Click(Sеndеr: ТОbject);
bеgin
Fоrm1.Cарtiоn := "Где здесь ошибка?" ;
еnd;


 
DVM ©   (2008-06-15 20:31) [107]


> Плохиш ©   (15.06.08 14:13) [104]


> Ошибки бывают не только синтаксические.

Да ну! Я и не знал. Насчет сантехников ты прав, теперь я знаю кто они.


 
Style ©   (2008-06-16 01:40) [108]


> Опытный пользователь ПК, ан.яз., MS Office знание комплектующих,
>  программирование: Delphi, C/C++, HTML... Быстрая обучаемость.
> .. Образование: высшее неоконченное... Не посоветуете чего-
> нибудь?
>


на джоблисте или хеадхантере полно вакансий - напиши нормальное резюме и рассылай всем. А тут тебя с руками ногами на работу не возьмут. )


 
AndreyV ©   (2008-06-16 08:39) [109]

Про сантехников.
Около года назад видел в какой-то передаче сюжет о массовой переквалификации английских программистов в сантехники. Якобы, первых стали обижать зарплатой, а у вторых, напротив, доходы стабильно растут.
Вот, за что купил...


 
isasa ©   (2008-06-16 10:32) [110]

Плохиш ©   (15.06.08 14:13) [104]

Ошибки бывают не только синтаксические.


Окако, отношение несинтаксических ошибок именно к языку программирования, на котором написани программуля, требует доказательств.


 
isasa ©   (2008-06-16 10:40) [111]

:)
Тут просто хочется затать вопрос.
А имеет ли право автор программы из всего множества объестов класса TForm1 в данном методе присваивать Caption только объекту Form1.
Даже таким извращенным способом?
Мне, почему-то хочется ответить - имеет, т.к. это будет работать.


procedure TForm1.Button1Click(Sender: TObject);
begin
Form1.Caption := "Где здесь ошибка?" ;
end;


 
Плохиш ©   (2008-06-16 10:42) [112]


> isasa ©   (16.06.08 10:32) [110]
> Плохиш ©   (15.06.08 14:13) [104]
>
> Ошибки бывают не только синтаксические.
>
> Окако, отношение несинтаксических ошибок именно к языку
> программирования, на котором написани программуля, требует
> доказательств.

Если это мне, то я в этой фразе нифига не понял.


 
oxffff ©   (2008-06-16 10:49) [113]


> isasa ©   (16.06.08 10:40) [111]
> :)
> Тут просто хочется затать вопрос.
> А имеет ли право автор программы из всего множества объестов
> класса TForm1 в данном методе присваивать Caption только
> объекту Form1.
> Даже таким извращенным способом?


Я об этом написал в [37].
А что есть другой способ присвоить конкретному объекту form1 заголовок?
Почему этот способ извращенный в данном контексте?


 
isasa ©   (2008-06-16 10:50) [114]

Плохиш ©   (16.06.08 10:42) [112]

Если это мне, то я в этой фразе нифига не понял.


Ладно, будем проще.
Если ошибка несинтаксическая, то докажи, что она имеет отношение к языку программирования


 
Плохиш ©   (2008-06-16 10:52) [115]


> isasa ©   (16.06.08 10:40) [111]
> :)
> Тут просто хочется затать вопрос.
> А имеет ли право автор программы из всего множества объестов
> класса TForm1 в данном методе присваивать Caption только
> объекту Form1.

Ну скажем, для начала, что Form1 - это не объект.
Если у автора этого кода в резюме будет написано про знания ООП, то дальше он даже рассматриваться не будет...


 
isasa ©   (2008-06-16 11:02) [116]

Плохиш ©   (16.06.08 10:52) [115]

Ну скажем, для начала, что Form1 - это не объект.


Надеюсь, что против термина "єкземпляр класса" ты не возражаешь?


 
isasa ©   (2008-06-16 11:07) [117]

Плохиш ©   (16.06.08 10:52) [115]

Если у автора этого кода в резюме будет написано про знания ООП, то дальше он даже рассматриваться не будет..


А вот интересно, сколько людей используют ссылки типа
mainForm.StatusBar ...
в дочерных формах. И за что же такая дискриминация Form1. :)


 
Игорь Шевченко ©   (2008-06-16 11:11) [118]

Точка зрения компилятор и точка зрения работодателя - это две разные точки зрения.

Например, если соискатель принесет такой код, верный с точки зрения компилятора:
procedure TEdOrderForm.Enter;begin
MastData.OrdersSource.OnStateChange :=
OrdersSourceStateChange;try MastData.
Orders.Open;MastData.Orders.Insert;
ShowModal;finally
MastData.OrdersSource.OnStateChange
:= nil;
end;end;procedure TEdOrderForm.Edit
(OrderNo: Double);begin MastData.
OrdersSource.OnStateChange :=
OrdersSourceStateChange;try MastData.
Orders.Open;MastData.Orders.Locate
("OrderNo", OrderNo, []);ShowModal;finally
MastData.OrdersSource.OnStateChange
:= nil;end;end;
{Event Handlers}{ These two methods
enable the navigators to service both
the Orders and Items tables by switching
the ActiveSource between them. }procedure
TEdOrderForm.ItemsGridEnter(Sender: TObject);
begin ActiveSource.Dataset := MastData.
Items;end;
procedure TEdOrderForm.ItemsGridExit(Sender:
TObject);begin ActiveSource.Dataset
:= MastData.Orders;end;


То разговора с соискателем не получится вовсе


 
isasa ©   (2008-06-16 11:15) [119]

Игорь Шевченко ©   (16.06.08 11:11) [118]

Точка зрения компилятор и точка зрения работодателя - это две разные точки зрения.

Например, если соискатель принесет такой код


:)
Какой милый телеграфный стиль.
Все равно компилятор все пробелы выбрасывает. Впрочем, это на любителя ...


 
oxffff ©   (2008-06-16 11:16) [120]


> Плохиш ©   (16.06.08 10:52) [115]


Вас что не устраивает?
Хотите так?
if assigned(form1) then Form1.Caption := "Где здесь ошибка?" ;

Однако автор программы может гарантировать существование объекта form1
(для простоты я опускаю фраза указатель на экземпляр класса) на момент вызова ButtonClick у любого из экземпляров.
Автор это сделал из соображений скорости.

А во всем остальном ваша попытка приплести сюда ссылочную семантику отношения не имеет.


 
oxffff ©   (2008-06-16 11:22) [121]


> Игорь Шевченко ©   (16.06.08 11:11) [118]
..
> То разговора с соискателем не получится вовсе


В вашем случае да. Однако найдется человек, который ищет таких кандидатов. Попробуйте опровергнуть.


 
Плохиш ©   (2008-06-16 11:26) [122]


> isasa ©   (16.06.08 10:50) [114]

Зачем я буду доказывать то, что здесь ни я, ни кто другой не говорил?


 
Плохиш ©   (2008-06-16 11:28) [123]


> isasa ©   (16.06.08 11:02) [116]
> Плохиш ©   (16.06.08 10:52) [115]
>
> Ну скажем, для начала, что Form1 - это не объект.
>
> Надеюсь, что против термина "єкземпляр класса" ты не возражаешь?

Form1 - это и не "єкземпляр класса", Form1 - это обычная переменная в программе и ничего больше.


 
Плохиш ©   (2008-06-16 11:29) [124]


> oxffff ©   (16.06.08 11:16) [120]
>
> > Плохиш ©   (16.06.08 10:52) [115]
>
>
> Вас что не устраивает?
> Хотите так?
> if assigned(form1) then Form1.Caption := "Где здесь ошибка?" ;

Вы можете маразмом страдать сколько угодно.


 
isasa ©   (2008-06-16 11:31) [125]

Плохиш ©   (16.06.08 11:26) [122]
Зачем я буду доказывать то, что здесь ни я, ни кто другой не говорил?


Вот те раз.
Было сказано, что фрагмент

procedure TForm1.Button1Click(Sender: TObject);
begin
Form1.Caption := "Где здесь ошибка?" ;
end;

содержит несинтаксическую ошибку.
Но он компилируется и работает, при соблюдении определенных условий.

Если он работает, где ошибка?


 
isasa ©   (2008-06-16 11:33) [126]

Плохиш ©   (16.06.08 11:28) [123]

Form1 - это и не "єкземпляр класса", Form1 - это обычная переменная в программе и ничего больше.


Когда нам выгодно, мы вспоминаем ООП, а когда нет, то его нет.
Можно подумать, что Form1 имеет тип pointer


 
Плохиш ©   (2008-06-16 11:33) [127]


> isasa ©   (16.06.08 11:31) [125]

И кто говорил, что там ошибка языка программирования?


 
isasa ©   (2008-06-16 11:35) [128]

Плохиш ©   (16.06.08 11:33) [127]

И кто говорил, что там ошибка языка программирования?


"Так мы никогда не кончим" (с)

Если он компилируется и правильно работает, где ошибка?
В терминологии ошибок?


 
Плохиш ©   (2008-06-16 11:36) [129]


> isasa ©   (16.06.08 11:33) [126]


> Когда нам выгодно, мы вспоминаем ООП, а когда нет, то его
> нет.

опять какая-то загадка

> Можно подумать, что Form1 имеет тип pointer

Про тип переменной Form1 в этой ветке ещё не говорилось ;-)


 
oxffff ©   (2008-06-16 11:36) [130]


> Плохиш ©   (16.06.08 11:29) [124]
>
> > oxffff ©   (16.06.08 11:16) [120]
> >
> > > Плохиш ©   (16.06.08 10:52) [115]
> >
> >
> > Вас что не устраивает?
> > Хотите так?
> > if assigned(form1) then Form1.Caption := "Где здесь ошибка?
> " ;
>
> Вы можете маразмом страдать сколько угодно.


В данном случае я только указал только на ваш. :)
Будут более убедительные  доводы будут?


 
Игорь Шевченко ©   (2008-06-16 11:38) [131]

похоже, наше отставание в области IT-технологий несколько больше, чем предполагалось...


 
Плохиш ©   (2008-06-16 11:39) [132]


> isasa ©   (16.06.08 11:35) [128]
> Плохиш ©   (16.06.08 11:33) [127]
> Если он компилируется и правильно работает, где ошибка?

Ты забыл добавить слова из [125] "при соблюдении определенных условий"
Т.к. в общем случае код работает неправильно.

> oxffff ©   (16.06.08 11:36) [130]
> Будут более убедительные  доводы будут?

Все доводы в теории ООП.


 
isasa ©   (2008-06-16 11:40) [133]

Плохиш ©   (16.06.08 11:36) [129]

Про тип переменной Form1 в этой ветке ещё не говорилось ;-)


Ага. А по используемому контексту это ни фиги не видно.
Для танкистов надо было написать
var
Form1: TForm1;
...
Form1:=TForm1.Create(....


 
isasa ©   (2008-06-16 11:44) [134]

:)
Мне вот стало интересно, откуда
Kostafey ©   (15.06.08 18:51) [106]
приволок эту гадость.
Я чуствую, что лучше бы он спросил про самолет, или подводную лодку ...


 
isasa ©   (2008-06-16 11:47) [135]

Плохиш ©   (16.06.08 11:39) [132]
Ты забыл добавить слова из [125] "при соблюдении определенных условий"
Т.к. в общем случае код работает неправильно.

Между прочим, составление исходного кода программы - это тотальное соблюдении определенных условий. Одном больше одним меньше - не принципиально.


 
Ega23 ©   (2008-06-16 11:49) [136]


> Ага. А по используемому контексту это ни фиги не видно.


Конечно. Вот объясни, какой идиёт будет в обработчике метода класса TForm1 перед обращением к свойствам-методам класса TForm1 ставить Form1?
А я знаю кто. Студент, который первый раз Delphi увидел пол-года назад. При этом максимум - сделал на нём пару лабораторных (пусть даже целиком и полностью сам) и десяток заданий для семинаров. Ну ещё расчёт курсовика написал.
Но нельзя ведь сказать, что этот человек ЗНАЕТ Delphi?
Хотя вполне может, что действительно за 3-6 месяцев научится и будет сносно в этом разбираться.


 
oxffff ©   (2008-06-16 11:52) [137]


> Плохиш ©   (16.06.08 11:39) [132]
>
> > isasa ©   (16.06.08 11:35) [128]
> > Плохиш ©   (16.06.08 11:33) [127]
> > Если он компилируется и правильно работает, где ошибка?
>
>
> Ты забыл добавить слова из [125] "при соблюдении определенных
> условий"
> Т.к. в общем случае код работает неправильно.
>
> > oxffff ©   (16.06.08 11:36) [130]
> > Будут более убедительные  доводы будут?
>
> Все доводы в теории ООП.


Так если мы установили, что ваши претензии - это не использование неинициализированной переменной.

Ваша попытка указать на неустановленный тип переменной form1 мягко говоря странна.
В таком случае причем здесь ООП? Очень ждем ответа.

Сразу задам уточняющий вопрос, что вы под ООП сокращаете?


 
isasa ©   (2008-06-16 11:54) [138]

Конечно. Вот объясни, какой идиёт будет в обработчике метода класса TForm1 перед обращением к свойствам-методам класса TForm1 ставить Form1?

Это не ошибка, это нарушение принципов программирования с ООП.
"Плохой стиль". Я писал. Это разные вещи.А какие идиоты используют ф формах указатели на mainForm?
Таких программ много. И все работают.


 
Игорь Шевченко ©   (2008-06-16 11:59) [139]


> А какие идиоты используют ф формах указатели на mainForm?


если они используют их в методах mainform, то таки да, идиоты


 
oldman ©   (2008-06-16 12:00) [140]


> AEN   (13.06.08 18:11)  
> Опытный пользователь ПК, ан.яз., MS Office


Пошли к нам. (Но - Нижний Новгород)
Работа в больнице.
С документацией. На Office.
Зарплата около 7 тысяч рублей.
Пять рабочих дней, с 8 до 16.

А ТО Я УЖЕ ЗАДОЛБАЛСЯ СЕКРЕТАРШЕЙ РАБОТАТЬ ВМЕСТО ПРОГРАММИРОВАНИЯ!!!


 
Плохиш ©   (2008-06-16 12:05) [141]


> oxffff ©   (16.06.08 11:52) [137]


> Так если мы установили, что ваши претензии - это не использование
> неинициализированной переменной.

То, что ты мелко плаваешь, это я знал и раньше и ещё раз подтверждать это смысла не имело.

> isasa ©   (16.06.08 11:54) [138]

Ну да, а потом орут, что биллгейтс виноват и винда падает...


 
Anatoly Podgoretsky ©   (2008-06-16 12:05) [142]

> isasa  (16.06.2008 11:02:56)  [116]

Буду, поскольку это не экземпляр класса, а переменная которая может содержать экземляр какого то класса, а может и не содержать.

Вот Self это экземпляр класса.


 
Ega23 ©   (2008-06-16 12:06) [143]


> Это не ошибка, это нарушение принципов программирования
> с ООП.


Правильно. Можно писать сносные программы на Delphi и не понимать нифига в ООП. Сам такой был. Пока не встала задача написания некоего графического вьюера - сам не понимал этих вещей. Хотя уже год писал на Delphi. Теперь понимаю. И когда другой язык буду "поднимать", то уже таких ляпов не сделаю.


 
oxffff ©   (2008-06-16 12:06) [144]


> isasa ©   (16.06.08 11:54) [138]
> Конечно. Вот объясни, какой идиёт будет в обработчике метода
> класса TForm1 перед обращением к свойствам-методам класса
> TForm1 ставить Form1?
>
> Это не ошибка, это нарушение принципов программирования
> с ООП.


И вы туда же?
Это про какие такие вы принципы нарушения ООП говорите.
Сaption - это Published свойство.


 
isasa ©   (2008-06-16 12:07) [145]

Игорь Шевченко ©   (16.06.08 11:59) [139]

если они используют их в методах mainform, то таки да, идиоты


Не, ну это только потому, что в методах этой формы естьдля этих целей
Self (или без префикса).
А в общем случае?

procedure TForm2.Button1Click(Sender: TObject);
begin
Form1.Caption := "Где здесь ошибка?" ;
end;


 
Ega23 ©   (2008-06-16 12:08) [146]


> Это про какие такие вы принципы нарушения ООП говорите.
> Сaption - это Published свойство.


Да хоть 32 раза published. Form1 - не обязательно экземпляр класса TForm. Замени Form1 на Self - и никаких проблем.


 
isasa ©   (2008-06-16 12:10) [147]

oxffff ©   (16.06.08 12:06) [144]

Это про какие такие вы принципы нарушения ООП говорите.


Пожелание о том, что код метода класса не должен ничего "знать" о конкретном экземпляре этого класса.


 
Anatoly Podgoretsky ©   (2008-06-16 12:11) [148]

> isasa  (16.06.2008 11:40:13)  [133]

Так этого мало, нигде не видно, что TForm1 создается один раз или несколько.
И нигде не сказано какому экземпляру надо изменить Caption.


 
isasa ©   (2008-06-16 12:12) [149]

Ega23 ©   (16.06.08 12:08) [146]

Да хоть 32 раза published. Form1 - не обязательно экземпляр класса TForm. Замени Form1 на Self - и никаких проблем.


:)
"Так мы никогда не кончим" (с)

Так об этом и речь. Это ошибка, или плохой стиль.


 
oxffff ©   (2008-06-16 12:12) [150]


> Плохиш ©   (16.06.08 12:05) [141]
>
> > oxffff ©   (16.06.08 11:52) [137]
>
>
> > Так если мы установили, что ваши претензии - это не использование
>
> > неинициализированной переменной.
>
> То, что ты мелко плаваешь, это я знал и раньше и ещё раз
> подтверждать это смысла не имело.


Зачем вы все время увиливаете?

Я второй раз вас спрашиваю где нарушение ООП Object Pascal?

Если нужно для всех экземпляров при нажатии устанавливать у конкретного экземпляра form1 свойство caption.


 
Плохиш ©   (2008-06-16 12:13) [151]


> isasa ©   (16.06.08 12:07) [145]

Т.е. можно расценить, что все предыдущие высказывания были твоей реакцией на мой ник? :-)


 
Плохиш ©   (2008-06-16 12:15) [152]


> oxffff ©   (16.06.08 12:12) [150]

Тебе, вроде, уже на этой странице три! раза ответили.


 
Anatoly Podgoretsky ©   (2008-06-16 12:15) [153]

> isasa  (16.06.2008 11:54:18)  [138]

А откуда следует, что Form1 имеет тип TForm1 - их-за того что буквы одинаковые?
Что бы это утверждать надо иметь текск программы, а не кусочек из нее.
Может даже оказаться, что Form1 это и не переменная вообще.


 
Игорь Шевченко ©   (2008-06-16 12:15) [154]

oxffff ©   (16.06.08 12:12) [150]


> Если нужно для всех экземпляров при нажатии устанавливать
> у конкретного экземпляра form1 свойство caption.


procedure TForm1.Button1Click(Sender: TObject);
begin
Form1.Caption := "Где здесь ошибка?" ;
end;

У какого экземпляра надо устанавливать ?


 
oxffff ©   (2008-06-16 12:15) [155]


> isasa ©   (16.06.08 12:10) [147]
> oxffff ©   (16.06.08 12:06) [144]
>
> Это про какие такие вы принципы нарушения ООП говорите.
>
> Пожелание о том, что код метода класса не должен ничего
> "знать" о конкретном экземпляре этого класса.


В ООП нет таких ограничений.
А как же тогда class var, паттерн синглетон.
Идея такая же - shared state.


 
isasa ©   (2008-06-16 12:15) [156]

Anatoly Podgoretsky ©   (16.06.08 12:11) [148]

Так этого мало, нигде не видно, что TForm1 создается один раз или несколько.
И нигде не сказано какому экземпляру надо изменить Caption.


Короче. :)
Для того, чтобы найти ошибку - нужно приводить весь текст программы.
Этот код компилируется и ошибки в нем нет.


 
oxffff ©   (2008-06-16 12:17) [157]


> Игорь Шевченко ©   (16.06.08 12:15) [154]
> oxffff ©   (16.06.08 12:12) [150]
>
>
> > Если нужно для всех экземпляров при нажатии устанавливать
>
> > у конкретного экземпляра form1 свойство caption.
>
>
> procedure TForm1.Button1Click(Sender: TObject);
> begin
> Form1.Caption := "Где здесь ошибка?" ;
> end;
>
> У какого экземпляра надо устанавливать ?


У shared экземпляра на который ссылается form1.
Здесь нет нарушения ООП.
Где вы здесь нарушаете доступ к закрытым членам?


 
Ega23 ©   (2008-06-16 12:17) [158]


> Я второй раз вас спрашиваю где нарушение ООП Object Pascal?


Класс "Пассажирский самолёт ТУ-154М" не должен ничего знать о пассажирском самолёте ТУ-154М с бортовым номером 34567 и базирующимся в Благовещенске.


 
Anatoly Podgoretsky ©   (2008-06-16 12:18) [159]

> isasa  (16.06.2008 12:07:25)  [145]

А что такое Form1 в данном случае?

procedure TForm2.Button1Click(Sender: TObject);
begin
Form1.Caption := "Где здесь ошибка?" ;
end;


 
oxffff ©   (2008-06-16 12:18) [160]


> Плохиш ©   (16.06.08 12:15) [152]
>
> > oxffff ©   (16.06.08 12:12) [150]
>
> Тебе, вроде, уже на этой странице три! раза ответили.


От вас я только слышу заявление о якобы нарушении ООП.
Но никто не привел формулировку правила которое нарушено.
Одна только болтовня с вашей стороны. Уж извините.


 
Anatoly Podgoretsky ©   (2008-06-16 12:19) [161]

> Ega23  (16.06.2008 12:08:26)  [146]

Ты тоже ошибаешься, может задача стоит менять Caption именно у Form1, а не у Self


 
Anatoly Podgoretsky ©   (2008-06-16 12:20) [162]

> oxffff  (16.06.2008 12:12:30)  [150]

А с чего ты взял, что это экземпляр класса?


 
oxffff ©   (2008-06-16 12:21) [163]


> Ega23 ©   (16.06.08 12:17) [158]
>
> > Я второй раз вас спрашиваю где нарушение ООП Object Pascal?
>
>
>
> Класс "Пассажирский самолёт ТУ-154М" не должен ничего знать
> о пассажирском самолёте ТУ-154М с бортовым номером 34567
> и базирующимся в Благовещенске.


Страница в Г. Буч где об этом говорится?


 
isasa ©   (2008-06-16 12:23) [164]

Anatoly Podgoretsky ©   (16.06.08 12:18) [159]

А что такое Form1 в данном случае?


Ну, компилятор сначала пошлет с сообщением о необъявленной переменной Form1, ну а дальше сожрет исходник с объявленной переменной Form1 любого класса где есть свойство Caption не ниже public


 
oxffff ©   (2008-06-16 12:24) [165]


> Ega23 ©   (16.06.08 12:17) [158]
>
> > Я второй раз вас спрашиваю где нарушение ООП Object Pascal?
>
>
>
> Класс "Пассажирский самолёт ТУ-154М" не должен ничего знать
> о пассажирском самолёте ТУ-154М с бортовым номером 34567
> и базирующимся в Благовещенске.


А как тебе тогда такая постановка вопроса?

Это президенский борт и все самолеты должны передавать данные о своем положении ему?


 
Anatoly Podgoretsky ©   (2008-06-16 12:26) [166]

> isasa  (16.06.2008 12:15:36)  [156]

Правильно, что бы конкретно говорить необходимо обладать всем кодом программы или объемливающей ее частью, которая одназначно гарантирует, что это весь текст, которые относится к данному предмету с именем Form1 и иметь техническое задание, иначе тоже без толку.

Это очень похоже на загадку ловушку, но программист не должен быть тупоумным, увидел знакомые буквы и решил, что решил задачу, он обязан видеть все варианты, а их уже много предложили.

Иначе и получаем программы, где мол ошибки в данном месте быть не может и проверять не надо.
Неужели не видел подобных утверждений, в том числе и от некоторых участников данной ветки.
Это ограниченность.


 
b z   (2008-06-16 12:27) [167]

Почему-же автор ошибки молчит ... :(


 
oxffff ©   (2008-06-16 12:29) [168]


> isasa ©   (16.06.08 12:15) [156]
> Этот код компилируется и ошибки в нем нет.


Согласен.


 
Ega23 ©   (2008-06-16 12:30) [169]


> Это президенский борт и все самолеты должны передавать данные
> о своем положении ему?


А вот тогда вводится класс "Реестр всех самолётов". Куда каждый самолёт передаёт свои данные. И к которому экземпляр класса "Президентский самолёт"  имеет доступ (кстати, и он сам туда же свои данные передаёт).

Т.е. имеет место кривая архитектура классов, только и всего. Нерабочей ошибкой это назвать нельзя. Но и правильным решением - тоже. Как некая "быстрая заплатка" - да, потянет. Но по своему опыту могу сказать, что нет ничего более постоянного, чем временные заплатки в программе.


 
isasa ©   (2008-06-16 12:31) [170]

Anatoly Podgoretsky ©   (16.06.08 12:26) [166]

> isasa  (16.06.2008 12:15:36)  [156]

Правильно, что бы конкретно говорить необходимо обладать всем кодом программы или объемливающей ее частью,


Это намек на? ...

type

TFormBuffer: class
public
Caption: ShortString;
.....
end;
var
Form1:TFormBuffer;

....

procedure TForm1.Button1Click(Sender: TObject);
begin
Form1.Caption := "Где здесь ошибка?" ;
end;


 
clickmaker ©   (2008-06-16 12:38) [171]

> Класс "Пассажирский самолёт ТУ-154М" не должен ничего знать
> о пассажирском самолёте ТУ-154М с бортовым номером 34567


 
Игорь Шевченко ©   (2008-06-16 12:39) [172]

Розыч был дважды наивен :)


 
isasa ©   (2008-06-16 12:41) [173]

Ega23 ©   (16.06.08 12:30) [169]

А вот тогда вводится класс "Реестр всех самолётов". Куда каждый самолёт передаёт свои данные. И к которому экземпляр класса "Президентский самолёт"  имеет доступ (кстати, и он сам туда же свои данные передаёт).

Т.е. имеет место кривая архитектура классов, только и всего. Нерабочей ошибкой это назвать нельзя. Но и правильным решением - тоже. Как некая "быстрая заплатка" - да, потянет. Но по своему опыту могу сказать, что нет ничего более постоянного, чем временные заплатки в программе.


Тоже не кошерно. Тут удобнее делать интерфейс...
Короче
"Не стреляйте в программиста, он играет, как умеет"
Результат, наше все...


 
oxffff ©   (2008-06-16 12:42) [174]


> Ega23 ©   (16.06.08 12:30) [169]
>
> > Это президенский борт и все самолеты должны передавать
> данные
> > о своем положении ему?
>
>
> А вот тогда вводится класс "Реестр всех самолётов". Куда
> каждый самолёт передаёт свои данные. И к которому экземпляр
> класса "Президентский самолёт"  имеет доступ (кстати, и
> он сам туда же свои данные передаёт).


Во первых жду ответа на указание правила ООП которое нарушено.

Во вторых я могу показать в предложенном тобой решение
есть несколько недостатков.

Вынесение посредника для одного потребителя информации неэфективно.
Тобой предложен механизм опроса, а не мгновенного уведомеления.
Для этого придется городить callback метод. И т.д и т.п.
Но главное ты не можешь создать один мощный сокрытый экземпляр.


 
isasa ©   (2008-06-16 12:43) [175]

Игорь Шевченко ©   (16.06.08 12:39) [172]

Розыч был дважды наивен :)


Да ну ее нафиг, ту работу. :)


 
Ega23 ©   (2008-06-16 12:57) [176]


> Во первых жду ответа на указание правила ООП которое нарушено.


> Класс "Пассажирский самолёт ТУ-154М" не должен ничего знать
> о пассажирском самолёте ТУ-154М с бортовым номером 34567


 
Пробегал2....   (2008-06-16 13:14) [177]

Плохиш ©   (16.06.08 11:29) [124]
Вы можете маразмом страдать сколько угодно.


я тоже так считаю. Полностью понимая в чем дело, все равно разводить понты и упираться рогом - это говорит уже минимум о характере. Ну не возьмут на работу из-за характера (как с таким человеком потом работать в комманде), а не из-за отсутствия знаний. Будет гордый ходить и говорить, что все работодатели - лохи. Непризнанный гений, ага. Такие у нас каждые вторые ;)


 
Anatoly Podgoretsky ©   (2008-06-16 13:22) [178]

> isasa  (16.06.2008 12:23:44)  [164]

> А что такое Form1 в данном случае?

Имя модуля, а Caption имя переменной.


 
Anatoly Podgoretsky ©   (2008-06-16 13:25) [179]

> isasa  (16.06.2008 12:31:50)  [170]

Может и так, а может

unit Form1

var
  Caption: string;


 
clickmaker ©   (2008-06-16 13:27) [180]

> unit Form1
>
> var
>  Caption: string;

теоретически возможно, но практически представить трудно


 
isasa ©   (2008-06-16 13:32) [181]

Anatoly Podgoretsky ©   (16.06.08 13:25) [179]

Может и так, а может


Тогда правильный ответ на вопрос "Где здесь ошибка?"
Не объявленная переменная Form1, что и скажет каомпилятор.
Остальное все претензии тестера ...
Вопрос абсолютно не двусмысленный и, в случае тестов о приеме на работу в выдвижением претензий, я бы развернулся и ушел.
Это неадекватность рабочей среды у работодателя.
Непогрешимость авторитета?


 
Anatoly Podgoretsky ©   (2008-06-16 13:50) [182]

> clickmaker  (16.06.2008 13:27:00)  [180]

Ты явно имеешь ограниченое представление о гибкости "ума" некоторых начинающих и не только.


 
Ega23 ©   (2008-06-16 13:51) [183]


> Ты явно имеешь ограниченое представление о гибкости "ума"
> некоторых начинающих и не только.


Класс. Запишу в цЫтатник.


 
Virgo_Style ©   (2008-06-16 13:52) [184]

imho.

Уровень ответа должен быть адекватен уровню вопроса.

Школьные задачи о наклонной плоскости можно решать с учетом высоты над уровнем моря и сопротивления воздуха.
Можно вспомнить, что Земля не имеет форму шара и не вращается вокруг Солнца.
Можно придумать сотню нестандартных способов измерения высоты башни с помощью барометра.

Вопрос в уместности этого в каждом конкретном случае.


 
Ega23 ©   (2008-06-16 13:54) [185]


> Можно придумать сотню нестандартных способов измерения высоты
> башни с помощью барометра.


Сотню сложно.


 
VirEx ©   (2008-06-16 14:05) [186]


>  [118] Игорь Шевченко ©   (16.06.08 11:11)
> Точка зрения компилятор и точка зрения работодателя - это
> две разные точки зрения.
>
> Например, если соискатель принесет такой код, верный с точки
> зрения компилятора:

получится, у работодателя будет установлен DelforExp и он приучит кадра нажимать ^D соответствующим пунктом в договоре


 
isasa ©   (2008-06-16 14:11) [187]

Все. Последняя реплика и пошел пить пиво...
Вот интересно. В среде код, скорее всего будет построен так

...
interface
...
var
 Form1: TForm1;

implementation

....

procedure TForm1.Button1Click(Sender: TObject);
begin
Form1.Caption := "Где здесь ошибка?" ;
end;


Пре изменении имени Form1 на скажем Oops1 и рефакторинге, будет изменение Oops1.Caption?
Или данный код не относится к программированию на Delphi?


 
Anatoly Podgoretsky ©   (2008-06-16 14:11) [188]

> isasa  (16.06.2008 13:32:01)  [181]

И правильно сделал бы, поскольку потом обязательно возникнут проблемы.


 
Anatoly Podgoretsky ©   (2008-06-16 14:15) [189]

> isasa  (16.06.2008 14:11:07)  [187]

Вероятность свыше 100%


 
clickmaker ©   (2008-06-16 14:45) [190]

> [187] isasa ©   (16.06.08 14:11)
> Все. Последняя реплика и пошел пить пиво...

везет людям. В 2 часа уже можно пиво пить )


 
isasa ©   (2008-06-16 14:50) [191]

clickmaker ©   (16.06.08 14:45) [190]

везет людям. В 2 часа уже можно пиво пить )


У нас сегодня выходной. Троица вчера была. Так что в 2 часа - это уже, скорее всего, поздно ...


 
isasa ©   (2008-06-16 14:53) [192]

Anatoly Podgoretsky ©   (16.06.08 14:15) [189]

Вероятность свыше 100%


Тогда...
Если данная схема использования имен предусмотрена разработчиком среды, то о чем мы говорим. О какой "ошибке".


 
oxffff ©   (2008-06-16 14:53) [193]


> isasa ©   (16.06.08 14:11) [187]
> Все. Последняя реплика и пошел пить пиво...
> Вот интересно. В среде код, скорее всего будет построен
> так
>
> ...
> interface
> ...
> var
>  Form1: TForm1;
>
> implementation
>
> ....
>
> procedure TForm1.Button1Click(Sender: TObject);
> begin
> Form1.Caption := "Где здесь ошибка?" ;
> end;
>
>
> Пре изменении имени Form1 на скажем Oops1 и рефакторинге,
>  будет изменение Oops1.Caption?
> Или данный код не относится к программированию на Delphi?
>


В этом коде нет ошибок. Все согласны?


 
Ega23 ©   (2008-06-16 14:57) [194]


> В этом коде нет ошибок. Все согласны?


Ошибок - нет. Кривизна - есть.


 
clickmaker ©   (2008-06-16 14:58) [195]

> В этом коде нет ошибок. Все согласны?

это бессмысленный код. К тому же непонятный. Зачем? чего хотели добиться?
единственный вариант - установка заголовка одной формы из нескольких модулей (судя по тому, что переменная в interface) - и тот кривой. Нет проверки хотя бы на nil.


 
oxffff ©   (2008-06-16 15:07) [196]

clickmaker ©   (16.06.08 14:58) [195]

> Нет проверки хотя бы на nil.


Ну мы этот вариант разобрали в oxffff ©   (16.06.08 11:16) [120].
А окромя этого.

Тут бывалые зыбры говорят о каких нарушения ООП.
Есть такое?


 
Плохиш ©   (2008-06-16 15:07) [197]

Чуть, чуть протухшая осетрина...


 
oxffff ©   (2008-06-16 15:08) [198]


> Ega23 ©   (16.06.08 14:57) [194]
>
> > В этом коде нет ошибок. Все согласны?
>
>
> Ошибок - нет. Кривизна - есть.


В студию. Кратко.


 
oxffff ©   (2008-06-16 15:09) [199]


> Плохиш ©   (16.06.08 15:07) [197]
> Чуть, чуть протухшая осетрина...


Я жду от вас ответа на нарушении ООП. В противном случае воспринимаем ваши реплики как пустой треп.


 
isasa ©   (2008-06-16 15:15) [200]

Ega23 ©   (16.06.08 14:57) [194]

Ошибок - нет. Кривизна - есть.


Ну а куда ты поместишь инициализацию экземпляра формы, чтобы он был при Создать форму.

Ну Борланд придумал так, плюс еще..

 Application.CreateForm(TForm1, Form1);

Компилируй и юзай. Что неправильно. Да "пложой стиль", не по правилам(сейчас oxffff © меня сожрет). Не нравится исправляй.

Ответ в том, исправит ли рефакторинг(или предложаит исправить Form1 на Self) ? :)


 
Ega23 ©   (2008-06-16 15:15) [201]


> В студию. Кратко.


Сергей, ну сколько можно уже, а? Ну не должен какой-то класс знать что-то о каком-то конкретном экземпляре этого же класса.


 
Плохиш ©   (2008-06-16 15:16) [202]


> oxffff ©   (16.06.08 15:09) [199]

У это вам неинтересно

>>isasa ©   (16.06.08 12:10) [147]
>>>oxffff ©   (16.06.08 12:06) [144]

>>>Это про какие такие вы принципы нарушения ООП говорите.

>>Пожелание о том, что код метода класса не должен ничего "знать" о >>конкретном экземпляре этого класса.

вы же хотите конкретную цитату из единственной книжки, которую вы якобы осилили. Как здесь говорят "детский сад в другом месте".


 
oxffff ©   (2008-06-16 15:24) [203]


> Ega23 ©   (16.06.08 15:15) [201]
>
> > В студию. Кратко.
>
>
> Сергей, ну сколько можно уже, а? Ну не должен какой-то класс
> знать что-то о каком-то конкретном экземпляре этого же класса.
>


Ребята я на полном серьезе повторяю.
Что ваши слова должны быть потверждены.
Если вы утверждаете о каком то нарушении ООП, а частности реализации ООП Delphi. Тогда сформулируйте правило, которое нарушено.
Покажите где нарушена инкапсуляция.
Если я использую тип в модуле где он объявлен, то нарушения нет.
Все  в рамках правил Delphi.

Поэтому нарушение сокрытия здесь нет.

Поэтому твоя формулировка

>Ну не должен какой-то класс знать что-то о каком-то конкретном >экземпляре этого же класса.

более чем странная.

Класс не знает, а использует экземпляр класса(в данном случае экземпляр себя).


 
isasa ©   (2008-06-16 15:25) [204]

Плохиш ©   (16.06.08 15:16) [202]

вы же хотите конкретную цитату из единственной книжки, которую вы якобы осилили. Как здесь говорят "детский сад в другом месте".


Ну это лучше, чем с загадочным видом нести ахинею, или глупости.


 
oxffff ©   (2008-06-16 15:26) [205]


> Компилируй и юзай. Что неправильно. Да "пложой стиль", не
> по правилам(сейчас oxffff © меня сожрет). Не нравится исправляй.
>


Да ну что вы. Я довольно Friendly человек.


 
DVM ©   (2008-06-16 15:30) [206]


> Плохиш ©   (16.06.08 15:16) [202]
>
>


> вы же хотите конкретную цитату из единственной книжки, которую
> вы якобы осилили. Как здесь говорят "детский сад в другом
> месте".

А вам не кажется, что кроме оскорблений в адрес собеседников Вы ничего путного до сих пор так не сказали? Перечитайте все свои посты.


 
clickmaker ©   (2008-06-16 15:31) [207]

> Класс не знает, а использует экземпляр класса(в данном случае
> экземпляр себя).

если себя, то почему не Self?
Если "типа универсальность", то почему не GetFormToSetCaption().Caption := ... ?


 
isasa ©   (2008-06-16 15:31) [208]

oxffff ©   (16.06.08 15:26) [205]

Да ну что вы. Я довольно Friendly человек.


В этом вопросе я целиком на вашей стороне. Только я использую оговорку, Дельфи не "польностью" следует "хорошему тону" ООП.


 
oxffff ©   (2008-06-16 15:38) [209]


> Плохиш ©   (16.06.08 15:16) [202]
>
> > oxffff ©   (16.06.08 15:09) [199]
>
> У это вам неинтересно
>
> >>isasa ©   (16.06.08 12:10) [147]
> >>>oxffff ©   (16.06.08 12:06) [144]
>
> >>>Это про какие такие вы принципы нарушения ООП говорите.
>
>
> >>Пожелание о том, что код метода класса не должен ничего
> "знать" о >>конкретном экземпляре этого класса.
>
> вы же хотите конкретную цитату из единственной книжки, которую
> вы якобы осилили. Как здесь говорят "детский сад в другом
> месте".


Ну и долго вы будете отвечать на вопрос "сам дурак"?

Использование в реализации ссылки на экзепляр самого себя не противоречит ООП и бывает очень востребовано.
Например У вас Есть абстрактный класс

type

TAbstractStreamObject=class
public
function Read(...):integer;virtual;
function write(...):integer;virtual;
end;

function InitializeGlobalStream(obj:TAbstractStreamObject):integer;

implementation

var GlobalIntercept:TAbstractStreamObject;

function TAbstractStreamObject.Read(..)....
begin
if assigned(GlobalIntercept) then result:=GlobalIntercept.read(...)
 else...
end;

function TAbstractStreamObject.Write(..)....
begin
if assigned(GlobalIntercept) then result:=GlobalIntercept.Write(...)
 else...
end;

Таким образом вы можете установить\менять перехватчик runtime.
Причем передавать в конструктор его не нужно (экономим передачу и место в памяти). Он разделяется всеми экземплярами.


 
oxffff ©   (2008-06-16 15:39) [210]


> clickmaker ©   (16.06.08 15:31) [207]
> > Класс не знает, а использует экземпляр класса(в данном
> случае
> > экземпляр себя).
>
> если себя, то почему не Self?
> Если "типа универсальность", то почему не GetFormToSetCaption().
> Caption := ... ?


В данном случае экземпляр себя как типа, либо производного.
см. пример [209].


 
Ega23 ©   (2008-06-16 15:41) [211]


> Класс не знает, а использует экземпляр класса(в данном случае
> экземпляр себя).


Блин, ну есть же Self для этого!!!

чем плох такой код:

if CheckBox1.Checked=True then
begin
 CheckBox1.Checked := False;
end
else
begin
 if CheckBox1.Checke=False then
 begin
   CheckBox1.Checked := True;
 end
 else
   raise Exception.Create("Unknown boolean value!");
end;  


 
b z   (2008-06-16 15:42) [212]


> Unknown boolean value
Замечено, что программисты зачастую пишут функции, которые возвращают ложь (return false по-басурмански). Негоже это. Коли приметишь, такое непотребство, немедленно учини разбирательство и потребуй, чтобы такого боле не повторялось. А коли программисты начнут нести околесицу про булевы функции и необходимость возвращения двух значений, осади их и скажи, что для двух значений ложь не нужна. Можно же взять правду и горькую правду. Пущай везде в своем коде заменят ложь на горькую правду. Только так можно получить по настоящему благодатный код.


 
oxffff ©   (2008-06-16 15:42) [213]


> isasa ©   (16.06.08 15:31) [208]
> oxffff ©   (16.06.08 15:26) [205]
>
> Да ну что вы. Я довольно Friendly человек.
>
> В этом вопросе я целиком на вашей стороне. Только я использую
> оговорку, Дельфи не "польностью" следует "хорошему тону"
> ООП.


На сколько я понял вы хотели сказать наверно не ООП,
а возможное нарушение типа за счет Untyped var.

procedure TApplication.CreateForm(InstanceClass: TComponentClass; var Reference);


 
oxffff ©   (2008-06-16 15:47) [214]


> Ega23 ©   (16.06.08 15:41) [211]
>
> > Класс не знает, а использует экземпляр класса(в данном
> случае
> > экземпляр себя).


Что с примером?

Повторю еще раз.
Я имел ввиду использование экземпляра себя как типа (т.е. экземпляра этого типа, так и производного типа)
см. [209]


 
clickmaker ©   (2008-06-16 15:49) [215]

> function TAbstractStreamObject.Read(..)....
> begin
> if assigned(GlobalIntercept) then result:=GlobalIntercept.read(...)

эээ... не понял без стакана.
Рекурсия же получается? Или 2 разных объекта: тот, откуда вызывается GlobalIntercept.read и собственно сам GlobalIntercept?


 
oxffff ©   (2008-06-16 15:54) [216]


> clickmaker ©   (16.06.08 15:49) [215]


type

TAbstractStreamObject=class
public
function Read(...):integer;virtual;
function write(...):integer;virtual;
end;

TSomeClientStreamObject=class(TAbstractStreamObject)
  function Read(...):integer;override;
     begin
    .........
     inherited;
     end;

   function write(...):integer;virtual;
     begin
       .........
     inherited;
     end;
end;

function InitializeGlobalStream(obj:TAbstractStreamObject):integer;

implementation

var GlobalIntercept:TAbstractStreamObject;

function TAbstractStreamObject.Read(..)....
begin
if assigned(GlobalIntercept) then result:=GlobalIntercept.read(...)
else...
end;

function TAbstractStreamObject.Write(..)....
begin
if assigned(GlobalIntercept) then result:=GlobalIntercept.Write(...)
else...
end;

Другой модуль.

TIntercepttreamObjectA=class(TAbstractStreamObject)
  function Read(...):integer;override;
     begin
    .........
//      inherited;
     end;

   function write(...):integer;virtual;
     begin
       .........
//      inherited;
     end;

initialization

InitializeGlobalStream(TIntercepttreamObjectA.create(..));


 
Ega23 ©   (2008-06-16 15:54) [217]


> Что с примером?
>
> Повторю еще раз.
> Я имел ввиду использование экземпляра себя как типа (т.е.
>  экземпляра этого типа, так и производного типа)
> см. [209]


Честно говоря, я не понял примера. Покажи код InitializeGlobalStream, может понятней станет.


 
clickmaker ©   (2008-06-16 15:57) [218]

> код InitializeGlobalStream

procedure InitializeGlobalStream(AStream: TAbstractStreamObject)
begin
 GlobalIntercept := AStream;
end;

:)


 
oxffff ©   (2008-06-16 15:57) [219]

function InitializeGlobalStream(obj:TAbstractStreamObject):integer;
begin
GlobalIntercept:=obj;
end;


 
oxffff ©   (2008-06-16 15:58) [220]


> clickmaker ©   (16.06.08 15:57) [218]
> > код InitializeGlobalStream
>
> procedure InitializeGlobalStream(AStream: TAbstractStreamObject)
> begin
>  GlobalIntercept := AStream;
> end;
>
> :)


Теперь вы согласны, что выгода есть?


 
clickmaker ©   (2008-06-16 16:03) [221]

цепочка вызовов
GlobalIntercept <- объект типа TIntercepttreamObjectA
GlobalIntercept.read()
TAbstractStreamObject.read()
GlobalIntercept <> nil ? yes!
GlobalIntercept.read()
и т.д.

или мне срочно надо похмеляццо, или тут рекурсия. Это вообще рабочий код?


 
oxffff ©   (2008-06-16 16:06) [222]


> clickmaker ©   (16.06.08 16:03) [221]
> цепочка вызовов
> GlobalIntercept <- объект типа TIntercepttreamObjectA
> GlobalIntercept.read()
> TAbstractStreamObject.read()
> GlobalIntercept <> nil ? yes!
> GlobalIntercept.read()
> и т.д.
>
> или мне срочно надо похмеляццо, или тут рекурсия. Это вообще
> рабочий код?


Вызов не перехватчиков приведет к вызову перехватчика.
А у перехватчика нет вызова самого себя поскольку inherited закомментирован.

Я же пометил жирным inherited в одном случае и закоменченный inherited в другом.


 
Ega23 ©   (2008-06-16 16:07) [223]

Какой-то "недо-singleton" получился...
Ну да ладно. В данном конкретном примере - предположим что именно такой функционал нужен. Решение как решение.
Но есть одно "но": объявление переменной выполнено в секции implementation, а не interface.


 
oxffff ©   (2008-06-16 16:10) [224]

>"недо-singleton"

Это не синглетон. У синглетона другая задача.


> Но есть одно "но": объявление переменной выполнено в секции
> implementation, а не interface.


Объяви в interface. Нет проблем.


 
Ega23 ©   (2008-06-16 16:19) [225]


> Объяви в interface. Нет проблем.


Проблем есть. Т.к. рано или поздно это дело будет использовано кем-то другим.
Если так подходить, то ни private ни protected нафиг не нужны - пиши всё в public и нет проблем.  :)


 
Ega23 ©   (2008-06-16 16:20) [226]


> Это не синглетон. У синглетона другая задача.


Да я вижу. Нечто похожее, но не оно - у тебя в рантайм менять можно.


 
oxffff ©   (2008-06-16 16:24) [227]


> Ega23 ©   (16.06.08 16:19) [225]
>
> > Объяви в interface. Нет проблем.
>
>
> Проблем есть. Т.к. рано или поздно это дело будет использовано
> кем-то другим.
> Если так подходить, то ни private ни protected нафиг не
> нужны - пиши всё в public и нет проблем.  :)


Проблема выбора interface или implementation отношения к ООП не имеет. Это выбор разработчика предоставить доступ или вообще полностью скрыть.


 
oxffff ©   (2008-06-16 16:26) [228]


> Ega23 ©   (16.06.08 16:20) [226]
>
> > Это не синглетон. У синглетона другая задача.
>
>
> Да я вижу. Нечто похожее, но не оно - у тебя в рантайм менять
> можно.


У синглетона назначение гарантировать существование не более одного экземпляра. А здесь просто использование shared объекта.


 
Ega23 ©   (2008-06-16 16:28) [229]


> У синглетона назначение гарантировать существование не более
> одного экземпляра. А здесь просто использование shared объекта.


Да вижу я, не надо объяснять. Я просто в [223] смайлик забыл поставить..  :)


 
isasa ©   (2008-06-16 16:30) [230]

oxffff ©   (16.06.08 16:10) [224]

:)
Я бы все таки не смешивал идеал и способы его конкретной реализации.
Есть краски, а есть картины.
Идеал, он в общем то, недостижим..


 
oxffff ©   (2008-06-16 16:35) [231]


> isasa ©   (16.06.08 16:30) [230]


Однако я так и не услышал нарушение принципов ООП от других участников в примере который мы(все) уже раздули до мамонта.


 
Игорь Шевченко ©   (2008-06-16 18:16) [232]

Дабы флейм не стихал:

Где в этом коде ошибка?

procedure TForm1.ButtonClick (Sender: TObject);
begin
 Form1.Caption := "Blah";
 Form2.Caption := "Foo";
end;


 
Kostafey ©   (2008-06-16 18:24) [233]

Ну коли

> Дабы флейм не стихал:


Повторюсь, что код не компилируется :)
procedure TFоrm1.ButtоnCliсk (Sеnder: TОbject);
begin
Fоrm1.Caption := "Blah";
Fоrm2.Caption := "Foo";
end;


 
McSimm ©   (2008-06-16 18:26) [234]


> Игорь Шевченко ©   (16.06.08 18:16) [232]
>
> Дабы флейм не стихал:
>
> Где в этом коде ошибка?

Должно быть TForm1.Button1Click
:)


 
Virgo_Style ©   (2008-06-16 18:28) [235]

procedure TFоrm1.ButtоnCliсk (Sеnder: TОbject);
 Form1.Caption := "Alpha";
 Self.Caption = "Bravo";
 Caption = "Charlie";
end;


 
Virgo_Style ©   (2008-06-16 18:29) [236]

Virgo_Style ©   (16.06.08 18:28) [235]

Ну вот, двоеточия потерял. Так лучше:

procedure TFоrm1.ButtоnCliсk (Sеnder: TОbject);
Form1.Caption := "Alpha";
Self.Caption := "Bravo";
Caption := "Charlie";
end;


 
Ega23 ©   (2008-06-16 18:39) [237]


> Virgo_Style ©   (16.06.08 18:28) [235]


begin отсутствует.
А кому будешь Delta, Easy, Foxtrot и Golf раздавать?


 
Anatoly Podgoretsky ©   (2008-06-16 19:30) [238]

> Ega23  (16.06.2008 18:39:57)  [237]

Из этих четырех ников вроде только один правильный.


 
Virgo_Style ©   (2008-06-16 20:38) [239]

Ega23 ©   (16.06.08 18:39) [237]
begin отсутствует.


Торможу. Все-таки возможность редактирования сообщений была бы иногда очень кстати...


> А кому будешь Delta, Easy, Foxtrot и Golf раздавать?


Землю крестьянам, власть рабочим, Фокстрот танцорам, Гольф игрокам (или автомобилистам?)... А вот с первыми двумя надо думать.


 
DVM ©   (2008-06-16 22:05) [240]

procedure TForm1.Button1Click(Sender: TObject);
begin
 Captiоn := "Где тут ошибка"?
end;


А вот этот код не компилится, так как тут ошибка. Где она?


 
isasa ©   (2008-06-16 22:10) [241]

Господи!
Еще не все?

DVM ©   (16.06.08 22:05) [240]
А вот этот код не компилится, так как тут ошибка. Где она?


:)
Вопросительный знак вывалился из кавычек ...


 
DVM ©   (2008-06-16 22:12) [242]


> isasa ©   (16.06.08 22:10) [241]


> Вопросительный знак вывалился из кавычек ...

а вот и не только :) копипастим - проверяем :)


 
isasa ©   (2008-06-16 22:35) [243]

DVM ©   (16.06.08 22:12) [242]

а вот и не только :) копипастим - проверяем :)


Не могу, у меня Дельфи уже год как не стоит на машине. :)


 
Virgo_Style ©   (2008-06-16 23:49) [244]

DVM ©   (16.06.08 22:12) [242]
копипастим - проверяем :)


Неанглийские буковки?


 
DVM ©   (2008-06-16 23:55) [245]


> Неанглийские буковки?

Ага. Чем не тестовое задание на собеседовании? ;)


 
Anatoly Podgoretsky ©   (2008-06-17 00:19) [246]

> DVM  (16.06.2008 22:12:02)  [242]

Да какой же дурак копипастит из Инета?


 
Anatoly Podgoretsky ©   (2008-06-17 00:22) [247]

> Virgo_Style  (16.06.2008 23:49:04)  [244]

Легко хочешь отделаться, а nbsp не желаешь попробовать или другие невидимые символы?
Одна из подколок копипастеров - это сменить регистр букв, вставить непечатные символы, не пробел и таб
Если регистр букв будет быстро обнаружен и автор будет обозван, то во втором случае не сразу дойдет и автор будет уже не обозван, а проклят.


 
VirEx ©   (2008-06-17 10:57) [248]


> procedure TForm1.Button1Click(Sender: TObject);
> begin
> Form1.Caption := "Где здесь ошибка?" ;
> end;


object Form1: TForm1
 ...
 Caption = "tikkurilla"
 ...
end



Страницы: 1 2 3 4 5 6 7 вся ветка

Текущий архив: 2008.08.03;
Скачать: CL | DM;

Наверх




Память: 1.19 MB
Время: 0.036 c
15-1213726912
AlexDan
2008-06-17 22:21
2008.08.03
Я памятник воздвих сибе нирукотворный...


15-1213651482
k2_
2008-06-17 01:24
2008.08.03
Симпатишный дизайн, полюбуйтесь.


2-1214973707
uno-84
2008-07-02 08:41
2008.08.03
Несколько вопросов по StringGrid


15-1213891081
stas
2008-06-19 19:58
2008.08.03
Снять информацию с неразбтого диска


2-1215269099
lewka
2008-07-05 18:44
2008.08.03
Перенос значения переменной