24 / 24 / 2
Регистрация: 17.06.2008
Сообщений: 613
1

Как обратиться к функции, расположенной в DataModule?

14.06.2010, 09:56. Показов 3804. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Очень часто в разных формах встречается одна и та же функция, имеющая довольно объемный код. Перенесла её в DataModule. Не пойму как её оттуда вызвать
(в каждой форме DataModule прописан. В нём они тоже все прописаны)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.06.2010, 09:56
Ответы с готовыми решениями:

Недоступна фильтрация из главной формы для TTable расположенной в DataModule
Пытаюсь отфильтровать записи в DBGrid, у которой поле DataSource ссылается на Datasource,...

Как обратиться к картинке, расположенной в файле ресурсов
Менять заставку на екране я умею но только вызывая окно для выбора фото. А как сделать чтоб сразу...

Обратиться к вкладкам подчиненной форме, расположенной на вкладке
Доброго времени суток! Есть: Главная_форма, на ней Набор_Вкладок_1, в этом наборе Вкладка_1_1,...

Заполнение структуры, расположенной в одной функции, в другой функции
Здравствуйте. В программе на СИ необходимо осуществить что то подобное. нужна помощь. int main()...

12
1856 / 1178 / 190
Регистрация: 27.03.2009
Сообщений: 4,558
14.06.2010, 09:59 2
datamodule.function(khjkhjk);
0
24 / 24 / 2
Регистрация: 17.06.2008
Сообщений: 613
14.06.2010, 10:14  [ТС] 3
unick12345,неа... после имени DataModule ставлю точку и в выпадающем списке слово function не отражается (рис 1)
Рис 2 - честное слово она есть в DataModule
Миниатюры
Как обратиться к функции, расположенной в DataModule?   Как обратиться к функции, расположенной в DataModule?  
0
Супер-модератор
8783 / 2536 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
14.06.2010, 10:30 4
Grusha, ваши функции только расположены в модуле DM, но при этом они не относяться к классу, что описан в этом модуле... в названиях методов надо указать имя класса
0
24 / 24 / 2
Регистрация: 17.06.2008
Сообщений: 613
14.06.2010, 10:33  [ТС] 5
Lord_Voodoo,подскажите, пожалуйста, как это сделать?
0
КотЪ
219 / 219 / 60
Регистрация: 26.05.2009
Сообщений: 688
14.06.2010, 10:40 6
Там оно конечно не будет отображаться, т.к. DataModule стоит в заголовке цикла и в том месте принимается только целое значение.
Напишите DataModule. в новой строке кода.
0
Супер-модератор
8783 / 2536 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
14.06.2010, 10:45 7
Grusha, ну загляни в любую форму, там пишется обычно так TForm1.CreateForm... вот и ты опиши прототипы этих функций вверху, где идет описание класса и допиши в названиях методов по примеру формы
0
24 / 24 / 2
Регистрация: 17.06.2008
Сообщений: 613
14.06.2010, 11:32  [ТС] 8
Цитата Сообщение от Zabiyak Посмотреть сообщение
Там оно конечно не будет отображаться, т.к. DataModule стоит в заголовке цикла и в том месте принимается только целое значение.
Напишите DataModule. в новой строке кода.
все равно не работает

Цитата Сообщение от Lord_Voodoo Посмотреть сообщение
Grusha, ну загляни в любую форму, там пишется обычно так TForm1.CreateForm... вот и ты опиши прототипы этих функций вверху, где идет описание класса и допиши в названиях методов по примеру формы
опыт слишком мал, не понимаю.
рис. 1 - вот пример в форме: там нет "TForm1.CreateForm..."
рис. 2 - вот как то так что ли?
Миниатюры
Как обратиться к функции, расположенной в DataModule?   Как обратиться к функции, расположенной в DataModule?  
0
1856 / 1178 / 190
Регистрация: 27.03.2009
Сообщений: 4,558
14.06.2010, 12:25 9
вот что у меня получилось:
это datamodule, unit2
Delphi
1
2
3
4
5
6
7
8
9
10
11
type
  TDataModule2 = class(TDataModule)
    ADOTable1: TADOTable;
