unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, StdCtrls, Grids;
type
TInventarDetails =
record
Raum:
String[9];
Typ:
String[25];
bsys:
String[90];
Benutzer:
String[90];
IP:
String[16];
end;
TForm1 =
class(TForm)
GroupBox1: TGroupBox;
SG_Inv: TStringGrid;
GroupBox2: TGroupBox;
MainMenu1: TMainMenu;
Datei1: TMenuItem;
CB_Raum: TComboBox;
CB_Geraet: TComboBox;
CB_System: TComboBox;
CB_Benutzer: TComboBox;
GroupBox3: TGroupBox;
GroupBox4: TGroupBox;
GroupBox5: TGroupBox;
GroupBox6: TGroupBox;
GroupBox7: TGroupBox;
CB_IP: TComboBox;
Label1: TLabel;
Button1: TButton;
Neu1: TMenuItem;
Laden1: TMenuItem;
Speichern1: TMenuItem;
Speichernunter1: TMenuItem;
N1: TMenuItem;
Beenden1: TMenuItem;
Hilfe1: TMenuItem;
Version1: TMenuItem;
OD_Oeffnen: TOpenDialog;
SD_Save: TSaveDialog;
Button2: TButton;
Button3: TButton;
procedure Beenden1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Laden1Click(Sender: TObject);
procedure Speichern1Click(Sender: TObject);
procedure Speichernunter1Click(Sender: TObject);
procedure Neu1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
filter, inventar:
array of TInventarDetails;
datei:
file of TInventarDetails;
i, u: integer;
Pfad, Raum, Typ, bsys, Nutzer,
IP:
String;
kopiert:Boolean;
runfirst: integer;
implementation
{$R *.dfm}
procedure TForm1.Beenden1Click(Sender: TObject);
begin
Close;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
SG_Inv.Cells[0,0]:='
Raum';
SG_Inv.Cells[1,0]:='
Gerätetyp';
SG_Inv.Cells[2,0]:='
Betriebssystem';
SG_Inv.Cells[3,0]:='
Benutzer';
SG_Inv.Cells[4,0]:='
IP - Adresse';
Speichern1.Enabled := false;
end;
procedure TForm1.Laden1Click(Sender: TObject);
begin
OD_OEFFNEN.Filter := '
Datenbanken (*.db)|*.db| Alle Datein (*.*)| *.*';
if OD_Oeffnen.Execute
then
begin
pfad:=OD_Oeffnen.FileName;
i:=0;
try
AssignFile(datei,pfad);
Reset(datei);
while not eof(datei)
do
begin
setLength(inventar,i+1);
Read(datei,inventar[i]);
SG_Inv.Cells[0,i+1]:=inventar[i].Raum;
SG_Inv.Cells[1,i+1]:=inventar[i].Typ;
SG_Inv.Cells[2,i+1]:=inventar[i].bsys;
SG_Inv.Cells[3,i+1]:=inventar[i].Benutzer;
SG_Inv.Cells[4,i+1]:=inventar[i].IP;
SG_Inv.RowCount:=i+2;
i:=i+1;
end;
CloseFile(datei);
except
ShowMessage('
Die Datei konnte nicht geöffnet werden oder existiert nicht.');
end;
{for i:=0 to (length(inventar)-1) do
begin
if (inventar[i].Raum>inventar[i-1].Raum) then
begin
CB_Raum.Items.Add(inventar[i].Raum);
end;
if (inventar[i].Typ>inventar[i-1].Typ) then
begin
CB_Raum.Items.Add(inventar[i].Typ);
end;
if (inventar[i].bsys>inventar[i-1].bsys) then
begin
CB_Raum.Items.Add(inventar[i].bsys);
end;
if (inventar[i].Benutzer>inventar[i-1].Benutzer) then
begin
CB_Raum.Items.Add(inventar[i].Benutzer);
end;
if (inventar[i].IP>inventar[i-1].IP) then
begin
CB_Raum.Items.Add(inventar[i].IP);
end;
end;}
setlength(filter, 5);
for i:=0
to 4
do
begin
filter[i].Raum := '
';
filter[i].Typ :='
' ;
filter[i].bsys :='
' ;
filter[i].Benutzer :='
' ;
filter[i].IP :='
';
end;
end;
end;
procedure TForm1.Speichern1Click(Sender: TObject);
begin
for i:=1
to (SG_Inv.RowCount-1)
do
begin
SetLength(inventar, i);
inventar[i-1].Raum:=SG_Inv.Cells[0,i];
inventar[i-1].Typ:=SG_Inv.Cells[1,i];
inventar[i-1].bsys:=SG_Inv.Cells[2,i];
inventar[i-1].Benutzer:=SG_Inv.Cells[3,i];
inventar[i-1].IP:=SG_Inv.Cells[4,i];
end;
try
AssignFile(datei,pfad);
ReWrite(datei);
u:=0;
while u<=length(inventar)
do
begin
Write(datei,inventar[u]);
u:=u+1;
end;
CLoseFile(datei);
except
ShowMessage('
Sie haben bisher noch nicht abgespeichert. Bitte speichern Sie die Datei mit der "Speichern unter ..." Option.');
end;
end;
procedure TForm1.Speichernunter1Click(Sender: TObject);
begin
SD_SAVE.Filter := '
Datenbanken (*.db)|*.db| Alle Datein (*.*)| *.*';
if SD_Save.Execute
then
begin
for i:=1
to (SG_Inv.RowCount-1)
do
begin
SetLength(inventar, i);
inventar[i-1].Raum:=SG_Inv.Cells[0,i];
inventar[i-1].Typ:=SG_Inv.Cells[1,i];
inventar[i-1].bsys:=SG_Inv.Cells[2,i];
inventar[i-1].Benutzer:=SG_Inv.Cells[3,i];
inventar[i-1].IP:=SG_Inv.Cells[4,i];
end;
pfad:=SD_Save.FileName;
try
AssignFile(datei,pfad);
ReWrite(datei);
u:=0;
while u<=(length(inventar)-1)
do
begin
Write(datei,inventar[u]);
u:=u+1;
end;
CLoseFile(datei);
Speichern1.Enabled := false;
except
ShowMessage('
Die Datei konnte nicht gespeichert werden. Speicherpfad/Speichername ungültig oder nicht genügend freier Speicherplatz auf dere Festplatte verfügbar.');
end;
end;
end;
procedure TForm1.Neu1Click(Sender: TObject);
begin
SG_Inv.RowCount:=2;
SG_Inv.Cells[0,1]:='
';
SG_Inv.Cells[1,1]:='
';
SG_Inv.Cells[2,1]:='
';
SG_Inv.Cells[3,1]:='
';
SG_Inv.Cells[4,1]:='
';
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
SG_Inv.RowCount:=SG_Inv.RowCount+1;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if (kopiert=true)
then
begin
SG_Inv.RowCount:=2;
SG_Inv.Cells[0,1]:='
';
SG_Inv.Cells[1,1]:='
';
SG_Inv.Cells[2,1]:='
';
SG_Inv.Cells[3,1]:='
';
SG_Inv.Cells[4,1]:='
';
for i:=0
to (length(filter)-1)
do
begin
if (CB_Raum.ItemIndex>-1)
then
begin
if not(CB_Raum.Text=inventar[i].Raum)
then
begin
for u:=i+1
to length(inventar)
do
begin
filter[u-1]:=filter[u];
SetLength(filter,length(filter)-1);
end;
end;
end;
if (CB_Geraet.ItemIndex>-1)
then
begin
if not(CB_Geraet.Text=inventar[i].Typ)
then
begin
for u:=i+1
to length(inventar)
do
begin
filter[u-1]:=filter[u];
SetLength(filter,length(filter)-1);
end;
end;
end;
if (CB_System.ItemIndex>-1)
then
begin
if not(CB_System.Text=inventar[i].bsys)
then
begin
for u:=i+1
to length(inventar)
do
begin
filter[u-1]:=filter[u];
SetLength(filter,length(filter)-1);
end;
end;
end;
if (CB_Benutzer.ItemIndex>-1)
then
begin
if not(CB_Benutzer.Text=inventar[i].Benutzer)
then
begin
for u:=i+1
to length(inventar)
do
begin
filter[u-1]:=filter[u];
SetLength(filter,length(filter)-1);
end;
end;
end;
if (CB_IP.ItemIndex>-1)
then
begin
if not (CB_IP.Text=inventar[i].IP)
then
begin
for u:=i+1
to length(inventar)
do
begin
filter[u-1]:=filter[u];
SetLength(filter,length(filter)-1);
end;
end;
end;
end;
for i:=0
to length(filter)
do
begin
SG_Inv.RowCount:=i+2;
SG_Inv.Cells[0,i+1]:=filter[i].Raum;
SG_Inv.Cells[1,i+1]:=filter[i].Typ;
SG_Inv.Cells[2,i+1]:=filter[i].bsys;
SG_Inv.Cells[3,i+1]:=filter[i].Benutzer;
SG_Inv.Cells[4,i+1]:=filter[i].IP;
end;
end
else
begin
ShowMessage('
Bitte erst die Daten in den Zwischenspeicher kopieren.');
end;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
for i:=0
to (SG_Inv.RowCount-1)
do
begin
SetLength(filter, i+1);
filter[i].Raum:=SG_Inv.Cells[0,i+1];
filter[i].Typ:=SG_Inv.Cells[1,i+1];
filter[i].bsys:=SG_Inv.Cells[2,i+1];
filter[i].Benutzer:=SG_Inv.Cells[3,i+1];
filter[i].IP:=SG_Inv.Cells[4,i+1];
end;
kopiert:=true;
runfirst := 1;
for i:=0
to (length(filter)-1)
do
begin
if runfirst = 1
then
begin
filter[i].Raum := SG_INV.Cells[0, i+1];
filter[i].Typ := SG_INV.Cells[1, i+1];
filter[i].bsys := SG_INV.Cells[2, i+1];
filter[i].Benutzer := SG_INV.Cells[3, i+1];
filter[i].IP := SG_INV.Ce´lls[4, i+1];
runfirst:=0;
end
else
end;
end;
end.