Главная страница
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.038 c
1-1160920315
guav
2006-10-15 17:51
2006.11.26
UI: Выделение с прокруткой.


15-1162870132
Slider007
2006-11-07 06:28
2006.11.26
С днем рождения ! 4 ноября


2-1162871719
Dimon20
2006-11-07 06:55
2006.11.26
Поиск по таблице


2-1163023174
V.I.P
2006-11-09 00:59
2006.11.26
сложение строк БД (ОЧЕНЬ СРОЧНО нужна помощь)


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