Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.01.2016, 14:22   #31
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
что в моём проекте я попытался прямо указать изменение Edit1
Покажи, где!
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 20.01.2016, 14:26   #32
come-on
Участник клуба
 
Регистрация: 21.10.2015
Сообщений: 1,361
По умолчанию

вам показали
Цитата:
procedure TOptionForm.Test3(Sender: TObject);
var
SenderComponent: TComponent;
begin
SenderComponent:= TComponent(Sender);
SenderComponent.Tag:= SenderComponent.Tag + 1;
Edit1.Text:= Format('Тыкнул %d-й раз.', [SenderComponent.Tag]);
TSpeedButton(Sender).Caption:= 'wwwwwwwwwwwww';
end;
, не надо никаких тут сендеров и овнеров, раз метод принадлежит типу TOptionForm, то все его поля уже доступны сразу
можно написать self.Edit1, эдакий оверхеад, но придает читаемость..
да и тут конечно не понятно зачем 2 раза приведение сендера делали, ну да не суть

А что касается self при создании формы, так почитайте что такое параметр конструктора формы и для чего он нужен, а также зачем указывать парент при создании форм и контролов.

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

Последний раз редактировалось come-on; 20.01.2016 в 14:30.
come-on вне форума Ответить с цитированием
Старый 20.01.2016, 14:51   #33
Fantomas_RUS
Пользователь
 
Регистрация: 19.01.2016
Сообщений: 17
По умолчанию

Цитата:
Сообщение от come-on Посмотреть сообщение
вам показали
, не надо никаких тут сендеров и овнеров, раз метод принадлежит типу TOptionForm, то все его поля уже доступны сразу
можно написать self.Edit1, эдакий оверхеад, но придает читаемость..
да и тут конечно не понятно зачем 2 раза приведение сендера делали, ну да не суть

А что касается self при создании формы, так почитайте что такое параметр конструктора формы и для чего он нужен, а также зачем указывать парент при создании форм и контролов.

ну и добавлю что надо читатьть все что пишут, про модификаторы доступа в том числе.
А такой вопрос. Правильно ли я понимаю, что если какому нибудь объекту A и его событию B присвоить метод C процедурного типа другого обекта D,
A.B:= C.D;
то в событии будет Self-ом объект С, а не А?
Как тогда добраться до объекта A и его хозяина?
Fantomas_RUS вне форума Ответить с цитированием
Старый 20.01.2016, 14:54   #34
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Зачем все эти извращения? Когда Вам понадобится это, знайте - Вы перемудрили и идете дорогой Титаника. Пути должны быть простыми и понятными. Я вообще не помню случая когда мне требовалось метод одного дяди отдать другому дяде. Зачем такие извраты? Заканчиваются они как правило кодом, который с виду работает как надо, но вдруг в строгом соответствии с погодой на Марсе жрет память и глючит. Все эти графы в связях в классовой борьбе никогда ни к чему хорошему не приводят. Есть иерархия. Есть дерево объектов. Наслаждайтесь - всегда понятно где чьи лапы и хвосты, кто виноват и что делать. Зачем человеку лишний геморрой - не ясно.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика

Последний раз редактировалось Utkin; 20.01.2016 в 14:56.
Utkin вне форума Ответить с цитированием
Старый 20.01.2016, 15:01   #35
come-on
Участник клуба
 
Регистрация: 21.10.2015
Сообщений: 1,361
По умолчанию

Это легко проверить.
Но так в большинстве случаев лучше не делать, попадете на исключение запросто, и долго будете думать в чем прикол.
Должны работать принципы ООП.
come-on вне форума Ответить с цитированием
Старый 20.01.2016, 15:05   #36
Fantomas_RUS
Пользователь
 
Регистрация: 19.01.2016
Сообщений: 17
По умолчанию

Цитата:
Сообщение от Utkin Посмотреть сообщение
Зачем все эти извращения? Когда Вам понадобится это, знайте - Вы перемудрили и идете дорогой Титаника. Пути должны быть простыми и понятными. Я вообще не помню случая когда мне требовалось метод одного дяди отдать другому дяде. Зачем такие извраты? Заканчиваются они как правило кодом, который с виду работает как надо, но вдруг в строгом соответствии с погодой на Марсе жрет память и глючит. Все эти графы в связях в классовой борьбе никогда ни к чему хорошему не приводят. Есть иерархия. Есть дерево объектов. Наслаждайтесь - всегда понятно где чьи лапы и хвосты, кто виноват и что делать. Зачем человеку лишний геморрой - не ясно.
Парни, спасибо большое за ваш взгляд снаружи и за уделённое время. Я понял в чем у меня была проблема. Изначально ход мыслей у меня был правильный, то того как я начал так извращаться. Из за того что я на главную форму поместил Edit1, он всю сумятицу и вносил. Я его удалил и сразу стали видны все ошибки в коде. Ещё раз спасибо.
Fantomas_RUS вне форума Ответить с цитированием
Старый 20.01.2016, 15:17   #37
come-on
Участник клуба
 
Регистрация: 21.10.2015
Сообщений: 1,361
По умолчанию

Никакую он "сумятицу" не вносит, просто надо всегда смотреть что делаешь, и понимать как работает.
У вас написано Edit1:=TEdit.Create(F); в обработчике кнопки под главной формой, иначе можно думать так -
self.Edit1:=TEdit.Create(F); и сразу все видно и понятно.
Про это вам сразу написали
http://programmersforum.ru/showpost....1&postcount=15, но вы не читаете. а уже говорил читать надо все что пишут.
come-on вне форума Ответить с цитированием
Старый 20.01.2016, 17:47   #38
Fantomas_RUS
Пользователь
 
Регистрация: 19.01.2016
Сообщений: 17
По умолчанию

Цитата:
Сообщение от come-on Посмотреть сообщение
Никакую он "сумятицу" не вносит, просто надо всегда смотреть что делаешь, и понимать как работает.
У вас написано Edit1:=TEdit.Create(F); в обработчике кнопки под главной формой, иначе можно думать так -
self.Edit1:=TEdit.Create(F); и сразу все видно и понятно.
Про это вам сразу написали
http://programmersforum.ru/showpost....1&postcount=15, но вы не читаете. а уже говорил читать надо все что пишут.
Я прочитал, просто сразу не понял, а вот когда с разных сторон разжевали и появилось прозрение ))
Fantomas_RUS вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как добраться до USB через Delphi или С# IgorMagnit Общие вопросы Delphi 1 25.01.2013 06:18
Как изменить свойство ADOConnection1.ConectionString через edit или каким нибуть другим путем xsaroo БД в Delphi 3 14.10.2012 16:54
Ни чего не происходит((( Givshuk Помощь студентам 2 16.03.2012 23:15
Чего не происходит чтения с файла? Nikita1987 Общие вопросы C/C++ 8 29.06.2010 16:14
Как добраться до определенного символа в Edit Ivanko Помощь студентам 2 08.02.2010 11:49