Thema: Delphi IF-Problem

Einzelnen Beitrag anzeigen

Benutzerbild von danku
danku

Registriert seit: 9. Apr 2006
Ort: 32-bit Adressbus
181 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: IF-Problem - >Timerabhängigkeit

  Alt 19. Jun 2006, 09:38
Ich hab jetzt die If-klauseln noch mal alle überarbeitet.
folgendes problem kommt zum vorschein:
ich habe 2 timer für die zwei. radiogroups:

Timer1 (timerzeit)
Delphi-Quellcode:
...
//////// ZEITDAUER IN MIN

timerfest.Enabled :=false; //der timer von der 2.rg

if edzeit.Text='00'
  then begin edzeit.text:='01'
  end;

  Button1.Caption:='Abbrechen';

      if cbsignal.Checked=false then begin
     // opendialog1.Execute;
      cbsignal.checked:=true;
      end;
      
  rgzwei.Enabled:=false;

  dtAlarm2 := StrToTime(edende.Text + ':' + edende2.Text + ':' + edende3.Text) + StrToDate(cbdatum.Text);
  if Now < dtAlarm2 then
    ShowRemainingTime2(dtAlarm2)
    else begin //datei abspielen
    CoolTrayIcon1.ShowMainForm;
    with MediaPlayer1 do
        begin
          if cbsignal.checked
          then begin
          Filename := OpenDialog1.Filename;
          Open;
          Play;
          timerzeit.Enabled:=false;
          end;
        end;
  ..
Timer2 (Timerfest)
Delphi-Quellcode:
//////// Feste Uhrzeit

timerzeit.Enabled :=false; //timer1
dtAlarm := StrToTime(edhours.Text + ':' + edmin.Text + ':' + edseconds.Text) + StrToDate(cbdatum.Text);



   if rgzwei.Checked then begin
    rgeins.Enabled:=false;
    cbdatum.Enabled:=false;
    cbsignal.Enabled:=false;
    end;
    Button1.Caption:='Abbrechen';

    if (dtAlarm) < (now) //einen tag höher setzen
      then begin cbdatum.ItemIndex:= 1;
      end;
      if cbsignal.Checked=false then begin
         // opendialog1.Execute;
          cbsignal.checked:=true;

          end;
            if Now < dtAlarm then
            ShowRemainingTime(dtAlarm)
            else begin //datei abspielen
            CoolTrayIcon1.ShowMainForm;
            with MediaPlayer1 do
                begin
                  if cbsignal.checked
                  then begin
                  Filename := OpenDialog1.Filename;
                  Open;
                  Play;
                  speedbutton2.Visible:=true;
                  timer3.Enabled:=true;
                 end;
              end;
         
...
Um die Timer zu starten betätigt man den START-Button:
Delphi-Quellcode:
if rgeins.checked=true
  then if button1.Caption='Starten'
  then begin timerzeit.Enabled:=true;
  end;
if rgzwei.checked=true
  then if button1.Caption='Starten'
  then begin timerfest.Enabled:=true;
  end;


if (button1.Caption='Abbrechen')
then if (rgeins.checked) and (timerzeit.Enabled=true)
      then if MessageDlg('Timer ändern?', mtConfirmation, [mbYes, mbNo], 0) =
        mrYes then begin
        timerzeit.Enabled:=false;
       // timerfest.Enabled:=true;
          rgzwei.Enabled:=true;
          mehours.text:='00';
          memin.Text:='00';
          meseconds.text:='00';
          mediaplayer1.Close;
          cbsignal.Enabled:=true;
          button1.Caption:='Starten';
          mediaplayer1.Close;
          end;

if (button1.Caption='Abbrechen')
then if (rgzwei.checked) and (timerfest.Enabled=true)
      then if MessageDlg('Timer ändern?', mtConfirmation, [mbYes, mbNo], 0) =
        mrYes then begin
        timerfest.Enabled:=false;
        // timerzeit.Enabled :=true;
          rgeins.Enabled:=true;
          mehours.text:='00';
          memin.Text:='00';
          meseconds.text:='00';
          mediaplayer1.Close;
          cbsignal.Enabled:=true;
          button1.Caption:='Starten';
          mediaplayer1.Close;
          end;
Sobald bspw. die 1.radiogroup geklickt wurde und der START-Button,
wird der zähler in den 3 unteren memofeldern um 1 verringert. (wie countdown)
das geschieht solange bis '00'; dann wird eine datei abgespielt.
durch betätigen des START-Buttons wird automatisch die caption in Abbrechen umbenannt.

wenn der zähler vorzeitig abgebrochen (Abbrechen -> Caption wieder STARTEN umbenannt) wird, soll anhand der 2.radiogroups der timer2 geladen werden und time1 zurückgesetzt werden. das funzt ja auch alles einwandfrei nur ist das problem, sobald man die 1.radiogroup abbricht, und dann in der 2.radiogroup klickt und da STARTEN klickt wird der timer von der 1.radiogroup aktiviert. warum?
andersherum ist es genauo...
Miniaturansicht angehängter Grafiken
bsp_814.jpg  
  Mit Zitat antworten Zitat