Hallo H4andy,
das habe ich auch schon überlegt. Die Frage ist nur, macht das alles Sinn. Ich denke, das die Klasse niemals jemand anderem was nutzen wird, da sie einfach zu speziell ist. Und ob ich Sie nochmal brauche, glaube ich nicht. Daher, hätte ich eigendlich keine Bauchschmerzen mit dem Datenmodul.
Ich habe nur überlegt, weil ich so langsam anfangen OO zu Porgrammieren und es auch so langsam verstehe und da sagt halt mein Verstand,wenn OO, dann auch nutzbar immer etc.
Allerdings, kam der Grundgedanke eine eigene Klasse einzusetzen, aus lerntechnischer Anforderung und um einige Funktion aus dem Quellcode auszulagern.
Da ich aber in diesen ausgelagerten Funktionen auch Daten aus der
DB benötige, stehe ich halt jetzt vor diesem Problem.
Ich zeige mal den aktuellen Stand, vieleicht schlagt Ihr dann eh die Hände über dem Kopf zusammen....
Delphi-Quellcode:
Unit EventUtils;
interface
uses
Windows,SysUtils,Classes,Dialogs, Datenbankanbindung;
type
TMyEventParser =
class
private
procedure GetParamsOfGServer(
var Params : TStringList);
procedure SetDisplayTextOn(Text :
String);
public
function EventParseSetDisplay(EventList : TStringList; Event :
String) : Boolean;
function EventParseMakeCall(EventList : TStringList; Event :
String) : Boolean;
function EventParseClearDisplay(EventList : TStringList; Event :
String) : Boolean;
end;
implementation
{Prüft das aktuelle Ereignis auf Übereinstimmung bzw. den Inhalt der StringListe
der gesamten Ereignisstrings des Gefahrenmeldesystems.
Das Ergebnis führt die Funktion SetDisplayText aus}
function TMyEventParser.EventParseSetDisplay
(EventList: TStringList; Event :
String ) : Boolean;
var
i : integer;
DisplayText :
String;
begin
try
Result := false;
if EventList.IndexOf(Event) <> -1
then
begin
for i := 0
to EventList.Count - 1
do
DisplayText := DisplayText + EventList[i];
SetDisplayTextOn(DisplayText);
Result := true;
end;
except
Result := false;
end;
end;
{Prüft das aktuelle Ereignis auf Übereinstimmung bzw. den Inhalt der StringListe
der gesamten Ereignisstrings des Gefahrenmeldesystems.
Das Ergebnis führt die Funktion MakeCall aus}
function TMyEventParser.EventParseMakeCall
(EventList: TStringList; Event :
String ) : Boolean;
var
i : integer;
begin
try
Result := false;
if EventList.IndexOf(Event) <> -1
then
Result := true;
except
Result := false;
end;
end;
{Prüft das aktuelle Ereignis auf Übereinstimmung bzw. den Inhalt der StringListe
der gesamten Ereignisstrings des Gefahrenmeldesystems.
Das Ergebnis führt die Funktion ClearDisplayText aus}
function TMyEventParser.EventParseClearDisplay
(EventList: TStringList; Event :
String ) : Boolean;
var
i : integer;
begin
try
Result := false;
if EventList.IndexOf(Event) <> -1
then
Result := true;
except
Result := false;
end;
end;
procedure TMyEventParser.SetDisplayTextOn(Text:
string);
var
slParams: TStringList;
Cookie :
String;
begin
try
slParams := TStringList.Create;
GetParamsOfGServer(slParams);
Dm_PS.idHttpGServer.Post('
http://127.0.0.1:8801/login', slParams);
Cookie:= DM_PS.idCookieGServer.CookieCollection.Items[0].CookieText;
DM_PS.idHttpGServer.Request.CustomHeaders.Add('
Cookie:' + Cookie);
ShowMessage(Text);
finally
slParams.Free;
end;
end;
procedure TMyEventParser.GetParamsOfGServer(
var Params : TStringList);
begin
Params.Add('
gsUser=admin');
Params.Add('
gsPass=adminpass');
end;
end.
Gruß Jens