Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.07.2009, 19:41   #1
JustKurt
ANT team
Пользователь
 
Регистрация: 25.06.2009
Сообщений: 39
Печаль Использование функций из других форм

Добрый день.
Сори, если такой вопрос уже был, но просто не могу разобраться...

Второй день бьюсь с использовании функций из других форм.
Как прописывать/добавлять знаю - но, например, у меня большая часть функций находится в Unit1.pas, часть переменных (массивы) в boots.pas.
Добавляю
Код:
 Uses Unit1, boots;
Переменные из boots.pas работают, все нормально. Но функции из Unit1 не работают.
Пробовал делать так

scandev3 - функция из Unit1

Код:
if Unit1.scandev3=true then begin
результат такой же - компиляция рушится на всех функциях из Unit1.

В чем может быть причина?

P.S. хотел использовать фрейм в целях облегчения основного интерфейса, и сделать его ярлыком к нужным функциям + в нем некоторые функции выполнять.

Спасибо за внимание.
JustKurt вне форума Ответить с цитированием
Старый 12.07.2009, 19:45   #2
Kotofff
Участник клуба
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Сообщений: 1,917
По умолчанию

А в модуле Unit1 прописан модуль boots ?
Я так понимаю они связаны... если
Цитата:
большая часть функций находится в Unit1.pas, часть переменных (массивы) в boots.pas
"Заряженному танку в дуло не смотрят" @Dekmer in WoT
Kotofff вне форума Ответить с цитированием
Старый 12.07.2009, 19:48   #3
JustKurt
ANT team
Пользователь
 
Регистрация: 25.06.2009
Сообщений: 39
По умолчанию

да, прописан.
В Unit1 - вся основа моей программы, в ней прописано множество других модулей и все работает....
JustKurt вне форума Ответить с цитированием
Старый 12.07.2009, 19:51   #4
Kotofff
Участник клуба
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Сообщений: 1,917
По умолчанию

Тогда подробно пиши как прописано во всех модулях и поясни где какой модуль. Полного кода не надо, просто раздел uses.
"Заряженному танку в дуло не смотрят" @Dekmer in WoT
Kotofff вне форума Ответить с цитированием
Старый 12.07.2009, 20:05   #5
JustKurt
ANT team
Пользователь
 
Регистрация: 25.06.2009
Сообщений: 39
По умолчанию

Unit1
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Api, Api2, Registry, Masks, Boots, ComCtrls,
  ExtCtrls, ScreenBoots, IniFiles, XPMan, clipbrd, PMfiles, D2XXUnit, BB5_usb, strutils,
  jpeg, Menus;
......

implementation

uses Unit2, Unit6;
Unit6 - собственно это и есть нужный юнит, в котором трабла.
Код:
unit Unit6;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 
  Dialogs, StdCtrls;

type
  TPMedit = class(TFrame)
    rb1: TRadioButton;
    rb2: TRadioButton;
    rb3: TRadioButton;
    rb4: TRadioButton;
    rb5: TRadioButton;
    rb6: TRadioButton;
    grp1: TGroupBox;
    btn1: TButton;
    btn2: TButton;
    edt1: TEdit;
    grp3: TGroupBox;
    rb7: TRadioButton;
    rb8: TRadioButton;
    rb9: TRadioButton;
    rb10: TRadioButton;
    rb11: TRadioButton;
    rb12: TRadioButton;
    procedure btn1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

implementation

uses
  Boots, Unit1;

{$R *.dfm}
JustKurt вне форума Ответить с цитированием
Старый 12.07.2009, 20:20   #6
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

Чтобы функции или процедуры были доступны из других модулей их необходимо описать в разделе interface.
Из того что выложили не понятно описаны они или нет.
vovk вне форума Ответить с цитированием
Старый 12.07.2009, 20:25   #7
JustKurt
ANT team
Пользователь
 
Регистрация: 25.06.2009
Сообщений: 39
По умолчанию

Хм... Можно поподробнее?

я сделал так -
Код:
unit Unit6;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Boots, Unit1;
ситуация не изменилась....
JustKurt вне форума Ответить с цитированием
Старый 12.07.2009, 20:44   #8
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

нее я говорю о описании функции в модуле.

ну както так можно
Код:
  function a_plus_b(a,b:integer):integer;
var
  Form1: TForm1;

implementation

uses Unit2;

{$R *.dfm}
 function a_plus_b(a,b:integer):integer;
 begin
 result:=a+b;
 end;
vovk вне форума Ответить с цитированием
Старый 12.07.2009, 20:59   #9
JustKurt
ANT team
Пользователь
 
Регистрация: 25.06.2009
Сообщений: 39
По умолчанию

Вы предлагаете скопировать функцию в модуль новый?

Они слишком громоздкие, и результат некоторых нужно выводить и на форме Unit1 и на форме Unit6...

Вроде правильно описал....
JustKurt вне форума Ответить с цитированием
Старый 12.07.2009, 21:07   #10
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

зачем новый?
аа посмотрел как используете понятно, в вашем случае вызывать надо скорее всего так
Код:
 if Form1.scandev3=true then begin
А обьявлять в public разделa interface

Последний раз редактировалось vovk; 12.07.2009 в 21:14.
vovk вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Использование функций из других фаилов sergeii Помощь студентам 3 08.06.2009 16:11
использование функций в качестве параметров других функций mono Помощь студентам 0 20.04.2009 18:25
Использование функций prikolist Общие вопросы C/C++ 15 06.04.2009 18:42
В данной книге невозможно использование других шрифтов Alex19789 Microsoft Office Excel 2 16.12.2008 09:42
Использование 2х форм Zeraim Общие вопросы Delphi 4 27.05.2008 17:14