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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.08.2009, 01:38   #1
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию Пару вопросов о процедурах

Может ли процедура изменять свои параметры?
Т.е.
Код:
var
 a:integer;

procedure incc(q:integer);
begin
 q:=q+1;
end;

begin
 a:=1;
 incc(a); //<a> не меняется
end.
Как из функций в делфи получить доступ к елементам формы?
TwiX вне форума Ответить с цитированием
Старый 23.08.2009, 02:01   #2
Kukkk
Форумчанин
 
Регистрация: 28.06.2007
Сообщений: 123
По умолчанию

Код:
procedure incc(var q:integer);
вроде так должно быть
Kukkk вне форума Ответить с цитированием
Старый 23.08.2009, 02:20   #3
RIO
Форумчанин
 
Аватар для RIO
 
Регистрация: 15.12.2007
Сообщений: 422
По умолчанию

Нет не может, в процедуру войдет и измененный параметр потом не выйдет, а для выхода следует применить следующее :

Код:
var
 a, P:integer;

procedure incc(q:integer; var I: Integer);
begin
 q:=q+1;
   I := Q;
end;

begin
 a:=1;
 incc(a, P); //<a> не меняется
// А потом уже использовать P
end.
Кстати вместо этого :
q:=q+1;
Лучше использовать :
Inc(Q)
Это аналогичные вещи Но удобней

Последний раз редактировалось Stilet; 25.08.2009 в 15:25.
RIO вне форума Ответить с цитированием
Старый 23.08.2009, 02:26   #4
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию

на счёт inc я знаю - да и моя функция называлась incc)
TwiX вне форума Ответить с цитированием
Старый 23.08.2009, 02:26   #5
RIO
Форумчанин
 
Аватар для RIO
 
Регистрация: 15.12.2007
Сообщений: 422
По умолчанию

Гуд Ну тогда удачного программирования, друг
RIO вне форума Ответить с цитированием
Старый 23.08.2009, 02:32   #6
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию

Var помогло)
Осталось узнать, "Как из функций в делфи получить доступ к елементам формы?"
TwiX вне форума Ответить с цитированием
Старый 23.08.2009, 02:35   #7
RIO
Форумчанин
 
Аватар для RIO
 
Регистрация: 15.12.2007
Сообщений: 422
По умолчанию

Скинь саму функцию
RIO вне форума Ответить с цитированием
Старый 23.08.2009, 02:57   #8
Kukkk
Форумчанин
 
Регистрация: 28.06.2007
Сообщений: 123
По умолчанию

Смотря, к чему ты хочешь получить доступ... Изменить свойство формы? Или свойство компонента формы? Form1.width:=...; или Button1.caption:='...';
Пишешь сначала имя компонента, потом его свойство из Object inspector'a, потом присваиваешь значение. Если я правильно понял, о чем ты. Иногда у меня дельфи ругался(сам не понял, почему) и приходилось ставить form1.button1.caption...., при том функция была на 1-й форме.
Kukkk вне форума Ответить с цитированием
Старый 23.08.2009, 03:22   #9
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию

Неееет...

Код:
implementation //кстати, что такое implementation? =)
procedure incc(var a:string);
begin
  a:=a+'b';
  edit1. //не видит ни форму, ни елементов
end;
TwiX вне форума Ответить с цитированием
Старый 23.08.2009, 09:02   #10
Kotofff
Участник клуба
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Сообщений: 1,917
По умолчанию

Цитата:
implementation //кстати, что такое implementation? =)
Это исполняемая часть модуля (unit). В модуле есть несколько частей и основные из них это Interface и Implementation.
Interface - это видимая часть модуля, т.е. содержащая в себе описание (правила обращения) всех открытых процедур и функций данного модуля, а также переменных, Implementation - наоборот, скрытая часть модуля, содержащая исполняемый код описанных в части Interface процедур и функций, а так же переменные, которые доступны только этому модулю для работы.
Цитата:
edit1. //не видит ни форму, ни елементов
Здесь нужно либо переписать на что-то типа этого:
Код:
Form1.Edit1. ... что-то
причем модуль содержащий Form1 должен быть указан в секции uses данного модуля, а по большому счету можно передавать процедуре элемент для операций над ним :
Код:
procedure incc(var a:string;var ED:TEdit);
begin
  a:=a+'b';
  (ED as TEdit).Text := a;
end;
И опять же один из самых продвинутых букварей по теории Delphi (очень много полезного) :
http://www.delphisources.ru/pages/fa...ation.php.html
"Заряженному танку в дуло не смотрят" @Dekmer in WoT

Последний раз редактировалось Kotofff; 23.08.2009 в 09:24.
Kotofff вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пару вопросов по массивам maxlav Общие вопросы C/C++ 3 24.05.2009 21:14
пару вопросов по масивам в паскале и С++ Lorden Помощь студентам 10 06.02.2009 20:50
Пару вопросов о DynamicSkinForm Relrin Компоненты Delphi 6 22.04.2008 04:03
Срочно пару вопросов fruTT Общие вопросы Delphi 8 30.10.2007 22:14