Форум: "Основная";
Текущий архив: 2004.01.26;
Скачать: [xml.tar.bz2];
ВнизОчень кривое решение? Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.004 c