function eslitablitsa(c:char):string;
 
 
 
function tdatamodule2.eslitablitsa(c:char):string;
var i:integer;
begin
end;
а это в unit1 для form1, unit1
Delphi
1
2
3
4
5
6
7
implementation
uses unit2;
 
procedure TForm1.FormActivate(Sender: TObject);
begin
if datamodule2.eslitablitsa()...
end;
как будто работает

Добавлено через 1 минуту
обращение к функции из datamodule в данном случае возможно и в выпадающем списке появляется
0
24 / 24 / 2
Регистрация: 17.06.2008
Сообщений: 613
14.06.2010, 13:17  [ТС] 10
unick12345, на всякий случай создала новый DataModule, в его Unit прописала:

Delphi
1
2
3
4
5
6
7
8
9
type
  TDataModule1 = class(TDataModule)
      function isAlphaRu( c: Char ): boolean;
 
 
function isAlphaRu( c: Char ): boolean;
begin
   Result := Ord( c ) in [168,184,192..223,224..255];
end;

ругается на function isAlphaRu( c: Char ): boolean;

[Error] DM.pas(31): Unsatisfied forward or external declaration: 'TDM1.isAlphaRu'

Что не так сделала?

(в Unit формы пока ничего не меняла: там осталась и функция и ссылка на неё)
0
160 / 159 / 13
Регистрация: 14.01.2010
Сообщений: 1,497
14.06.2010, 14:33 11
Функция продекларирована а где она не указано

function TDataModule1.isAlphaRu( c: Char ): boolean;

Добавлено через 12 минут
Не помню про DataModule, и нужно ли это тибе.

Вот функция в модуле(не зависимая)
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
unit uMakeEsk;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,jpeg, StdCtrls, FileCtrl, ComCtrls, ImgList, rxAnimate, rxGIFCtrl,RxGIF;
 
function MakeEsk(OpenFN:string;SaveFN:string;w:integer;h:integer):integer;
 
implementation
 
function MakeEsk(OpenFN:string;SaveFN:string;w:integer;h:integer):integer;
пишешь
uMakeEsk.MakeEsk(...)
а если через класс хочешь делать то и доступ кней только через объект класс, без всяких "модуть точка".
0
24 / 24 / 2
Регистрация: 17.06.2008
Сообщений: 613
14.06.2010, 14:35  [ТС] 12
Цитата Сообщение от turboq Посмотреть сообщение
Функция продекларирована а где она не указано

function TDataModule1.isAlphaRu( c: Char ): boolean;

turboq
,сделала как вы сказали, вылезла такая ошибка:
Миниатюры
Как обратиться к функции, расположенной в DataModule?  
0
160 / 159 / 13
Регистрация: 14.01.2010
Сообщений: 1,497
14.06.2010, 19:36 13
Вот пример класса, в декларации, а насколько я вижу(там private) это класс не надо писать имя класса (см
function GetOffSetPath(PathPage,PathDir:string):string
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
type
  TForm1 = class(TForm)
  ...
  private
    { Private declarations }
    slHTMLTable:tstringlist;
    function GetOffSetPath(PathPage,PathDir:string):string;
  public
    { Public declarations }
  end;
var
  Form1: TForm1;
 
implementation
 
function TForm1.GetOffSetPath(PathPage,PathDir:string):string;
begin
 
end;
1
14.06.2010, 19:36
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.06.2010, 19:36
Помогаю со студенческими работами здесь

Как обратиться к указатели в функции?
Всем добрый день. Имеются структуры в структурах: typedef struct { DWORD dwLinkNum; ...

Как обратиться к функции если
Как обратиться к функции если файл содержащий ее лежит в другой папке?

Как обратиться к функции СРЗНАЧ в Excel?
подскажите пожалуйста как обратиться к функции срзнач в VBA Excel

Как обратиться к определенной функции класса
Доброе время суток. Подскажите пожалуйста как обратится к классу ? К отдельной функции. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru