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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.03.2011, 21:12   #1
Kotlyar562
Пользователь
 
Аватар для Kotlyar562
 
Регистрация: 03.02.2010
Сообщений: 46
По умолчанию Две формы в Delphi

Есть две формы FVibor и FTest. Причем FTest создается при нажатии на кнопку формы FVibor.
Код:
tmp:string;
...
var Forma:TForm;
begin
  if not Assigned(FTest) then
    Forma:=TFTest.Create(Self);
  Forma.Show;

  FTest.label1.Caption:=tmp;
end;
При присваивании label1.Caption выдает ошибку. В чем может быть причина?
Ошибка не при компиляции, а при запуске программы и нажатии на кнопке.

Последний раз редактировалось Kotlyar562; 05.03.2011 в 21:18.
Kotlyar562 вне форума Ответить с цитированием
Старый 05.03.2011, 21:18   #2
maxflint
работаю за еду
Пользователь
 
Аватар для maxflint
 
Регистрация: 31.10.2009
Сообщений: 64
По умолчанию

вот этой строкой
Forma:=TFTest.Create(Self);
Ты же создал форму Forma...


Forma.label1.Caption:=tmp;

скорей всего так
Вотан ждёт меня в своих чертогах, на свой вечный пир!
maxflint вне форума Ответить с цитированием
Старый 05.03.2011, 21:21   #3
Vaigard
Delphi and (not C)
Форумчанин
 
Аватар для Vaigard
 
Регистрация: 04.12.2010
Сообщений: 117
По умолчанию

Во-первых, это может быть, если нет значения у tmp, потому что твой код более, чем скромный, и лично я по нему определил немного. Еще это может быть из-за того, что ты какую-либо форму не добавил в uses у данной. И вообще, что это за функция?
<--Жми на весы
Vaigard вне форума Ответить с цитированием
Старый 05.03.2011, 21:24   #4
maxflint
работаю за еду
Пользователь
 
Аватар для maxflint
 
Регистрация: 31.10.2009
Сообщений: 64
По умолчанию

Цитата:
Сообщение от Vaigard Посмотреть сообщение
твой код более, чем скромный, и лично я по нему определил немного.
на самом деле,
выкладывай весь текст модуля
Вотан ждёт меня в своих чертогах, на свой вечный пир!
maxflint вне форума Ответить с цитированием
Старый 05.03.2011, 21:34   #5
Kotlyar562
Пользователь
 
Аватар для Kotlyar562
 
Регистрация: 03.02.2010
Сообщений: 46
По умолчанию

Код:
unit UVibor;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls;

type
  TFVibor = class(TForm)
    Label1: TLabel;
    edOut: TEdit;
    btP: TButton;
    Label2: TLabel;
    btRun: TButton;
    lbTem: TListBox;
    procedure btRunClick(Sender: TObject);
    procedure lbTemClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  FVibor: TFVibor;
  tmp: string;

implementation

uses UEnter, UTest;

{$R *.dfm}

procedure TFVibor.btRunClick(Sender: TObject);
var Forma:TForm;
begin 
  tmp:='Название';
  if not Assigned(FTest) then
    Forma:=TFTest.Create(Self);
  Forma.Show;
 FTest.lbVopros.Caption:=tmp;
end;
Заметил, что при обращении к свойствам формы FTest (которая создается по клику) все норм, а вот при обращении к свойствам компонент, которые на ней находятся выдает ошибку.

Тмп не пустой и ссылки на модули есть 100%.
Хотя нет, ошибка в любом случае(( Из-за чего она может быть??

Последний раз редактировалось Kotlyar562; 05.03.2011 в 21:45.
Kotlyar562 вне форума Ответить с цитированием
Старый 05.03.2011, 21:47   #6
VadikV
Форумчанин
 
Аватар для VadikV
 
Регистрация: 08.01.2011
Сообщений: 226
По умолчанию

Тебе уже ответили выше. Вот правильный код:
Forma.lbVopros.Caption:=tmp;
icq 223-630-454
e-mail vysotskiy@list.ru
сайт http://www.big-library.net/
VadikV вне форума Ответить с цитированием
Старый 05.03.2011, 21:52   #7
Kotlyar562
Пользователь
 
Аватар для Kotlyar562
 
Регистрация: 03.02.2010
Сообщений: 46
По умолчанию

Цитата:
Тебе уже ответили выше. Вот правильный код:
Forma.lbVopros.Caption:=tmp;
Как я понял, через переменную Forma можно обращаться только к свойствам созданной формы. Компоненты она почему-то "не видит".
[Error] UVibor.pas(50): Undeclared identifier: 'lbVopros'
Kotlyar562 вне форума Ответить с цитированием
Старый 05.03.2011, 22:29   #8
maxflint
работаю за еду
Пользователь
 
Аватар для maxflint
 
Регистрация: 31.10.2009
Сообщений: 64
По умолчанию

Можно, вот посмотри



maxflint,
У Вас Delphi заражена вирусом "Индюк".
Рекомендую немедленно приступить к лечению!
Вам сюда - Delphi-“вирус” проверьте свою установленную Delphi!
Вложения
Тип файла: rar Projects_БЕЗ_ВИРУСА.rar (167.9 Кб, 6 просмотров)
Вотан ждёт меня в своих чертогах, на свой вечный пир!

Последний раз редактировалось Serge_Bliznykov; 06.03.2011 в 11:26.
maxflint вне форума Ответить с цитированием
Старый 05.03.2011, 22:44   #9
Kotlyar562
Пользователь
 
Аватар для Kotlyar562
 
Регистрация: 03.02.2010
Сообщений: 46
По умолчанию

maxflint, спасибо, понял. Я Forma объявлял типа TForm, а надо было TFTest. Поэтому она и не видела компонентов формы.
Спасибо.
Kotlyar562 вне форума Ответить с цитированием
Старый 05.03.2011, 22:52   #10
maxflint
работаю за еду
Пользователь
 
Аватар для maxflint
 
Регистрация: 31.10.2009
Сообщений: 64
Радость

Цитата:
Сообщение от Kotlyar562 Посмотреть сообщение
maxflint, спасибо, понял. Я Forma объявлял типа TForm, а надо было TFTest. Поэтому она и не видела компонентов формы.
Спасибо.
Отлично, молодец
Вотан ждёт меня в своих чертогах, на свой вечный пир!
maxflint вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Две формы. Перекрывание. Alex Cones Общие вопросы Delphi 4 30.05.2010 14:33
Вопрос про две формы... doniyor Общие вопросы Delphi 5 13.08.2009 17:18
две формы StakanpORTvejna Общие вопросы Delphi 4 04.05.2009 19:32
две формы в одном приложении.. AXEnic Общие вопросы Delphi 6 22.04.2009 16:52
две формы Form1 и Form2 Михаил Юрьевич Общие вопросы Delphi 11 02.03.2008 19:38