Autor Beitrag
dude
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 48



BeitragVerfasst: Fr 14.03.03 14:06 
Hi,

ich habe hier eine Bool Funktion

ausblenden Quelltext
1:
2:
3:
4:
function IsOnline: boolean;
begin
  result:=InternetGetConnectedState(nil, 0);
end;


In diese Funktion will ich folgendes Einbauen

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
If IsOnline := True then
begin
  edit1.text := 'online'
end;
If IsOnline := False then
begin
  edit1.text := 'offline'
end;


ich will den Code NICHT in einen Timer einbauen. Er soll ohne Timer funktionieren. Das einzigste Problem ist, dass ich in dieser Bool Funktion keine Komponenten ansprechen kann.

Wie könnte ich das Problem lösen ?

Mfg, dude
Keldorn
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 2266
Erhaltene Danke: 4

Vista
D6 Prof, D 2005 Pro, D2007 Pro, DelphiXE2 Pro
BeitragVerfasst: Fr 14.03.03 14:11 
kurz überflogen und
ausblenden Quelltext
1:
If IsOnline = True then					

nicht := in Abfragen
außerdem geht es auch so:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
If IsOnline = true then   //selbst das =true kannst du noch weglassen
begin 
  edit1.text := 'online' 
end
else
begin 
  edit1.text := 'offline' 
end;


wenn du nur die eine Zuweisung edit1.text:= hast, kannst du dir auch noch die begin und ends sparen.
ganz kurz:
ausblenden Quelltext
1:
2:
If IsOnline then edit1.text := 'online' 
            else edit1.text := 'offline' ;


schau mal in die FAQ weiter unten, da ist bestimmt auch was für if dabei

Mfg Frank

_________________
Lükes Grundlage der Programmierung: Es wird nicht funktionieren.
(Murphy)
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Fr 14.03.03 16:30 
Zitat:
Das einzigste Problem ist, dass ich in dieser Bool Funktion keine Komponenten ansprechen kann.
Ich denke, was Du brauchst (zusätzlich zu den Hinweisen von Keldorn), ist folgendes:

ausblenden Quelltext
1:
Form1.Edit1.text :='online';					


MfG,
Peter

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 14.03.03 16:39 
Das dürfte dann der dritte Beitrag innerhalb von 48 Stunden zum gleichen Problem sein oder? :wink:

Wenn du auf mehr Elemente aus Form1 zugreifen mußt, dann mach deine Prozedur zu einer Methode vom Objekt TForm1.
dude Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 48



BeitragVerfasst: Fr 14.03.03 17:32 
@ Luckie : Ja, ich hab nun eine Prozedur gebaut mit Keldorn's Beispiel:

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
private
  procedure OnOff;

...

procedure TForm1.OnOff;
var ergebnis : Boolean;
begin
  ergebnis := InternetGetConnectedState(nil, 0);
  if ergebnis then
  begin
  form1.edStatus.Text := 'on';
  form1.edStatus.Font.Color := clGreen;
  end
  else
  form1.edStatus.Text := 'off';
  form1.edStatus.Font.Color := clMaroon;
end;


@ Peter Lustig: Danke, du hast eigentlich das beantwortet was ich wissen wollte. Habe zuerst gedacht, dass die Funktion schon wie ein eigener Timer ist, der sich automatisch auf True setzt.

Danke auch, habt mir sehr geholfen !
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Fr 14.03.03 17:34 
In der Prozedur, die Du jetzt benutzt, brauchst Du das Form1. ... nicht mehr, denn die Prozedur gehört ja jetzt schon zu Form1. Da wird er nicht mehr meckern, wenn Du nur "edStatus.Text:='on'" schreibst.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".