Alphabet per Timer ausgeben
-
Ja also ich wollte in der Edit-Box mit nem Timer das alphabet (interval = 100) von A bis Z ausgeben ich hab es so gemacht:
Edit1->Text = "A"; Sleep(100); Edit1->Text = "B"; Sleep(100); Edit1->Text = "C"; Sleep(100); Edit1->Text = "D"; Sleep(100); Edit1->Text = "E"; Sleep(100); Edit1->Text = "F"; Sleep(100); Edit1->Text = "G"; Sleep(100); Edit1->Text = "H"; Sleep(100); Edit1->Text = "I"; Sleep(100); Edit1->Text = "J"; Sleep(100); Edit1->Text = "K"; Sleep(100); Edit1->Text = "L"; Sleep(100); Edit1->Text = "M"; Sleep(100); Edit1->Text = "N"; Sleep(100); Edit1->Text = "O"; Sleep(100); Edit1->Text = "P"; Sleep(100); Edit1->Text = "Q"; Sleep(100); Edit1->Text = "R"; Sleep(100); Edit1->Text = "S"; Sleep(100); Edit1->Text = "T"; Sleep(100); Edit1->Text = "U"; Sleep(100); Edit1->Text = "V"; Sleep(100); Edit1->Text = "W"; Sleep(100); Edit1->Text = "X"; Sleep(100); Edit1->Text = "Y"; Sleep(100); Edit1->Text = "Z";also mit sleep geht es nicht ! den er gibt gleich Z aus und lässt die anderen weg.. auch ohne sleep

-
Probiers doch mal mit... nem Timer...? TTimer, um genau zu sein.
Dann noch ne char-Variable, die du hochzählst und wieder haben wir deine Hausaufgaben gemacht.
-
Du mußt da, vor jedem Sleep noch ein Application->ProcessMessages(); setzen.
Allerdings würde ich das in einer Schleife machen.
for (char Zeichen = 'A'; Zeichen <= 'Z'; ++Zeichen) { Edit->Text = AnsiString(Zeichen); Application->ProcessMessages(); Sleep(100); }Application->ProcessMessages() arbeitet die Botschaftswarteschlange ab. Ohne das wird die Oberfläche der Anwendung nur aktualisiert, wenn Sie 'idle' ist.
-
Sieht man denn da noch was? Immerhin wird auf einen Zeichenwechsel nur 0.1s gewartet.
-
Na ja, ist ja einfach anzupassen. Ich habs gerade mal ausprobiert, ist zwar recht zügig, aber noch lesbar.
-
also man kann das auch mit einer schleife machen oder?
for (int i=0 ; i<26 ; i++) { Edit1->Text = (char)i+65; Application->ProcessMessages; Sleep(100); }
-
Hallo
wenn dann so
for (int i=0 ; i<26 ; i++) { Edit1->Text = char(i+65); Application->ProcessMessages(); Sleep(100); }Halte aber Joes Variante für lesbarer.
bis bald
akari
-
Über Timer sieht das ungefähr so aus:
#include <vcl.h> #pragma hdrstop #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } char alph; void __fastcall TForm1::Button1Click(TObject *Sender) { alph='a'; Timer1->Interval = 100; Timer1->Enabled = true; } void __fastcall TForm1::Timer1Timer(TObject *Sender) { Edit1->Text = alph; if(alph=='z') Timer1->Enabled = false; else alph++; }