boolean fejl

Tags:    delphi

hej.

jeg sidder her med et problem som jeg håber at en af jer udvikleren brugere kan hjælpe mig med.

Jeg har lavet en mediaplayer hvor jeg har en stop pause og play knap. Ville have sådan at når man trykkede pause skulle man resume på play. Lavede en boolean til dette men kunne ikke få det til at virke håber at i kan hjælpe

play knappen:

procedure TForm1.ToolButton11Click(Sender: TObject);
begin

if opendialog2.execute then
begin
if paused = true then
mediaplayer1.resume
else
mediaplayer1.filename := opendialog2.FileName;
mediaplayer1.open;
mediaplayer1.play;
toolbutton13.enabled := true;
toolbutton12.enabled := true;
paused := false;
end;
end;

pause knappen:

procedure TForm1.ToolButton12Click(Sender: TObject);
begin
mediaplayer1.Pause;
toolbutton12.enabled := false;
paused := true;
end;

jeg har også lavet variablen paused under public: paused : boolean;





9 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 8 karma
Sorter efter stemmer Sorter efter dato
Hejsa.

Nu kan jeg ikke så meget Pascal, men jeg tror du mangler at lave en block omkring de udtryk du bruger i din else del, plus du skal huske at sætte pause tilbage til false når du fortsætter med at spille efter pausen.

i Java/c/c++/PHP ville det se nogen lunde sådan her ud:

if (opendialog2.execute)
{
if (paused == true)
{
mediaplayer1.resume;
paused = false;
}
else
{
mediaplayer1.filename := opendialog2.FileName;
mediaplayer1.open;
mediaplayer1.play;
toolbutton13.enabled := true;
toolbutton12.enabled := true;
paused := false;
}
}

Som vel bliver til noget i denne stil (ret det selv):


if opendialog2.execute then
begin
if paused = true then
begin
mediaplayer1.resume
paused := false;
end;
else
begin
mediaplayer1.filename := opendialog2.FileName;
mediaplayer1.open;
mediaplayer1.play;
toolbutton13.enabled := true;
toolbutton12.enabled := true;
paused := false;
end;
end;




play knappen:

procedure TForm1.ToolButton11Click(Sender: TObject);
begin

if opendialog2.execute then
begin
if paused = true then
mediaplayer1.resume
else
mediaplayer1.filename := opendialog2.FileName;
mediaplayer1.open;
mediaplayer1.play;
toolbutton13.enabled := true;
toolbutton12.enabled := true;
paused := false;
end;
end;


Prøv at rette det til:

<pre>
procedure TForm1.ToolButton11Click(Sender: TObject);
begin

if opendialog2.execute then
begin
if paused then
begin
mediaplayer1.resume;
paused := false;
end
else
begin
mediaplayer1.filename := opendialog2.FileName;
mediaplayer1.open;
mediaplayer1.play;
toolbutton13.enabled := true;
toolbutton12.enabled := true;
paused := false;
end;
end;
</pre>




Undskyld Lasse, men hvor var den store forskel på det jeg lige havde forslået ?!?
Beskeden er lige over din, ca 1 timer inden.
Skide irreterende mand.
Og skal det endelig være rigtigt så lad det være rigtigt:

<pre>
procedure TForm1.ToolButton11Click(Sender: TObject);
begin
if opendialog2.execute then
begin
if paused then
begin
mediaplayer1.resume;
paused := false;
toolbutton12.enabled := true;
end
else
begin
mediaplayer1.filename := opendialog2.FileName;
mediaplayer1.open;
mediaplayer1.play;
toolbutton13.enabled := true;
toolbutton12.enabled := true;
paused := false;
end;
end;
end;
</pre>




[Redigeret d. 21/01-03 18:56:52 af Mark H. Jensen]



Undskyld Lasse, men hvor var den store forskel på det jeg lige havde forslået ?!?
Beskeden er lige over din, ca 1 timer inden.
Skide irreterende mand.



Ikke andet end at din havde et par syntax-fejl og så at jeg bruger "if paused then" i stedet for at sammenligne paused med true, hvilket man ikke behøver at gøre. Og så er min kode rykket pænt ind - det er det pre-tagget er der for.



