Autor Beitrag
bf109g.01
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 84



BeitragVerfasst: Mo 02.05.11 11:53 
Hallo, ich habe in meinem Programm einige Bilder.
Wenn man auf eines dieser Bilder klickt, so soll das Bild erst durch ein anderes (aus Ressource) ersetzt werden und dazu ein Sound aus derselben Ressourcendatei gespielt werden. Danach soll das Prog kurz warten und dann das Bild unsichtbar machen.
Der Text dazu:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
begin
  // Bild laden aus Ressource
  (Sender as TIMage).Picture.Bitmap.LoadFromResourceName(HInstance, 'IMG_S'+IntToStr(Img.Games)+'_2');
  // Sound abspielen  
  RessSound(CBSound.ItemIndex);  
  // Warten  
  sleep(2000);
  //Ausblenden
  (Sender as TIMage).visible:=false;
end

Stattdessen wechselt das Bild aber gar nicht. Man hört den Ton und danach verschwindet das Bild.

Erst wenn ich Sleep und Ausblenden entferne, sehe ich das neue Bild wieder, damit ist mir aber nicht geholfen... :(
Bis jetzt dachte ich eigentlich immer das Programm geht die zeilen von oben nach unten durch und nicht erst den Ton, dabei überspringt sie das neu laden usw usw...

Gibt vllt andere Möglichkeiten? Ich habe gestern viel mit TTimer probiert, aber da gibt es ähnliche Probleme...
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8553
Erhaltene Danke: 479

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Mo 02.05.11 11:58 
Die Anweisungen weredn schon alle durchgeführt, aber da steckt halt keine Anweisung "Zeichne das Bild neu" drin. Probier mal, vor dem Sleep ein
ausblenden Delphi-Quelltext
1:
(Sender as TIMage).Repaint; // oder .Update oder .Refresh					

einzubauen - dann sollte das funktionieren.

_________________
We are, we were and will not be.

Für diesen Beitrag haben gedankt: bf109g.01