Форум: "Начинающим";
Текущий архив: 2010.03.28;
Скачать: [xml.tar.bz2];
ВнизВозможен ли обработчик в другом модуле? Найти похожие ветки
← →
oleg1963lora (2010-01-29 09:01) [0]Здравствуйте уважаемые Мастера! Главный модуль программы, связанный с главной формой вырос как на дрожжах и продолжает расти дальше. Хочу навести порядок в программе. Нельзя ли определенные обработчики разнести по разным модулям? Например процедуру
вынести в модуль SetParameter.
TForm1.Button4Click(Sender: TObject);
begin
LevelTemperature3:=LevelTemperature3+5;
end;
← →
oldman © (2010-01-29 09:04) [1]
> Возможен ли обработчик в другом модуле?
Возможен.
← →
Leonid Troyanovsky © (2010-01-29 09:24) [2]
> oleg1963lora (29.01.10 09:01)
> расти дальше. Хочу навести порядок в программе. Нельзя ли
> определенные обработчики разнести по разным модулям?
Плохой порядок. Разносить по модулям нужно не обработчики, а классы.
Ну, или регулярные процедуры.
Т.е., целиться надо в повторное использование кода.
--
Regards, LVT.
← →
oleg1963lora (2010-01-29 09:56) [3]
>
> Ну, или регулярные процедуры.
> Т.е., целиться надо в повторное использование кода.
А поподробнее можно? И не на языке кафедры :) Ну или простейший пример.
← →
Jeer © (2010-01-29 10:04) [4]Олег, а примеры чего Вы хотите увидеть ?
ООП ?
Так это, извините, в книжки.
В одной форме действительно мало кто сосредотачивает все - пишутся отдельные модули ( визуальные/невизуальные ), где и сосредотачивается вспомогательный функционал.
А главная форма является коллектором главного же функционала для пользователя.
← →
oleg1963lora (2010-01-29 10:15) [5]
> Разносить по модулям нужно не обработчики, а классы.
Что такое ООП я знаю, свои классы писать умею, а вот как их разнести по модулям...
Может посоветуете какую-нибудь литературу(хотя бы название) или ссылку.
А то я раполагаю только Архангельским :(
← →
Медвежонок Пятачок © (2010-01-29 10:20) [6]свои классы писать умею, а вот как их разнести по модулям...
мда. классы писать он умеет, а разнести их по модулям не умеет.
кто бы мог подумать.......
← →
Медвежонок Пятачок © (2010-01-29 10:52) [7]в чем смысл выноса целого обработчика в другой модуль?
в том что бы отуда дергать контролы основного модуля?
тогда получаем "чернила для седьмого класса". то есть модуль, повторное использование которого затруднено (обработчик заточен на имена контролов основного модуля)
если же в обработчике повторяется некий полезный код не привязанный к свойствам и методам контролов, то этот код следует организовать как функцию и уже ее вынести в модуль, а не весь обработчик
← →
oleg1963lora (2010-01-29 11:10) [8]Додумался до следующего. В головной программе имею
Для эксперимента в модуль "SetDevice.pas" перенес ButtonCloseFormClick, объявил ее в интерфейсе и подгрузил туда форму
program Project1;
uses
Forms,
Main in "Main.pas" {Form1},
MainGen in "MainGen.Pas" {Главный генератор},
Init in "Init.pas",
SetDevice in "SetDevice.pas";
{$R *.res}
begin
Application.Initialize;
Application.MainFormOnTaskbar := True;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
{$R main.dfm}, компилируется и выдает сообщение, что ненайдена процедура для обработки нажатия кнопки.
Свойство OnClick не видит обработчик в модуле, отличном от главного.
Как это поправить? Вроде как на правильном пути я...
← →
12 © (2010-01-29 11:11) [9]LevelTemperature3:=LevelTemperature3+5;
т.е.
i:=i+5;
и предлагается жто вынести в модуль?
ну не знаааююю... :))
Ну напиши так
unit Unit2;
interface
function SumOfTwoNumber(a,b:integer):integer;
implementation
function SumOfTwoNumber(a,b:integer):integer;
begin
result:= a+b;
end;
end.
В своем uses Unit2 и
procedure TForm1.Button1Click(Sender: TObject);
begin
i:=SumOfTwoNumber(i,5);
← →
oleg1963lora (2010-01-29 11:13) [10]
> если же в обработчике повторяется некий полезный код не
> привязанный к свойствам и методам контролов, то этот код
> следует организовать как функцию и уже ее вынести в модуль,
> а не весь обработчик
Простите, проглядел ваше сообщение. Хорошая мысль. Буду ее думать :)
← →
Anatoly Podgoretsky © (2010-01-29 14:30) [11]> oleg1963lora (29.01.2010 10:15:05) [5]
Писать я умею, мне бы еще и алфавит изучить.
← →
DVM © (2010-01-29 15:36) [12]
> oleg1963lora (29.01.10 09:01)
> Здравствуйте уважаемые Мастера! Главный модуль программы,
> связанный с главной формой вырос как на дрожжах и продолжает
> расти дальше. Хочу навести порядок в программе. Нельзя ли
> определенные обработчики разнести по разным модулям?
Ты лучше подумай, как бы отделить функционал программы (скажем так ее движок) от интерфейса. Реализовывать функционал программы в классе самой формы, хоть и допустимая (до определенных пределов), но все же не лучшая практика. Форма она и есть форма - она должна предоставлять интерфейс, а если программа делает что-то еще кроме того что имеет интерфейс, то вот это все жедательно и вынести в отдельный класс или классы. Сильно может упростить жизнь в ряде случаев, да и аккуратнее так.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2010.03.28;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.004 c