Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 13.08.2010, 23:14
mbv mbv вне форума
Прохожий
 
Регистрация: 28.10.2008
Сообщения: 20
Репутация: 10
По умолчанию Передача данных в другую форму

Как передать даные в другую форму программы
Ответить с цитированием
  #2  
Старый 13.08.2010, 23:27
gebs gebs вне форума
Прохожий
 
Регистрация: 03.08.2010
Сообщения: 48
Репутация: 10
По умолчанию

Подробнее...
Ответить с цитированием
  #3  
Старый 13.08.2010, 23:32
mbv mbv вне форума
Прохожий
 
Регистрация: 28.10.2008
Сообщения: 20
Репутация: 10
По умолчанию

у меня есть несколько цифр в переменых мне надо с ними работать в другой форме
Ответить с цитированием
  #4  
Старый 14.08.2010, 00:04
gebs gebs вне форума
Прохожий
 
Регистрация: 03.08.2010
Сообщения: 48
Репутация: 10
По умолчанию

Цитата:
Сообщение от mbv
у меня есть несколько цифр в переменых мне надо с ними работать в другой форме
Если они у Вас объявлены в форме 1 в качестве переменных, то в форме 2 в Uses пропишите Unit1;

implementation

Uses Unit1;

{$R *.dfm}

Последний раз редактировалось gebs, 14.08.2010 в 00:06.
Ответить с цитированием
  #5  
Старый 14.08.2010, 00:07
mbv mbv вне форума
Прохожий
 
Регистрация: 28.10.2008
Сообщения: 20
Репутация: 10
По умолчанию

и что дальше
Ответить с цитированием
  #6  
Старый 14.08.2010, 00:14
gebs gebs вне форума
Прохожий
 
Регистрация: 03.08.2010
Сообщения: 48
Репутация: 10
По умолчанию

Цитата:
Сообщение от mbv
и что дальше
Ctrl+F9 он Вам предложит связать 2 формы, говорите да, после этого переменные формы 1 станут доступны в форме 2, вроде так...
Ответить с цитированием
  #7  
Старый 14.08.2010, 00:16
mbv mbv вне форума
Прохожий
 
Регистрация: 28.10.2008
Сообщения: 20
Репутация: 10
По умолчанию

покаж пример переменые не переходят
Ответить с цитированием
  #8  
Старый 14.08.2010, 00:44
gebs gebs вне форума
Прохожий
 
Регистрация: 03.08.2010
Сообщения: 48
Репутация: 10
По умолчанию

http://ifolder.ru/18889097
Ответить с цитированием
  #9  
Старый 14.08.2010, 11:05
mbv mbv вне форума
Прохожий
 
Регистрация: 28.10.2008
Сообщения: 20
Репутация: 10
По умолчанию

так и я могу. Мне надо чтобы я с перемеными первой формы мог работать в форме второй
Ответить с цитированием
  #10  
Старый 14.08.2010, 16:05
gebs gebs вне форума
Прохожий
 
Регистрация: 03.08.2010
Сообщения: 48
Репутация: 10
По умолчанию

Вы хоть в код загляните. В частности Uses
http://alfile.ifolder.ru/18893029 дописал пару строк

Форма 1
Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    Label1: TLabel;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  S: string;

implementation

uses Unit2;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
s:='Привет';
   Form2.Show;
   Form2.Label1.Caption:=s;
   Form1.Label1.Caption:=i;
end;

end.

Форма 2
Код:
unit Unit2;

interface

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

type
  TForm2 = class(TForm)
    Label1: TLabel;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2;
  i: string;

implementation
Uses Unit1;
{$R *.dfm}

procedure TForm2.Button1Click(Sender: TObject);
begin
i:='Привет';
end;

end.

Откуда по вашему переменная i взялась в первой форме?

Последний раз редактировалось gebs, 14.08.2010 в 16:14.
Ответить с цитированием
  #11  
Старый 14.08.2010, 16:19
mbv mbv вне форума
Прохожий
 
Регистрация: 28.10.2008
Сообщения: 20
Репутация: 10
По умолчанию

тут http://ifolder.ru/18889097
Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    Label1: TLabel;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  S: string;

implementation

uses Unit2;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
s:='Привет';
   Form2.Show;
   Form2.Label1.Caption:=s;
end;

end.
Код:
unit Unit2;

interface

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

type
  TForm2 = class(TForm)
    Label1: TLabel;

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2;

implementation
Uses Unit1;
{$R *.dfm}

end.
сразу бы написал

Все равно спс

Последний раз редактировалось mbv, 14.08.2010 в 16:21.
Ответить с цитированием
  #12  
Старый 15.08.2010, 19:24
roamer roamer вне форума
Активный
 
Регистрация: 15.04.2009
Сообщения: 369
Репутация: 93
По умолчанию

Когда в приложении много форм и держать их постоянно открытыми накладно, то как вариант :
Код:
================================
program Project1;
uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1},
  Unit2 in 'Unit2.pas' {Form2};

{$R *.res}

begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  //Application.CreateForm(TForm2, Form2); //Форма НЕ создается при запуске приложения
  Application.Run;
end.
================================

================================
unit Unit1;
interface
uses
  Unit2,
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
  public
    //---------------------------------------------------
    //свойства, которые должны быть обработаны в другой форме
    i1 : integer; 
    i2 : integer;
    //---------------------------------------------------
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage('До вызова: '+'i1='+IntToStr(i1)+'  i2='+IntToStr(i2));

  Unit2.Form2_Execute(i1, i2); //Вызываем форму и передаем ей свойства (переменные) "нашей" формы

  ShowMessage('После вызова: '+'i1='+IntToStr(i1)+'  i2='+IntToStr(i2));
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  i1 := 100;
  i2 := 2;
end;

end.
================================


================================
unit Unit2;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Spin;

type
  TForm2 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    SpinEdit_i1: TSpinEdit; //здесь меняем i1 (из формы Form1)
    SpinEdit_i2: TSpinEdit; //здесь меняем i2 (из формы Form1)
    Label1: TLabel;
    Label2: TLabel;
  private
  public
    function Execute(Var i1, i2 : integer) : boolean;
  end;

{
Эта форма вызывается эпизодически и объявление ее в качестве глобальной переменной не актуально
var
  Form2: TForm2;
}

function Form2_Execute(Var i1, i2 : integer) : boolean;

implementation

{$R *.dfm}

function Form2_Execute(Var i1, i2 : integer) : boolean;
Var
  FormX : TForm2;
begin
  Result:=false;
  FormX:=TForm2.Create(nil);
  TRY
    Result:=FormX.Execute(i1,i2);
  FINALLY
    FreeAndNil(FormX);
  END;
end;


function TForm2.Execute(Var i1, i2 : integer) : boolean;
begin
  Result:=false;
  SpinEdit_i1.Value:=i1; //Получили i1 из Form1
  SpinEdit_i2.Value:=i2; //Получили i2 из Form1
  if ShowModal=mrOk then begin
     Result:=true;
     i1:=SpinEdit_i1.Value; //вернули i1 в Form1
     i2:=SpinEdit_i2.Value; //вернули i2 в Form1
  end;
end;

end.
================================

Последний раз редактировалось roamer, 15.08.2010 в 19:30.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 23:18.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter