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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 04.03.2008, 15:21
denverus denverus вне форума
Прохожий
 
Регистрация: 31.01.2008
Сообщения: 16
Репутация: 10
Восклицание Глобальная переменная

А у меня не получается перенести переменную qw123 с 2ой на 3ю форму. Главное переменную видно во всех процедурах, а на другой форме нет. Она там будт видна толкьо когда я присвою ей значение сразу же при открытии формы, т.е. в самом конце перед "end."

var
Form2: TForm2;
qw:integer;

implementation

uses Unit1, Unit3;

{$R *.dfm}

procedure TForm2.k(Sender: TObject);
begin
form1.close;
end;

procedure TForm2.Button1Click(Sender: TObject);
begin
form1.show;
form2.close;
end;

procedure TForm2.Button2Click(Sender: TObject);
begin
form3.show ;
form2.close ;
end;

procedure TForm2.DBLookupComboBox1Click(Sender: TObject);
var
s11:integer;
begin

q:=DBLookupComboBox1.KeyValue;

Label4.Caption:=inttostr(qw123);
ADOQuery2.Close;
ADOQuery2.SQL.Clear;
ADoquery2.sql.text := 'select wbs_id, wbs_short_name, parent_wbs_id,wbs_name from PROJWBS';
ADoquery2.sql.add ('Where parent_wbs_id=:q order by wbs_short_name');
ADoquery2.parameters.paramByName('q').value := q;
ADOQuery2.ExecSQL;
ADoQuery2.open ;
s11:=Adoquery2.recordcount;
label2.Caption:=inttostr(s11);

end;

procedure TForm2.FormCreate(Sender: TObject);
var s:integer;
begin

s:=Adoquery1.recordcount;
//label2.Caption:=inttostr(s);
end;

procedure TForm2.BitBtn1Click(Sender: TObject);
begin
form1.show;
form2.close;
end;

procedure TForm2.BitBtn2Click(Sender: TObject);
begin
ShowMessage(inttostr(qw123));

form3.show ;
form2.close ;
end;

procedure TForm2.BitBtn3Click(Sender: TObject);
begin
form1.close;
end;

procedure TForm2.DBGrid1CellClick(Column: TColumn);
var
e,e1:string;
begin

e:=Adoquery2.FieldByName(Column.FieldName).asstrin g;
label5.Caption:=e;
e1:=DBGrid1.Columns[3].Field.asstring;

qw123:=strtoint(e1);
Label1.caption:=inttostr(qw123);
end;

//если тут присвоить к qw123 переменую она перенесётся на 3ю форму

end.
Ответить с цитированием
  #2  
Старый 04.03.2008, 15:26
Аватар для The Shadow
The Shadow The Shadow вне форума
Продвинутый
 
Регистрация: 11.06.2007
Адрес: Уфа, Россия
Сообщения: 793
Репутация: 35
По умолчанию

Добавь в uses Unit2.
И код нужно выделять тегом [code]
__________________
Что делать, когда сломался комп:
1. Если вы юзер - делать ноги.
2. Если ремонтник - делать деньги.
3. Если вы программист - делать вид, что так было задумано.
Ответить с цитированием
  #3  
Старый 04.03.2008, 15:59
denverus denverus вне форума
Прохожий
 
Регистрация: 31.01.2008
Сообщения: 16
Репутация: 10
По умолчанию

не может вставить, т.к. это и есть Unit2 ...
Ответить с цитированием
  #4  
Старый 04.03.2008, 17:44
Аватар для s0Creator
s0Creator s0Creator вне форума
Местный
 
Регистрация: 20.02.2008
Адрес: Московская область
Сообщения: 420
Репутация: 884
По умолчанию

Код:
   var
  Form3: TForm3;

implementation

uses Unit2;
Ответить с цитированием
  #5  
Старый 04.03.2008, 18:09
Аватар для KOOL
KOOL KOOL вне форума
Активный
 
Регистрация: 06.01.2008
Адрес: Рязань
Сообщения: 306
Версия Delphi: 2009
Репутация: 6150
По умолчанию

объяви переменную как член класса TForm2:
Код:
TForm2 = class(TForm)
...
  public
    qw123 : integer;
