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