|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
25.10.2007, 13:52 | #1 |
Пользователь
Регистрация: 20.09.2007
Сообщений: 11
|
ошибся с областью видимости ?
ребята, есть две формы: Form8VedSelect и Form8VedQReport.
форма Form8VedSelect создана динамически: var Child: TForm8VedSelect; begin Child:=TForm8VedSelect.Create(Appli cation); Child.FormStyle:=fsMdiChild; end; форма Form8VedQReport - "Autocreate" метод первой Form8VedSelect формы вызывает изменяет одно из свойств второй формы, и это приводит к выполнению метода QRLabel3Print второй формы. Так из этого метода переменная Form8VedSelect равна nil. И никак не удаётся получить значение её поля. Где я ошибся ? |
25.10.2007, 14:14 | #2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Ну код работы с переменой и ее описание в студию
I'm learning to live...
|
25.10.2007, 14:24 | #3 |
Пользователь
Регистрация: 20.09.2007
Сообщений: 11
|
простите, что ?
|
25.10.2007, 14:43 | #4 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Ну как ты описал ту переменку и как к ней обращаешся...
I'm learning to live...
|
25.10.2007, 15:00 | #5 |
Пользователь
Регистрация: 20.09.2007
Сообщений: 11
|
в
unit Vedomost8Select; type TForm8VedSelect = class(TForm) ///... public { Public declarations } ProizvID: Integer; ProizvName: String; ProizvPercent: currency; mePercent: String; end; var Form8VedSelect: TForm8VedSelect; в Vedomost8QReport написано: var Form8VedQReport: TForm8VedQReport; implementation uses MainForm, Vedomost8Select; procedure TForm8VedQReport.QuickRep1BeforePri nt(Sender: TCustomQuickRep; var PrintReport: Boolean); begin QRLabelProizv.Caption := ''; QRLabelProizv.Caption := Form8VedSelect.ProizvName; // здесь ругается access violationi at address in module ... QRLabelProizv.Refresh; QRLabel3.Caption:=''; QRLabel3.Caption:='Процент: ' + Form8VedSelect.mePercent; QRLabel3.Refresh; end; |
25.10.2007, 15:12 | #6 | |
Форумчанин
Регистрация: 15.10.2007
Сообщений: 147
|
Цитата:
Может писать так? Код:
Последний раз редактировалось Maslan; 25.10.2007 в 15:25. |
|
25.10.2007, 16:02 | #7 |
Пользователь
Регистрация: 20.09.2007
Сообщений: 11
|
ещё один глюк, наверное связанный с тем же:
type TForm8VedSelect = class(TForm) public { Public declarations } cmonth, cMonthMin : Integer; // ... // ---------------------------------------- procedure TForm8VedSelect.btnPrintClick(Sende r: TObject); begin cmonth := cbMonth.ItemIndex + cMonthMin; // тоже ничего не видит ни cmonth ни cbMonth // если этот метод из другой формы вызывается, а если из этой же, то видит // ... // ---------------------------------------- Последний раз редактировалось Иванчо; 25.10.2007 в 16:06. |
25.10.2007, 16:05 | #8 |
Форумчанин
Регистрация: 15.10.2007
Сообщений: 147
|
Дай полный исходник, плз...
|
25.10.2007, 16:35 | #9 |
Пользователь
Регистрация: 20.09.2007
Сообщений: 11
|
Ага. Установил для формы Form8VedSelect Autocreate.
Так нормально заработало. А ещё, создавалась- то форма: Child := TForm8VedSelect.Create(Application) и поэтому имени Form8VedSelect в помине небыло. А теперь если хочу из другой формы её трогать, то нужно глобальную переменную инициализировать ( := Create(Application) ) Спасибо, ребята. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как сделать чтобы новые строки всегда были в области видимости? | neugadal | Microsoft Office Excel | 9 | 06.09.2008 12:23 |
проблемы с областью видимости переменной | titan-prog | Помощь студентам | 2 | 11.07.2008 18:58 |
область видимости переменных. С++ | Prestigio | Помощь студентам | 10 | 07.07.2008 15:55 |
Не разберу где ошибся, по моему много напутал | Forro | Паскаль, Turbo Pascal, PascalABC.NET | 6 | 14.01.2008 14:19 |
область видимости ? | artem779 | Общие вопросы Delphi | 3 | 14.09.2007 09:34 |