Jak przenieść zmienna ?

0

WItam;

Mam zmienna :

a:= 145; w Unit1;

Mam rowzniez Unit2 i tam chce ja wykorzystac;

jaki sposob jest na to ?

Probowalem : zmienna := Form1.a; - ale nie przejdzie - sorry za banal ale nie wiem tego a natychmiast potrzebuje - licze na pomoc;

IPM

0

Musi to być zmienna globalna w Unit1
wiec musi być jej deklaracja umieszczona pomiędzy Interface a Implementation nastyępnie umieść w Uses unita 2 Unit1 i potem odwołuj się do zmiennej po jej nazwie.

TO SĄ PODSTAWY. WYSTAWIAM SKIEROWANIE DO PRZECZYTANIA KURSU!! :-/

Nie mowie o sekcji public!!! To ma być normalna zmienna np.

Unit Unit1;
Interface
Var TwojaZmienna:TwojTyp;

{...}
Implementation
{...}
End.

0

Jest tak jak piszesz - zmienna wystepuje w publicu -a cos jest nie tak;
Wczesniej przenosilem tak zmienne ale ktore wystepowaly jako label czy cos innego - teraz chce czysta zmienna wyliczona w srodku programu przetransportowac i mam schody - a kurs czytalem :>

----------------- ... jednak nie do konca ;-)

Dzieki Ci piekne !

Pozdrawiam;

IPM

0

Hmmm, dziwne!
Ale jezeli nie zalezy ci na szybkosci to mozesz zapisac to do pliku (np *.tmp lub do rejestru). Jezeli zalezy ci na wzglednej szybkosci ale nie zalezy ci na wielkosci pliku exe to mozesz utworzyc niewidoczny Edit na Form1 i zapisywac tam ta zmienna, a kozystac odczytujac zawartosc Edita :-/
Wiem ze to nie sa profesjonalne rozwiazania ale jednak dzialaja :D. Nie chce nic mowic ale spotkalem sie z tym sposobem w kiklu [sic!] programach [stop]
[cya]

0

Rozwiazan Wojciesh'a wole nawet nie komentowac.

Rozwiazanie zalezy od tego, czy Twoja zmienna jest zmienna globalna modulu (B w przykladzie ponizej) czy publicznym polem (badz wlasciwoscia) klasy formularza (A).

Zrob sobie dwie formy, w Unit1 Form1 z Button1, w Unit2 Form2 z Label1 i Label2 i wyprobuj nastepujacy kod:

unit Unit1;

interface

uses
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
{ Private declarations }
public
A: integer; //

0

Dziekuje za doglebne wyjasnienie - juz wczoraj po odpowiedzi Szymka wiedzialem co mi nie gra - ale i Twoja byla pouczajaca;

TX;

IPM

1 użytkowników online, w tym zalogowanych: 0, gości: 1