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

Вниз

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

 
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]
>
> Тебе, вроде, уже на этой странице три! раза ответили.


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



Страницы: 1 2 3 4 5 6 7 вся ветка

Текущий архив: 2008.08.03;
Скачать: CL | DM;

Наверх




Память: 0.84 MB
Время: 0.034 c
15-1213881136
Ega23
2008-06-19 17:12
2008.08.03
packed object - в какой версии Delphi появился?


2-1214549615
matriza
2008-06-27 10:53
2008.08.03
преобразовать doc и xls в pdf


2-1215108408
Lesnik
2008-07-03 22:06
2008.08.03
AfalinaSoft Flat Controls 1.53 и Delphi 2007


15-1213900263
No_Dead
2008-06-19 22:31
2008.08.03
что-то я не уловил почему так... (о пхп)


2-1215265172
NaRuTo
2008-07-05 17:39
2008.08.03
Возникает вопрос с компонентом TTabbedNotebook