Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

А как передать данные из ОДНОЙ процедуры в ДРУГУЮ?


Страницы:   1 2 3

CoolLamer ©   (2007-01-06 20:06:00) 

Дорова МАСТЕРА!
Подскажите ЛАМЕРУ как данные из:
Procedure AAA ()
Begin
...
End;


передать в процедуру

Procedure ВВВ ()
Begin
...
Procedure AAA ()
...
End;

учитывая что вторая запускает первую??
Спасиб!


MsGuns   (2007-01-06 21:24:00) [21]

Читать про Sender, Owner, операторы as и is, преобразование T<ClassName> и вообще введение в RTTI


CoolLamer   (2007-01-06 21:14:00) [22]

А ЕСЛИ Я СОЗДАЛ ОБЪЕКТ КОДОМ, ПОТОМ ЕГО ПРОЦЕДУРУ, ну например КНОПКУ, потом ПРИСВОИЛ ЕЙ ПРОЦЕДУРУ onClick, как мне при нажатии изминить ее Caption?


CoolLamer   (2007-01-06 21:11:00) [23]


> Объекты в Делфи всегда передаются по ссылке.


Точно, простите НЕВЕЖУ!!!!

Может НИСПОШЛЕТЕ более ламерским ЯЗЫКОМ?? : (


Kolan   (2007-01-06 21:11:00) [24]

«ОПРЕДЕЛИТЬ ЕЕ „РОДИТЕЛЯ“»

Зачем же ток орать?


Джо   (2007-01-06 21:09:00) [25]

> [26] CoolLamer   (06.01.07 21:08)
>
> > 2. Передать его параметром.
>
> В смысле САМ объект?

Объекты в Делфи всегда передаются по ссылке.


CoolLamer   (2007-01-06 21:08:00) [26]


> 2. Передать его параметром.

В смысле САМ объект?


Джо   (2007-01-06 21:06:00) [27]

> [24] CoolLamer   (06.01.07 21:04)
> КАК ВНУТРИ ИСПОЛНЯЕМОЙ ПРОЦЕДУРЫ ОПРЕДЕЛИТЬ ЕЕ "РОДИТЕЛЯ",
> кто ее вызвал и вообще, например чтобы изминить свойство
> этого ОБЪЕКТА, например CAPTION

Ответы смотри:
[23] Virgo_Style ©   (06.01.07 21:04)


CoolLamer   (2007-01-06 21:04:00) [28]


> Хотя что конкретно нужно автору - до сих пор остается загадкой

Я разобрался по ВОПРОСУ уже СПАСИБО!
Другой возник последний....
КАК ВНУТРИ ИСПОЛНЯЕМОЙ ПРОЦЕДУРЫ ОПРЕДЕЛИТЬ ЕЕ "РОДИТЕЛЯ", кто ее вызвал и вообще, например чтобы изминить свойство этого ОБЪЕКТА, например CAPTION


Virgo_Style   (2007-01-06 21:04:00) [29]

CoolLamer   (06.01.07 20:57) [21]

1. Никак.
2. Передать его параметром.
3. Сделать процедуру методом класса.


Virgo_Style   (2007-01-06 21:01:00) [30]

MsGuns ©   (06.01.07 20:49) [20]
???


> Исключения составляют методы класса, которые могут
> работать непосредственно с некоторыми свойствами,
> методами или событиями этого класса.


Примерно это я и имел в виду. Или с некоторым зубовным скрежетом можно и непосредственно к SomeForm.SomeGrid обратиться из процедуры, если не предполагается несколько экземпляров этой формы, и если вообще говорить о глобальных переменных. Ясное дело, это не есть хорошо, но такое впечатление, что эту кашу даже этаким маслом уже не испортить %-)

Хотя что конкретно нужно автору - до сих пор остается загадкой.


CoolLamer   (2007-01-06 20:57:00) [31]

ТАК КАК В НУТРИ ПРОЦЕДУРЫ, ОПРЕДЕЛИТЬ ОБЪЕКТ КОТОРЫЙ ЕЕ ВЫЗЫВАЕТ???


MsGuns   (2007-01-06 20:49:00) [32]

> 2. Grid в данном случае вполне похож на глобальную переменную

???


CoolLamer   (2007-01-06 20:39:00) [33]


> MsGuns ©   (06.01.07 20:37) [16]


8 ]


MsGuns   (2007-01-06 20:38:00) [34]

>CoolLamer   (06.01.07 20:30) [14]
>ЭТО Grid, просто я вызываю Grid из процедуры ААА, и хочу знать какую >строку ВЫБРАЛИ в процедуре ВВВ.

Код на стол !


CoolLamer   (2007-01-06 20:38:00) [35]


> 1. Параметры
> 2. Grid в данном случае вполне похож на глобальную переменную
> %-)

А можно примерчик МАЛЮСЕНЬКИЙ?


MsGuns   (2007-01-06 20:37:00) [36]

Про обмен данными с процедурами и функциями, а также область видимости читать в делфишной справке или у Тексейро.

"Правильные" процедуры (функции) это такие программные блоки кода, которые по идее не должны интересоваться кто их вызвал, откуда и зачем. Это как почтальон, в обязанности которого входит вовремя доставить адресату послание, а вовсе не проверка грамматическимх ошибок.
Исключения составляют методы класса, которые могут работать непосредственно с некоторыми свойствами, методами или событиями этого класса.
В общем случае Паскаль не ограничивает программиста в выборе стратегии разбивки (модулирования) кода, поэтому иногда целесообразно совмещение этих двух стилей. В этом случае удобно передавать в процедуру указатель на соответствующий объект (дескриптор), поля которого ею и заполняются. Вызывающая функция на "выходе" анализирует содержимое дескриптора объекта и поступает дале по алгоритму.


Virgo_Style   (2007-01-06 20:36:00) [37]

1. Параметры
2. Grid в данном случае вполне похож на глобальную переменную %-)


CoolLamer   (2007-01-06 20:30:00) [38]

ЭТО Grid, просто я вызываю Grid из процедуры ААА, и хочу знать какую строку ВЫБРАЛИ в процедуре ВВВ.


Джо   (2007-01-06 20:26:00) [39]

> [8] CoolLamer   (06.01.07 20:21)
> Надо! : )) Или этого нельзя сделать?

А где вообще в твоем примере хотья какой-то «объект»?


Virgo_Style   (2007-01-06 20:26:00) [40]

Еще иногда можно таким образом

procedure TForm1.Button1Click(Sender: TObject);
var LogStr:String;

 procedure AddToLog;
 begin
   Memo1.Lines.Add(LogStr);
 end;

begin
 LogStr:='Поехали';
 AddToLog;
 ...
end;

P.S. Я не удивлюсь, кстати, если автору на самом деле результат работы вызванной функции вернуть надо.


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо