Einzelnen Beitrag anzeigen

Benutzerbild von FaTaLGuiLLoTiNe
FaTaLGuiLLoTiNe

Registriert seit: 3. Jul 2004
Ort: NRW
55 Beiträge
 
Delphi XE Enterprise
 
#3

Re: Ein Frame mit einem String mehrmals erstellen?

  Alt 4. Aug 2009, 09:08
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.
Christian
<< FaTaLGuiLLoTiNe >>
Rhinoceroses don't play games!
  Mit Zitat antworten Zitat