![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Предача vcl контроллов в процедуру
stdctrls © (2006-11-06 12:49:00)В отдельном юните имею некую процедуру, которая допустим обновляет содержимое контролла в главном окне программы. (это для примера)
procedure set_mynew_edit_text(MyEdit: TEdit; Str: string);
begin
MyEdit.Text := MyEdit.Text + Str;
end;
Пытаюсь вызвать - выскакивает AV. Вопрос: я совсем идиот? Передавать элементы таким образом нельзя?
Ketmar (2006-11-06 22:10:00) [1]>[13] RASkov 6-Nov-2006, 22:09
>[8] разжевали:)
а что тут разжёвывать? надмозги принципиально не учат язык, на котором пишут. тут жуй, не жуй... один фиг смысла никакого.
RASkov (2006-11-06 22:09:00) [2][8] разжевали:)
Ketmar (2006-11-06 22:08:00) [3]только это не "передача по ссылке". а нормальная передача указателя.
RASkov (2006-11-06 22:05:00) [4]Ну т.е. в
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:02:00) [5]>[9] RASkov 6-Nov-2006, 21:05
>Классы передаются по ссылке.
не вводи в заблуждение. класс являетсяссылкой. а не передаётся по ссылке. разница огромна.
RASkov (2006-11-06 21:05:00) [6]> [8] stdctrls (06.11.06 21:02)
Классы передаются по ссылке.
stdctrls (2006-11-06 21:02:00) [7]И ещё такой вопрос, а почему его например не как var передают в процедуру? Искал в гугле и увидел, где передают как var.
RASkov (2006-11-06 20:52:00) [8]
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 есть на форме.
Leonid Troyanovsky (2006-11-06 13:59:00) [9]
> Riply © (06.11.06 13:42) [5]
> А почему "По крайней нужде" ? Что в этом "не совсем хорошо"
Повседневные нужды вполне удовлетворяет объектная модель.
Без регулярных же функций бывает трудно обойтись, например,
при вызове некоторых win32 - Enum* & etc.
--
Regards, LVT.
Riply (2006-11-06 13:42:00) [10]> [4] Leonid Troyanovsky © (06.11.06 13:28)
А почему "По крайней нужде" ? Что в этом "не совсем хорошо" ?
Leonid Troyanovsky (2006-11-06 13:28:00) [11]
> stdctrls (06.11.06 13:21) [2]
> можно делать, так рекомендуется?
По крайней нужде.
--
Regards, LVT.
DrPass (2006-11-06 13:24:00) [12]
> так вообще можно делать, так рекомендуется?
Делать - можно. Рекомендуется или нет - зависит от того, как ты это используешь. В принципе, ничего крамольного
stdctrls (2006-11-06 13:21:00) [13]Я разобрался у мебя с ошибкой. Но вопрос остается: так вообще можно делать, так рекомендуется?
Leonid Troyanovsky (2006-11-06 13:20:00) [14]
> stdctrls (06.11.06 12:49)
> Пытаюсь вызвать - выскакивает AV. Вопрос: я совсем идиот?
MyEdit не создан (это для примера).
--
Regards, LVT.