Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi IF-Problem (https://www.delphipraxis.net/71582-if-problem.html)

danku 25. Jun 2006 17:04

Re: IF-Problem
 
So sieht das Layout aus:
http://www.danielkuhnke.de/bsp.jpg

Bei anklicken der jeweiligen Radiogroups werden folgende Timer geöffnet:

Für die Linke Radiogroup (Timerzeit)

Delphi-Quellcode:
//////// ZEITDAUER IN MIN

dtAlarm2 := StrToTime(edende.Text + ':' + edende2.Text + ':' + edende3.Text) + StrToDate(cbdatum.Text);

image1.Visible:=false;
speedbutton2.Visible:=false;
timer3.Enabled :=false;

cbshutdown.Enabled:=false;
cbsignal.Enabled:=false;
rgzwei.Enabled:=false;

timerfest.Enabled :=false;

Button1.Caption:='Abbrechen';

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

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

  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;
          speedbutton2.Visible:=true;
          image1.Visible :=true;
          timer3.Enabled:=true;
          timerzeit.Enabled:=true;
          end;
        end;

Und für die rechte Radiogroup: (Timerfest)

Delphi-Quellcode:
//////// Feste Uhrzeit


dtAlarm := StrToTime(edhours.Text + ':' + edmin.Text + ':' + edseconds.Text) + StrToDate(cbdatum.Text);

image1.Visible:=false;
speedbutton2.Visible:=false;
timer3.Enabled :=false;

timerzeit.Enabled :=false;

rgeins.Enabled:=false;
cbdatum.Enabled:=false;
cbsignal.Enabled:=false;
cbshutdown.Enabled:=false;

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;
          timerfest.enabled:=false;
          speedbutton2.Visible:=true;
          timer3.Enabled:=true;
          image1.Visible :=true;
          Abbrechen:=true;
          //timerfest.Enabled:= true;
                 end;
              end;
           end;
In den unteren 3 memos wird wie in einem countdown heruntergezählt.
(in abhängikeit von den eingestellten endzeiten der 2 radiogroups)
Damit man die Timer starten kann, muss auf STARTEN-Button gedrückt werden:
Delphi-Quellcode:
if rgeins.checked
then timerzeit.Enabled:=true
else timerfest.Enabled:=true;

if (button1.Caption='Abbrechen') and (rgeins.checked)
      then if MessageDlg('Timer ändern?', mtConfirmation, [mbYes, mbNo], 0) =
        mrYes then begin
        timerzeit.Enabled:=false;
        //timerfest.Enabled:=true;

          rgeins.Checked:=true;
          rgzwei.Enabled:=true;
          //cbsignal.Checked:=false;
          //cbshutdown.Checked:=false;

          mehours.text:='00';
          memin.Text:='00';
          meseconds.text:='00';

          mediaplayer1.Close;
          cbsignal.Enabled:=true;
          cbshutdown.Enabled:=true;
          button1.Caption:='Starten';
         
          speedbutton2.Visible:=false;
          timer3.Enabled:=false;
          image1.Visible:=false;
          end;


if (button1.Caption='Abbrechen') and (rgzwei.checked)
      then if MessageDlg('Timer ändern?', mtConfirmation, [mbYes, mbNo], 0) =
        mrYes then begin
        timerfest.Enabled :=false;
        timerzeit.Enabled :=false;

          rgeins.Enabled:=true;
          rgzwei.Checked:=true;
          mehours.text:='00';
          memin.Text:='00';
          meseconds.text:='00';

          mediaplayer1.Close;
          cbsignal.Enabled:=true;
          cbshutdown.Enabled:=true;
          button1.Caption:='Starten';

          speedbutton2.Visible:=false;
          timer3.Enabled:=false;
          image1.Visible:=false;
          end;
sobald eine radiogroup ausgewählt wurde und auf STARTEN-Button gedrückt wurde,
wird wie bereits gesagt der countdown in den memos gesetzt.
es wird automatisch sobald auf STARTEN gedrückt wird, der Button in ABBRECHEN umbenannt.

Hier ein Bild davon: www.danielkuhnke.de/bsp2.jpg

Und nun zum eigentlichen Problem:
die linke radiogroup wird ausgewählt, der song herausgesucht und auf STARTEN gedrückt.
in den memos wird die restzeit angezeigt. nach dieser zeit wird der song abgespielt.

wenn man auf Abbrechen drückt, und die 2.radiogroup auswählt und song heraussucht und auf STARTEN drückt, wird der timer von der linken radiogroup geladen.
Warum? sobald man die 2. radiogroup und dann die 1. wählt, passiert das gleiche.
wer kann mir helfen?
bin verzweifelt!

danku 29. Jun 2006 18:12

Re: IF-Problem
 
kann mir keiner helfen?

Matze 29. Jun 2006 18:20

Re: IF-Problem
 
Moin

Der Code ist so unstrukturiert, da fällt einem es wirklich schwer, das zu überschauen. Könntest du vielleicht das Projekt anhängen?

danku 29. Jun 2006 18:47

Re: IF-Problem
 
okay. ich geb zwar ungern den code heraus,
aber hier ist die pas-datei ;)
und zur veranschaulichung die exe-datei.
das programm hat noch ein paar macken,
die ich demnächst noch bereinigen werde.
bsp. die 60er minutenanzeige

