Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 21.08.2012, 11:09
Clition Clition вне форума
Прохожий
 
Регистрация: 21.08.2012
Сообщения: 3
Репутация: 10
По умолчанию Использование компонентов в своей процедуре

Добрый день!

Как в своей процедуре обратиться с свойству объекта? Например, хочу создать процедуру ClearText(); в которой хочу обратиться к RichEdit1.Text. Пишу:

procedure ClearText();
begin
RichEdit1.Text:='';
end;

компилятор ругается на [Error] Unit1.pas(58): Undeclared identifier: 'RichEdit1'. Как нужно сделать правильно?
Ответить с цитированием
  #2  
Старый 21.08.2012, 11:13
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от Clition
Добрый день!

Как в своей процедуре обратиться с свойству объекта? Например, хочу создать процедуру ClearText(); в которой хочу обратиться к RichEdit1.Text. Пишу:

procedure ClearText();
begin
RichEdit1.Text:='';
end;

компилятор ругается на [Error] Unit1.pas(58): Undeclared identifier: 'RichEdit1'. Как нужно сделать правильно?
А ты RichEdit1 создал? Компилятор тебе пишет, что нет такого идентификатора.
Ответить с цитированием
  #3  
Старый 21.08.2012, 11:16
Clition Clition вне форума
Прохожий
 
Регистрация: 21.08.2012
Сообщения: 3
Репутация: 10
По умолчанию

Да, он создан, но видимо он вне области видимости моей функции.
Ответить с цитированием
  #4  
Старый 21.08.2012, 11:24
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от Clition
Да, он создан, но видимо он вне области видимости моей функции.
Скорее всего так и есть. Если он лежит на форме, то нужно указать на какой форме он лежит (ведь на каждой форме может быть по своему RichEdit1 - откуда компилятору знать к какому ты хочешь обратиться). В простом случае указываешь что-то типа Form1.RichEdit1. Но это не лучший вариант! Крайне желательно к объектам формы обращаться не из обычных процедур, а из методов самой формы (например из обработчиков событий типа Button1Click). И в них не нужно указывать Form1.
Ответить с цитированием
  #5  
Старый 21.08.2012, 11:32
Clition Clition вне форума
Прохожий
 
Регистрация: 21.08.2012
Сообщения: 3
Репутация: 10
По умолчанию

Вы правы, это решило проблему.

Цитата:
Крайне желательно к объектам формы обращаться не из обычных процедур, а из методов самой формы (например из обработчиков событий типа Button1Click)

Функция должна вызываться из разных обработчиков.
Ответить с цитированием
  #6  
Старый 21.08.2012, 11:36
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от Clition
Вы правы, это решило проблему.

Функция должна вызываться из разных обработчиков.
Из разных обработчиков одной и той же формы? Если так, то как я уже писал выше, эту процедуру нужно описывать не как обычную процедуру, а как метод формы.
То есть не так:
Код:
procedure ClearText();
begin
  Form1.RichEdit1.Text:='';
end;
А так:
Код:
procedure TForm1.ClearText();
begin
  RichEdit1.Text:='';
end;
Ответить с цитированием
  #7  
Старый 21.08.2012, 11:38
robt robt вне форума
Активный
 
Регистрация: 17.02.2011
Сообщения: 297
Репутация: -1806
По умолчанию

Цитата:
Сообщение от poli-smen
Крайне желательно к объектам формы обращаться не из обычных процедур, а из методов самой формы (например из обработчиков событий типа Button1Click).
глупость
......
Ответить с цитированием
  #8  
Старый 21.08.2012, 11:39
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от robt
глупость
......
Глупость говорить, что это глупость.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 04:16.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025