Buchstaben vershwinden lassen

Hallo!

ich habe eine kleines/großes problem.

und zwar:

ich möchte ein programm schreiben bei dem wörte von rechts nach links fliegen und man diese schnell nachschreiben muss, damit sie verschwinden, denn sie dürfen den linken rand des spielfeldes nicht berühren. und ich hatte da schon so eine ich idee… Achso und ich programiere das ganze mit dem borland builder 6.0

also mit dem befehl s.length bekommt man ja die länge des wortes raus. s ist ein variable und ist als string deklariert. So jez muss man ja das wort nach schreiben. theoretisch sollte das so gehen if buchstabe 1 von s = dem buchstaben 1 von dem gesuchten Wort dann soll dieser sich geld färben also so in der art so soll es später werden und zum testen hab ich das so geschrieben

//--------------------------------------------------------------------

void __fastcall TForm1::FormKeyPress(TObject *Sender, char &Key)
{
String s;

Label1->Caption=s;
if (s[1]==Key){Label1->Visible=false;};
}
//--------------------------------------------------------------------

…,aber so funtioniert das leider nicht. Er start zwar das programm aber sobald ich deinen einen buchstaben auf der tastatur drücke bekomme ich einen error und er springt in diese zeil

ThrowIfOutOfRange(idx); // Should Range-checking be optional to avoid overhead ??

vielleicht kann mir ja jemand weiter helfen

schon mal danke fürs lesen und alles

LG Paddy

Hallo,

if (s[1]==Key){Label1->Visible=false;};

Ich vermute, du meinst s[0]. Arrays und damit Strings sind immer mit 0 beginnend indiziert.

Grüße,
Moritz

void __fastcall TForm1::FormKeyPress(TObject *Sender, char
&Key)
{
String s;

Label1->Caption=s;
if (s[1]==Key){Label1->Visible=false;};
}

Hallo Patrick,

der String S existiert nur innerhalb der Funktion, und da ihm nichts zugewiesen wurde, ist er leer. Wenn er nicht leer wäre, würde er, wie schon erwähnt, mit dem Index 0 starten.

Gruss Reinhard

Hallo das hilft mir jez nicht ganz weiter habt ihr auch vrschläge wie es funktienieren könnte aber schonmal vielen dank für die schnelle hilfe

LG paddy

Also ích hab es geschaft jetzt schon ein stück weiter zukommen und zwar habe ich es geschaft ein Label zu verschwinden lassen, wenn der erste Buchstabe aus den 2 Edit-felder gleich ist, jetzt habe ich noch folgendes problem um das zu testen muss ich auf einen button klicken ich würde das gerne hinbekommen das er das prüft wenn ich auf einen buchstaben drücke und das andere problem ist, gibt es ein befehl der dann einzelne buchstaben einfärben oder löschen kann das man weiß welchen buchstaben man schon eingetippt hat?

so sieht mein quelltext im button aus

s=Edit2->Text;
w=Edit1->Text;
if (s[1]==w[1]){Label1->Visible=false;};

s und w sin unter der tform als String deklariert

mfg paddy