Форум: "Начинающим";
Текущий архив: 2006.01.29;
Скачать: [xml.tar.bz2];
Внизпроцедуры в делфи Найти похожие ветки
← →
SarDoX (2006-01-12 20:08) [0]ростенький вопросик.
создаю процедуру.
в ней идет обращение к какому нить компоненту.
но без "form1." перед названием компоненты работать не хочет, т.к не може найти, скажем, label1(приходится писать form1.label1.....)
что где дописать надо?
← →
Зм1й © (2006-01-12 20:20) [1]Если процедура не является методом класса формы, то "Form1" придётся дописывать всегда
← →
vrem (2006-01-12 21:14) [2]with в справке почитать
← →
Alarm © (2006-01-12 21:25) [3]Опиши (помести) эту процедуру (функцию) в секции Private
← →
Ega23 © (2006-01-13 08:53) [4]
> Опиши (помести) эту процедуру (функцию) в секции Private
>
Опиши (помести) эту процедуру (функцию) в секции Private класса формы
← →
msguns © (2006-01-13 09:05) [5]>Ega23 © (13.01.06 08:53) [4]
>Опиши (помести) эту процедуру (функцию) в секции Private класса формы
Прямо-таки и Private ?
← →
Ega23 © (2006-01-13 09:11) [6]
> Прямо-таки и Private ?
>
Прямо-таки как метод класса формы. А private он или public - дело аффтара.
← →
msguns © (2006-01-13 09:15) [7]Прямо-таки и формы ?
;)
← →
Ega23 © (2006-01-13 09:17) [8]
> Прямо-таки и формы ?
на [0] посмотри.
← →
SarDoX (2006-01-13 14:44) [9]что т не понял...
например
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
← →
Reindeer Moss Eater © (2006-01-13 14:46) [10]как сделать так, что б внутри abc() не надо было бы укзывать form1
А там и нельзя указывать form1.
Потому что в общем случае ссылка на экземпляр класса TForm1 не обязана быть в переменной form1.
← →
SarDoX (2006-01-13 14:49) [11]ты хотел сказать, что там и нельзя НЕ указывать form1?
← →
Ega23 © (2006-01-13 14:49) [12]
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:50) [13]ты хотел сказать, что там и нельзя НЕ указывать form1?
<Цитата>
Не только хотел, но и сказал.
← →
Ega23 © (2006-01-13 14:51) [14]Примечание к [12]
Конечно жеprocedure TForm1.abc();
begin
button1.caption:="1"; //Теперь НЕ выдаст ошибку, что нужно писать
end;
← →
SarDoX (2006-01-13 14:54) [15]2Ega23 : гм. ошибку и сейчас выдает
← →
SarDoX (2006-01-13 14:56) [16]сенкс Ega23
сам пока писал, и не заметил, что бегина нету..
тема закрыта
← →
Reindeer Moss Eater © (2006-01-13 14:56) [17]ты хотел сказать, что там и нельзя НЕ указывать 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;
← →
Ega23 © (2006-01-13 14:56) [18]
> 2Ega23 : гм. ошибку и сейчас выдает
Какую ошибку?
Код - в студию!
← →
SarDoX (2006-01-13 15:11) [19]Ega23, я ж бегин забыл засунуть, выше написал об этом. все работает, сенкс :)
← →
Плохиш © (2006-01-13 15:41) [20]
> procedure CheckIt;
> begin
> //Создаем экземпляр
> with TForm1.create(Application) do Show;
> //Вызываем процедуру - не метод класса
> Abc; //Упс!!!!!!
Достаточно на кнопку кликнуть, эффект будет тот же ;-)
А автору можно только посоветовать разобраться с ООП хорошенько.
← →
SarDoX (2006-01-13 15:54) [21]разбираемся-с..
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.01.29;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.034 c