Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
14-83271
Kair
2004-01-04 10:50
2004.01.26
Методы оптимизации


6-83226
AndreySoft
2003-10-21 20:14
2004.01.26
Как программно установить IP-адрес


1-83191
MV
2004-01-14 15:07
2004.01.26
Классы с одинаковым кодом, но разными типами свойств.


14-83245
Jel
2004-01-06 14:10
2004.01.26
Где лучше хранить настройки программы?


14-83235
Думкин
2004-01-06 06:14
2004.01.26
С днем рождения! 6 января.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский