Einzelnen Beitrag anzeigen

Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
831 Beiträge
 
Delphi 10.4 Sydney
 
#1

Warum wird eine falsche Variable in einem Objekt bearbeitet

  Alt 17. Mär 2014, 17:25
Hallo Zusammen,

ich habe das Objekt TUser mit vielen Varaiblen und die entsprechenden Geter und Seter dazu. Alles klappte auch sehr gut, bis ich heute eine weitere Variable hinzugefügt habe.

Wenn ich in User_Norm_Mandanten etwas reinschreiben will, dann verändert die Software die Variable User_Rollen (die wird gar nicht in der Procedure verwendet).

Hier ein Teil der Klasse TUser - es geht um die beiden letzten Variablen User_Rollen und User_Norm_Mandanten
Delphi-Quellcode:
type
   TUser = class(TUnternehmen)
   strict protected
      FUser_ID:Integer;
      FUser_Name:string;
      FUser_Vorname:string;
      FUser_Adresse_ID:Integer;
      FUser_Abteilung_ID:Integer;
      FUser_Telefon: string;
      FUser_Fax: string;
      FUser_Mobil: string;
      FUser_Mail: string;
      FUser_Passwort: string;
      FLogFile_ID: integer;
      FUser_Rechte: string;
      FUser_Default_Folder: string;
      FUser_LogIn: string;
      FUser_Rollen: string;
      FUser_Norm_Mandanten: string;

   strict private
      function GetUser_Abteilung_ID : integer;
      procedure SetUser_Abteilung_ID(val : integer);
   public
      property User_Abteilung_ID : integer read GetUser_Abteilung_ID write SetUser_Abteilung_ID;
   strict private
      function GetUser_Fax : string;
      procedure SetUser_Fax(val : string);
   public
      property User_Fax : string read GetUser_Fax write SetUser_Fax;
   strict private
      function GetUser_ID : Integer;
      procedure SetUser_ID(val : Integer);
   public
      property User_ID : Integer read GetUser_ID write SetUser_ID;
   strict private
      function GetUser_Mail : string;
      procedure SetUser_Mail(val : string);
   public
      property User_Mail : string read GetUser_Mail write SetUser_Mail;
   strict private
      function GetUser_Mobil : string;
      procedure SetUser_Mobil(val : string);
   public
      property User_Mobil : string read GetUser_Mobil write SetUser_Mobil;
   strict private
      function GetUser_Vorname : string;
      procedure SetUser_Vorname(val : string);
   public
      property User_Vorname : string read GetUser_Vorname write SetUser_Vorname;
   strict private
      function GetUser_Name : string;
      procedure SetUser_Name(val : string);
   public
      property User_Name : string read GetUser_Name write SetUser_Name;
   strict private
      function GetUser_Passwort : string;
      procedure SetUser_Passwort(val : string);
   public
      property User_Passwort : string read GetUser_Passwort write SetUser_Passwort;
   strict private
      function GetUser_Telefon : string;
      procedure SetUser_Telefon(val : string);
   public
      property User_Telefon : string read GetUser_Telefon write SetUser_Telefon;
   strict private
      function GetLogFile_ID : integer;
      procedure SetLogFile_ID(val : integer);
   public
      property LogFile_ID : integer read GetLogFile_ID write SetLogFile_ID;
   strict private
      function GetUser_Rechte : string;
      procedure SetUser_Rechte(val : string);
   public
      property User_Rechte : string read GetUser_Rechte write SetUser_Rechte;
   strict private
      function GetUser_Default_Folder : string;
      procedure SetUser_Default_Folder(val : string);
   public
      property User_Default_Folder : string read GetUser_Default_Folder write SetUser_Default_Folder;
   strict private
      function GetUser_LogIn : string;
      procedure SetUser_LogIn(val : string);
   public
      property User_LogIn : string read GetUser_LogIn write SetUser_LogIn;
   strict private
      function GetUser_Adresse_ID : integer;
      procedure SetUser_Adresse_ID(val : integer);
   public
      property User_Adresse_ID : integer read GetUser_Adresse_ID write SetUser_Adresse_ID;
   strict private
      function GetUser_Rollen : string;
      procedure SetUser_Rollen(val : string);
   public
      property User_Rollen : string read GetUser_Rollen write SetUser_Rollen;
   strict private
      function GetUser_Norm_Mandanten : string;
      procedure SetUser_Norm_Mandanten(val : string);
   public
      property User_Norm_Mandanten : string read GetUser_Norm_Mandanten write SetUser_Norm_Mandanten;

   {!Intelligente Funktionen und Proceduren}
   Private
      function Load_User_Rollen(User_ID: integer): string;
      procedure Load_User_Rechte( User_ID:integer);
      function User_Insert: integer;
      function User_Update(User_ID: integer): integer;
   Public
      procedure Load_User( User_ID:integer);
      procedure Clear_User;
      function Load_User_ID (LogIn: string): integer;
      function User_Speichern (User_ID: integer): integer;
   end;

var User: TUser; //Daten des angemeldeten Benutzers
      User_Management: TUser; //Um einen Benutzer zu verändern
      User_Neu: TUser; //Geänderte User-Daten

implementation

uses LogInUnit, TEinstellungenUnit;

function TUser.GetUser_Abteilung_ID: integer;
begin
   Result:= FUser_Abteilung_ID;
end;

procedure TUser.SetUser_Abteilung_ID(val : integer);
begin
   FUser_Abteilung_ID:= val;
end;

function TUser.GetUser_Adresse_ID: integer;
begin
   Result:= FUser_Adresse_ID;
