Jak przenieść stałą między Formami/okienkami

0

Witam!
Nie wiem jak przenosić stałą między okienkami programu. Dokładniej mówiąc mam program jest w nim menu i 3 przyciski każdy z nich uruchamia nowe okno w którym jest pole memo i załadowywany jest plik tekstowy. Nie chcę tworzyć 3 takich samych okienek z memo, tylko jedno w który będzie stała adres. Zależnie od naciśniętego przycisku w menu zostanie przypisany adres do pliku(np. const adres = 'D:\plik.txt') do stałej adres, a następnie wyświetli mi się odpowiedni tekst.

0

Zdaje się że jak nie zrobisz tak:

var
  Form1: TForm1;

implementation

{$R *.dfm}

var
  Zmienna: Integer;

tylko

var
  Form1: TForm1;
  Zmienna: Integer

implementation

{$R *.dfm}

To ta zmienna będzie widoczna we wszystkich unitach projektu.

A poza tym z każdego okna możesz odwołać się do form nawet jeśli tworzysz je dynamicznie. Tylko w tedy musisz tablice z nimi zadeklarować tak jak podałem wyżej.

0

Wszędzie mam zmienne nad implementation. Jak według Cibie mam się odwołać np. z Form1 do Form3? Form3 nie jest tworzony dynamicznie.

0

Aby widzieć zmienne z Form1 w innych formach, do unitu każdej następnej Form2, Form3, itp, musisz dodać do listy uses nazwę unitu z Form1.
Aby widzieć w Form1 inne formy: Form2, Form3, itp, musisz dodać do listy uses nazwę unitu każdej Form2, Form3, itp

0

No ok, ale co dalej Jak ma zadeklarować stałą, bądź zmienną (adres) w Form1, aby była zastosowana w Form2?

0

Zmienna bądź stała ma być zadeklarowana w sekcji publicznej modułu Form1, tak jak pisał TomRiddle lub może być polem klasy TForm1
Sorry, ale ty chyba nie zabardzo znasz podstawy budowy aplikacji w Delphi. Proponuję poczytać Kompedium Wiedzy na tym forum, tam znajdziesz rozwiązanie twojego problemu

0

Wtedy np. możesz zrobić tak, jak nie wiesz o co chodzi

uses
  Form2, Form3;

{...}
procedure TForm1.ButtonClick(Sender: TObject);
begin
  Form2.Caption := 'Moja druga forma';
  Form3.Button.Caption := 'Moj trzeci przycisk';
end;
0

Dzięki chłopaki za pomoc. Trochę pokombinowałem i w Form2 i Form3 do uses dodałem Form1, zrobiłem

TForm2.procedure.menu(a:string);
begin
  adres:=a;
end;

{a w Form1 napisałem}

Form2.menu('D:\plik.txt');

I jakoś to działa.

0
abit132 napisał(a)

... {a w Form1 napisałem}

Form2.procedure.menu('D:\plik.txt');

> 
> I jakoś to działa.


... a ja jakoś w to nie wierzę. Powinno być tak:

```delphi
Form2.menu('D:\plik.txt');

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