AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

warum mach showmessage probleme?

Ein Thema von glkgereon · begonnen am 7. Jan 2005 · letzter Beitrag vom 7. Jan 2005
Antwort Antwort
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#1

warum mach showmessage probleme?

  Alt 7. Jan 2005, 09:53
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
var t:TStringDynArray;
    i:integer;
begin
  for i:=Lst_todo.Count-1 downto 0 do
    begin
    t:=Explode(' - ',Lst_todo.Items[i]);
    if time-StrToTime(t[0])>0 then
      begin
      if t[2]=Sound then Snd else
      if t[2]=Messag then Msg(t[1]) else
      if t[2]=Msg_Sound then Snd_Msg(t[1]);
      Lst_done.Items.Add(Lst_todo.Items[i]);
      Lst_todo.Items.Delete(i);
      end;
    end;
end;
Sound, Messag und Msg_Sound sind konstante
Snd, Msg und Snd_Msg sind procedures

die zerlegung per explode funzt wies sie soll, aber bei 2 oder mehr einträgen die abgearbeitet werden müssen kommt ne meldung, wie wenn man versucht auf Lst_done.Items[2] zuzugreifen obwohl die nur 1 eintrag hat....
vorher wird die showmessage(die wird in Msg aufgerufen) aber auch zu oft gemacht, also bei 2 sachen kommt die min. 3 mal....

woran liet das?
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
IngoD7

Registriert seit: 16. Feb 2004
464 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: warum mach showmessage probleme?

  Alt 7. Jan 2005, 10:58
Zitat von glkgereon:
woran liet das?
Woher soll man das wissen? Außer dir weiß niemand, welchen Weg die Programmausführung nimmt. Teste es halt alles ordentlich aus.

Beispiel:
Zitat von glkgereon:
wie wenn man versucht auf Lst_done.Items[2] zuzugreifen obwohl die nur 1 eintrag hat....
Ganz sicher? Wann immer das "if time-StrToTime(t[0])>0 then" ausgeführt wird, hängst du doch selber einen Eintrag an die Liste dran.
Delphi-Quellcode:
if time-StrToTime(t[0])>0 then
      begin
      if t[2]=Sound then Snd else
      if t[2]=Messag then Msg(t[1]) else
      if t[2]=Msg_Sound then Snd_Msg(t[1]);
      Lst_done.Items.Add(Lst_todo.Items[i]); //<--- hier!
      Lst_todo.Items.Delete(i);
      end;
Wie oft trifft denn die if-Bedingung zu? Dann weißt du auch, wieviele Einträge die Lst_done mindestens hat.
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#3

Re: warum mach showmessage probleme?

  Alt 7. Jan 2005, 11:04
nein, bei der lst_todo kam der fehler...

aber es funzt auf einmal, dabei hab ich eigentlich gar nix geändert
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
IngoD7

Registriert seit: 16. Feb 2004
464 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: warum mach showmessage probleme?

  Alt 7. Jan 2005, 11:22
Zitat von glkgereon:
nein, bei der lst_todo kam der fehler...
Dann wäre es natürlich schön (wenn auch im Nachhinein unwichtig) gewesen, wenn das da gestanden hätte.

Zitat von glkgereon:
aber es funzt auf einmal, dabei hab ich eigentlich gar nix geändert
Vielleicht hast du ja Glück und der Fehler kommt wieder.
  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 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