Форум: "Прочее";
Текущий архив: 2008.08.03;
Скачать: [xml.tar.bz2];
ВнизИщу работу Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.82 MB
Время: 0.033 c