AGB  ·  Datenschutz  ·  Impressum  







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

ShowMessage OnTimer

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

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

ShowMessage OnTimer

  Alt 8. Sep 2003, 12:37
Hi!!!

Ich will in meinem Prog, was dann ma n Terminplaner darstellen soll eben auch ne Message anzeigen lassen. Das klappt ja auch so schon, nur kommt die Message nicht nur einmal, sondern wird ne ganze Minute oder so neu geöffnet.

Das Problem wollt ich damit lösen, das ich zum jeweiligen Termin beim speichern den Eintrag setze, das der Termin noch "nicht gemeldet" wurde.
Diesen wollt ich dann immer im Timer mit abfragen - Doch klappt das nich so... Hier ist ma mein Source vom Timer:

Delphi-Quellcode:
procedure Tfrm_terminplaner_main.Timer2Timer(Sender: TObject);
var
  i: integer;
  node: IXMLDOMNode;
  newTermin, newSub: IXMLDOMNode;
begin
    for i:=0 to lv_eintraege.Items.Count - 1 do begin
    node :=xmlDoc.selectSingleNode('/PlanView/termin[terminid="'+IntToStr(i)+'"]');
      if (StrtoDate(lv_eintraege.Items[i].SubItems[1])=date)
      and (StrtoTime(lv_eintraege.Items[i].SubItems[2])= time)
      and (node=xmlDoc.selectSingleNode('/PlanView/termin[AlertShowed="''"]'))
      then begin
        ShowMessage('Ihr Termin ('+lv_eintraege.Items[i].SubItems[0]+') beginnt!');
        newTermin := xmldoc.createElement('termin');
        newSub := xmlDoc.createElement('AlertShowed');
        newSub.text :='x';
        newTermin.appendChild(newSub);
      end;
    end;
end;
Akut-Programming
be cool, be hot ... just be
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#2

Re: ShowMessage OnTimer

  Alt 8. Sep 2003, 12:56
Bist du sicher dass du Datum/Zeit in den Strings in den richtigen Formaten abgespeichert hast? Überprüfe mal in welcher Form StrToDate und StrToTime das Datum bzw. die Uhrzeit verlangen. Ansonsten sieht der Quelltext mal ganz ok aus...
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von CrashMan
CrashMan

Registriert seit: 31. Jul 2003
Ort: //127.0.0.1/
65 Beiträge
 
Delphi 6 Personal
 
#3

Re: ShowMessage OnTimer

  Alt 8. Sep 2003, 13:01
Mach doch noch ein Boolean oder n Boolean-Array ...
If Boolean = false then begin sowmessage(); Boolean := true; end;
  Mit Zitat antworten Zitat
Akut-Programming

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

Re: ShowMessage OnTimer

  Alt 8. Sep 2003, 13:07
@alcaeus:

Naja, das Date wird im Format dd.mm.yyyy und die Uhrzeit im Format hh:mm:ss verlangt. Im File stehts auch so drin, also müsste er´s doch auch hinbekommen oder??

@CrashMan:

Ob ich nun n Boolean nehme, oder die zuweisung direkt in ne Variable mache un deren Wert dann überprüfe ist ja erstma egal denk ich. Nur siehts so aus, als ob er die Zuweisung anscheinend noch nichma hinbekommt.
Akut-Programming
be cool, be hot ... just be
  Mit Zitat antworten Zitat
Tpercon

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

Re: ShowMessage OnTimer

  Alt 8. Sep 2003, 13:11
Ich habe mich noch nie mit XML beschäftigt, aber mal so ins Blaue:
Delphi-Quellcode:
 node :=xmlDoc.selectSingleNode('/PlanView/termin[terminid="'+IntToStr(i)+'"]');
      if (StrtoDate(lv_eintraege.Items[i].SubItems[1])=date)
      and (StrtoTime(lv_eintraege.Items[i].SubItems[2])= time)
      and (node=xmlDoc.selectSingleNode('/PlanView/termin[AlertShowed="''"]'))
      then begin