end;

procedure TUser.SetUser_Adresse_ID(val : integer);
begin
   FUser_Adresse_ID:= val;
end;

function TUser.GetUser_Fax: string;
begin
   Result:= FUser_Fax;
end;

procedure TUser.SetUser_Fax(val : string);
begin
FUser_Fax:= val;
end;

function TUser.GetUser_ID: Integer;
begin
   Result:= FUser_ID;
end;

procedure TUser.SetUser_ID(val : Integer);
begin
   FUser_ID:= val;
end;

function TUser.GetUser_Mail: string;
begin
   Result:= FUser_Mail;
end;

procedure TUser.SetUser_Mail(val : string);
begin
   FUser_Mail:= val;
end;

function TUser.GetUser_Mobil: string;
begin
   Result:= FUser_Mobil;
end;

procedure TUser.SetUser_Mobil(val : string);
begin
   FUser_Mobil:= val;
end;

function TUser.GetUser_Vorname: string;
begin
   Result:= FUser_Vorname;
end;

procedure TUser.SetUser_Vorname(val : string);
begin
   FUser_Vorname:= val;
end;

function TUser.GetUser_Name: string;
begin
   Result:= FUser_Name;
end;

procedure TUser.SetUser_Name(val : string);
begin
   FUser_Name:= val;
end;

function TUser.GetUser_Passwort: string;
begin
   Result:=FUser_Passwort;
end;

procedure TUser.SetUser_Passwort(val : string);
begin
   FUser_Passwort:= val;
end;

function TUser.GetUser_Telefon: string;
begin
   Result:= FUser_Telefon;
end;

procedure TUser.SetUser_Telefon(val : string);
begin
   FUser_Telefon:= val;
end;

function TUser.GetLogFile_ID: integer;
begin
   Result:= FLogFile_ID;
end;

procedure TUser.SetLogFile_ID(val : integer);
begin
   FLogFile_ID:= val;
end;

function TUser.GetUser_Rechte: string;
begin
   Result:= FUser_Rechte;
end;

procedure TUser.SetUser_Rechte(val : string);
begin
   FUser_Rechte:= val;
end;

function TUser.GetUser_Default_Folder: string;
begin
   Result:= FUser_Default_Folder;
end;

procedure TUser.SetUser_Default_Folder(val : string);
begin
   FUser_Default_Folder:= val;
end;

function TUser.GetUser_LogIn: string;
begin
   Result:= FUser_LogIn;
end;

procedure TUser.SetUser_LogIn(val : string);
begin
   FUser_LogIn:= val;
end;

function TUser.GetUser_Rollen: string;
begin
   Result:= FUser_Rollen;
end;

procedure TUser.SetUser_Rollen(val : string);
begin
   FUser_Rollen:= val;
end;

function TUser.GetUser_Norm_Mandanten: string;
begin
   Result:= FUser_Norm_Mandanten;
end;

procedure TUser.SetUser_Norm_Mandanten(val : string);
begin
   FUser_Norm_Mandanten:= val;
end;

Wenn die nachfolgende Programmzeile ausgeführt wird, dann wird nicht User_Norm_Mandanten verändert, sondern User_Rollen.

User_Neu.User_Norm_Mandanten:=User_Neu.User_Norm_Mandanten+Grid_Norm_Mandanten.Cells[0,I]+',';

Ich weiß wirklich nicht, warum das passiert.
Hier die ganze Procedure
Delphi-Quellcode:
procedure TFrameUser.GlowDelete_MandantClick(Sender: TObject);
var I: integer;
begin
   if (Grid_Norm_Mandanten.Cells[0,Grid_Norm_Mandanten.Row]='') or (Grid_Norm_Mandanten.Cells[0,Grid_Norm_Mandanten.Row]=IntToStr(User_Neu.User_Unternehmen_ID)) then
      Exit;
   if Grid_Norm_Mandanten.Row>0 then begin
      User_Neu.User_Norm_Mandanten:='';
      if Grid_Mandanten.Cells[0,Grid_Mandanten.RowCount-1]<>'then
         Grid_Mandanten.AddRow;
      Grid_Mandanten.Cells[0,Grid_Mandanten.RowCount-1]:=Grid_Norm_Mandanten.Cells[0,Grid_Norm_Mandanten.Row];
      Grid_Mandanten.Cells[1,Grid_Mandanten.RowCount-1]:=Grid_Norm_Mandanten.Cells[1,Grid_Norm_Mandanten.Row];
      Grid_Mandanten.Sort(0,sdAscending);
      Grid_Norm_Mandanten.ClearRows(Grid_Norm_Mandanten.Row,1);
      if Grid_Norm_Mandanten.RowCount>2 then
         Grid_Norm_Mandanten.RemoveRows(Grid_Norm_Mandanten.Row,1);
      for I := 1 to Grid_Norm_Mandanten.RowCount -1 do begin
         User_Neu.User_Norm_Mandanten:=User_Neu.User_Norm_Mandanten+Grid_Norm_Mandanten.Cells[0,I]+',';
      end;
      User_Neu.User_Norm_Mandanten:=Copy(User_Neu.User_Norm_Mandanten,1,Length(User_neu.User_Norm_Mandanten)-1);
      GlowSpeichern.Enabled:=true;
      GlowAbbruch.Enabled:=true;
   end;
end;
Sieht jemand meinen Fehler?

Vielen Dank
Patrick
Patrick

Geändert von TBx (18. Mär 2014 um 10:42 Uhr) Grund: Dreckfuhler aus Titel entfernt
  Mit Zitat antworten Zitat