Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вызов процедуры в процедуре 
:(
    Опции темы
Kbl4AH
Дата 28.7.2008, 09:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 741
Регистрация: 1.4.2008
Где: Вятка

Репутация: 4
Всего: 15



Здравствуйте, уважаемые.
Подскажите, пожалуйста, как вызвать стандартную процедуру из другой стандартной процедуры?
Например, как вызвать procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char)
внутри procedure TFLogon.RadioGroup1Click(Sender: TObject) ?
То есть мне нужно, чтобы при клике на радиогруп выполнился код, находящийся в теле процедуры едиткейпресс.
Заранее признателен.

Это сообщение отредактировал(а) Kbl4AH - 28.7.2008, 10:02
PM MAIL ICQ   Вверх
pseud
Дата 28.7.2008, 10:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Экспёрт Тыдыщ
***


Профиль
Группа: Завсегдатай
Сообщений: 1175
Регистрация: 18.5.2007
Где: Минск, Беларусь

Репутация: 10
Всего: 40



Цитата(Kbl4AH @  28.7.2008,  09:58 Найти цитируемый пост)
То есть мне нужно, чтобы при клике на радиогруп выполнился код, находящийся в теле процедуры едиткейпресс.

никогда так не делай, ну или почти никогда.
лучше объяви самостоятельную процедуру, которую будешь вызывать и из едиткейпресс, и из радиогрупклик



--------------------
Испытание чужого терпения можно считать успешным, если оно лопнуло...
PM MAIL   Вверх
sai_NT
  Дата 28.7.2008, 10:17 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 72
Регистрация: 8.8.2007

Репутация: 1
Всего: 3



Перенеси весь код процедуры TForm1.Edit1KeyPress(Sender: TObject; var Key: Char) в отдельную процедуру, и размести ее в секции импламентейшн модуля формы Form1 и обзови допустим MyEditKeyPress, также объяви заголовок процедуры в секции интрерфейса.

Далее такой вызов (пишу без Делфи, по памяти):
Код

unit Unit2; // юнит формы FLogon

interface
  uses ..., Unit1; // юнит формы Form1

implementation

...

procedure TFLogon.RadioGroup1Click(Sender: TObject) 
begin
  MyEditKeyPress(Form1.Edit1; #13);//передал код клавишы Enter
end;

...

end.

PM MAIL   Вверх
Kbl4AH
Дата 28.7.2008, 10:26 (ссылка)  | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 741
Регистрация: 1.4.2008
Где: Вятка

Репутация: 4
Всего: 15



Прикольно!
А если описание процедуры посложнее и не всегда понятно какой параметр указать?
Например, если вызвать procedure FormClose(Sender: TObject; var Action: TCloseAction) вышеописанным путем, а не по Close.
В таком случае какие параметры нужно указывать?

Это сообщение отредактировал(а) Kbl4AH - 28.7.2008, 10:29
PM MAIL ICQ   Вверх
Poseidon
Дата 28.7.2008, 11:07 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 9
Всего: 133



Цитата(Kbl4AH @  28.7.2008,  09:58 Найти цитируемый пост)
 как вызвать procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char)внутри procedure TFLogon.RadioGroup1Click(Sender: TObject) ?


Если универсально и передаваемые параметры не используются, то где-то так:
Код

procedure TForm1.RadioGroup1Click(Sender: TObject);
var Key: Char;
begin
Edit1KeyPress(Sender, Key);
end;



Цитата(Kbl4AH @  28.7.2008,  10:26 Найти цитируемый пост)
Например, если вызвать procedure FormClose(Sender: TObject; var Action: TCloseAction) 


Код

procedure TForm1.RadioGroup1Click(Sender: TObject);
var Action: TCloseAction;
begin
FormClose(Sender, Action);
end;
 но все-таки лучше вызвать Form1.Close


PS. Никогда так не делай. Это я тебе так... справочно показал. Использовать не следует!



--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
Kbl4AH
Дата 28.7.2008, 12:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 741
Регистрация: 1.4.2008
Где: Вятка

Репутация: 4
Всего: 15



Спасибо!
PM MAIL ICQ   Вверх
sai_NT
Дата 28.7.2008, 13:09 (ссылка)  | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 72
Регистрация: 8.8.2007

Репутация: 1
Всего: 3



Цитата(Poseidon @ 28.7.2008,  11:07)
Цитата(Kbl4AH @  28.7.2008,  09:58 Найти цитируемый пост)
 как вызвать procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char)внутри procedure TFLogon.RadioGroup1Click(Sender: TObject) ?


Если универсально и передаваемые параметры не используются, то где-то так:
Код

procedure TForm1.RadioGroup1Click(Sender: TObject);
var Key: Char;
begin
Edit1KeyPress(Sender, Key);
end;



Обрати внимание на то, что процедуры в разных модулях: TForm1 и TFLogon, а значит вышепредставленный код не пройдет.

Это сообщение отредактировал(а) sai_NT - 28.7.2008, 13:10
PM MAIL   Вверх
Poseidon
Дата 28.7.2008, 13:34 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 9
Всего: 133



Цитата(sai_NT @  28.7.2008,  13:09 Найти цитируемый пост)
Обрати внимание на то, что процедуры в разных модулях: TForm1 и TFLogon, а значит вышепредставленный код не пройдет.
 
Это ты уже придераешься. Написано же 2в общем случае".

Код

procedure TForm1.RadioGroup1Click(Sender: TObject);
var Key: Char;
begin
FLogon.Edit1KeyPress(Sender, Key);
end;




--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
sai_NT
Дата 28.7.2008, 13:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 72
Регистрация: 8.8.2007

Репутация: 1
Всего: 3



Цитата(Poseidon @ 28.7.2008,  13:34)
Это ты уже придераешься. Написано же 2в общем случае".

Ни в коем случае =), просто поддерживаю мнение г-жи Riply по поводу того, что этот код потом могут копипастить.
PM MAIL   Вверх
pseud
Дата 28.7.2008, 14:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Экспёрт Тыдыщ
***


Профиль
Группа: Завсегдатай
Сообщений: 1175
Регистрация: 18.5.2007
Где: Минск, Беларусь

Репутация: 10
Всего: 40



Цитата(sai_NT @  28.7.2008,  13:49 Найти цитируемый пост)
Ни в коем случае =), просто поддерживаю мнение г-жи Riply по поводу того, что этот код потом могут копипастить.

тем более надо писать немного ошибочный код. чтоб чел немного и сам подумал. для его же пользы


--------------------
Испытание чужого терпения можно считать успешным, если оно лопнуло...
PM MAIL   Вверх
Dobermann
Дата 28.7.2008, 14:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 992
Регистрация: 7.1.2008

Репутация: нет
Всего: 0



Цитата(pseud @  28.7.2008,  15:30 Найти цитируемый пост)
тем более надо писать немного ошибочный код. чтоб чел немного и сам подумал. для его же пользы

Эх...как же меня это по началу бесило!!! Но действительно, польза огромнейшая!!!
PM   Вверх
Kbl4AH
Дата 29.7.2008, 07:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 741
Регистрация: 1.4.2008
Где: Вятка

Репутация: 4
Всего: 15



Ребят, не ссорьтесь.
Недоглядел и забыл изменить название формы в одном месте.
А насчет думать...
Если вопрос звучит в общих чертах, то и ответить можно также - чел дальше сам докумекает, главное идея...
А если в вопросе конкретный код, то и ответить нужно по возможности учитывая конкретный код...
А насчет копипастить... Не совсем уж я глупый, могу различить для какой формы процедура описана;)
Еще раз спасибо за ликбез!
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0508 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.