Einzelnen Beitrag anzeigen

ChristianG

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

AW: Informationen aus einem ClientDataSet auslesen

  Alt 10. Jul 2014, 16:43
Ich versuche es einmal richtig zu formulieren.
Ich schreibe mit Delphi XE6 eine APP für ein Kino, welches schon die Images und die Titel mithilfe eines Grids ausgibt. Danach wird man weitergeleitet.Dies geschieht mit einem Tabcontrol und mehreren Tabitems. In dem neuen TabItem werden alle Vorstellungen mit Datum und Uhrzeit in einem Grid ausgegeben. Wenn man auf das Grid klickt wird man in ein Login weitergeleitet, wo man sich regestrieren oder einloggen kann.Wenn man auf den Button Anmelden klickt soll mithilfe eines Clientdatasets eine ID,der Name der Kosten,die Position und die Kosten geladen werden. Die Daten bekomme ich aus dem Internet. Mein Problem besteht jetzt darin, dass wenn ich auf ein neues Tabcontrol weitergeleitet werde, mithilfe eines Buttons die Kosten ermitteln möchte, die im Client DataSet vorhanden sind. Dafür brauche ich den Namen(z.B 'standard'), mit dem ich diese Kosten für eine Standartkarte herauslesen kann.Dies soll alles Dynamisch verlaufen,bzw. wenn ich auf den Button klicke.Ich schicke einfach den Quelltext mit, den ich für die Anmeldung geschrieben habe.
Delphi-Quellcode:
procedure TAppseite1.btnAnmeldenClick(Sender: TObject);
var
login : Boolean;
lURL,bURL : String;
lOutput,bOutput: String;
i,u : Integer;
lnode,bnode : IXMLNode;
lbenutzername : String;
lpasswort : String;
benutzername : String;
passwort : String;
postdata : TStringlist;
SessionID : String;
begin
  XMLlogin := NewXMLDocument;
  postdata := TStringList.Create;
  passwort := edPasswort.Text;
  benutzername := edBenutzername.Text;
   lURL := 'http://kinobox.net:11800/1.0/logins?apikey=2013dolphinV8';

   postdata.Add('loginname=' + benutzername);
   postdata.Add('password=' + passwort) ;

   try
    lOutput := idHTTP1.Post(lURL,postdata);
   except
    on e:exception do begin
     showmessage('Login fehlgeschlagen' );
     exit;
    end;
   end;

   XMLlogin.XML.Text := lOutput;
   XMLlogin.Active := true;

   IdHTTP1.ConnectTimeout := 3000;
   IdHTTP1.Request.UserAgent := 'Mozilla/5.0 (Windows NT 6.2; rv:9.0.1) Gecko/20100101 Firefox/9.0.1';

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

  showmessage('Login erfolgreich');
  postdata.Free;

    XMLbezahlen := newXMLDocument;
    bURL := 'http://kinobox.net:11800/1.0/shows/' + InttoStr(ShowID) + '/tickets?apikey=2013dolphinV8';
    bOutput := idHTTP1.Get(bURL);

    XMLbezahlen.XML.Text := bOutput;
    XMLbezahlen.Active := true;

    IdHTTP1.ConnectTimeout := 3000;
    IdHTTP1.Request.UserAgent := 'Mozilla/5.0 (Windows NT 6.2; rv:9.0.1) Gecko/20100101 Firefox/9.0.1';

     for u := 0 to XMLbezahlen.DocumentElement.ChildNodes.Count - 1 do begin
       bnode := XMLbezahlen.DocumentElement.ChildNodes.Get(u);

       cdsBezahlen.Append;
       cdsBezahlen.FieldByName('Position').asInteger := u;
       cdsBezahlen.FieldByName('ID').AsString := bnode.ChildNodes.FindNode('ID').Text;
       cdsBezahlen.FieldByName('Name').AsString := bnode.ChildNodes.FindNode('Name').Text;
       cdsBezahlen.FieldByName('Kosten').AsString := bnode.ChildNodes.FindNode('Price').Text;
       cdsBezahlen.Post;
     end;

  TabItem5.Visible := true;
  TabItem5.Enabled := true;
  TabItem2.Visible := false;
  TabItem2.Enabled := false;
  Tabcontrol1.ActiveTab := TabItem5;
  Tabcontrol1.TabIndex := TabItem5.Index;
  lblSessionID.Text := SessionID;
end;
Bis hierhin läuft alles.
Jetzt stelle ich mir auch noch die Frage, wie ich es realisieren soll,dass mein Programm automatisch die 'Namen' generieren soll. Dies brauche ich zum Beispiel, wenn die Seite ein Angebot macht. (Beispiel: Alle 8 Jährigen kommen für 6 Euro in diesen Film: Name:'spezialangebot',u:7,Kosten:8,ID:...). Es sollen 2 Buttons und ein label erstellt werden. (Button1:zurück,Label1:0,Button2:vor)Wenn ich auf Button 2 gehe, soll Label1 auf 1 gehen, der Name lokalisiert werden und der Preis herausgelesen werden. Wie bekomme ich dies hin
Ich hoffe das reicht dir an Informationen
Mit freundlichen Grüßen
Christian

Geändert von ChristianG (10. Jul 2014 um 16:48 Uhr)
  Mit Zitat antworten Zitat