Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.11.26;
Скачать: CL | DM;

Вниз

Предача vcl контроллов в процедуру   Найти похожие ветки 

 
stdctrls   (2006-11-06 12:49) [0]

В отдельном юните имею некую процедуру, которая допустим обновляет содержимое контролла в главном окне программы. (это для примера)

procedure set_mynew_edit_text(MyEdit: TEdit; Str: string);
begin
 MyEdit.Text := MyEdit.Text + Str;
end;


Пытаюсь вызвать - выскакивает AV. Вопрос: я совсем идиот? Передавать элементы таким образом нельзя?


 
Leonid Troyanovsky ©   (2006-11-06 13:20) [1]


> stdctrls   (06.11.06 12:49)  

> Пытаюсь вызвать - выскакивает AV. Вопрос: я совсем идиот?


MyEdit не создан (это для примера).

--
Regards, LVT.


 
stdctrls   (2006-11-06 13:21) [2]

Я разобрался у мебя с ошибкой. Но вопрос остается: так вообще можно делать, так рекомендуется?


 
DrPass ©   (2006-11-06 13:24) [3]


> так вообще можно делать, так рекомендуется?

Делать - можно. Рекомендуется или нет - зависит от того, как ты это используешь. В принципе, ничего крамольного


 
Leonid Troyanovsky ©   (2006-11-06 13:28) [4]


> stdctrls   (06.11.06 13:21) [2]

> можно делать, так рекомендуется?


По крайней нужде.

--
Regards, LVT.


 
Riply ©   (2006-11-06 13:42) [5]

> [4] Leonid Troyanovsky ©   (06.11.06 13:28)
А почему "По крайней нужде" ? Что в этом "не совсем хорошо" ?


 
Leonid Troyanovsky ©   (2006-11-06 13:59) [6]


> Riply ©   (06.11.06 13:42) [5]

> А почему "По крайней нужде" ? Что в этом "не совсем хорошо"


Повседневные нужды вполне удовлетворяет объектная модель.

Без регулярных же функций бывает трудно обойтись, например,
при вызове некоторых win32 - Enum* & etc.

--
Regards, LVT.


 
RASkov   (2006-11-06 20:52) [7]

procedure EditTextAdd(Ed: Tedit; Str: String);
begin
 Ed.Text:=Ed.Text+" "+Str;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
 EditTextAdd(Edit1, "FbCdАбВг");
end;


Никаких AV - все нормально, с учетом, что Edit1 есть на форме.


 
stdctrls   (2006-11-06 21:02) [8]

И ещё такой вопрос, а почему его например не как var передают в процедуру? Искал в гугле и увидел, где передают как var.


 
RASkov   (2006-11-06 21:05) [9]

> [8] stdctrls   (06.11.06 21:02)

Классы передаются по ссылке.


 
Ketmar ©   (2006-11-06 22:02) [10]

>[9] RASkov 6-Nov-2006, 21:05
>Классы передаются по ссылке.
не вводи в заблуждение. класс является ссылкой. а не передаётся по ссылке. разница огромна.


 
RASkov   (2006-11-06 22:05) [11]

Ну т.е. в
procedure EditTextAdd(Ed: Tedit; Str: String);
begin
Ed.Text:=Ed.Text+" "+Str;
end;

Будет указатель на

procedure TForm1.Button2Click(Sender: TObject);
begin
EditTextAdd(Edit1, "FbCdАбВг");
end;


 
Ketmar ©   (2006-11-06 22:08) [12]

только это не "передача по ссылке". а нормальная передача указателя.


 
RASkov   (2006-11-06 22:09) [13]

[8] разжевали:)


 
Ketmar ©   (2006-11-06 22:10) [14]

>[13] RASkov 6-Nov-2006, 22:09
>[8] разжевали:)
а что тут разжёвывать? надмозги принципиально не учат язык, на котором пишут. тут жуй, не жуй... один фиг смысла никакого.



Страницы: 1 вся ветка

Текущий архив: 2006.11.26;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.042 c
2-1163174164
Fostr
2006-11-10 18:56
2006.11.26
Syntax error in query. Incomplete query clause.


15-1162916261
*Стажер*
2006-11-07 19:17
2006.11.26
Компьютер программиста, какой он?


1-1160937815
Kolan
2006-10-15 22:43
2006.11.26
Дополнительный поток и Exception в главном. Что будет?


1-1160577294
Krants
2006-10-11 18:34
2006.11.26
Узнать длину форматированого текста


2-1162882433
zdm
2006-11-07 09:53
2006.11.26
XPManifest