Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Gespräch simulieren?? (https://www.delphipraxis.net/168695-gespraech-simulieren.html)

thechus 4. Jun 2012 20:56

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:
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;
Leider führt er alle Befehle gleichzeitig aus :cry:
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

haentschman 4. Jun 2012 21:09

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.

Furtbichler 4. Jun 2012 21:17

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".

thechus 4. Jun 2012 21:18

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

thechus 4. Jun 2012 21:19

AW: Gespräch simulieren??
 
Na gut danke.
Ich mach mich da mal schlau.:shock:

thechus 4. Jun 2012 21:24

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:
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;
Vielen Dank!
Das ist Hilfe, wie ich mir sie vorstelle.

Gruß,
thechus

himitsu 4. Jun 2012 21:25

AW: Gespräch simulieren??
 
Mach dich auch besser mal über Timer schlau.
Delphi-Referenz durchsuchenTTimer

thechus 4. Jun 2012 21:39

AW: Gespräch simulieren??
 
Ja Chef! :thumb:

Romiox 4. Jun 2012 23:04

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 :)

himitsu 5. Jun 2012 07:47

AW: Gespräch simulieren??
 
Zitat:

Zitat von Romiox (Beitrag 1169525)
Ist jetzt vielleicht mehr so ne Kleinigkeit, ...

Gut, hier sind die Ausgaben dadurch um 100 1000 Millisekunden verzögerst.

Abgesehn davon, daß weder Schleife noch ProcessMessages nötig sind.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:48 Uhr.
Seite 1 von 3  1 23      

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