Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.11.26;
Скачать: [xml.tar.bz2];

Вниз

Предача 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.047 c
15-1162621229
ifbegin
2006-11-04 09:20
2006.11.26
Delphi 5. Руководство разработчка


2-1163056398
_ttl
2006-11-09 10:13
2006.11.26
TMemo


15-1163079933
help_me)
2006-11-09 16:45
2006.11.26
Microsoft SQL server 2000


15-1163011947
AntiUser
2006-11-08 21:52
2006.11.26
Самые опасные порты?


2-1162970915
malefik
2006-11-08 10:28
2006.11.26
Tthread и с чем его едят?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский