AGB  ·  Datenschutz  ·  Impressum  







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

ShowMessage mit Hilfe von Datum in ListView

Ein Thema von Akut-Programming · begonnen am 4. Sep 2003 · letzter Beitrag vom 5. Sep 2003
Antwort Antwort
Seite 1 von 3  1 23      
Akut-Programming

Registriert seit: 18. Aug 2003
648 Beiträge
 
#1

ShowMessage mit Hilfe von Datum in ListView

  Alt 4. Sep 2003, 14:40
Hi Leudz!

Ich ma widder... Ich wollt es nun so machen (bin dabei einen Terminplaner zu erstellen) das mein Programm über einen Timer meine Spalte "Datum" in Schleife überprüft ob ein Datum = dem des aktuellen Tages ist. Danach soll nach der Uhrzeit überprüft werden, soweit bin ich aber noch nicht.

Ich hab es so gemacht, das der Timer erst dann aktiv ist, wenn mindestens 1 Eintrag in der ListView steht. Das funzt auch, nur kommt er danach in ne Zugriffsverletzung, die in ner Schleife endet bzw. immer wieder aufgerufen wird. Ich weiß nicht, ob ich auf die falsche Spalte oder zeile zugreife.

Hier ist mal der Code von OnTimer2
Delphi-Quellcode:
procedure Tfrm_terminplaner_main.Timer2Timer(Sender: TObject);
var
  i: integer;
begin
    for i:=0 to lv_eintraege.Items.Count
    do begin
      if (lv_eintraege.Items[i].Caption=DateToStr(now)) and (lv_eintraege.Items[i].Caption=TimeToStr(now))
      then begin
        ShowMessage('Ihr Termin ('+lv_eintraege.Items[i].Caption+') beginnt!');
      end;
    end;
end;
THX
Gruß,
Akut-Programming
be cool, be hot ... just be
  Mit Zitat antworten Zitat
Tpercon

Registriert seit: 7. Jun 2002
638 Beiträge
 
Delphi 5 Professional
 
#2

Re: ShowMessage mit Hilfe von Datum in ListView

  Alt 4. Sep 2003, 14:51
Auf den ersten Blick solltest du lv_eintraege.Items.Count in lv_eintraege.Items.Count - 1 ändern!

Und nochwas:
Du wirst in deinem Beispiel nie einen Dialog sehen!
(lv_eintraege.Items[i].Caption=DateToStr(now)) and (lv_eintraege.Items[i].Caption=TimeToStr(now)) Was steht bei dir in der Caption? Ein Datum, eine Uhrzeit oder beides?
Falls beides, dann wäre der Vergleich
lv_eintraege.Items[i].Caption=DateTimeToStr(now) richtig.

Wie ich das sehe, hast du aber noch nciht so ganz den Unterschied zwischen Caption, SubItems[0], SubItems[1], ... verstanden? Sogar bei der Meldung verweist du darauf.

Jetzt hast du aber das Problem, dass du dir irgendwie noch merken mußt, bei welchem Item er schonmal nen Dialog angezeigt hast. Sonst bekommst du an einem Tag "100000mal" (bzw. bei jedem OnTimer Ereignis) den Dialog zu Gesicht.
  Mit Zitat antworten Zitat
Akut-Programming

Registriert seit: 18. Aug 2003
648 Beiträge
 
#3

Re: ShowMessage mit Hilfe von Datum in ListView

  Alt 4. Sep 2003, 15:10
Jetzt bekomm ich aber auch keine Meldung angezeigt. Es passiert nichts!!
Akut-Programming
be cool, be hot ... just be
  Mit Zitat antworten Zitat
Tpercon

Registriert seit: 7. Jun 2002
638 Beiträge
 
Delphi 5 Professional
 
#4

Re: ShowMessage mit Hilfe von Datum in ListView

  Alt 4. Sep 2003, 15:12
Deshalb lies dir nochmal meinen Beitrag (untere Hälfte!) von eben durch.
Sag mir mal an Hand eines Beispieles, was du in welcher Spalte stehen hast.
  Mit Zitat antworten Zitat
Yheeky

Registriert seit: 7. Jun 2002
1.339 Beiträge
 
#5

Re: ShowMessage mit Hilfe von Datum in ListView

  Alt 4. Sep 2003, 15:15
In welchem Format hast du es denn in der ListView stehen? Soweit ich weiss gibt "Now" folgendes Format aus:
Datum: dd.mm.yyyy
Zeit: hh:mm:ss

