Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.01.26;
Скачать: CL | DM;

Вниз

Очень кривое решение?   Найти похожие ветки 

 
Vemer ©   (2004-01-14 13:26) [0]

Здравствуйте.
В начале писания программы применил следующее решение - пишу процедуру и функцию в коде без TForm. (или т.п.) спереди, а потом объявляю ее в Var модуля. После этого она замечательно вызываеться по имени из всех модклей, где "несущий прописан".

То есть примерно так:

Var
DM: TDM;// - Сам датамодуль
Function Call_Proc(N1:Real):Integer; // - моя функция(пример)

{$R *.dfm}
. . . .

Function Call_Proc(N1:Real):Integer;
Begin
Result := Trunc(N1);
End


Вопрос в надежности и кривости такого решения.
Пихнуть в Public не предлагать.
А как еще можно "определить некоторый набор действий", чтобы по имени вызывался (только пожалуйста с примерами)?


 
DVM ©   (2004-01-14 13:34) [1]

Вынеси все функции и процедуры, которые используются несколькими другими модулями в отдельный модуль, не содержащий форм. Так будет логичнее.


 
GLFox   (2004-01-14 13:38) [2]

Не совсем понятно зачем тут VAR. Обычно заголовок функции объявляется в разделе interface, а реализация в implementation. Вот и вся заморочка... Или я чего-то недопонял...


 
Vemer ©   (2004-01-14 13:39) [3]

To DVM
Там же написано - датамодуль. Я специально все в него пихнул, т.к. почти все на него ссылаеться и собственного кода у него мало.. Или я не понял про "отдельный модуль"..


 
DVM ©   (2004-01-14 13:41) [4]


> Там же написано - датамодуль

А что это за тип TDM? Что за ним стоит?


 
Vemer ©   (2004-01-14 13:41) [5]

To GLFox Обычно наверно так и делаеться.. Но тогда я D только начинал принать.. И все работает.. Пример ни в коем случае приводить не надо...


 
alex_*** ©   (2004-01-14 13:43) [6]

Я чего-то тоже не понял.. причем тут TDM вообще? Call_Proc к нему не относится.


 
Vemer ©   (2004-01-14 13:44) [7]

to DVM
Это и есть датамодуль, DM - его название.. этот код весь в начале модуля написан..


 
GLFox   (2004-01-14 13:45) [8]

Простейший пример:


unit Utils;

interface

function GetBinFlag(iFlags, iFlagNum: Cardinal):Boolean;
procedure InvertBinFlag(var iFlags: Cardinal; iFlagNum: Cardinal);

implementation

procedure InvertBinFlag(var iFlags: Cardinal; iFlagNum: Cardinal);
var iMask:Cardinal;
begin
iMask:=1 shl iFlagNum;
iFlags:=iFlags xor iMask;
end;

end.


 
Sandman25 ©   (2004-01-14 13:46) [9]

Vemer © (14.01.04 13:26)

Судя по всему, Вы начинали с Delphi. Нет ничего страшного в использовании обычных процедур и функций. Они ничем не хуже методов. А в некоторых случаях (как у Вас в примере) даже лучше :)


 
Vemer ©   (2004-01-14 13:53) [10]

Всем большое спасибо.
Начинал я с Access. Потом на D переполз (как инструмент для БД).
Ну с/х образование у меня, поэтому все эти (даже простые)паскакалевские заморочки иногда в тупик ставят.
Просто первый серьезный заказ, хочеться сделать все правильно и надежно. Сейчас буду разбираться.



Страницы: 1 вся ветка

Текущий архив: 2004.01.26;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.01 c
3-83117
kvit
2003-12-27 10:12
2004.01.26
Подскажите хорошую документацию по ADO+MSSQL


1-83154
Hkr
2004-01-14 20:27
2004.01.26
Системное меню


3-83098
cRAker
2003-12-29 14:08
2004.01.26
Кодировки в Delphi foxpro


6-83232
Alec
2003-11-22 00:52
2004.01.26
Как прогаммно узнать ip адресс компьютера в интернете ?


3-83114
Michail Dalakov
2003-12-28 16:40
2004.01.26
MSSQL и деревья