Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



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


4-1153121367
Чапаев
2006-07-17 11:29
2006.11.26
Буква загрузочного тома


15-1162673233
ProgRAMmer Dimonych
2006-11-04 23:47
2006.11.26
Дайте адреса дл FTP-серверов


15-1162591093
lookin
2006-11-04 00:58
2006.11.26
и в Скайп


15-1162887830
Игорь000
2006-11-07 11:23
2006.11.26
Помогите!




   Наверх