AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Quelltext richtig sortieren, aber wie am besten?
Thema durchsuchen
Ansicht
Themen-Optionen

Quelltext richtig sortieren, aber wie am besten?

Ein Thema von ChristianG · begonnen am 6. Aug 2014 · letzter Beitrag vom 6. Aug 2014
 
ChristianG

Registriert seit: 8. Jul 2014
97 Beiträge
 
Delphi XE6 Starter
 
#1

Quelltext richtig sortieren, aber wie am besten?

  Alt 6. Aug 2014, 08:37
Guten morgen liebe Delphi Gemeinde,
ich arbeite schon seit mehreren Wochen an einer App für Android, die langsam sehr unübersichtlich wird. Mit knapp 2000 Zeilen ist diese auch nicht winzig und wenn weitere Features dazukommen kann ich mich kaum noch orientieren, was was ist.
Meine Idee: Ich erstelle neben der Hauptunit 3 weitere Units die folgendes machen.
1.SessionData: Ist als Speicherquelle für variablen gedacht.
2.TsData: Ist zur Kommunikation des Servers gedacht.
3.Worker: Ist zum berechnen der Daten gemacht.
Meine erste Frage ist, ob es Sinn macht es so zu unterteilen.
Die zweite Frage ist, wie ich variablen von TSData in eine Funktion im Worker ausgeben kann, um mit denen weiterzurechnen.
Quelltext: worker:
Delphi-Quellcode:
function TWorker.Login(const Benutzername, Password: string; var SessionID,
  Output: string): integer;
  var
  locNode : IXMLNode;
  bnode : IXMLNode;
  u : Integer;
  XMLbezahlen: IXMLDocument;
  cdsbezahlen: TClientDataSet;
begin
 TSessionData.Logindaten(); //const sollen con TsessionData geladen werden
 TsData.Login; //Kommunikation mit dem Server, aber wie

 for u := 0 to XMLbezahlen.DocumentElement.ChildNodes.Count - 1 do begin

    bnode := XMLbezahlen.DocumentElement.ChildNodes.Get(u);


    With cdsbezahlen.create(self) do begin
    cdsBezahlen.Append;

    cdsBezahlen.FieldByName('Position').asInteger := u;

    locNode := bnode.ChildNodes.FindNode('ID');
    cdsBezahlen.FieldByName('ID').AsString := IfThen(locNode = nil, '', locNode.Text) ;

    locNode := bnode.ChildNodes.FindNode('Name');
    cdsBezahlen.FieldByName('Name').AsString := IfThen(locNode = nil, '', locNode.Text);

    locNode := bnode.ChildNodes.FindNode('Price');
    cdsBezahlen.FieldByName('Kosten').AsString := IfThen(locNode = nil, '', locNode.Text);

    locNode := bnode.ChildNodes.FindNode('SeatingCategory');
    cdsBezahlen.FieldByName('Sitzrheie').AsString := IfThen(locNode = nil, '', locNode.Text);

    cdsBezahlen.Post;
SessionData:
Delphi-Quellcode:
function TSessionData.Logindaten(var Name, Password): String;
begin
Password := Appversuch6.Appseite1.edPasswort.text;
name := Appversuch6.Appseite1.edBenutzername.text;
end;
TsData:
Delphi-Quellcode:
function TTSData.Login(const Benutzername,Password: string; var SessionID: string): integer;
var
  postdata : TStringlist;
  Url : String;
  Node : IXMLNode;
  XMLlogin : TXMLDocument;
begin
  XMLLogin := TXMLDocument.Create(self);


  postdata := TStringList.Create;
  URL := 'Name der Internetseite';

  postdata.Add('loginname=' + Benutzername);
  postdata.Add('password=' + Password) ;
  with TIDHTTP.Create(Self) do
  try

    Output := Post(URL,postdata);

    except
      on e:exception do begin
      result := StrToInt(e.message);
      exit;
    end;
  end;

  postdata.free;
  XMLlogin.XML.Text := Output;
  XMLlogin.Active := true;

  with TIdhttp do begin
    ConnectTimeout := 3000;
    Request.UserAgent := 'Mozilla/5.0 (Windows NT 6.2; rv:9.0.1) Gecko/20100101 Firefox/9.0.1';
  end;

  node := XMLlogin.DocumentElement.ChildNodes.FindNode('SessionID');
  SessionID := node.Text;

end;
Ich brauche Hilfe beim Worker. Danke schon einmal im voraus
Christian
  Mit Zitat antworten Zitat
 

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:33 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz