![]() |
Worte-wechsler
Hallo Leute,
stehe echt auf'm Schlauch. :wall: Ich möcht gern einen kleinen Wort-Wechsler schreiben und hänge da schon seit Stunden dran fest (totaler Anfänger). :oops: Also eigentlich ne simple Sache, schätze ich. Das Programm soll bei jedem Klick ein anderes Wort in der TEdit anzeigen. Sonst nix. Kann mir bitte jemand helfen und mein Listing vervollständigen, dass das funzt. Ich komme echt nich weiter so. Muss mir unbedingt mal ein Buch kaufen. Konnte aber nich abwarten es selbst zu probieren... :gruebel: Hier das Listing:
Delphi-Quellcode:
Freue mich auf Eure Hilfe. Danke
unit wortwechsel;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, jpeg, Shellapi, ExtCtrls; type TForm1 = class(TForm) GroupBox1: TGroupBox; Edit1: TEdit; Button1: TButton; GroupBox2: TGroupBox; Image1: TImage; Button2: TButton; Label1: TLabel; procedure Button1Click(Sender: TObject); procedure Label1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin close; end; //Link zur Homepage procedure TForm1.Label1Click(Sender: TObject); begin ShellExecute(Application.Handle, 'open', PChar(Label1.Caption), nil, nil, SW_ShowNormal); Cursor:=crHandPoint; Font.Color:=clBlue; Font.Style:=[fsUnderline]; end; procedure TForm1.Button2Click(Sender: TObject); var txt: String; begin txt := 'Hase-Hund-Maus-Dogge-Bunny-Mickey'; //txt := 'Fisch-Eidechse-Vogel-Schwuppi-Lurchi-Hansi'; (es gibt noch einige weitere Wortgruppen!!) Edit1.Text := txt; end; end. |
Re: Worte-wechsler
Delphi-Quellcode:
unit wortwechsel;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, jpeg, Shellapi, ExtCtrls; type TForm1 = class(TForm) GroupBox1: TGroupBox; Edit1: TEdit; Button1: TButton; GroupBox2: TGroupBox; Image1: TImage; Button2: TButton; Label1: TLabel; procedure Button1Click(Sender: TObject); procedure Label1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure FormCreate(Sender: TObject); //FormCreate angelegt private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin Randomize; end; procedure TForm1.Button1Click(Sender: TObject); begin close; end; //Link zur Homepage procedure TForm1.Label1Click(Sender: TObject); begin ShellExecute(Application.Handle, 'open', PChar(Label1.Caption), nil, nil, SW_ShowNormal); Cursor:=crHandPoint; Font.Color:=clBlue; Font.Style:=[fsUnderline]; end; procedure TForm1.Button2Click(Sender: TObject); const txt: array[0..5] of string = ('Fisch','Eidechse','Vogel','Schwuppi','Lurchi','Hansi'); begin Edit1.Text := txt[Random(Length(txt))]; end; end. |
Re: Worte-wechsler
Hey hallo Detlef,
danke für deine superschnelle Antwort. Wichtig ist, dass die Worte auch tatsächlich wie in meinem Listing gezeigt, aneinander gereiht stehen: 'Fisch-Eidechse-Vogel-Schwuppi-Lurchi-Hansi'. Es soll nämlich immer eine andere Reihe von Wortkombinationen (durch "-" getrennt) mit jedem neuen "ButtonClick" erscheinen. Also sechs Worte, manchmal auch Ziffern, in Reihe so zu sagen... Hast du da evtl. auch ne Lösung für? |
DP-Maintenance
Dieses Thema wurde von "Matze" von "Neuen Beitrag zur Code-Library hinzufügen" nach "Sonstige Fragen zu Delphi" verschoben.
Das ist kein Vorschlag für die Code-Library |
Re: Worte-wechsler
Dazu musst Du lediglich die Konstante txt ändern.
Delphi-Quellcode:
const txt: array[0..{Anzahl der Wortgruppen - 1}] of string =
('Hase-Hund-Maus-Dogge-Bunny-Mickey', 'Fisch-Eidechse-Vogel-Schwuppi-Lurchi-Hansi', //usw. ); |
Re: Worte-wechsler
Super. Dickes Dankeschön. :hi:
Okay, ich werde es gleich mal ausprobieren. :coder: |
Re: Worte-wechsler
Damit es sich wirklich bei jedem Click ändert:
Delphi-Quellcode:
Altrw ist zwar eine globale Variable aber man kann sie ja auch in das Form verbannen.var altrw : integer; procedure TForm1.Button2Click(Sender: TObject); const rw : integer; txt: array[0..5] of string = ('Fisch','Eidechse','Vogel','Schwuppi','Lurchi','Hansi'); begin repeat rw:=Random(Length(txt)); until rw<>altrw; Edit1.Text := txt[rw]; altrw:=rw; end; Bei Detlefs Lösung kann es so aussehen als würde der Text nicht geändert, da die gleiche Zufallszahl zweimal nacheinander kommt. Ähm was möchtest Du denn jetzt? Etwa so ähnlich?
Delphi-Quellcode:
Gruß
txt := 'Hase-Hund-Maus-Dogge-Bunny-Mickey';
txt := 'Hase-Maus-Hund-Dogge-Bunny-Mickey'; txt := 'Dogge-Hase-Hund-Maus-Bunny-Mickey'; K-H /edit zu spät! |
Re: Worte-wechsler
Das müsste aber auch ohne globale Variable gehen, wenn man den String selbst vergleicht.
Delphi-Quellcode:
var index: integer;
begin repeat index := Random(Length(txt)); until txt[index] <> Edit1.Text; |
Re: Worte-wechsler
@DeddyH
Mir scheit der Vergleich zweier Integer-Werte nicht so aufwendig. Aber hier macht das eine oder andere hundertstel wohl keinen Unterschied. Gruß K-H |
Re: Worte-wechsler
Denk ich mir auch, vor allem hat der TE nichts von einer hochoptimierten Lösung, die er dann erst nach Jahren begreift, wenn überhaupt :zwinker:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:05 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 by Thomas Breitkreuz