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.
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.
Wszędzie mam zmienne nad implementation. Jak według Cibie mam się odwołać np. z Form1 do Form3? Form3 nie jest tworzony dynamicznie.
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
No ok, ale co dalej Jak ma zadeklarować stałą, bądź zmienną (adres) w Form1, aby była zastosowana w Form2?
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
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;
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.
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');