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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.12.2006, 02:11   #1
varied
 
Регистрация: 21.12.2006
Сообщений: 5
По умолчанию Передача "адреса" элемента формы

Всем доброй ночи!

Заголовок получился не очень, но не хотелось делать его слишком длинным.
Я хотел узнать, можно ли передавать в процедуру "адрес элемента формы, куда надо возвращать результат? К примеру, есть процедура a(b:string;c:integer;d:???);
где d переменная, куда (в какой элемент формы и в какую форму) будет посылаться работа процедуры.
Надеюсь, объяснил понятно, я не программист, это так, для себя.

Заранее спасибо!

Последний раз редактировалось varied; 21.12.2006 в 03:03. Причина: корректирование
varied вне форума Ответить с цитированием
Старый 21.12.2006, 03:32   #2
Simply-Art
Программист и
Участник клуба
 
Аватар для Simply-Art
 
Регистрация: 29.10.2006
Сообщений: 1,265
По умолчанию

Я думаю Form1.memo1.text можно за место d использовать надеюсь ты это имел ввиду, если не так извени.
Simply-Art вне форума Ответить с цитированием
Старый 21.12.2006, 04:16   #3
varied
 
Регистрация: 21.12.2006
Сообщений: 5
По умолчанию

Спасибо за отклик!
Наверное, я плохо объяснил или не так понял.
К примеру, при нажатии кнопки запускается процедура a('stroka',25,form1.memo.text);
Как внутри процедуры я узнаю, что записывать надо в form1.memo.text?
И ещё раз спасибо!

Только что пришло в голову, может просто обозначить var d:string, тогда обращаясь к d, будут менятся значения элементов формы?
Просто сейчас не могу проверить, нахожусь не дома.

Последний раз редактировалось varied; 21.12.2006 в 04:26.
varied вне форума Ответить с цитированием
Старый 21.12.2006, 08:13   #4
Трофимов Александр
Форумчанин
 
Аватар для Трофимов Александр
 
Регистрация: 03.11.2006
Сообщений: 321
По умолчанию

Может проще в глобальных переменных объявить переменную типа string и через неё, в случае, если переменная не является пустой строкой, выводить именно в поле memo.
Трофимов Александр вне форума Ответить с цитированием
Старый 21.12.2006, 14:59   #5
varied
 
Регистрация: 21.12.2006
Сообщений: 5
По умолчанию

Я, видимо, опять всё не так сказал, в процедуру может передоваться "адрес" любого элемента, к примеру, button1.caption, edti1.text radiobutton1.caption ну и так далее.
И опять спасибо!
varied вне форума Ответить с цитированием
Старый 21.12.2006, 15:45   #6
Сильванович Михаил
Студент
Форумчанин
 
Регистрация: 10.11.2006
Сообщений: 196
По умолчанию

Может так: d: string;

//пусть d='Button1', тогда можно так:
(FindComponent(d) as TButton).Caption:='Hello World!!!!'
Visita Interiorem Terrae Rectificando Operae Lapidem...

Последний раз редактировалось Сильванович Михаил; 21.12.2006 в 15:48.
Сильванович Михаил вне форума Ответить с цитированием
Старый 21.12.2006, 16:38   #7
-=DeS=-
Форумчанин
 
Аватар для -=DeS=-
 
Регистрация: 20.12.2006
Сообщений: 135
По умолчанию

Ты про это???
Цитата:
procedure TForm1.Button1Click(Sender: TObject);
begin
button1.Caption:=edit1.Text;
end;
writeln('Hello Dude!!!');
-=DeS=- вне форума Ответить с цитированием
Старый 21.12.2006, 18:16   #8
AVer
Андрей
Форумчанин
 
Аватар для AVer
 
Регистрация: 21.11.2006
Сообщений: 457
По умолчанию

Я думаю имелось ввиду что-то типа этого:
Код:
procedure a(b:string;c:integer;d:TEdit);
begin
d.Text:=...;
end;
ICQ: 5311314
[SIGPIC][/SIGPIC]

Последний раз редактировалось AVer; 21.12.2006 в 18:29.
AVer вне форума Ответить с цитированием
Старый 21.12.2006, 18:26   #9
varied
 
Регистрация: 21.12.2006
Сообщений: 5
По умолчанию

Цитата:
Сообщение от Сильванович Михаил Посмотреть сообщение
Может так: d: string;

//пусть d='Button1', тогда можно так:
(FindComponent(d) as TButton).Caption:='Hello World!!!!'
Спасибо!
Нашёл в справке про FindComponent, получается, что надо писать
TButton(FindComponent(d)).Caption:= 'Hello World!!!!';
У меня 6 делфи, может в других и так как вы написали, но у меня не пошёл ниодин из вариантов (Undeclared identifier), там надо подключать какой-то юнит?

Цитата:
Сообщение от -=DeS=- Посмотреть сообщение
Ты про это???

Почти, но в том-то и дело, что может быть много вариантов:
button1.Caption:=edit1.Text;
button3.Caption:=edit6.Text;
button2.Caption:=edit8.Text;
button8.Caption:=edit2.Text;

а процедуру хотелось бы иметь одну.
Вообще меня интересовало, как передать процедуре компонент, куда будет передаваться работа (к примеру процедура проходит с edit1 по edit10 и проверяет, что в них, ну и меняет значения полей text, не суть зачем, это просто пример, но процедуре можно передать только один компонент, то есть в вызвавшей части будет цикл), но и знать из какого компонента брать текст было бы неплохо, хотя, по сути это одно и тоже.


Цитата:
Сообщение от AVer Посмотреть сообщение
Я думаю имелось ввиду что-то типа этого:
Код:
procedure a(b:string;c:integer;d:TMemo);
begin
d.Text:=...;
end;
Да, это и имелось ввиду. Краткость явно не моя сестра...

Последний раз редактировалось varied; 21.12.2006 в 18:35.
varied вне форума Ответить с цитированием
Старый 21.12.2006, 20:35   #10
Umen
Форумчанин
 
Аватар для Umen
 
Регистрация: 10.11.2006
Сообщений: 189
По умолчанию

Цитата:
Сообщение от varied Посмотреть сообщение
Я, видимо, опять всё не так сказал, в процедуру может передоваться "адрес" любого элемента, к примеру, button1.caption, edti1.text radiobutton1.caption ну и так далее.
И опять спасибо!
в этом случае лучше объявить процедуру как

Код:
 
procedure a(b:string;c:integer;Sender:TObject);
begin
if (Sender is TButton) then
TButton(Sender).caption := ...
....
....
if (Sender is TEdit) then
TEdit(Sender).text := ...
end;
Umen вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск элемента ЭД4-0014 Помощь студентам 12 05.06.2008 21:47
Передача данных из формы в родительское окно OSKiller JavaScript, Ajax 1 29.01.2008 23:34
создание элемента Романнн Общие вопросы Delphi 6 13.12.2007 21:07
Вставка элемента в SelectDirectory mrandrey Общие вопросы Delphi 1 31.05.2007 20:25