Einzelnen Beitrag anzeigen

Impulz

Registriert seit: 19. Aug 2011
Ort: Lübeck
68 Beiträge
 
Delphi 7 Professional
 
#3

AW: 2 Units zusammenfassen in eine Untergeordnete Logikschicht

  Alt 21. Dez 2011, 12:57
Hi,
vielen Dank erstmal an dich

aufgebaut ist es ja gerade so, dass die Logikschicht(Databaseconnect bzw connect) alles hat was mit datenbank zutun hat und die logik

die OBS (Oberfläche) pickt sich da einfach immer was raus (schichtenarchitektur)

die einzelnen Abteilungen sind in form von Units (hier ganz unten als UKunde) doch gegeben

abfrage und filterung der Datenmengen siehe: OBS und Databaseconnect (durch SQL wird doch abgefragt und mit der Oberfläche (OBS) aufgerufen)


die frage ist nur wie kriege ich das Kunden Objekt gebündelt mit den anderen Objekten hier zb noch eins von denen:


Code:
unit USendungsverfolgung;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Buttons, StdCtrls, ExtCtrls, ComCtrls;
type

  TSendung = class(TObject)
  private
    FSendung_ID : integer;
    FSendung_Status: String;
    FSendung_Rechnung: String;
    procedure setStatus(newValue : String);
    procedure setRechnung(newValue: string);
  public
    constructor Create (ASendung_ID:integer; AStatus, Arechnung: string);
    property Status: string read FSendung_Status write setStatus ;
    property Rechnung: string read FSendung_Rechnung write setRechnung;
    property ID: integer read FSendung_ID;
  end;

  TSendungList = class(Tobject)
  private
    FSendungListe :TStringList;
  public
    procedure addSendung (ASendung:TSendung);
    function Count():integer;
    function getSendungById(ASendung_ID:integer):TSendung;
    function getSendungByIndex(AIndex: integer): TSendung;
    constructor create ();
  end;

implementation

uses StrUtils;

{ TKunde }

constructor TSendung.Create(ASendung_ID:integer; AStatus, Arechnung: string);
begin
  inherited Create();

  self.FSendung_ID:= ASendung_ID;
  self.FSendung_Status:= AStatus;
  self.FSendung_Rechnung:= ARechnung;
end;

{ TKUndeList }
function TSendungList.Count():integer;
Begin
  result:= FSendungListe.Count;
end;

procedure TSendungList.addSendung(aSendung:tSendung);
begin
  FSendungListe.AddObject(IntToStr(ASendung.ID),ASendung);
end;

constructor TSendungList.create;
begin
  inherited create();
  self.FSendungListe:=TStringList.Create;
end;

function TSendungList.getSendungByID(ASendung_ID:integer): TSendung;
var
  idx : Integer;
begin
  idx := FSendungListe.IndexOf(IntToStr(ASendung_ID));
  if (idx>-1)then
  begin
    Result:= TSendung(FSendungListe.Objects[idx]);
  end else
  begin
    result:= nil;
  end;
end;

function TSendungList.getSendungByIndex(AIndex: integer): TSendung;
begin
  if(AIndex>-1)and(AIndex<FSendungListe.Count) then
  begin
    result:= TSendung(FSendungListe.Objects[AIndex]);
  end else
  begin
    result:=nil;
  end;
end;

procedure TSendung.setRechnung(newValue: string);
begin
  if (Trim(newValue)<>'') then
  begin
    self.FSendung_Rechnung:=newValue;
  end;
end;

procedure TSendung.setStatus(newValue: String);
begin
  if (Trim(newValue)<>'') then
  begin
    self.FSendung_Status:=newValue;
  end;
end;

end.

damit ich daraus dann alles zur anzeige bringen kann.

mein ausbilder möchte leider, dass ich eine logik unit zur verknüpfung meiner Objekte anlege....

ich habe aber GARKEINE ahnung wie das gehen soll... nicht mal nen kleinen schimmer wie ich die Unit an sich aufbau: bisher bin ich soweit:

Code:
unit Objektezusammenfassen;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Buttons, StdCtrls, ExtCtrls, ComCtrls,UKunde,UBuecher,Autoren,USendungsverfolgung;
type
  TLogObjects = class(TObject)


  private
  FlogObjects: Tlogobjects;

  public
  procedure addObjects (AAutor:TAutor;AKunde:TKunde;ABuch:TBuch;Asendung:Tsendung);









  end;

implementation

{ TLogObjects }

procedure TLogObjects.addObjects(AAutor: TAutor; AKunde: TKunde;
  ABuch: TBuch; Asendung: Tsendung);
begin

end;

end.
fehlt noch irgendwas an code zum verständniss?

oder wo wird was nicht verstanden?
gerne fragen
Danil
  Mit Zitat antworten Zitat