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];
System:
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, System, Nutzer,
IP:
String;
kopiert:Boolean;
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';
end;
procedure TForm1.Laden1Click(Sender: TObject);
begin
if (OD_Oeffnen.Execute=true)
then
begin
pfad:=OD_Oeffnen.InitialDir;
i:=0;
try
AssignFile(datei,pfad);
Reset(datei);
while eof(datei)=false
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].System;
SG_Inv.Cells[3,i+1]:=inventar[i].Benutzer;
SG_Inv.Cells[4,i+1]:=inventar[i].IP;
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)
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].System>inventar[i-1].System)
then
begin
CB_Raum.Items.Add(inventar[i].System);
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;
end;
end;
procedure TForm1.Speichern1Click(Sender: TObject);
begin
for i:=0
to (SG_Inv.RowCount-1)
do
begin
inventar[i].Raum:=SG_Inv.Cells[0,i+1];
inventar[i].Typ:=SG_Inv.Cells[1,i+1];
inventar[i].System:=SG_Inv.Cells[2,i+1];
inventar[i].Benutzer:=SG_Inv.Cells[3,i+1];
inventar[i].IP:=SG_Inv.Cells[4,i+1];
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
if (SD_Save.Execute=true)
then
begin
for i:=0
to (SG_Inv.RowCount-1)
do
begin
inventar[i].Raum:=SG_Inv.Cells[0,i+1];
inventar[i].Typ:=SG_Inv.Cells[1,i+1];
inventar[i].System:=SG_Inv.Cells[2,i+1];
inventar[i].Benutzer:=SG_Inv.Cells[3,i+1];
inventar[i].IP:=SG_Inv.Cells[4,i+1];
end;
pfad:=SD_Save.InitialDir;
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('
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)
do
begin
if (CB_Raum.ItemIndex>-1)
then
begin
if (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 (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 (CB_System.Text>inventar[i].System)
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 (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 (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].System;
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
do
begin
filter[i].Raum:=SG_Inv.Cells[0,i+1];
filter[i].Typ:=SG_Inv.Cells[1,i+1];
filter[i].System:=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;
end;
end.