Обращение к компонентам размещенным на форм из процедуры
От: Sasiskin  
Дата: 23.03.04 08:40
Оценка:
Такая задача: пишу процедуру которая что-то делает, из этой процедуры нужно обращаться к свойствам компонента, размещенного на форме. Как это реализовать? Передавать объект как параметр или еще как?
Просьба без наездов, только начинаю программировать
Re: Обращение к компонентам размещенным на форм из процедуры
От: Ozone Россия  
Дата: 23.03.04 08:45
Оценка:
Здравствуйте, Sasiskin, Вы писали:

S>Такая задача: пишу процедуру которая что-то делает, из этой процедуры нужно обращаться к свойствам компонента, размещенного на форме. Как это реализовать? Передавать объект как параметр или еще как?

S>Просьба без наездов, только начинаю программировать

1. Можно процедуру описать как метод самой формы -> тогда к компоненту обращаться по имени
2. Если процедура "лежит" в том же модуле, где описана твоя форма, то обращаться ч/з <Form_Name>.<Component_Name>
3. Если процедура "лежит" в отдельном модуле, то да, лействительно, передавать сам обьект.
Re[2]: Обращение к компонентам размещенным на форм из процед
От: nim  
Дата: 23.03.04 08:57
Оценка:
Здравствуйте, Ozone, Вы писали:

O>Здравствуйте, Sasiskin, Вы писали:


S>>Такая задача: пишу процедуру которая что-то делает, из этой процедуры нужно обращаться к свойствам компонента, размещенного на форме. Как это реализовать? Передавать объект как параметр или еще как?

S>>Просьба без наездов, только начинаю программировать

O>1. Можно процедуру описать как метод самой формы -> тогда к компоненту обращаться по имени

O>2. Если процедура "лежит" в том же модуле, где описана твоя форма, то обращаться ч/з <Form_Name>.<Component_Name>
O>3. Если процедура "лежит" в отдельном модуле, то да, лействительно, передавать сам обьект.
А по моему можно просто в uses указать модуль в котором описана форма с которой нужно работать и обращаться <Form_Name>.<Component_Name>. Правда это в том случае если процедура будет работать только с одной формой
Re[3]: Обращение к компонентам размещенным на форм из процед
От: Ozone Россия  
Дата: 23.03.04 08:59
Оценка:
Здравствуйте, nim, Вы писали:

nim>Здравствуйте, Ozone, Вы писали:


O>>Здравствуйте, Sasiskin, Вы писали:


S>>>Такая задача: пишу процедуру которая что-то делает, из этой процедуры нужно обращаться к свойствам компонента, размещенного на форме. Как это реализовать? Передавать объект как параметр или еще как?

S>>>Просьба без наездов, только начинаю программировать

O>>1. Можно процедуру описать как метод самой формы -> тогда к компоненту обращаться по имени

O>>2. Если процедура "лежит" в том же модуле, где описана твоя форма, то обращаться ч/з <Form_Name>.<Component_Name>
O>>3. Если процедура "лежит" в отдельном модуле, то да, лействительно, передавать сам обьект.
nim>А по моему можно просто в uses указать модуль в котором описана форма с которой нужно работать и обращаться <Form_Name>.<Component_Name>. Правда это в том случае если процедура будет работать только с одной формой

Можно и так.
Re[2]: Обращение к компонентам размещенным на форм из процед
От: Sasiskin  
Дата: 23.03.04 09:05
Оценка:
Здравствуйте, Ozone, Вы писали:

O>Здравствуйте, Sasiskin, Вы писали:


S>>Такая задача: пишу процедуру которая что-то делает, из этой процедуры нужно обращаться к свойствам компонента, размещенного на форме. Как это реализовать? Передавать объект как параметр или еще как?

S>>Просьба без наездов, только начинаю программировать

O>1. Можно процедуру описать как метод самой формы -> тогда к компоненту обращаться по имени

O>2. Если процедура "лежит" в том же модуле, где описана твоя форма, то обращаться ч/з <Form_Name>.<Component_Name>
O>3. Если процедура "лежит" в отдельном модуле, то да, лействительно, передавать сам обьект.

Где можно подсмотреть синтаксис по первому и третьему варианту, в хелпе не нашел.

Попробовал второй вариант: в сучае создания простого приложения работает, а я замахнулся на ActiveForm там почему-то такой подход не проходит.
Re[3]: Обращение к компонентам размещенным на форм из процед
От: Ozone Россия  
Дата: 23.03.04 09:36
Оценка:
Здравствуйте, Sasiskin, Вы писали:

S>Где можно подсмотреть синтаксис по первому и третьему варианту, в хелпе не нашел.


S>Попробовал второй вариант: в сучае создания простого приложения работает, а я замахнулся на ActiveForm там почему-то такой подход не проходит.


type
  TMainForm = class(TForm)
  private
    { Private declarations }
     procedure MyProc;       // твоя процедура
  public
    { Public declarations }
  end;

var
  MainForm: TMainForm;

{...}

procedure TMainForm.MyProc;
begin
     {...}
end;
Re[4]: Обращение к компонентам размещенным на форм из процед
От: Sasiskin  
Дата: 23.03.04 09:47
Оценка:
Здравствуйте, Ozone, Вы писали:

O>Здравствуйте, Sasiskin, Вы писали:


O>
O>type
O>  TMainForm = class(TForm)
O>  private
O>    { Private declarations }
O>     procedure MyProc;       // твоя процедура
O>  public
O>    { Public declarations }
O>  end;

O>var
O>  MainForm: TMainForm;

O>{...}

O>procedure TMainForm.MyProc;
O>begin
O>     {...}
O>end;

O>


Спасибо за помощь
Re[3]: Обращение к компонентам размещенным на форм из процед
От: Arioch  
Дата: 23.03.04 10:38
Оценка:
Hello, Sasiskin!

S> Попробовал второй вариант: в сучае создания простого приложения

S> работает, а я замахнулся на ActiveForm там почему-то такой подход не

Еще бы — это же форма вообще, на ней нет такого компонента.


Вариант. 1

 If ActiveForm is TMySuperFormClass then
    with (* var *) MySuperFormClass do begin
 ...
    MySuperLabel.Caption := 'here, kitty, kitty, kitty';
 ...
end;


Вариант. 2

 If ActiveForm is TMySuperFormClass then
    with ActiveForm as TMySuperFormClass do begin
 ...
    MySuperLabel.Caption := 'here, kitty, kitty, kitty';
 ...
end;


PS: как же я затрахался писать if x is y then with x as y
do...

Хочу как в Component Pascal, где IS уже приводит типы...

--
[tip] Fix for Outlook Express quoting: http://Arioch.nm.ru/FL/Fidolook_SL.png
E-mail is faked because of spam. the_Arioch@NM.falseDomain.ru
Posted via RSDN NNTP Server 1.8 beta
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.