Главная страница
    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-1162969991
WhiteBarin
2006-11-08 10:13
2006.11.26
Помогите найти компонент как BalloonHint для трея?


2-1163003265
surmach
2006-11-08 19:27
2006.11.26
Базы данных


15-1162956269
Slider007
2006-11-08 06:24
2006.11.26
С днем рождения ! 8 ноября


2-1163068156
pkm
2006-11-09 13:29
2006.11.26
Работа с мемо.


15-1162964751
DelphiN!
2006-11-08 08:45
2006.11.26
Ктонибудь видел как машина катиться в горку?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский