Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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
2-1215148339
Забывчивый
2008-07-04 09:12
2008.08.03
Раздел finalization в DLL или из справки не понял


3-1202118906
Angels11100
2008-02-04 12:55
2008.08.03
delphi и mysql


15-1213330824
Oracle_client
2008-06-13 08:20
2008.08.03
Oracle client 10


4-1193835165
alexnmsk
2007-10-31 15:52
2008.08.03
Отображение формы через ShowWindow


15-1213891081
stas
2008-06-19 19:58
2008.08.03
Снять информацию с неразбтого диска





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский