![]() |
Problem mit Events
Hallo!
Also zuerst sei gesagt, dass ich seit 2 Jahren Turbo Pascal programmiert habe und mich jetzt auf meine Facharbeit vorbereite. Diese sollte in Delphi sein. Teilweise hab ich mich minimal mit Java beschäftigt. So, nun zu meiner Frage: Es mag ziemlich banal erscheinen, aber auch nach 2-tägigem Forum durchsucen und ausprobieren habe ich keine Lösung gefunden. Ich schreibe einen Text in ein Label und der Text soll geändert werden, wenn man auf einen Button klickt. (Hintergrund des Ganzen ist ein RPG, das ich in TP programmiert habe und jetzt versuche ähnlich in Delphi zu realisieren)
Delphi-Quellcode:
Irgendwie ist mir klar, dass das nicht gehen kann. Aber wie fange ich denn dan so ein Event ab?
procedure TDialogFrame.Button1Click(Sender: TObject);
begin weiter:=true; end; procedure TDialogFrame.Dialog1; begin weiter:=false; Mann1Lbl.Caption:='Hey! Du da, mach die Augen auf, es wird Zeit!'; SpielerLbl.Caption:='...'; If weiter then Mann1Lbl.Caption:='Verdammter, verschlafener Kerl, wach endlich auf!'; end; Wäre für Hilfe dankabr, kann auch irgendein Anfänger-Delphi-Tutorial sein :-D MfG Angelnoir |
Re: Problem mit Events
Ein Timer, den auf z.B. 10 Sekunden stellen, und im TimerEvent Timer.Enabled:=false; und weiter:=true
Marius |
Re: Problem mit Events
Ich hoffe ja mal nicht, dass du davon ausgehst, dass der Text "Verdammter, ..." irgendwann mal erscheint.
Zitat:
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls, AdvDateTimePicker; type TForm1 = class(TForm) Label1: TLabel; Button1: TButton; procedure Button1Click(Sender: TObject); private { Private-Deklarationen } FWeiter: Boolean; procedure SetWeiter(const Value: Boolean); public { Public-Deklarationen } property Weiter : Boolean read FWeiter write SetWeiter; end; var Form1: TForm1; implementation uses DateUtils; {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin Weiter := True; end; procedure TForm1.SetWeiter(const Value: Boolean); begin FWeiter := Value; if Weiter then Label1.Caption := 'Weiter ist True' else Label1.Caption := 'Weiter ist False'; end; end. |
Re: Problem mit Events
Dass das nicht ausgeführt wird, war mir klar :shock:
Ich hatte gehofft irgendwas zu finden um die Prozedur solange zu unterbrechen bis halt der Button geklickt wird. So etwas wie ein booleascher Ausdruck den der Knopf erzeugt. Und dass meine eine Prozedur nicht auf meine andere wartet, ist mir auch schon aufgefallen^^ Ist halt alles etwas sehr neu, wenn man aus der hübschen DOS-Welt kommt :-D P.S.: Ach ich werd mal mit eurenVorschlägen experimentieren, vielen Dank schonmal :) |
Re: Problem mit Events
Die Applikation wartet immer, bis ein Event ausgelöst wird (z.B. Button drücken).
Du musst der Applikation nicht beibringen zu warten, sondern dann zu reagieren, wenn sie soll ;) Das Warten kann die von Haus aus schon. |
Re: Problem mit Events
Aber wie sage ich meiner Prozedur Dialog jetzt, dass sie auf nen Button Click warten soll?
Am besten begrabe ich meine Ideen und machs anders :coder2: |
Re: Problem mit Events
warum nicht so ...
oder habe ich da was falsch verstanden?
Delphi-Quellcode:
procedure TDialogFrame.Button1Click(Sender: TObject);
begin Mann1Lbl.Caption:='Verdammter, verschlafener Kerl, wach endlich auf!'; end; procedure TDialogFrame.Dialog1; begin Mann1Lbl.Caption:='Hey! Du da, mach die Augen auf, es wird Zeit!'; SpielerLbl.Caption:='...'; end; |
Re: Problem mit Events
Ja, das ist schon das, was ich will... nur sollten darauf eigentlich noch weite Dialogstücke folgen^^
Meine erste idee war es mitzuzählen, wie oft man schon auf den Button geklickt hat und je nachdme unterschiedliche Sachen anzeigen lassen Haltet ihr das für zu kompliziert oder umständlich? |
Re: Problem mit Events
Hmm, dann alle Texte in OnClick(), einen Unit-lokalen Zähler definieren, diesen mit jedem Click erhöhen und je nach Zählerstand einen Text anzeigen (und nicht vergessen, den Zähler irgendwann wieder zurück setzen)
|
Re: Problem mit Events
Ja genau sowas hatte ich mir gedacht :)
Dankeschön für die Hilfe |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:26 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-2025 by Thomas Breitkreuz