Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Public Records (https://www.delphipraxis.net/152016-public-records.html)

lio 8. Jun 2010 17:39

Public Records
 
Hallo,

folgendes Problem:

ich habe meine form1 und da steht das übliche drin:

type
TForm1 = class (TForm)
...
private
public
end;

ich habe darunter einen record definiert:

type
TVokabel = record
englisch: string[20];
deutsch: string[20];
end;

nun habe ich eine variable:

var unsortierteVokabeln: array[1..10] of TVokabeln

die ich in form1 deklariert habe und ihr dort auch werte zu weise

ich hab aber auch noch ein form3 und dort würde ich gern auf das array unsortierteVokabeln zugreifen können, einfach form3.unsortierteVokabeln funktioniert nicht, also dachte ich, muss ich unsortierteVokabeln evtl. unter "public" in form1 deklarieren - hier gib es jedoch probleme mit dem Typ TVokabeln ...

Kann mir da jemand weiterhelfen?

danke schon einmal im voraus

mkinzler 8. Jun 2010 17:41

AW: Public Records
 
Du meinst wohl innerhalb der Unit und nicht innerhalb des Formulars. Im Interface oder unter Implementation?

himitsu 8. Jun 2010 17:45

AW: Public Records
 
Delphi-Quellcode:
type
  TVokabel = record
    englisch: string[20];
    deutsch: string[20];
  end;

  TForm1 = class (TForm)
  ...
  private
  public
    unsortierteVokabeln: array[1..10] of TVokabeln;
  end;
Das Array wird in TForm1 genutzt, also sollte es auch dort deklariert werden.
( Wird ja nicht umsonst immer wieder gesagt, das und warum globale Variablen "böse" sind. )

Und von extern Form1.unsortierteVokabeln (wobei man sich hier auch den Zugriff über ein Array-Property überlegen sollte ... so ganz nach den Regeln des OOP).

OldGrumpy 9. Jun 2010 07:30

AW: Public Records
 
Selber deklarierte Variablentypen gliedere ich normalerweise in eigene Units aus damit die nebenwirkungsarm überall benutzt werden können ohne dass jede Form-Unit alle möglichen anderen im uses haben muss.

Den Tippfehler hast Du aber sicherlich bemerkt? (TVokabel bzw. TVokabeln)

Welchen Fehler genau bekommst Du denn?

lio 14. Jun 2010 09:02

AW: Public Records
 
danke an himitsu, funktioniert!

p80286 14. Jun 2010 16:28

AW: Public Records
 
Dann hoffen wir mal, das form3 auch in der Lage ist Form1 zu sehen!

Zitat:

Zitat von OldGrumpy (Beitrag 1027259)
Selber deklarierte Variablentypen gliedere ich normalerweise in eigene Units aus damit die nebenwirkungsarm überall benutzt werden können ohne dass jede Form-Unit alle möglichen anderen im uses haben muss.

Dem ist eigentich nichts hinzuzufügen.

Gruß
K-H


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:04 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz