![]() |
Hilfe beim "Glücksrad"
Haloa zusammen, versuche gerade einen Ableger vom bekannten "Glücksrad" zu machen.
Das Poblem liegt nu daran das wenn ich Worte mit 2 gleichen Buchstaben habe er nur eins hinschreibt:
Delphi-Quellcode:
Das er nur einmal soweit geht bis ers gefunden hat und dann aufhört ist klar. Nur wie bekomm ich hin
procedure TForm1.btnVersuchClick(Sender: TObject);
var i,v : Integer; begin for i := 0 to length(wort) do Begin try v := pos(LowerCase(edtVersuch.Text),LowerCase(wort))-1; if v = 0 then objEdt[0].Text := Uppercase(edtVersuch.Text) else objEdt[v].Text := LowerCase(edtVersuch.Text); except end; end; end; das er auch das zweite findet? Und das zweite Problem wäre das wenn ich was falsches eingebe (andren Buchstaben als gesucht) er mir nen .exe error ausgibt :( Hoffe könnt mir helfen Mfg Bansh |
Re: Hilfe beim "Glücksrad"
Hallo und herzlich willkommen,
Ich weiß nicht welche Delphi Version Du nutzt. Sollte es aber Delphi 2005 oder höher sein kanst Du Dir einmal posex anschauen. Da kannst Du angeben ab welcher Stelle des Wortes der Buchstabe gesucht werden soll. Ansonsten kannst Du das Wort umkopieren (copy) ab der Stelle wo der Buchstabe das erstemal gefunden wurde. oder:
Delphi-Quellcode:
Grüße
// Lösungswort initialisieren
Loesungswort:=wort; for i:=1 to length(lösungswort) do loesungswort[i]:='_'; ... // suche Button; gefunden:=false; for i:=1 to length(wort) do if buchstabe = wort[i] then begin loesungswort[i]:=buchstabe; gefunden:=true; end; Klaus |
Re: Hilfe beim "Glücksrad"
Ok vielen dank werde mir das mal morgen anschauen, heute schon nen rauchenden kopf :)
Problem also gelöst, vielan dank :) |
Re: Hilfe beim "Glücksrad"
Grml irgendwie bekomm ich es nicht zum laufen...
versteh grad nicht genau was ich machen soll :( |
Re: Hilfe beim "Glücksrad"
Delphi-Quellcode:
...
// GesuchtesWort initialisieren
// die ganze Prozedure stellt Dir das gesuchte Wort als ____ ____ dar. // also pro Buchstaben einen Unterstrich // wobei GesuchtesWort und Wort jeweils ein String sind GesuchtesWort:=wort; // das ist nur um die Länge des Wortes zu haben for i:=1 to length(gesuchtesWort) do if gesuchtesWort[i] <> ' ' then // erhalten der Leerzeichen gesuchtesWort[i]:='_';
Delphi-Quellcode:
Habe es einmal ein wenig mehr kommentiert.
// suche Button;
//durchsuche das ganze Wort nach einem Buchstaben // wobei Buchstabe ein Char ist, und der Buchstabe sein sollte der gerade "erdreht" wurde for i:=1 to length(wort) do if buchstabe = wort[i] then // Buchstaben gefunden begin GesuchtesWort[i]:=buchstabe; // das stellt sich dann z.B. so dar: ___e_ e___ end; Wenn noch Fragen sind, bitte etwas genauer beschreiben was denn nicht geht - oder nicht zum Laufen gebracht werden kann. Vielleicht haben wir ja verschiedene Ansätze zu dem Problem. Grüße Klaus |
Re: Hilfe beim "Glücksrad"
Liste der Anhänge anzeigen (Anzahl: 1)
Hab das mit edit feldern gemacht :)
Ich post mal mein Programm ist dann vielleicht einfacher zu verstehen. (Es ist leider noch nichts kommentiert und nicht gerade geordnet. Sorry dafür) |
Re: Hilfe beim "Glücksrad"
Liste der Anhänge anzeigen (Anzahl: 1)
Habe Dir mal meine exe angehängt.
Ist meines Erachtens leicher durch einen String zu suchen als über mehrere Editfelder. [edit1] Habe Deine button.click Methode einmal etwas umgestellt.
Delphi-Quellcode:
Was Du noch ausbessern könntest, ist die Darstellung des Textes bzw. deren Platzhalter wenn das Wort mal größer als
procedure TForm1.btnVersuchClick(Sender: TObject);
var i,v : Integer; begin for i := 1 to length(wort) do Begin try //v := pos(LowerCase(edtVersuch.Text),LowerCase(wort))-1; if lowerCase(edtVersuch.Text) = lowerCase(wort[i]) then objEdt[i-1].Text := Uppercase(edtVersuch.Text); //else // objEdt[v].Text := LowerCase(edtVersuch.Text); except end; end; end; 6 Buchstaben ist. Und es passiert nichts wenn das Wort erraten wurde. [edit1] Grüße Klaus |
Re: Hilfe beim "Glücksrad"
Vielen vielen vielen dank :hello:
Nu hab ichs komplett verstanden. Danke dir wirklich :) Und das nichts passiert, bzw die Felder bei langen Worten spinnen... Das wird alles noch gemacht. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:34 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