...
Ответить с цитированием
  #6  
Старый 04.03.2008, 19:06
denverus denverus вне форума
Прохожий
 
Регистрация: 31.01.2008
Сообщения: 16
Репутация: 10
По умолчанию

А где её таким образом обявлять?
Если можешь добавь в мой код...
Ответить с цитированием
  #7  
Старый 04.03.2008, 19:39
Аватар для KOOL
KOOL KOOL вне форума
Активный
 
Регистрация: 06.01.2008
Адрес: Рязань
Сообщения: 306
Версия Delphi: 2009
Репутация: 6150
По умолчанию

у тя нет этой части кода...вот например:
Код:
interface

uses ...;

type
  TForm2 = class(TForm)
     //тут всякие контролы и их процедуры типа
     Button1 : TButton;
     procedure Button1Click(Sender: TObject);
  private
    //тут закрытые переменные процедуры
  public
    //а вот тут открытые для других классов(и форм;) ) переменные и процедуры
    //здесь и нужно объявлять переменную
    eq123 : integer; //без слова var и перед процедурами!!!
  protected
    //а тут защищенные процедуры
  end;

implementation
...
Ответить с цитированием
  #8  
Старый 06.03.2008, 11:22
denverus denverus вне форума
Прохожий
 
Регистрация: 31.01.2008
Сообщения: 16
Репутация: 10
По умолчанию

Написал так, всё равно не пашет. Когда переходит на другую форму всё равно обнуляет значение ((( пипец, просто...
Ответить с цитированием
  #9  
Старый 06.03.2008, 11:25
Аватар для The Shadow
The Shadow The Shadow вне форума
Продвинутый
 
Регистрация: 11.06.2007
Адрес: Уфа, Россия
Сообщения: 793
Репутация: 35
По умолчанию

Код:
unit Unit2;

interface

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

type
  TForm2 = class(TForm)
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2;
  qw123: Integer;

implementation

{$R *.dfm}

end.
Код:
unit Unit3;

interface

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

type
  TForm3 = class(TForm)
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form3: TForm3;

implementation

uses
  Unit2

{$R *.dfm}

end.
__________________
Что делать, когда сломался комп:
1. Если вы юзер - делать ноги.
2. Если ремонтник - делать деньги.
3. Если вы программист - делать вид, что так было задумано.
Ответить с цитированием
  #10  
Старый 06.03.2008, 12:48
denverus denverus вне форума
Прохожий
 
Регистрация: 31.01.2008
Сообщения: 16
Репутация: 10
По умолчанию

Ребята извини но я походу дебил, всё равно не получается.. Даже создал маленькую программку, и даже с ней не пашет (((
Код:
unit Unit1;

interface

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

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

var
  Form1: TForm1;
  x:integer;

implementation

uses Unit2;

//uses Unit2;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
x:=12311;

form2.show;
end;

end.
__________________________________________________ _____________

Код:
unit Unit2;

interface

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

type
  TForm2 = class(TForm)
    Label1: TLabel;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2;

implementation
Uses
Unit1;

{$R *.dfm}

procedure TForm2.FormCreate(Sender: TObject);
begin
label1.Caption:=inttostr(x);
end;

end.

При нажатии на Button1 на форме 1 должна открться форма 2 и в label1 должно быть значение 12311, а он показывает '0' !!!
Ответить с цитированием
  #11  
Старый 06.03.2008, 13:02
Аватар для The Shadow
The Shadow The Shadow вне форума
Продвинутый
 
Регистрация: 11.06.2007
Адрес: Уфа, Россия
Сообщения: 793
Репутация: 35
По умолчанию

Ты пиши label1.Caption:=inttostr(x); не в OnCreate а в OnShow
__________________
Что делать, когда сломался комп:
1. Если вы юзер - делать ноги.
2. Если ремонтник - делать деньги.
3. Если вы программист - делать вид, что так было задумано.
Ответить с цитированием
  #12  
Старый 06.03.2008, 13:30
denverus denverus вне форума
Прохожий
 
Регистрация: 31.01.2008
Сообщения: 16
Репутация: 10
По умолчанию

А ясн, пасибки всё получилось ))) Правда написал в FormActivate
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter