Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.04.2008, 17:13   #11
Airou
Форумчанин
 
Регистрация: 09.04.2008
Сообщений: 151
По умолчанию

Вобщем присвоение N:='text' идет раньше чем Label1.Caption:=Unit1.N

Видимо программа почему то не видит этой переменной.

Цитата:
Кажется, нужно не ShowModal, а просто Show
Разве это как то повлияет на мою проблему?)

Последний раз редактировалось Airou; 23.04.2008 в 17:23.
Airou вне форума Ответить с цитированием
Старый 23.04.2008, 17:29   #12
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Поставьте бряку на строку
Label1.Caption:=Unit1.N
и убедитесь, что N='', а не "text"...
Потом поставьте бряку на то место в первой юните, где вы создаете вторую форму и убедитесь, что и там N никакого значения не присвоено, увы.
Перепроверил несколько раз, но так и не удалось добиться пустого капшена у лэйбла, как ни моделировал. Вариант только один - N действительно пустая...
Так что ишите ошибку, не надо зря клеветать на Дельфи...
mihali4 вне форума Ответить с цитированием
Старый 23.04.2008, 17:50   #13
Airou
Форумчанин
 
Регистрация: 09.04.2008
Сообщений: 151
По умолчанию

Решил попробывать сделать тоже самое, но в новом проекте... ну и конечно там все получилось.... что к чему).

Буду разбираться сидеть.

PS Все нашел я загвоздку... у меня в паблике непонятно зачем висело:
public
N: String;

Последний раз редактировалось Airou; 23.04.2008 в 18:03.
Airou вне форума Ответить с цитированием
Старый 23.04.2008, 20:35   #14
Airou
Форумчанин
 
Регистрация: 09.04.2008
Сообщений: 151
По умолчанию

А если переменная обьявлена локально то уже нельзя получить к ней доступ из 2ой формы? (Ибо у меня не получается.)

Код:
procedure TForm2.TRichEditContextPopup(Sender: TObject; MousePos: TPoint;
  var Handled: Boolean);
  var RESender: TRichEdit;
begin
  PopupMenu1.Popup(TRichEdit(Sender).Left+MousePos.X,TRichEdit(Sender).Top+MousePos.Y);
  RESender:=TRichEdit(Sender);
end;
Код:
procedure TForm4.FormShow(Sender: TObject);
begin
 MaskEdit1.Text:=IntToStr(RESender.left);
end;
Обьясню что я хочу этим кодом:
Чтобы при открытии формы 4, я помнил объект с которого перешел на эту форму, чтобы затем присвоить MaskEdit некоторые из свойств того компонента.

Второй кусок работает если обьявить RESender как глобальную переменную. + пробовал варианты наподобии
Код:
procedure TForm4.FormShow(Sender: TObject);
begin
 MaskEdit1.Text:=IntToStr(Form2.RESender.left);
end;
но компилятор говорит что не находит такого объекта.... почему?
Airou вне форума Ответить с цитированием
Старый 23.04.2008, 22:04   #15
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
компилятор говорит что не находит такого объекта.... почему?
Так у вас и в Form2 никто этого объекта не увидит. Только внутри процедуры procedure TForm2.TRichEditContextPopup.
Вы почитайте, почитайте про видимость переменных... Весьма пользительно, знаете ли...
mihali4 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Связь между формами KiberJo Общие вопросы Delphi 20 22.07.2008 21:40
Обмен данными между формами Maks1978 Общие вопросы C/C++ 3 22.07.2008 15:35
Общение между формами kate4ka Общие вопросы Delphi 2 10.03.2008 22:49
Обмен данными по сети Altera Работа с сетью в Delphi 2 23.02.2008 00:13
обмен данными с сервером BioS Работа с сетью в Delphi 15 12.02.2007 15:32