Lass dir mal node und xmlDoc.selectSingleNode('/PlanView/termin[AlertShowed="''"]') ausgeben? Was steht drin?
  Mit Zitat antworten Zitat
Akut-Programming

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

Re: ShowMessage OnTimer

  Alt 8. Sep 2003, 13:43
Naja, also in xmlDoc.selectSingleNode('/PlanView/termin[AlertShowed="''"]') steht beim speichern des Termins '_'. Was dafür steht, das der Termin noch nich angezeigt wurde. Das überprüfe ich auch in meiner Schleife des Timers. Also wenn xmlDoc.selectSingleNode('/PlanView/termin[AlertShowed="_"]') ist, dann soll die Message angezeigt werden. Ist xmlDoc.selectSingleNode('/PlanView/termin[AlertShowed="x"]') soll sie nicht mehr angezeigt werden. Das 'x' setze ich in der Schleife des Timers, wenn der Termin "gemeldet" wurde.
Akut-Programming
be cool, be hot ... just be
  Mit Zitat antworten Zitat
Tpercon

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

Re: ShowMessage OnTimer

  Alt 8. Sep 2003, 13:50
Irgendwie will mir dieser Vergleich nicht ganz einleuchten:
(node=xmlDoc.selectSingleNode('/PlanView/termin[AlertShowed="''"]')) Da kommt doch irgendwie garnichts vor, nach dem Motto = '_'?!
irgendwie sieht das für micht (XML Unwissender) so aus, als würdest du 2 Knoten miteinander vergleichen?
  Mit Zitat antworten Zitat
Akut-Programming

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

Re: ShowMessage OnTimer

  Alt 8. Sep 2003, 13:58
Hmm, ich glaub jetzt hast du mein Problem aufm Punkt gebracht! Ich will node eigentlich den Wert 'AlertShowed' des aktuellen Items (i) zuweisen und node dann abfragen. Nur da ich auch XML Neuling bin, stell ich es mir zu schwer vor, oder ich mach es mir zu schwer.

Ich weiß nicht, wie ich dem Prog sagen kann, das sich node aus dem gewählten item - davon den Wert 'AlertShowed' der sich in der XML Datei befindet, ergibt.
Akut-Programming
be cool, be hot ... just be
  Mit Zitat antworten Zitat
Tpercon

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

Re: ShowMessage OnTimer

  Alt 8. Sep 2003, 14:06
Wie kann ich denn den Wert des aktuellen IXMLDOMNode ausgeben? Mit Text oder?
Ich würde mal drauf tippen, das dein Vergleich wie folgt lauten muß:
Delphi-Quellcode:
if (StrtoDate(lv_eintraege.Items[i].SubItems[1])=date)
      and (StrtoTime(lv_eintraege.Items[i].SubItems[2])= time)
      and (xmlDoc.selectSingleNode('/PlanView/termin[AlertShowed="''"]').Text='_')
      then begin
  Mit Zitat antworten Zitat
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: ShowMessage OnTimer

  Alt 8. Sep 2003, 14:12
Hi,
das ist richtig, aber wird nicht funktionieren, weil ich vermute, dass die Node Termin keinen Text enthält. Ich denke, dass die XML-Datei so ungefähr aussieht:
Code:
<PlanView>
  <Termin>
    <AlertShowed>_</AlertShowed>
   
  </Termin>
</PlanView>
Wenn ich es also richtig verstehe, müsste das so aussehen:
Delphi-Quellcode:
if (StrtoDate(lv_eintraege.Items[i].SubItems[1])=date)
      and (StrtoTime(lv_eintraege.Items[i].SubItems[2])= time)
      and (xmlDoc.selectSingleNode('/PlanView/termin[id="' + IDDesTermins + '"]/AlertShowed').Text='_')
      then begin
Chris

PS: Anstatt id solltest du irgendein Kennmerkmal der Einträge verwenden (ich denke aber mal, dass du sowas wie eine ID verwendest).
  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 21: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