|
2 / 2 / 0
Регистрация: 07.05.2013
Сообщений: 90
|
|||||||||||
Работа в MainForm08.05.2013, 19:14. Показов 6964. Ответов 14
Метки нет (Все метки)
Подскажите плз, есть пара вопросов:
1. Почему я не могу работать здесь с моими контролами размещенными на форме? Ведь вся работа должна вестить в классах, но я ведь работаю в классе..
0
|
|||||||||||
| 08.05.2013, 19:14 | |
|
Ответы с готовыми решениями:
14
Application.CreateForm(TMainForm, MainForm); ошибка не нравится MainForm MainForm MainForm->Print() |
|
68 / 38 / 1
Регистрация: 09.11.2009
Сообщений: 391
|
|
| 08.05.2013, 19:22 | |
|
1. Обращаться к контролам нужно внутри методов. Т. е. если Вы ходите поменять какие-то свойства контрола или просто считать их и запомнить в какой-то переменной, то это все нужно делать внутри метода.
2. Конструктор класса (в вашем случае MainForm) вызывается автоматически когда вы создаете объект класса MainForm. Вот эту строку mainForm = new MainForm(); - нужно удалить из конструктора. У вас так программа зависнет. Если мой ответ Вам помог нажмите пожалуйста кнопку "+1 Cпасибо" в моем сообщении
1
|
|
|
|
|||
| 08.05.2013, 20:16 | |||
|
1
|
|||
|
68 / 38 / 1
Регистрация: 09.11.2009
Сообщений: 391
|
|
| 08.05.2013, 20:22 | |
|
[QUOTE=Wolfdp;4528186]Не совсем. Ещё можно внутри Свойства, конструктора и деструктора. =Р
Под словом "метод" я имел ввиду все что вы перечислиле вместе взятое
0
|
|
|
2 / 2 / 0
Регистрация: 07.05.2013
Сообщений: 90
|
||||||
| 08.05.2013, 20:43 [ТС] | ||||||
|
Не совсем что то понимаю, объявляю допустим static метод внутри MainForm, почему я не могу его вызвать в этом классе?
0
|
||||||
|
[Bicycle Reinventor]
|
|
| 08.05.2013, 20:59 | |
|
Вы не можете обратиться к MyMeth() таким способом, как вы указали, потому что вызывать методы нужно из других методов, равно как и работать с контролами и т.п., возвращаясь к начальному вопросу данного топика.
Между прочим, в консольном приложении было тоже самое - все методы, свойства и прочее вы вызывали не из неоткуда, а из другого метода, который стартует при запуске приложения - это метод void Main() Также и в WinForms приложении вызов метода возможен только из другого метода. Насчёт другого созданного вами класса - для того, чтобы из него работать с контролами основного класса, вы должны передавать экземпляр MainForm в конструктор вашего нового класса, так что он (новый класс) может с ним работать.
0
|
|
|
2 / 2 / 0
Регистрация: 07.05.2013
Сообщений: 90
|
|
| 08.05.2013, 22:55 [ТС] | |
|
Можно по полкам?
1. В MainForm не производится вся работа, а только описываются методы? 2. Тогда где должна производится вся работа? Вся логика должна быть запихнута в конструктор MainForm? Имею ввиду последовательность кода как ее выполнять как последовательность в консольном приложении. 3. Допустим я создал класс WorkClass, и хочу получить там доступ к контроллам с формы, я должан создать объект класса MainForm там или только ссылку? 4. Конструктор MainForm при запуске создает объект этого класса, если я создам объект этого класса в другом классе, получится что у меня 2 обьекта класса MainForm в памяти? 5. Когда я создаю объект класса MainForm, я создаю просто же объект этого класса, сама же новая форма не создается? Или я создаю конкретно еще одну форму?
0
|
|
|
|
||||||
| 08.05.2013, 23:12 | ||||||
|
По полкам:
1. Твое окно, будь оно консольное или нет - это некий объект класса. Все оконые приложения наследуются от класса Windows или Form, в зависимости от типа вашего проекта. 2. Конструктор - это то что выполняется при создании нового объекта. Windows windows = new Windows(); Неправильно говорить что "конструктор создает объект". Новый объект создает оператор new, также этот оператор вызывает конструктор создаваемого объекта. 3. Вся-вся-вся логика по сути заключена в методы. Также вы можете код добавить в Свойства (get;set конструктор и десктруктор. Когда хотите что-то сделать - вызываете метод.4. Дабы получить доступ к контролам окна можно: - обратится к списку контролов окна (свойство Controls для Form; Сhild для Window). - обратится к открытому свойству/значению/методу, которое указывает на нужный нам контрол. По сути нам просто нужен указатель на этот контрол, ведь это тоже объект класса. Мы может сделать что-то такое
0
|
||||||
|
2 / 2 / 0
Регистрация: 07.05.2013
Сообщений: 90
|
|
| 09.05.2013, 01:07 [ТС] | |
|
Wolfdp, на чьи вы вопросы отвечали - непонятно..
0
|
|
|
|
|
| 09.05.2013, 07:20 | |
|
dzhigurda, твои вопросы для меня звучат где-то так "чтобы поехать, руль крутить нужно, да?" Ты даже не понимаешь основ ООП и вопросы задаешь наугад. И дабы секономить время и вам, и мне, я просто сделал общее объяснение, но как видимо зря.
0
|
|
|
2 / 2 / 0
Регистрация: 07.05.2013
Сообщений: 90
|
|
| 09.05.2013, 08:36 [ТС] | |
|
Спасибо конечно за старания, но в моем случае, конкретные ответы были бы полезнее..
0
|
|
|
[Bicycle Reinventor]
|
|
| 09.05.2013, 11:24 | |
|
В вашем случае конкретное чтение литературы было бы полезнее, чем выхватывание отдельных кусков то тут, то там по форумам.
В этой теме уже 3 разных человека нормальным русским языком объясняли вам и отвечали на ваши вопросы, чётко и по делу - вам это не помогло. Что ж, значит, мало что поможет.
0
|
|
|
2 / 2 / 0
Регистрация: 07.05.2013
Сообщений: 90
|
|
| 09.05.2013, 12:29 [ТС] | |
|
Зачем устраивать перепалку? Вопросы глупые для кого то, я не спорю, на это и форум для новичков и здесь присутсвует разный контингент..
И все же, я постараюсь вопросить третий раз, кому не сложно, можно по пунктам, без нравручений и учения дзен..
0
|
|
|
|
||||||||
| 09.05.2013, 13:10 | ||||||||
|
Окей, припустим...
P.S. А теперь, если возникнут ещё вопросы, то ищи или книжку, или стенку.
1
|
||||||||
| 09.05.2013, 13:10 | |
|
Помогаю со студенческими работами здесь
15
Передать значение на MainForm mainform в delphi xe3 Не MainForm на таск баре Запустить MainForm с параметрами BackgroundWorker и MainForm ошибка потока Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi
ветка по-частям.
коммит Create переделка под биомассу. txt
вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
|
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ *
Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях.
Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её.
Последовательность действий:. . .
|
|
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
|
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение.
И на уровне агентов добавится между грибами или бактериями взаимодействий.
До того я пробовал подход через многомерные массивы,. . .
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|