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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.04.2010, 12:38   #1
vedro-compota
любитель-далеко не
Участник клуба
 
Аватар для vedro-compota
 
Регистрация: 13.04.2010
Сообщений: 1,156
Стрелка Вызов процедуры из дополнительного модуля

Не могу разобраться с модулями Делфи . Hottabych с функцией помог,)) теперь вот процедуры.
Переношу три процедуры из модуля основной программы в дополнительный , который теперь выглядит так :
Код:
unit extraproc;

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

type
  TForm1 = class(TForm)
    StringGrid1: TStringGrid;
    Edit1: TEdit;
    Button1: TButton;
    Label1: TLabel;
    Button2: TButton;
    Label2: TLabel;
    Label3: TLabel;
    Edit2: TEdit;
    Label4: TLabel;
    Label5: TLabel;
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 var Form1: TForm1;
implementation

procedure TForm1.Button1Click(Sender: TObject);
begin
stringgrid1.ColCount:=strtoint(edit1.text);
end;

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
    if not (Key in [#8, '0'..'9']) then
    begin
      ShowMessage('Пожалуйста, укажите целое положительное число');
      Key := #0;
    end ;
end;

procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
    if not (Key in [#8, '0'..'9']) then
    begin
      ShowMessage('Пожалуйста, укажите целое положительное число');
      Key := #0;
    end ;
end;   
end.
В основном модуле все фрагменты кода, относящиеся к этим процедурам я поместил в фигурные скобки, но Делфи говорит :
Цитата:
First chance exception at $76D9FBAE. Exception class EReadError with message 'Invalid property value'. Process Project1.exe (5088)
в чём же ошибка ?
(прикладываю архив- процедуры лежат в модуле "extraproc.pas")
Вложения
Тип файла: zip 3.zip (312.3 Кб, 10 просмотров)
против абортов=за + жизнь;.фкн вгу;_______________________мойблг
vedro-compota вне форума Ответить с цитированием
Старый 23.04.2010, 12:46   #2
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

А зачем br.pas из проекта выкинул??? Как его скомпилировать теперь?
Перемешивай дело с бездельем и не сойдешь с ума...
Grag вне форума Ответить с цитированием
Старый 23.04.2010, 13:10   #3
vedro-compota
любитель-далеко не
Участник клуба
 
Аватар для vedro-compota
 
Регистрация: 13.04.2010
Сообщений: 1,156
По умолчанию

я его переименовал его в "func.pas" ))
против абортов=за + жизнь;.фкн вгу;_______________________мойблг
vedro-compota вне форума Ответить с цитированием
Старый 23.04.2010, 13:32   #4
Terran
Участник клуба
 
Аватар для Terran
 
Регистрация: 28.11.2007
Сообщений: 1,521
По умолчанию

Немного не понятно... Скажите, пожалуйста, как должны называться функции в отдельном модуле? Насколько я понял, одна из них называется fg? И отдельный модуль Вы имеете в виду модуль, который подключается к проекту?
Всегда рад помочь!
Terran вне форума Ответить с цитированием
Старый 23.04.2010, 17:32   #5
vedro-compota
любитель-далеко не
Участник клуба
 
Аватар для vedro-compota
 
Регистрация: 13.04.2010
Сообщений: 1,156
По умолчанию да-да)

fg - работает. но когда помимо модуля func.pas я подключаю extraproc.pas ( подключаю - в смысле переношу процедуры из модуля unit1.pas в extraproc.pas ) возникает ошибка.... вот как.
против абортов=за + жизнь;.фкн вгу;_______________________мойблг
vedro-compota вне форума Ответить с цитированием
Старый 23.04.2010, 18:08   #6
Terran
Участник клуба
 
Аватар для Terran
 
Регистрация: 28.11.2007
Сообщений: 1,521
По умолчанию

Что-то я всё равно не уловил смысл, что должно быть.
Вот Ваш исходничёк 1.rar я его немного подправил. Подключил модули func и extraproc. Только у Вас в коде много лишнего. У меня всё работает.
P.S. У данного проекта основной модуль Unit1.pas Менять его на extraproc.pas не стоит.
Всегда рад помочь!

Последний раз редактировалось Terran; 23.04.2010 в 18:10.
Terran вне форума Ответить с цитированием
Старый 23.04.2010, 21:35   #7
vedro-compota
любитель-далеко не
Участник клуба
 
Аватар для vedro-compota
 
Регистрация: 13.04.2010
Сообщений: 1,156
По умолчанию

поправили.. ))) но что именно !?? вот в чём вопрос ))))

история этого измученного "проекта такова":
1) В начале все четыре процедуры и функция были в unit1.pas
2) Потом функцию fg я перенёс в func.pas (не работало, но помог Hottabych )
3) Потом три процедуры перенёс в ехtraproc.pas (не работало, но помог Terran))
4) Теперь работает.....но что же вы исправили?
против абортов=за + жизнь;.фкн вгу;_______________________мойблг
vedro-compota вне форума Ответить с цитированием
Старый 23.04.2010, 22:01   #8
Terran
Участник клуба
 
Аватар для Terran
 
Регистрация: 28.11.2007
Сообщений: 1,521
По умолчанию

Цитата:
4) Теперь работает.....но что же вы исправили?
Написал правильные названия в модулях и подключил их к проекту. Сделал обработчики событий для кнопок на главной форме.
Всегда рад помочь!
Terran вне форума Ответить с цитированием
Старый 24.04.2010, 00:23   #9
vedro-compota
любитель-далеко не
Участник клуба
 
Аватар для vedro-compota
 
Регистрация: 13.04.2010
Сообщений: 1,156
Восклицание я тоже.

теперь в unit1 подключил модули func и extraproc , но всё равно не работает, хотя всё вроде , как и в исправленном вами варианте .... а что вы с обработчиками событий делали?
(снова прикреплю неработающий архив. простите за несообразительность)
Вложения
Тип файла: zip 1-1.zip (63.9 Кб, 10 просмотров)
против абортов=за + жизнь;.фкн вгу;_______________________мойблг
vedro-compota вне форума Ответить с цитированием
Старый 24.04.2010, 00:49   #10
Terran
Участник клуба
 
Аватар для Terran
 
Регистрация: 28.11.2007
Сообщений: 1,521
По умолчанию

Цитата:
а что вы с обработчиками событий делали?
Поставил событие на кнопку button1. В разделалх Uses удалил ненужный модуль br. У Вас лишнее описание в модуле самого проекта (Project\View Source) Там нужна только строчка
Код:
Unit1 in 'Unit1.pas' {Form1};
Всегда рад помочь!
Terran вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
процедуры модуля Crt Bin Помощь студентам 0 16.12.2009 16:58
Вызов ShellExecute из модуля. Какой тогда дескриптор окна указывать? Вавел из ГМТУ Общие вопросы Delphi 12 27.08.2009 14:44
Вызов процедуры igbizon Общие вопросы Delphi 5 02.09.2008 10:44
Вызов Метода из др. модуля Mickle Общие вопросы Delphi 2 10.05.2007 23:41