Delphi: Μεταφορά τιμής από τη μια φόρμα σε μία άλλη

...IDE, compilers, κλπ

Συντονιστής: konnn

Delphi: Μεταφορά τιμής από τη μια φόρμα σε μία άλλη

Δημοσίευσηαπό vladx » 14 Δεκ 2010, 03:22

Ξέρω ότι το φορουμ ειναι για linux αλλα ειμαι σίγουρος ότι κάποιος θα μπορει να με βοηθησει εδω.

Θέλω να μεταφέρω την τιμή μίας μεταβλήτης από μία φόρμα σε μια άλλη.
Η μεταβλητή αυτή είναι η 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 ωστε να έιναι οράτη και σε άλλη φόρμα. Όμως δεν καταφερα να κάνω κάτι.
Πιστεύω οτι είναι μία λεπτομέρεια αλλά ασχολούμαι τόσες ώρες με αυτό που εκτός από το ότι έχουν σπάσει τα νέυρα μου, ακόμα και να το βλέπω το λάθος δεν θα το αναγνωρίσω.

Στη δεύτερη φόρμα έχω βάλει σε σχόλια τον κώδικα για το κουμπάκι που έχω για επαλήθευση.

Ευχαριστω εκ των προτέρων.
Γνωση Linux: Μετρια|| Προγραμματισμος: Καλή|| Λειτουργικο: Ubuntu 12.04 - Windows 7 ||
Desktop || CPU : Intel Core2Quad Q9550 @ 2.83GHz || Ram: 4.00 GB DDR3 || Καρτα Γραφκων : GeForce GTX460
Become a Programmer, Motherfucker
Άβαταρ μέλους
vladx
babeTUX
babeTUX
 
Δημοσιεύσεις: 105
Εγγραφή: 29 Μάιος 2009, 02:36
Τοποθεσία: Αθηνα
Εκτύπωση

Re: Delphi: Μεταφορά τιμής από τη μια φόρμα σε μία άλλη

Δημοσίευσηαπό xqtr » 14 Δεκ 2010, 22:41

εχεις βαλει την μεταβλητη hour μεσα στην δηλωση της φορμας για να την δεις απο την αλλη φορμα θα πρεπει να την καλεσεις καπως ετσι: hour2:=cafebarform1.hour; Αν η μεταβλητη ειναι ανεξαρτητη απο την φορμα, τοτε δηλωσε την στην Var του προγραμματος, καπως ετσι:
Κώδικας: Επιλογή όλων
var
CafeBarForm: TCafeBarForm;
hour:integer
O χειμώνας έρχεται...
Γνώσεις ⇛ Linux: Μέτριο │ Προγραμματισμός: Ναι (Delphi/Lazarus) │ Αγγλικά: Καλά
Λειτουργικό : Ubuntu 14.04 σε Acer Aspire 5520
Προδιαγραφές ⇛ AMD Turion 1.8GHz │ 1GB │ ATI X700 │ Broadcom BCM4318 │LCD 15.4"
Άβαταρ μέλους
xqtr
seniorTUX
seniorTUX
 
Δημοσιεύσεις: 508
Εγγραφή: 05 Φεβ 2009, 19:00
Εκτύπωση

Re: Delphi: Μεταφορά τιμής από τη μια φόρμα σε μία άλλη

Δημοσίευσηαπό vladx » 15 Δεκ 2010, 03:53

Ευχαριστω για την απαντηση.
Γνωση Linux: Μετρια|| Προγραμματισμος: Καλή|| Λειτουργικο: Ubuntu 12.04 - Windows 7 ||
Desktop || CPU : Intel Core2Quad Q9550 @ 2.83GHz || Ram: 4.00 GB DDR3 || Καρτα Γραφκων : GeForce GTX460
Become a Programmer, Motherfucker
Άβαταρ μέλους
vladx
babeTUX
babeTUX
 
Δημοσιεύσεις: 105
Εγγραφή: 29 Μάιος 2009, 02:36
Τοποθεσία: Αθηνα
Εκτύπωση


Επιστροφή στο Εφαρμογές για Ανάπτυξη Λογισμικού