AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Problem mit einer Schleife
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit einer Schleife

Ein Thema von delpher · begonnen am 14. Mär 2004 · letzter Beitrag vom 14. Mär 2004
Antwort Antwort
delpher

Registriert seit: 12. Mär 2004
30 Beiträge
 
#1

Problem mit einer Schleife

  Alt 14. Mär 2004, 10:52
Hallo, ich will ein programm schreiben was solange eine OneTime schleife durchläuft bis der Computer online ist! Was ja auch kein Problem darstellt, aber wenn der Computer online ist soll das Ereignis der Onetime Schleife nur einmal ausgeführt werden und wenn der Computer wieder offline geht und dann wieder online soll das Ereignis wieder stattfinden aber immer nur einmal. Bis jetzt ist mir nur eingefallen integer werte zu setzen bei on und offline aber sobald die schleife wieder neu ausgeführt wird ist der wert den ich z.b bei online angebe wieder gelöscht Wisst ihr vielleicht was bin für jeden Tip dankbar:
  Mit Zitat antworten Zitat
Benutzerbild von Dani
Dani

Registriert seit: 19. Jan 2003
732 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Problem mit einer Schleife

  Alt 14. Mär 2004, 11:09
Hi und willkommen in der Delphi-Praxis

Nun zu deiner Frage:
Du solltest aus Performancegründen lieber einen TTimer nehmen und keine Schleife. Dein Programm muss annehmen, dass der Ausganszustand "offline" ist. Im OnTimer Ereignis des Timers kannst du dann überprüfen lassen, ob der Computer gerade online ist oder nicht. Mich würde allerdings interessieren, wie du das genau machen willst, denn es gibt imho keine Möglichkeit mit Sicherheit festzustellen, ob ein Computer nun gerade online ist oder nicht. Wie dem auch sei... jedenfalls musst du den momentan ermittelten Status auch noch mit dem zuletzt ermittelten Status vergleichen. Speichere dazu am Ende jedes OnTimer Ereignises einfach den Status in einer Variablen, z.B. "LastOnlineState: Boolean". Dadurch erreichst du, dass das Ereignis nur bei einem Wechsel des Onlinestatus ausgelöst wird.

Das könnte z.B. so aussehen (Wenn du die VCL benutzt):

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls;

type
  TForm1 = class(TForm)
    Timer1: TTimer;
    procedure FormCreate(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
    LastOnlineState: Boolean;

    function ComputerIsOnline: Boolean;

    procedure OnGoOnline;
    procedure OnGoOffline;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.OnGoOnline;
begin
//Computer ging gerade online...
end;

procedure TForm1.OnGoOffline;
begin
//Computer ging gerade offline...
end;

function TForm1.ComputerIsOnline: Booelan;
begin
//Hier herausfinden, ob der Computer online ist..nur wie?
 Result := ...;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 LastState := false;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var CurrentOnlineState: Boolean;
begin
 CurrentOnlineState := ComputerIsOnline;
 If CurrentOnlineState<>LastOnlineState then

  case CurrentOnlineState of
   true: OnGoOnline;
   false: OnGoOffline;
  end;
 LastOnlineState := CurrentOnlineState;
end;

end.
Gruß,
Dani
Dani H.
  Mit Zitat antworten Zitat
delpher

Registriert seit: 12. Mär 2004
30 Beiträge
 
#3

Re: Problem mit einer Schleife

  Alt 14. Mär 2004, 12:45
... danke das hat mir sehr geholfen funzt super Achja ich beutze "internetgetconnectedstate" um zu prüfen ob der computer online ist oder nicht.
  Mit Zitat antworten Zitat
Antwort Antwort


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 17:45 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