Einzelnen Beitrag anzeigen

Benutzerbild von Jens Hartmann
Jens Hartmann

Registriert seit: 11. Jan 2009
Ort: Wilnsdorf
1.439 Beiträge
 
Delphi XE2 Professional
 
#4

Re: Datenbankanbindung in einer Klasse

  Alt 2. Jun 2010, 19:21
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
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat