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/)
-   -   mein Programm kontroliert auch die leeren Zelle! (https://www.delphipraxis.net/42175-mein-programm-kontroliert-auch-die-leeren-zelle.html)

PeterKiers 15. Mär 2005 08:29


mein Programm kontroliert auch die leeren Zelle!
 
Hallo liebe Leute!



Ich bin derzeit mit einem Programm beschäftigt,dass eine Anzahl Servers
controliert(Pingen).
Ich habe eine Stringgrid mit einer Menge Server-namen
darin, und mein Programm läuft durch die Zelle um die Server-namen zu
controlieren.
Aber
Ich habe 4 Reihen in meiner Stringgrid, wovon die vierte Reihe
nur halb gefühllt ist, doch mein Programm kontroliert auch
de leeren Zelle von der vierte Reihe.
Weiss vieleicht jemand von euch, wie man dass Problem auflösen kann, so
dass mein Programm nur die Zelle kontroliert die angefüllt sind mit Text?


Im voraus, vielen Dank!
Delphi-Quellcode:
procedure TFormServers.FormCreate(Sender: TObject);
begin
ProgressBar1.Smooth := True;
StartWaiting;
end;

procedure TFormServers.CheckCurrentServer;
begin
with GridServers do
CheckServer(Cells[Col,Row]);
end;

function TFormServers.IsWaiting: Boolean;
begin
Result := ProgressBar1.Position < ProgressBar1.Max;
end;

procedure TFormServers.ContinueWaiting;
begin
ProgressBar1.StepIt;
end;

procedure TFormServers.Timer1Timer(Sender: TObject);
begin
if IsWaiting then
ContinueWaiting
else begin
CheckCurrentServer;
NextServer;
end;
end;

procedure TFormServers.StartWaiting;
begin
ProgressBar1.Position := ProgressBar1.Min; FirstServer;end;

procedure TFormServers.NextServer;
begin
with GridServers do
if Col < Pred(ColCount) then Col := Succ(Col)
else if Row < Pred(RowCount) then
begin
Col := FixedCols;
Row := Succ(Row);
end
else StartWaiting;
end;

procedure TFormServers.FirstServer;
begin
with GridServers do
begin
Row := FixedRows;
Col := FixedCols;
end;
end;

procedure TFormServers.CheckServer(const AServer: string);
begin
Caption := 'Checking Server: ' + AServer + ' ...';
end;
[edit=Sharky]Delphi-Tags gesetzt. Mfg, Sharky[/edit]

Sharky 15. Mär 2005 08:37

Re: mein Programm kontroliert auch die leeren Zelle!
 
Hai PeterKiers,

ersteinmal: "Herzlich Willkommen in der Delphi-PRAXIS".

Du müsstest einfach nur prüfen ob in der Zelle deines StringGrids etwas steht. Wenn ja dann "prüfen" wenn Nein dann nächster Server.

Ungefähr so:
Delphi-Quellcode:
procedure TFormServers.CheckCurrentServer;
begin
  with GridServers do
  begin
    if (Cells[Col,Row] <> '') then
    begin
      CheckServer(Cells[Col,Row]);
    end
    else
    begin
       NextServer;
    end;
  end;
end;

PeterKiers 15. Mär 2005 12:11

Re: mein Programm kontroliert auch die leeren Zelle!
 
Doch funktioniert es nicht, und Delphi gebt keine fehler?

HILFE...
Delphi-Quellcode:
procedure TFormServers.CheckCurrentServer;
begin
  with GridServers do
  begin
    CheckServer(Cells[Col,Row]);
    if (Cells[Col,Row] <> '') then
     NextServer
  else    
    begin
       ContinueWaiting;
    end;
  end;
end;
Peter

[edit=Sharky]Delphi-Tags gesetzt. Bitte zukünftig selber machen ;-) Mfg, Sharky[/edit]

Sharky 16. Mär 2005 05:44

Re: mein Programm kontroliert auch die leeren Zelle!
 
Zitat:

Zitat von PeterKiers
Doch funktioniert es nicht, und Delphi gebt keine fehler?...

Hai Peter,
vergliche doch mal deine Procedure mit meiner ;-)
Du machst erst den Servercheck und danach prüfst Du ob in dem Stringgrid eine leere Zelle ist ;-)

PeterKiers 16. Mär 2005 08:20

Re: mein Programm kontroliert auch die leeren Zelle!
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

Wenn ich diese Prozedur ausführe, kontroliert er doch die leere Strings.

Wenn ich meine Prozedur ausführe, tut er dass was ich möchte, nur beim kontrolieren
der Servers, schlägt er immer der erste String über.


1 procedure TFormServers.CheckCurrentServer;
2 begin
3 with GridServers do
4 begin
5 if (Cells[Col,Row] <> '') then
6 begin
7 CheckServer (Cells[Col,Row]);
8 end
9 else
10 begin
11 ContinueWaiting;
12 FirstServer;
13 NextServer;
14 end;
15 end;
16 end;

PeterKiers

PeterKiers 17. Mär 2005 11:14

Re: mein Programm kontroliert auch die leeren Zelle!
 
Ich habe das Problem schon selbst gelöst.

Vielen Dank für die Hilfe

procedure TFormServers.NextServer;
begin
with GridServers do
if Row < Pred(RowCount) then Row := Succ(Row)
else if Col < Pred(ColCount) then
begin
Row := FixedRows;
Col := Succ(Col);
end;
with GridServers do
begin
if (Cells[Col,Row] <> '') then
else
StartWaiting;
end;
end;

Pr0g 17. Mär 2005 16:13

Re: mein Programm kontroliert auch die leeren Zelle!
 
Statt
Delphi-Quellcode:
 if (Cells[Col,Row] <> '') then
else
StartWaiting;
kannst du auch direkt
Delphi-Quellcode:
 if (Cells[Col,Row] = '') then
StartWaiting;
schreiben.

MfG Pr0g

TeronG 17. Mär 2005 16:26

Re: mein Programm kontroliert auch die leeren Zelle!
 
Benutz doch im Forum bitte
Code:
[delphi][/delphi]
Delphi-Quellcode:
 und [code][/code]
(oder klick auf "Delphi-Code" Knopf)
Das macht deine Codeschnipsel VIEL leserlicher :wink:


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