Matze 29. Jun 2006 18:51

Re: IF-Problem
 
Zitat:

Zitat von danku
okay. ich geb zwar ungern den code heraus,

Dazu sag ich jetzt mal nichts. ;)

Zitat:

Zitat von danku
aber hier ist die pas-datei ;)

Mir ist das zu aufwändig, das Formular zusammenzuklicken um es kompilieren zu können. Musst auf die Antworten anderer Mitglieder warten, sorry.

Der_Unwissende 29. Jun 2006 19:15

Re: IF-Problem
 
[OT]
@danku:
Sorry dass ich es mal so sage (also in diesem Thread), aber es hat nunmal direkt mit all dem was du hier bisher getan hast zu tun. Ich finde (ist damit also nur meine persönliche Meinung), dass du echt alles tust um keine Hilfe zu erhalten. Es ist echt so, dass die DP jedem gerne hilft (bzw. ihre Mitglieder), bei dir hier hätte ich keine Lust mehr (sorry).
Es ist ganz einfach so, dass du alle Bitten getrost ignorierst. Ich meine wenn sich Matze (der bestimmt genug anderes zu tun hat) schon dazu bereit erklärt, deinen Code zu strukturieren, dann solltest du das zu schätzen wissen.

Zitat:

Zitat von Matze
Könntest du vielleicht das Projekt anhängen?

Ok, kein Projekt angehängt. Nebst Antworten wie:

Zitat:

Zitat von danku
hm das sind doch aber alles nur "schönheitssachen", zum besseren lesen.
das hat doch aber nicht wirklich mit meinen problem zu tun. :roll:

Zitat:

Zitat von danku
hm das mit der überschaubarkeit ist mir schon klar.
so krass wie deins code ich allemal nicht.
mein problem ist aber immer noch nicht geklärt.

Also beim besten Willen, so wird dir sicherlich keiner Helfen. Dies hier ist ein Forum. Schau mal in die Regeln und verinnerliche sie etwas.
Helfen werden dir sicherlich nicht Leute wenn du weiterhin solche Beiträge lieferst. Ganz ehrlich, deine Kommentare sind mehr als unhöflich, deine Mitarbeit faktisch nicht vorhanden (du hast es immer noch nicht geschafft deinen Code zu strukturieren) und dann kommt noch das mit der pas Datei...
Also ganz ehrlich, ich habe nur einen ISDN Kanal, warum sollte ich also Interesse daran haben ein großes Kompilat runter zu laden. Gebeten wurdest du von jmd. (der deine Arbeit übernehmen wollte) das Projekt anzuhängen. Jeder hätte es so als kleines Paket runterladen und selbst kompilieren können.

Ich kann dir wirklich nur den Tipp geben (den kannst du natürlich wie alle anderen ignorieren) dich etwas mehr einem Forum entsprechend zu verhalten. Andernfalls dürfte es für dich echt schwer werden je Hilfe zu finden (alles nur meiner Meinung nach).

Gruß Der Unwissende
[/OT]

Sidorion 30. Jun 2006 10:37

Re: IF-Problem
 
Das sind eben nicht 'Schönheitssachen'. Hässlicher Code ist grundsätzlich fehlerhaft. Nur schöner Code kann auch richtig sein. Programmieren hat nämlich durchaus etwas mit Ästhetik zu tun.
Einbuchohneodermitunsinnigerinterpu
nktionundformatierungkannauchke.inschweinlesenegal wi esehrmansichanstrengtundwennmansnichtles.enkannkan nmanauchdiefehlernichtfindenunddann
istmanaufgeschmissenundmu,ssinderdpnachfrageno,bwo hlmaneigentlichauchselberdrauf gekommenwarewennmandencod.eordentlichformatierthät te.
[edit]p.s.: zum Formatieren war ich zu faul ;)[/edit]

danku 30. Jun 2006 12:44

Re: IF-Problem
 
ist ja wieder gut. :|
hab ja schon genug auweh von euch bekommen. :?
problem habe ich selber gelöst. sry wenn ich ein bissel unsauber gecodet habe.
habt ja recht das es eine ordnung gibt...

jmit 30. Jun 2006 16:45

Re: IF-Problem
 
Hallo,

Zitat:

Zitat von danku
ist ja wieder gut. :|
hab ja schon genug auweh von euch bekommen. :?
problem habe ich selber gelöst. sry wenn ich ein bissel unsauber gecodet habe.
habt ja recht das es eine ordnung gibt...

schön, dass Du jetzt den Fehler gefunden hast, aber es würde mich, und wahrscheinlich die anderen ebenfalls, interessieren, wo der Fehler lag. Dein Sourcecode ist mir zu unübersichtlich.

Gruß Jörg

danku 30. Jun 2006 17:30

Re: IF-Problem
 
ich hab in dem timer statt if... end; if...end
einen else zweig dazugefügt.
das war alles lol.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:33 Uhr.
Seite 2 von 2     12   

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