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

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

одна форма и два юнита. [D5, WinXP]


appendix ©   (2004-09-06 18:05:00) 

прошу прощения за глупый вопрос.
Есть одна  форма, и Unit1 и Unit2.
Чтобы обратиться к StringGrid из Unit2 приходится писать
form1.stringGrid1.cells[0,0]:='dddd';

Но ведь как то делают чтоб не надо было писать form1. вначале?
Пробовал Uses unit1. не помогло.


Defunct   (2004-09-07 02:47:00) [1]

> что значит AV?

AV - Access Violation (наиболее частая и трудно излечимая ошибка в Run Time, появляется при обращении к несуществующей области памяти, несуществующему объекту и т.п.)


Jus   (2004-09-07 01:34:00) [2]


> Иначе только запутаетесь и в итоге когда-то получите AV

что значит AV?


Jus   (2004-09-07 01:27:00) [3]


> AV

что значит?


Defunct   (2004-09-06 21:53:00) [4]

Лучше всего не лазить по ресурсам другого модуля, да к тому же еще и глобальным. Раз StringGrid описан в TForm1, то в нем с ним и работайте. Иначе только запутаетесь и в итоге когда-то получите AV. Старайтесь не создавать глобальных переменных. Чаще используйте фреймы.


Семен Сорокин   (2004-09-06 18:17:00) [5]

и еще так:
4.
function StrinGrid1: TStringGrid;
begin
Result := Form1.StringGrid1
end;

StringGrid1...

ЗЫ. Надеюсь хватит? :)


Семен Сорокин   (2004-09-06 18:15:00) [6]

можно еще так:
3.
var
 StringGrid1 : TStringGrid;

StringGrid1 := Form1.StringGrid1;
StringGrid1...
:))


RomeoGolf   (2004-09-06 18:13:00) [7]

Ну вот, уже написали... То же самое начал... А вообще-то

> Но ведь как то делают чтоб не надо было писать form1. вначале?

так не делают. Если нечто является полем класса, скажем, методом формы, то класс указывать надо, IMHO, по-любому, хотя бы через With


Anton_K   (2004-09-06 18:11:00) [8]

Не подумайте, что у меня глюки. Просто мы с Семёном Сорокиным ответили одновременно :)


Семен Сорокин   (2004-09-06 18:09:00) [9]


> Но ведь как то делают чтоб не надо было писать form1. вначале?

:)) орех
наспех пришло 2 варианта:
1. либо написать
with Form1 do begin
StringGrid1....
end;
2. либо передать параметром:
function Cool(StringGrid1: TStringGrid): boolean;
begin
StringGrid1....
end;


Anton_K   (2004-09-06 18:09:00) [10]

А кто так делает?

Ну, можно сделать так:

with form1 do begin
 stringGrid1.cells[0,0]:='dddd';
end;


Наверх

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