Wenn du also nur "15:14" in der ListView stehen hast, ist es klar, dass nichts kommt

Gruß Yheeky
  Mit Zitat antworten Zitat
Tpercon

Registriert seit: 7. Jun 2002
638 Beiträge
 
Delphi 5 Professional
 
#6

Re: ShowMessage mit Hilfe von Datum in ListView

  Alt 4. Sep 2003, 15:19
@ Yheeky: Die Umwandlung des string Wertes zum Datum wäre echt besser, nur sein Problem scheint wohl viel mehr die Belegung der Spalten zu sein. Im Caption stehen bei ihm: Datum, Uhrzeit und der Termin! Also irgendwas läuft da schief, daher soll er mal den Inhalt der Spalten posten.
  Mit Zitat antworten Zitat
Akut-Programming

Registriert seit: 18. Aug 2003
648 Beiträge
 
#7

Re: ShowMessage mit Hilfe von Datum in ListView

  Alt 4. Sep 2003, 15:20
Sorry, hatte erst nicht gesehen, das du noch editiert hast!!

Zitat von Tpercon:
Wie ich das sehe, hast du aber noch nciht so ganz den Unterschied zwischen Caption, SubItems[0], SubItems[1], ... verstanden? Sogar bei der Meldung verweist du darauf.
Ne, so richtig kenn ich den Unterschied auch noch nicht, da XML für mich neu ist. Von dem einen bekomme ich zu verstehen, das caption die Spalte ist, vom anderen höre ich, das es SubItem ist.

Zitat von Tpercon:
Jetzt hast du aber das Problem, dass du dir irgendwie noch merken mußt, bei welchem Item er schonmal nen Dialog angezeigt hast. Sonst bekommst du an einem Tag "100000mal" (bzw. bei jedem OnTimer Ereignis) den Dialog zu Gesicht.
Deshalb wollt ich ja eigentlich auch die Uhrzeit, die sich in einer anderen Spalte befindet, mit der "jetzigen" vergleichen. Wenn Datum und Uhrzeit nicht gleich sind, sollte ich doch auch nich zich Meldungen bekommen, oder?
Akut-Programming
be cool, be hot ... just be
  Mit Zitat antworten Zitat
Akut-Programming

Registriert seit: 18. Aug 2003
648 Beiträge
 
#8

Re: ShowMessage mit Hilfe von Datum in ListView

  Alt 4. Sep 2003, 15:21
@Yheeky: Ich habe das Datum im Format dd.mm.jjjj und die Uhrzeit im Format ss:mm:ss. Also angezeigt müsst ich sie bekommen.
Akut-Programming
be cool, be hot ... just be
  Mit Zitat antworten Zitat
Akut-Programming

Registriert seit: 18. Aug 2003
648 Beiträge
 
#9

Re: ShowMessage mit Hilfe von Datum in ListView

  Alt 4. Sep 2003, 15:26
Hier is ma n Screenshot, da könnt ihr euch den Aufbau ma angucken!
Miniaturansicht angehängter Grafiken
terminplaner_shot01.jpg  
Akut-Programming
be cool, be hot ... just be
  Mit Zitat antworten Zitat
Tpercon

Registriert seit: 7. Jun 2002
638 Beiträge
 
Delphi 5 Professional
 
#10

Re: ShowMessage mit Hilfe von Datum in ListView

  Alt 4. Sep 2003, 15:26
Warum du nach XML fragst verstehe ich jetzt zwar in diesem Zusammenhang nicht, aber na gut.

Ich gehe jetzt mal davon aus, dass dein ListView so aufgebaut ist:
Code:
Spalte1|Spalte2|Spalte3
Datum|Zeit|Termin
Den Inhalt von Spalte1 bekommst du über die Caption, den Inhalt von Spalte 2 über SubItems[0], den inahlt von Spalte3 über SubItems[1].
Somit sollte dein obiger Code wie folgt abgewandelt funktionieren:
Delphi-Quellcode:
procedure Tfrm_terminplaner_main.Timer2Timer(Sender: TObject);
var
  i: integer;
begin
    for i:=0 to lv_eintraege.Items.Count - 1 do begin
      if (StrtoDate(lv_eintraege.Items[i].SubItems[1])=now) and (StrtoTime(lv_eintraege.Items[i].SubItems[2])=now) then begin
        ShowMessage('Ihr Termin ('+lv_eintraege.Items[i].SubItems[0]+') beginnt!');
      end;
    end;
end;
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 00:28 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