Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Предача 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.


Наверх

Титульная страница Поиск, карта сайта Написать письмо