![]() |
Gespräch simulieren??
Liebes Forum,
ich möchte, dass Gesprächstexte zeitlich versetzt auf verschiedenen Panels erscheinen. Leider bekomme ich das nicht hin :cry: Mein Ansatz ist folgender:
Code:
Leider führt er alle Befehle gleichzeitig aus :cry:
procedure TJesusS.Dialog;
var n :integer; begin panel1.visible := true; panel2.visible := true; n := 0; repeat sleep(100); n := n + 1; if n = 1 then panel1.caption := 'HA!'; if n = 10 then panel2.caption := 'HA!'; until n = 10; end; Ich hab's auch schon mit einem Timer versucht. Da kam das selbe bei raus. Ich hoffe ihr könnte mir helfen... Danke und Gruß, thechus |
AW: Gespräch simulieren??
nun ja... bei Sleep 100ms und 10 Durchläufen ist nach 1s alles fertsch...8-) Für dich sieht es dann nach alles auf einen Blick aus, da innerhalb der Schleife keine Nachrichten abgearbeitet werden und somit erst danach alles gezeichnet wird (Stichwort: ApplicationProcessMessages).
Versuche noch einmal dein Vorhaben detailierter zu beschreiben. |
AW: Gespräch simulieren??
Es reicht nicht, per "Panel1.Caption := ... " dem Panel zu sagen, welcher Text dort erscheinen soll, man muss dem Panel (bzw. Windows) auch ne Chance geben, das mal zu zeichnen.
Stichwort "Application.ProcessMessages". |
AW: Gespräch simulieren??
Hmm okay...
Also.. wenn ich die Zeiten verlängere, taucht die Schrift einfach nur viel später auf. Trotzdem beide gleichzeitig. Ich habe folgendes vor: Ich habe einen kleinen Kampf simuliert. Am ende bleiben 2 Kämpfer übrig und Jesus taucht auf. Und jetzt möchte ich ein Gespräch zwischen den beiden Kämpfern und Jesus programmieren. Die Lösung die mir dazu einfiel war, dass ich zu jeder Figur einen Panel habe, auf dem zeitlich versetzt die Gesprächszeilen rechtzeitig ei- und ausgeblendet werden. Das "zeitlich versetzt" bekomme ich nicht hin. :cry: Ich hoffe, dass das genug Info ist, danke und Gruß, thechus |
AW: Gespräch simulieren??
Na gut danke.
Ich mach mich da mal schlau.:shock: |
AW: Gespräch simulieren??
Ahh :D:D
Sauber hat geklappt! Danke :-D:-D Hier der Code für Leute, die das selbe Problem haben:
Code:
Vielen Dank!
procedure TJesusS.Dialog;
var n :integer; begin panel1.visible := true; panel2.visible := true; n := 0; repeat sleep(1000); n := n + 1; Application.ProcessMessages; if n = 1 then panel1.caption := 'HA!'; if n = 10 then panel2.caption := 'HA!'; until n = 10; end; Das ist Hilfe, wie ich mir sie vorstelle. Gruß, thechus |
AW: Gespräch simulieren??
|
AW: Gespräch simulieren??
Ja Chef! :thumb:
|
AW: Gespräch simulieren??
Ist jetzt vielleicht mehr so ne Kleinigkeit, aber schöner fänd ich ja, wenn du das neuzeichnen veranlassen würest nachdem du neue Captions setzt, und nicht davor. Das juckt in der Schleife vielleicht nicht, aber mich irgendwie :)
|
AW: Gespräch simulieren??
Zitat:
Abgesehn davon, daß weder Schleife noch ProcessMessages nötig sind. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:59 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz