AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language kann dieses Konstrukt überhaupt funktionieren? (Arrays...)
Thema durchsuchen
Ansicht
Themen-Optionen

kann dieses Konstrukt überhaupt funktionieren? (Arrays...)

Offene Frage von "xZise"
Ein Thema von cherry · begonnen am 28. Jul 2010 · letzter Beitrag vom 5. Aug 2010
 
Benutzerbild von cherry
cherry

Registriert seit: 14. Nov 2005
561 Beiträge
 
RAD-Studio 2009 Ent
 
#4

AW: kann dieses Konstrukt überhaupt funktionieren? (Arrays...)

  Alt 29. Jul 2010, 09:42
Hallo Ihr beiden. Erst mal danke für die prompte Hilfestellung.

@Blub
Du hast jetzt einfach die Funktionen remove angesprochen oder? - ansonsten mache ich das ja nirgens explizit.
An dem kanns aber nicht liegen, da ich diese Funktionen im ganzen Programm noch nicht verwendet habe. (Und werde dies folglich auch nicht tun)

> Grundsätzlich sollte aber ein solches Konstrukt, mal abgesehen von den removeFunctions funktionieren,
Oder macht man das einfach nicht und verwenden immer TObjectList o.ä. ?

@Uwe Raabe
Danke für den Hinweis... muss zugestehen, dass ich davon nichts wusste bis jetzt...
Hab jetzt mal n paar Sachen drüber gelesen und einfach mal propiert. Das kam dabei raus:

Delphi-Quellcode:
unit UUserCrossTable;

interface

uses
  Windows, SysUtils, Variants, Classes, Dialogs, Generics.Collections;

type

  // type for filesettings
  TDirectory = class(TObject)
  public
    Name: string;
    FullAccess: Boolean;
    Modify: Boolean;
    Execute: Boolean;
    List: Boolean;
    Read: Boolean;
    Write: Boolean;
  end;

  // type for optional ad attributes
  TOptAttr = class(TObject)
  public
    name: string[50];
    value: string[255];
  end;

  // type for group
  TGroup = class(TObject)
  public
    name: string[50];
    ldappath: string[255];
  end;

  // type for quota
  TQuota = class(TObject)
  public
    volume: string[255];
    limit: Integer;
    Threshold: Integer;
  end;

  TDirectories = TObjectList<TDirectory>;
  TOptAttrs = TObjectList<TOptAttr>;
  TGroups = TObjectList<TGroup>;
  TQuotas = TObjectList<TQuota>;

  // THIS IS ONE USER
  TUser = class(TObject)
    private
    public
      sAMAccountName: string[50];
      givenName: string[50];
      sn: string[50];
      password: string[50];
      Directories: TDirectories;
      OptionalAttributes: TOptAttrs;
      Groups: TGroups;
      Quotas: TQuotas;
  end;

implementation

end.
Folgendes hat schon mal funktioniert:

Delphi-Quellcode:
 

  uct: TObjectList<TUser>;
  usr: TUser;

implementation
  
  ....
 
  usr := TUser.Create;
  usr.sAMAccountName := Edit1.Text;
  usr.givenName := Edit1.Text;
  usr.password := 'pw';

  uct.Add(usr);
Wenn ich jetzt aber z.B. eine Gruppe an einen User hinzugügen möchte klappt folgendes nicht:

Delphi-Quellcode:
  grp := TGroup.Create;
  grp.name := Edit2.Text;
  grp.ldappath := 'ldap://'+Edit2.Text;
  uct.Items[ListBox1.ItemIndex].Groups.Add(grp); // << Zugriffsverletzung...
Zuvor habe ich versucht die Gruppen, Directories usw. als Records statt als Klassen zu definiren, das Ergebnis war dasselbe...
Was mache ich falsch?
Ist das nur mein Gefühl, oder ist die ganze Welt verrückt geworden!?

Geändert von cherry (29. Jul 2010 um 09:44 Uhr)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:38 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