Θέλω να μεταφέρω την τιμή μίας μεταβλήτης από μία φόρμα σε μια άλλη.
Η μεταβλητή αυτή είναι η hour.
Για να μπορεσω να επιβεβαιώσω τη μεταφορά έχω βάλει ένα κουμπάκι στην δευτερη φόρμα και όταν το πατάω θέλω να μου εμφανίζει την τιμή που έχω δώσει από την πρώτη φόρμα.
Ορίστε ο κώδικας της πρώτης.
κώδικας:
- Κώδικας: Επιλογή όλων
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, jpeg, ExtCtrls, StdCtrls, Menus, ActnList, ImgList, Buttons;
type
TCafeBarForm = class(TForm)
BitBtn1: TBitBtn;
Image21: TImage;
Image22: TImage;
MainMenu1: TMainMenu;
sda1: TMenuItem;
N1: TMenuItem;
N5: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
BitBtn2: TBitBtn;
Panel1: TPanel;
Image1: TImage;
BitBtn3: TBitBtn;
StaticText1: TStaticText;
StaticText2: TStaticText;
StaticText3: TStaticText;
StaticText4: TStaticText;
StaticText5: TStaticText;
StaticText6: TStaticText;
procedure ActionExitExecute(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure hourButtonClick(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure N5Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
hour: Integer;
end;
var
CafeBarForm: TCafeBarForm;
implementation
uses
Unit5,Unit1;
{$R *.dfm}
// procedures
// Events
procedure TCafeBarForm.ActionExitExecute(Sender: TObject);
begin
if MessageDlg( 'Åßóôå óßãïõñïò üôé èÝëåôå íá öýãåôå áðü ôï Cafe-Bar;',
mtWarning,mbOKCancel,-1) = 1 then
Hide;
with TMainForm.Create(self) do
begin
ShowModal;
end;
Show;
end;
procedure TCafeBarForm.N3Click(Sender: TObject);
begin
ShowMessage('Ç þñá åéíáé ñõèìéóìÝíç óå : Ðñùß - Áðüãåõìá');
hour := 0
end;
procedure TCafeBarForm.N4Click(Sender: TObject);
begin
ShowMessage('Ç þñá åéíáé ñõèìéóìÝíç óå : ÂñÜäõ');
hour := 1
end;
procedure TCafeBarForm.hourButtonClick(Sender: TObject);
begin
ShowMessage(IntToStr(hour)) ;
end;
procedure TCafeBarForm.BitBtn2Click(Sender: TObject);
begin
if (hour=0) then
ShowMessage('Ç þñá åéíáé ñõèìéóìÝíç óå : Ðñùß - Áðüãåõìá')
else
ShowMessage('Ç þñá åéíáé ñõèìéóìÝíç óå : ÂñÜäõ');
end;
procedure TCafeBarForm.BitBtn3Click(Sender: TObject);
begin
Hide;
with TSit.Create(self) do
begin
ShowModal;
end;
Show;
end;
procedure TCafeBarForm.N5Click(Sender: TObject);
begin
Hide;
with TMainForm.Create(self) do
begin
ShowModal;
end;
Show;
end;
end.
Ορίστε και ο κώδικας της δεύτερης.
κώδικας:
- Κώδικας: Επιλογή όλων
unit Unit7;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, jpeg, Buttons;
type
TPreOrder = class(TForm)
Image1: TImage;
Panel1: TPanel;
Button1: TButton;
Button2: TButton;
StaticText1: TStaticText;
StaticText2: TStaticText;
BitBtn2: TBitBtn;
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
PreOrder: TPreOrder;
implementation
uses
Unit6,Unit2;
{$R *.dfm}
procedure TPreOrder.Button2Click(Sender: TObject);
begin
Close;
end;
procedure TPreOrder.Button1Click(Sender: TObject);
begin
Hide;
with TMenu1.Create(self) do
begin
ShowModal;
end;
Show;
end;
procedure TPreOrder.BitBtn2Click(Sender: TObject);
begin
{if (CafeBarForm.hour=0) then
ShowMessage('0')
else
ShowMessage('1'); }
end;
end.
Στην πρώτη φόρμα δήλωσα την ζητούμενη μεταβλητή hour ως public ωστε να έιναι οράτη και σε άλλη φόρμα. Όμως δεν καταφερα να κάνω κάτι.
Πιστεύω οτι είναι μία λεπτομέρεια αλλά ασχολούμαι τόσες ώρες με αυτό που εκτός από το ότι έχουν σπάσει τα νέυρα μου, ακόμα και να το βλέπω το λάθος δεν θα το αναγνωρίσω.
Στη δεύτερη φόρμα έχω βάλει σε σχόλια τον κώδικα για το κουμπάκι που έχω για επαλήθευση.
Ευχαριστω εκ των προτέρων.