Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Problem mit case of (https://www.delphipraxis.net/17060-problem-mit-case.html)

rockycat 27. Feb 2004 16:50


Problem mit case of
 
:?: :?: Hi Leute!

Ich bin mit meinem Programm zwar schon ein gutes Stückchen weitergekommen, stehe jetzt aber wieder einmal vor einem Rätsel...

Per Zufall werden Zahlen ermittelt, die dann in einem Array abgelegt werden. Mit diesem geht’s dann in eine andere Prozedur, wo entsprechend der zahlen verschiedene Töne gespielt sollen, was auch sehr gut klappt.
Aber: Es soll nicht nur Musik erklingen, sondern es soll auch Text ausgegeben werden, was leider NICHT klappt...!
Hier ein Stück meiner Routine: (zum testen sollen (eigentlich...) erstmal verschiedene Worte erscheinen – hier "Hallo!"

Delphi-Quellcode:
zaehler1 := 0;
   
    ...
    while zaehler1 <= max do
    begin
        case song[zaehler1] of
            1 : begin
                    sndPlaySound('1.wav', SND_ASYNC);
                    Edit1.Text :='Hallo!';
       end;
    ...
Warum erklingt 1.wav, und Edit1.Text erscheint nicht???

[edit=sakura] @Luckie: [delphi]-Tags ;-) Mfg, sakura[/edit]

Luckie 27. Feb 2004 16:52

Re: Problem mit case of
 
Versuch mal die Zeilen umzudrehen. ;)

rockycat 27. Feb 2004 17:01

Re: Problem mit case of
 
das hatte ich bereits; leider ohne Erfolg. :(
Mit Einzelschrittausführung (Debugger) ist darüber hinaus zu erkennen, dass der Befehl (Edit1.Text...) sehr wohl abgearbeitet wird !??!?

APP 27. Feb 2004 17:12

Re: Problem mit case of
 
Hallo rockycat,

kann es sein, dass Du in Deiner While -Schleife mit Edit1.Text noch was "anstellst"?

Delphi-Quellcode:
  WHILE zaehler1 <= max DO
    BEGIN
      CASE song[zaehler1] OF
        1:
          BEGIN
            sndPlaySound('1.wav', SND_ASYNC);
            Edit1.Text := 'Hallo!';
          END;


       // nämlich vielleicht genau hier?
       Edit1.Text :=''; // oder so was in der Art?
    END;

rockycat 27. Feb 2004 17:29

Re: Problem mit case of
 
neee

Da kommen nur noch ein paar case Abfragen -->

case melodie[zaehler1] of
1 : begin
sndPlaySound('1.wav', SND_ASYNC);
Edit1.Text :='hallo';

end;

2 : ...
3 : ...
...

Dann ist die Prozedur zuende und das Programm springt zurück aufrufenden Stelle.
Ach ja, zaehler1 wird natürlich noch hochgezähl (inc(zaehler1);), weil melodie ein Array ist und das nächste Element ermittelt werden soll

Schubi 27. Feb 2004 17:47

Re: Problem mit case of
 
Dann schmeiß mal nach der änderung vom edit noch ein edit1.repaint oder ein application.processmessages rein!

Delphi-Quellcode:
while zaehler1 <= max do
begin
case song[zaehler1] of
1 : begin
sndPlaySound('1.wav', SND_ASYNC);
Edit1.Text :='Hallo!';
Application.Processmessages;
end;

rockycat 27. Feb 2004 17:58

Re: Problem mit case of
 
Das war's!!!
ich Damke Dir, Schubi :zwinker:


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:29 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