Delphi-PRAXiS
Seite 1 von 2  1 2      

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/)
-   -   Delphi Ergebnisse einer For-Schleife in einer Liste darstellen. (https://www.delphipraxis.net/114729-ergebnisse-einer-schleife-einer-liste-darstellen.html)

Tod787 30. Mai 2008 08:11


Ergebnisse einer For-Schleife in einer Liste darstellen.
 
Moin,

habe folgendes Problemchen:

möchte gerne in einer For-Schleife entstehenden Ergebnisse in einer Liste ausgeben.
Der jetzige Code gibt nur den letzten der Werte im Panel aus. Ich hätte aber gerne eine Liste mit alles Werten.

Delphi-Quellcode:
begin
  WMI:=CreateOleObject('WbemScripting.SWbemLocator');
  wmiService := wmi.ConnectServer('.', 'root\wmi');
  nicstatus := wmiService.InstancesOf('MSNdis_MediaConnectStatus');
  p := nicstatus._NewEnum;
  p.QueryInterface(IEnumVariant, Enum);
  hilf := 0;
  i := nicstatus.Count;
  for cnt := 0 to i - 1 do
   begin
     Enum.Next(1, card, F);
     connected := card.NdisMediaConnectStatus;
     if (connected = 0) then
        begin
          Status := 'verbunden';
        end
     else
        begin
          Status := 'nicht verbunden';
        end;
     Panel1.Caption := card.InstanceName + ' : ' + status;
  end;

 end;
[edit=SirThornberry]"diein" durch "in" ersetzt - Mfg, SirThornberry[/edit]

mkinzler 30. Mai 2008 08:21

Re: Ergebnisse einer For-Schleife in einer Liste darstellen.
 
Delphi-Quellcode:
Panel1.Caption := Panel1.Caption + '; ' + card.InstanceName + ' : ' + status;

Linkat 30. Mai 2008 08:22

Re: Ergebnisse einer For-Schleife in einer Liste darstellen.
 
Hallo Tod787,

wenn ich dein Problemchen richtig verstehen, musst du den String den du in Panel1.Caption übergibst, einfach nacheinander in eine Listbox schreiben (z. B. ListBox1.Items.Add( 'hier steht der String')).

Ich hoffe, das war dein Problem.

Gruß, Linkat

Tod787 30. Mai 2008 09:49

Re: Ergebnisse einer For-Schleife in einer Liste darstellen.
 
Hallo mkinzler und Linkat

Vielen Dank! Es funktioniert beides wobei die Listenausgabe von Linkat etwas übersichtlicher ausschaut. Mein Problem ist jetzt nur noch, dass ich das ganze in einem Timer aufrufe und somit die gleichen Strings immer und wieder eingefügt werden. Wie schaffe ich es dass die Ausgabe nur 1x stattfindet?

DeddyH 30. Mai 2008 09:51

Re: Ergebnisse einer For-Schleife in einer Liste darstellen.
 
Du willst die Liste aktualisieren, oder? Sonst macht der Timer irgendwie keinen Sinn.

Tod787 30. Mai 2008 09:59

Re: Ergebnisse einer For-Schleife in einer Liste darstellen.
 
Ja genau das möchte ich machen. Läuft auch schon, nur soll die Ausgabe nur einmal dastehen und im Intervall aktualisiert werden.

DeddyH 30. Mai 2008 10:01

Re: Ergebnisse einer For-Schleife in einer Liste darstellen.
 
Versuch es mal so (ungetestet):
Delphi-Quellcode:
procedure Wuppdi(const str: TStrings);
...
begin
  str.Items.BeginUpdate;
  try
    str.Clear;
    WMI:=CreateOleObject('WbemScripting.SWbemLocator');
    wmiService := wmi.ConnectServer('.', 'root\wmi');
    nicstatus := wmiService.InstancesOf('MSNdis_MediaConnectStatus');
    p := nicstatus._NewEnum;
    p.QueryInterface(IEnumVariant, Enum);
    hilf := 0;
    i := nicstatus.Count;
    for cnt := 0 to i - 1 do
      begin
        Enum.Next(1, card, F);
        connected := card.NdisMediaConnectStatus;
        if (connected = 0) then
           begin
             Status := 'verbunden';
           end
        else
           begin
             Status := 'nicht verbunden';
           end;
        str.Items.Add(card.InstanceName + ' : ' + status);
      end;
  finally
    str.Items.EndUpdate;
  end;
end;
Für str kannst Du dann z.B. Listbox.Items angeben.

Klaus01 30. Mai 2008 10:02

Re: Ergebnisse einer For-Schleife in einer Liste darstellen.
 
Dann würde ich die Daten zuerst in eine StringList füllen
und die Eigenschaft Duplicates auf dupIgnore einstellen.
Die StringList kannst Du anschliessen in die ListBox übertragen.

Grüße
Klaus

ToFaceTeKilla 30. Mai 2008 10:04

Re: Ergebnisse einer For-Schleife in einer Liste darstellen.
 
Dann lösch die Liste am Anfang jedes Timer-Intervalls. Dann werden die Elemente in ihrer aktuellen Form wieder hinzugefügt.

Klaus01 30. Mai 2008 10:05

Re: Ergebnisse einer For-Schleife in einer Liste darstellen.
 
Zitat:

Zitat von ToFaceTeKilla
Dann lösch die Liste am Anfang jedes Timer-Intervalls. Dann werden die Elemente in ihrer aktuellen Form wieder hinzugefügt.

.. das hat einen gewissen Charm.

Grüße
Klaus


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:05 Uhr.
Seite 1 von 2  1 2      

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