AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi TObjectList reagiert nicht auf ModifyAction
Thema durchsuchen
Ansicht
Themen-Optionen

TObjectList reagiert nicht auf ModifyAction

Ein Thema von RWarnecke · begonnen am 18. Jun 2011 · letzter Beitrag vom 18. Jun 2011
 
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#1

TObjectList reagiert nicht auf ModifyAction

  Alt 18. Jun 2011, 13:05
Delphi-Version: 2010
Hallo zusammen,

ich habe folgendermassen eine Klasse und eine TObjectList deklariert :
Delphi-Quellcode:
  TModifyActionList = (lnNone, lnChange, lnDelete);
  //
  // Event zur Erstellung eines neuen Datensatzes für die Ansprechpartner
  //
  TAnsprechpartnerListe = class;
  TAnsprechpartnerListeAddEvent = procedure(Sender: TObject; Gesellschafter: TAnsprechpartnerListe) of object;
  //
  // Zur Speicherung der Ansprechpartnerliste
  //
  TAnsprechpartnerListe = class
  private
    FOnChange : TAnsprechpartnerListeAddEvent;
    FModifyAction : TModifyActionList;
    FKundenNr : string;
    FVorname : string;
    FNachname : string;
    FTelefon1 : string;
    FTelefon2 : string;
    FFax : string;
    FMobil : string;
    FEMail : string;
    procedure SetKundenNr(Value: string);
    procedure SetVorname(Value: string);
    procedure SetNachname(Value: string);
    procedure SetTelefon1(Value: string);
    procedure SetTelefon2(Value: string);
    procedure SetFax(Value: string);
    procedure SetMobil(Value: string);
    procedure SetEMail(Value: string);
    function GetKundenNr: string;
    function GetVorname: string;
    function GetNachname: string;
    function GetTelefon1: string;
    function GetTelefon2: string;
    function GetFax: string;
    function GetMobil: string;
    function GetEMail: string;
  public
    constructor Create;
    property KundenNr : string read GetKundenNr write SetKundenNr;
    property Vorname : string read GetVorname write SetVorname;
    property Nachname : string read GetNachname write SetNachname;
    property Telefon1 : string read GetTelefon1 write SetTelefon1;
    property Telefon2 : string read GetTelefon2 write SetTelefon2;
    property Fax : string read GetFax write SetFax;
    property Mobil : string read GetMobil write SetMobil;
    property EMail : string read GetEMail write SetEMail;
    property ModifyAction : TModifyActionList read FModifyAction write FModifyAction;
    property OnChange: TAnsprechpartnerListeAddEvent read FOnChange write FOnChange;
  end;
  //
  // Erstellen und Speichern der Kundenliste
  //
  TAnsprechpartnerObjListe = class(TObjectList)
  private
    FOnChange : TAnsprechpartnerListeAddEvent;
    FModifyAction : TModifyActionList;
    FNewRecord : Boolean;
    procedure DeleteRecord(Klasse: TAnsprechpartnerListe);
  protected
    function getItem(Index: Integer): TAnsprechpartnerListe; virtual;
    procedure setItem(Index: Integer; Objekt: TAnsprechpartnerListe); virtual;
    procedure Notify(Ptr: Pointer; Action: TListNotification); override;
  public
    function Add(Objekt: TAnsprechpartnerListe): Integer; virtual;
    function NewRecord(Objekt: TAnsprechpartnerListe): Integer; virtual;
    function Remove(Objekt: TAnsprechpartnerListe): Integer; virtual;
    function IndexOf(Objekt: TAnsprechpartnerListe): Integer; virtual;
    procedure Insert(Index: Integer; Objekt: TAnsprechpartnerListe); virtual;
    property Items[index: Integer]: TAnsprechpartnerListe read getItem write setItem; default;
    property ModifyAction : TModifyActionList read FModifyAction write FModifyAction;
    property OnChange: TAnsprechpartnerListeAddEvent read FOnChange write FOnChange;
  end;
In dem Programm wo diese TObjectList eingesetzt wird, wir die ObjectList beim Erstellen des DataModuls miterstellt und die Procedure für das OnChange-Event übergeben.
Delphi-Quellcode:
  AnsprechpartnerListe := TAnsprechpartnerObjListe.Create(True);
  AnsprechpartnerListe.OnChange := AnsprechpartnerListeChange;
Wenn ich jetzt das Property ModifyAction mit dem Wert "lnChange" aufrufe, passiert garnicht. Keine Fehlermeldung oder Hinweis. In einem anderen Programm, welches ich unter 2007 geschrieben habe, funktioniert diese Variante sehr gut. Normal sollte das Setzen von lnChange auf die Eigenschaft ModifyAction die procedure getItem aufrufen,was aber unter Delphi 2010 nicht funktioniert.

Hat jemand eine Idee, wieso es nicht klappt ? Gibt es irgendwelche Unterschiede zwischen Delphi 2007 und Delphi 2010 bei der Benutzung der TObjectList ?
Rolf Warnecke
App4Mission
  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 05:33 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz