Форум 3DNews
Вернуться   Форум 3DNews > Программирование > Программирование

Ответ Создать новую тему
Опции темы Опции просмотра
Непрочитано 15.12.2004, 12:48   [включить плавающее окно]   #21
Sergey_Sun
Мужской Интересующийся
Автор темы
 
Регистрация: 04.12.2004
Это я уже понял. Но вот как искать - не пойму Панели тогда тоже надо прописывать через переменную как класс? .... Дело в том, что я не пойму как связать и баттоны и панели. Токо учусь
__________________
Go to zeitgeistmovement.ru
Sergey_Sun вне форума  
Ответить с цитированием
Непрочитано 15.12.2004, 15:56   [включить плавающее окно]   #22
ender
Мужской Интересующийся
 
Аватар для ender
 
Регистрация: 01.07.2004
Цитата
Панели тогда тоже надо прописывать через переменную как класс?
Сам хоть понял че сказал? Я нет.

Тот код, который я тебе показал, пробегается по массиву элементов управления для которых Parent=ParentControl. Если ты вызываешь эту процедуру из метода формы, и передаешь в нее Self, то разумеется в ParentControl будет указатель на форму. Соответственно искать будет среди контролов которые лежат именно на этой конкретной форме. Твои радиобатоны лежат на панелях, а не на форме (хотя сами панели и лежат на форме). Форма ими владеет, но тем не менее, если контрол лежит на панели (или каком-то другом контейнере, например, TScrollBox), то Paren'ом у этого контрола будет не форма, а эта самая панель. Соответственно что надо передавать в качестве ParentControl?

Цитата
Токо учусь
Короче, похоже ты не тому учишься. Чтобы использовать VCL (читай все эти кнопочки, панельки, формочки и т.п. фигню для построения графического интерфейса) тебе нужно знать на пятерку следующие три основные темы. Не будешь знать, можешь даже и не браться за работу с VCL, ибо подобные вопросы будут у тебя возникать при каждом телодвижении.
1.Язык Pascal (именно сам Pascal, а не Object Pascal или Delphi
2.Указатели и динамическая память
3.Концепции объекто-ориентированного программирования: инкапсуляция, наследование, полиморфизм

И начинать с консольных программ, где VCL-ные примочки не заслоняют тебе смысл того чего ты делаешь.
ender вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 16.12.2004, 22:21   [включить плавающее окно]   #23
Sergey_Sun
Мужской Интересующийся
Автор темы
 
Регистрация: 04.12.2004
Цитата
Соответственно что надо передавать в качестве ParentControl?
procedure SetRadiobuttonsNotChecked(const ParentControl:TPanel;
const CheckedState:Boolean=TRUE);

В процедуре вроде ошибки нет, но я не могу ее вызвать:
SetRadiobuttonsNotChecked(self);

На что он отвечает: Несовместимые типы: TPanel и TForm.
Я наверно неправильно все понял
__________________
Go to zeitgeistmovement.ru
Sergey_Sun вне форума  
Ответить с цитированием
Непрочитано 17.12.2004, 19:13   [включить плавающее окно]   #24
ender
Мужской Интересующийся
 
Аватар для ender
 
Регистрация: 01.07.2004
И совершенно правильно пишет. Что такое Self? Self это объект, метод которого был вызван. Поскольку обработчик события является методом формы, то в SetRadioButtonsNotChecked тобой передается ссылка на экземпляр формы, а не ссылка на экземпляр панели. А что должно передаваться? То на чем радиобатоны лежат (если быть буквально точным, то то что является Parent-ом для радиобатонов). А на чем радиобатоны лежат?

Истино тебе говорю. Ты занимаешься фигней. Купи книгу по Object Pascal. Прочитай. Все темы которые касаются VCL для тебя бесполезны. Ни в коем случае не пиши графические приложения, только консольные. Для обучения. Иначе так и будешь понимать только 10% от того что пишешь.
ender вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 30.12.2004, 11:04   [включить плавающее окно]   #25
andr001
Мужской Умудрённый
 
Аватар для andr001
 
Регистрация: 10.10.2003
Адрес: Россия, Москва
а не проше так:
Код:
const NumObj = 60;
var asd: TComponent;
      i: integer;
begin
for i:= 1 to NumObj do
   begin
   asd:= findcomponent('panel'+inttostr(i));
   (asd as TPanel).visible:= true;
   end;
end;
__________________
Кто умеет - делает, а не умеет - учит. (С) Бернард Шоу.
Знающий не говорит, говорящий не знает (С) Лао Цзы
andr001 вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 05.01.2005, 01:06   [включить плавающее окно]   #26
ender
Мужской Интересующийся
 
Аватар для ender
 
Регистрация: 01.07.2004
Что будет если компонентов на форме больше 60? Что будет если какая-то панель не имеет название вида panel1, panel2 и т.п? Что будет если панель не найдется, т.е. findcomponent вернет NIL?
ender вне форума  
Конфигурация ПК
Ответить с цитированием
Ответ Создать новую тему

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 15:33. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 2000-2017 3DNews. All Rights Reserved.
Администрация 3DNews требует соблюдения на форуме правил и законов РФ
Серверы размещены в Hostkey