Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Combox füllen (https://www.delphipraxis.net/185599-combox-fuellen.html)

sephraina 23. Jun 2015 12:45

Combox füllen
 
Hallo Zusammen

oder besser HILFE!

Bin ziemlich am verzweifeln. Schreibe zur Zeit an einer App diese soll bei Start Daten (in Form eines XML-Streams) holen und in eine Combox packen. Hat am Sonntag auch funktioniert. -Heute nicht mehr :cry: obwohl ich nichts geändert habe. Beim Starten der App im Emulator kommt sie nur bis zum füllen und stürzt dann ab.
also in Ersten Form rufe ich diesen Code auf:

Delphi-Quellcode:
procedure TFProbenbearbeitung.FormActivate(Sender: TObject);
begin
    showmessage('hier');
    FillCombox(cbmethode);
    showmessage('nachher');
end;
die showmessages habe ich verwendet um zu sehen wie weit er kommt.
das FillCombox kommt aus einem anderen Unit:

Delphi-Quellcode:
procedure FillCombox(cb: TCombobox);
var s: TMemorystream;
    str: TStringstream;
    a, p: string;
    y, i: integer;
    xm: IXMLDocument;
    Node1 : IXMLNode;
begin
      str := TStringstream.Create;
      a := ('4' + '|');
      p := ('http://127.0.0.1/' + a);
      s := DataModule1.GetXMLData(p);
      s.Position := 0;
      str.LoadFromStream(s);
      if xm = nil then xm := newXMLDocument else xm.XML.Clear;
      xm.LoadFromXML(str.DataString);

      with xm.DocumentElement do
          begin
          for y := 0 to ChildNodes.Count-1 do
              begin
                   Node1 := childnodes[y];
                   for i := 0 to Node1.ChildNodes.Count-1 do
                   begin
                    cb.items.add(Node1.ChildNodes.Nodes[i].GetAttributeNS('TXT_Methode','')+'|'+ Node1.ChildNodes.Nodes[i].GetAttributeNS('INT_MethodeID',''));
                  end;
              end;
          end;
end;
Am Auslesen des XMl-Streams kann es nicht liegen, dies habe ich getested, und funktioniert. Auch funktioniert das
Delphi-Quellcode:
cb.items.add()
dessen Inhalt zeigt er mir in einem showmessage an und dann stürzt die App ab.

Jetzt weiss ich einfach nicht mehr weiter

hoffe jemand hat eine Idee. Zumal das Ding am Sonntag ja noch funktioniert hat. Wenn ich das
Delphi-Quellcode:
FillCombox(cbmethode);
auskommentiere läuft die Chose ohne Problem...

Popov 23. Jun 2015 12:57

AW: Combox füllen
 
Fangen wir mal damit an, dass du vermutlich ein Speicherleck hast. Zumindest sehe ich nirgendwo ein FREE. Deshalb empfehle ich auch immer ein TRY FINALLY zu nutzen. Da fällt sowas immer direkt auf, es ist dann fast unmöglich ein FREE zu vergessen.

frankyboy1974 23. Jun 2015 13:14

AW: Combox füllen
 
Hallo,

ich würde jetzt mal nicht vermuten, dass das Problem an einem Speicherleck liegt. Speicherleck mögen lästig sein, haben aber grundsätzlich keine negativen Auswirkungen auf das Programm. Ich würde vermuten, dass das Problem am Einlesen der XML liegt. Am Sonntag hat das Einlesen noch funktioniert, heute nicht mehr. Du liest vom Localhost eine Datei, was hast du seit Sonntag an deinem Localhost verändert? Irgendeinen Dienstprozess nicht gestartet, der die XML zurückliefert?

mfg

frank

sephraina 23. Jun 2015 13:45

AW: Combox füllen
 
Hi, Danke für die schnellen Antworten.

@frankyboy1974: Die IP habe ich fürs Forum angepasst. Ich arbeite sonst mit der IP meines PC's die er vom Router erhalten hat. Funzt auch, solang die App eine korrekte IP hat. -Aber das ist ein anderes Problem.
Egal. Daran kanns nicht liegen. Dieses Client-Serverding hab ich getestet. Die XML wird korrekt zurückgliefert.
Ich denke es muss am Befüllen der combox liegen...

Update. Habs gerade nochmals probiert.
Und wer glaubts, es funktioniert wieder!!!

-Ich hab wirklich nichts geändert...
Vielleicht lags einfach nur am AVD, obwohl ich den heute schon x-Mal neu gestartet habe.

Danke für die Antworten
und @Popov: Ja, hatte ich noch vor einzubauen...

Gruss Seph

sephraina 23. Jun 2015 14:08

AW: Combox füllen
 
OK zu früh gefreut.

-nichts geändert, nochmals Compiliert und schon ist das Problem wieder da.

:cry: Noch eine Idee?


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:35 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