kostenloser Webspace werbefrei: lima-city


Projekt-(Unit-)übergreifende(r) Variablen (und Zugriff) (Delphi)

lima-cityForumProgrammiersprachenDelphi & Pascal

  1. Autor dieses Themas

    s1m13

    Kostenloser Webspace von s1m13

    s1m13 hat kostenlosen Webspace.

    So aus dem schwierigen (;)) Titel kann man ja schon entnehmen, dass ich mit Turbo Delphi Variablen "Super"global machen möchte, also aus allen Units erreichbar. Natürlich hab ich gegoogelt und auch eine Lösung gefunden. Man muss die Variablen in einer Unit im Privatebereich deklarieren.
    Jetzt möchte ich aus einer anderen Unit (Form) die Variable aufrufen, doch sie wird nicht gefunden..
    (Die andere Unit ist in der "Haupt"Unit natürlich eingebunden (uses).

    Eine andere Lösung wäre, gleich auf Objekte der anderen Unit zuzugreifen. Das funktioniert zwar bei normalen Dingen, wie Edittext verändern oder so, doch wenn ich z.B. einer ComboBox Items hinzufügen möchte, muss ich als Parameter Object angeben. Was ich da reinschreiben soll weiß ich nicht. (Sender: TObject, self, Sender führen zu Fehlern, macht ja auch Sinn)

    Hat jemand Ahnung?

    MfG
    s1m13
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. burgi

    Co-Admin Kostenloser Webspace von burgi

    burgi hat kostenlosen Webspace.

    Ich weiß nicht, wo dein Problem liegt:

    1) Das mit der ComboBox in einem anderen Formular geht z.B. so:
    Form2.ComboBox1.Items.Add('Item1');

    Da brauchst du kein Objekt oder was auch immer anzugeben. Außerdem sollte das mit nil genauso funkionieren.

    2) Das mit den Variablen ist für mich ganz einfach. Ich geh' jetzt mal davon aus, du hast ein "Hauptformular", ich nenne das Form1, und du hast ein zweites Formular (Form2), das auf Variablen zugreifen soll, die Form1 zur Verfügung stellt. Oder?
    Dann muß du nur die Variablendeklaration zwischen interface und implementation in Unit 1 machen. In der Unit2 schreibst du einfach die Unit1 in die uses-Klausel nach dem implementation-Teil.

    Übrigens: Du kannst genauso deine Variablen als Eigenschaft von Form1 deklarieren. Dann erfolgt halt die Zuweisung mit z.B. Form1.Variablenname.
  4. Autor dieses Themas

    s1m13

    Kostenloser Webspace von s1m13

    s1m13 hat kostenlosen Webspace.

    burgi schrieb:
    Form2.ComboBox1.Items.Add('Item1');



    Wenn ich diese Funktion vom Hauptform zu einem anderen eingebundenen Form anwende gibt es eine Zugriffsverletzung. Irgendetwas mit Pointern glaub ich. Geht also nicht.

    burgi schrieb:
    Da brauchst du kein Objekt oder was auch immer anzugeben. Außerdem sollte das mit nil genauso funkionieren.


    Wenn ich die AddItem-Funktion anwende muss man sehr wohl einen Parameter angeben. (procedure AddItem(Item: string; AObject: TOBject);)
    Und mit nil gibt es eine ähnliche (oder gleiche) Zugriffsverletzung.

    Wenn ich Variablen zwischen interface und implementation deklariere (texttypen : array[1..10] of String;) Funktioniert es nicht mehr. (Jedoch mit = "texttypen = array[1..10] of String;" bei dieser Variante kann ich dann aber nicht mehr auf den array zugreifen.. kein Plan was das is)

    Die Probleme bestehen weiterhin.

    MfG
    s1m13



    Beitrag geändert: 7.12.2008 18:05:16 von s1m13


    Beitrag geändert: 7.12.2008 18:05:27 von s1m13
  5. burgi

    Co-Admin Kostenloser Webspace von burgi

    burgi hat kostenlosen Webspace.


    Form2.ComboBox1.Items.Add('Item1');

    Wenn ich diese Funktion vom Hauptform zu einem anderen eingebundenen Form anwende gibt es eine Zugriffsverletzung. Irgendetwas mit Pointern glaub ich. Geht also nicht.

    Eine Zugriffsverletzung wird dann vorliegen, wenn du auf die Combo in Form2 zugreifen willst, wenn diese noch nicht erstellt ist (möglicherweise), ansonsten müßte das so funktionieren, weil ich's extra ausprobiert habe!

    Zu den Variablen: so auf die Schnelle finde ich da keinen Fehler. Wenn du anstelle des Soppelpunkts ein Gleichzeichen verwendest, deklarierst du Typen und keine Variablen!
    Um dir weiter zu helfen sind deine Angaben zu ungenau. Du kannst mir bei Interesse aber genre das Projekt mailen, und ich kuck's mir an (Kontakaufnahme über PN!).
    Die Angaben zu den Variablen sollten ebenfalls funktionieren, da ich, wie gesagt, alle Sachen, die ich hier gepostet habe, extra ausprobiert habe!
  6. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!