Zitat von
b00gie:
Allerdings habe ich im Source vom Frage halt ein paar Variablen drin.
Gehen wir vom Beispiel String "Passwort" aus. Erstelle ich nun 10 Frames, so ist in diesem String immer das letzte Passwort drin, also wird der String jedes Mal überschrieben. Macht Sinn, aber irgendwie auch nicht, da ja der String im Frame-Source deklariert wird und das Frame 10mal geladen wird. Also müsste diese Variable auch 10mal existieren???
Ich würde jetzt mal darauf tippen, dass du mit 'im Source vom Frame' meinst, dass du die Variablen in der
Unit deklariert hast, richtig?
Also etwa so:
Delphi-Quellcode:
unit MeineUnit;
interface
uses [...]
type
TMeinFrame =
class(TFrame)
[...]
private
[...]
public
[...]
end;
var MeinFrame: TMeinFrame;
Variable1: Variablentyp1; <--
Variable2: Variablentyp2; <-- Hier hast du deine Variablen deklariert
Variable3: Variablentyp3; <--
implementation
[...]
In diesem Fall hast du die Variablen nicht als Objektvariablen von TMeinFrame deklariert, sondern als globale Variablen. Das bedeutet, die Variablen kommen programmweit nur ein einziges Mal vor und werden jedesmal überschrieben, wenn du schreibend darauf zugreifst.
Du solltest stattdessen deine Variablen im 'private' - bzw. 'public' - Abschnitt der Klasse TMeinFrame deklarieren, je nachdem wie du die Sichtbarkeit der Variablen brauchst (da du ja von einem anderen Form darauf zugreifen willst, wäre wohl der 'public' - Abschnitt die richtige Wahl). Dann kannst du z.B. mit MeinFrame1.Variable1 auf deine Variablen zugreifen, wenn MeinFrame1 vom Typ TMeinFrame ist.