![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
процедуры в делфи
SarDoX © (2006-01-12 20:08:00)ростенький вопросик.
создаю процедуру.
в ней идет обращение к какому нить компоненту.
но без "form1." перед названием компоненты работать не хочет, т.к не може найти, скажем, label1(приходится писать form1.label1.....)
что где дописать надо?
SarDoX (2006-01-13 15:54:00) [1]разбираемся-с..
Плохиш (2006-01-13 15:41:00) [2]
> procedure CheckIt;
> begin
> //Создаем экземпляр
> with TForm1.create(Application) do Show;
> //Вызываем процедуру - не метод класса
> Abc; //Упс!!!!!!
Достаточно на кнопку кликнуть, эффект будет тот же ;-)
А автору можно только посоветовать разобраться с ООП хорошенько.
SarDoX (2006-01-13 15:11:00) [3]Ega23, я ж бегин забыл засунуть, выше написал об этом. все работает, сенкс :)
Ega23 (2006-01-13 14:56:00) [4]
> 2Ega23 : гм. ошибку и сейчас выдает
Какую ошибку?
Код - в студию!
Reindeer Moss Eater (2006-01-13 14:56:00) [5]ты хотел сказать, что там и нельзя НЕ указывать form1?
<Цитата>
Не только хотел, но и сказал.
Там нужна ссылка на экземпляр класса, а она не обязана быть в переменной form1.
Вот краткая иллюстрация. Скомпилируй и вызови CheckIt;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure abc();
begin
form1.button1.caption:='1';
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
abc();
end;
procedure CheckIt;
begin
//Создаем экземпляр
with TForm1.create(Application) do Show;
//Вызываем процедуру - не метод класса
Abc; //Упс!!!!!!
end;
SarDoX (2006-01-13 14:56:00) [6]сенкс Ega23
сам пока писал, и не заметил, что бегина нету..
тема закрыта
SarDoX (2006-01-13 14:54:00) [7]2Ega23 : гм. ошибку и сейчас выдает
Ega23 (2006-01-13 14:51:00) [8]Примечание к [12]
Конечно же
procedure TForm1.abc();
begin
button1.caption:='1'; //Теперь НЕ выдаст ошибку, что нужно писать
end;
Reindeer Moss Eater (2006-01-13 14:50:00) [9]ты хотел сказать, что там и нельзя НЕ указывать form1?
<Цитата>
Не только хотел, но и сказал.
SarDoX (2006-01-13 14:49:00) [10]ты хотел сказать, что там и нельзя НЕ указывать form1?
Ega23 (2006-01-13 14:49:00) [11]
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure abc();
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.abc();
button1.caption:='1'; // Теперь НЕвыдаст ошибку, что нужно писать form1.button1.caption:='1';
begin
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
abc();
end;
Reindeer Moss Eater (2006-01-13 14:46:00) [12]как сделать так, что б внутри abc() не надо было бы укзывать form1
А там и нельзя указывать form1.
Потому что в общем случае ссылка на экземпляр класса TForm1 не обязана быть в переменной form1.
SarDoX (2006-01-13 14:44:00) [13]что т не понял...
например
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure abc();
button1.caption:='1'; //выдаст ошибку, что нужно писать form1.button1.caption:='1';
begin
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
abc();
end;
-----------
как сделать так, что б внутри abc() не надо было бы укзывать form1
Ega23 (2006-01-13 09:17:00) [14]
> Прямо-таки и формы ?
на [0] посмотри.
msguns (2006-01-13 09:15:00) [15]Прямо-таки и формы ?
;)
Ega23 (2006-01-13 09:11:00) [16]
> Прямо-таки и Private ?
>
Прямо-таки как метод класса формы. А private он или public - дело аффтара.
msguns (2006-01-13 09:05:00) [17]>Ega23 © (13.01.06 08:53) [4]
>Опиши (помести) эту процедуру (функцию) в секции Private класса формы
Прямо-таки и Private ?
Ega23 (2006-01-13 08:53:00) [18]
> Опиши (помести) эту процедуру (функцию) в секции Private
>
Опиши (помести) эту процедуру (функцию) в секции Private класса формы
Alarm (2006-01-12 21:25:00) [19]Опиши (помести) эту процедуру (функцию) в секции Private
vrem (2006-01-12 21:14:00) [20]with в справке почитать