Du har et point med pre-tagget, men bortset fra det så var der ikke færre syntax fejl end i dit eget bildrag, plus du havde logiske fejl også.
Endelig glemte du at lukke functionen .. pröv at tæl op .. der skal være en end pr begin .. en god hoved regel, lige som når man löber over { og } i andre sprog.

Det kan være ligegyldigt om du hooger dig ind på en andens svar eller ej .. bortset fra, tænk på hvis du havde fået point .. for mit arbejde .. lidt lortet hvis det havde været omvendt, ikke ?!?
Eller havde du så bare fjernet mit kopi indlæg, da du jo er co-admin ?!?

Og den med pause istedet for pause = true .... sikke dog en vild forbedring!
For det förste var det slet ikke issuet her, du skulle hellere have lukket dine begins istedet for at "optimere" .. så kunne det have kört copy-paste .. og .. compileren fanger den slags så det ikke når med i binary hvis jeg kender borland ret .. så det var totalt irrelevant i dette tilfælde.

Shit hvor jeg dog lyder som en gammel muggen kælling :)

Men jeg kan da også bare göre det samme mod dig, tage svar du har givet på spörgsmål og "forbedre" dem ... du ved; ikke noget stort bare virkelig ubetydeligt og minimalt.

Som co-admin burde du gå foran med et bedre eksempel.

Og nej, jeg gidder ikke en flame war over det her .. men fyr endelig din mening af hvis du syntes jeg klynker for meget! :)[Redigeret d. 22/01-03 01:26:31 af Jonatan Hertel]



Du har et point med pre-tagget, men bortset fra det så var der ikke færre syntax fejl end i dit eget bildrag, plus du havde logiske fejl også.
Endelig glemte du at lukke functionen .. pröv at tæl op .. der skal være en end pr begin .. en god hoved regel, lige som når man löber over { og } i andre sprog.


Nå ja, glemte lige et enkelt. My bad.


Det kan være ligegyldigt om du hooger dig ind på en andens svar eller ej .. bortset fra, tænk på hvis du havde fået point .. for mit arbejde .. lidt lortet hvis det havde været omvendt, ikke ?!?
Eller havde du så bare fjernet mit kopi indlæg, da du jo er co-admin ?!?


Jeg fjerner kun et indlæg såfremt det sviner en person kraftigt til eller hvis folk på anden måde benytter sig af et sprog der kan virke stødende på folk. Jeg kunne aldrig finde på at slette en anden persons indlæg bare pga. en smule uenighed.


Og den med pause istedet for pause = true .... sikke dog en vild forbedring!
For det förste var det slet ikke issuet her, du skulle hellere have lukket dine begins istedet for at "optimere" .. så kunne det have kört copy-paste .. og .. compileren fanger den slags så det ikke når med i binary hvis jeg kender borland ret .. så det var totalt irrelevant i dette tilfælde.


Ja, det er ikke den vilde forbedring men eftersom at det er unødvendigt skader det ikke at gøre spørgeren opmærksom på at man ikke behøver det.

Anyways, jeg syntes ikke at der er noget galt i at folk poster et svar efter en anden har postet et, såfremt der har været nogle småfejl i det. Udv.dk benyttes af mange nybegyndere og fejl der virker simple for folk med lidt erfaring, som f.eks. et manglende ;, driller da ofte begynderen. At mit svar så også indeholdte en fejl er selvfølgelig uheldigt, men nu har du jo gjort opmærksom på den og så må det vist være på tide at stoppe den her diskussion :)




Enig.




Anyways, jeg syntes ikke at der er noget galt i at folk poster et svar efter en anden har postet et, såfremt der har været nogle småfejl i det. Udv.dk benyttes af mange nybegyndere og fejl der virker simple for folk med lidt erfaring, som f.eks. et manglende...


I så fald er det selvfølgeligt mest hensigtsmæssigt at poste som 'Kommentar' og ikke som 'Svar'. Ellers kunne nybegynderen jo komme til at give points til den forkerte. Så husk det :-)
mvh Jakob



t