Entwickler-Ecke

Sonstiges (Delphi) - Hangman Buchstabenproblem


Delphi Noob - Di 08.03.05 18:06
Titel: Hangman Buchstabenproblem
Ich hab folgendes Problem bei den Buchtstaben Butttons a-z :
Um zu überprüfen ob der buchstabe im wort vorkommt hab ich folgendes geschrieben
ich hab zwei strings gemacht einmal suchwort und wort wort:=edit1.text;
und suchwort:=label1.caption; also das sternchen wort was da steht auf dem formular


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
var suchwort,buchstabe:char; wort:string; i:integer;
begin 
buchstabe:'a';
for i:=1 to length(wort) do 
if
wort[i]=buchstabe
then 
suchwort[i]:=buchstabe;
label1.caption:=suchwort;


so und jetzt ist das ziemlich umständlich das für jeden button neu zu schreiben nur um buchstabe z.b. in buchstabe:='b' zu verändern. Habt ihr ne idee wie man das so schreiben kann das man für b-z nur auf die prozedur für buttonA verweisen muss???

Moderiert von user profile iconraziel: Delphi-Tags hinzugefügt.


WeBsPaCe - Di 08.03.05 18:11

Da kannst du dir einfach eine Funktion schreiben, an die du dann den Buchstaben und das Wort übergibst und die sagt dir dann an welcher Stelle es ist. Such einfach mal im DF, irgendwo hab ich soeine Funktion gesehen. ;)


F34r0fTh3D4rk - Di 08.03.05 18:24


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
    wort:= label1.caption;
    for i:= 1 to length(edit1.text) do 
      begin
        if edit1.text[i] = edit2.text then 
          begin
            delete(wort,i,1);
            Insert(edit1.text[i], wort, i);
            PlaySound('richtig',HInstance, snd_ASync or snd_Memory or snd_Resource);
          end;
        label1.caption:= wort;
      end;
if pos(edit2.text, edit1.text) = 0 then 
  fehler:= fehler + 1;

so hab ich das in etwas gemacht (nur codeschnippsel)


ich habe das label mit den strichen (label1)

edit2, wo man die buchstaben reintragen muss, in deinem fall die buttons

und edit1.text ist das lösungswort