Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Worte-wechsler (https://www.delphipraxis.net/141473-worte-wechsler.html)

origin 9. Okt 2009 16:20


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:
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.
Freue mich auf Eure Hilfe. Danke

DeddyH 9. Okt 2009 16:25

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.

origin 9. Okt 2009 16:32

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 9. Okt 2009 16:34

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

DeddyH 9. Okt 2009 16:35

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.
                   );

origin 9. Okt 2009 16:38

Re: Worte-wechsler
 
Super. Dickes Dankeschön. :hi:
Okay, ich werde es gleich mal ausprobieren. :coder:

p80286 9. Okt 2009 16:38

Re: Worte-wechsler
 
Damit es sich wirklich bei jedem Click ändert:
Delphi-Quellcode:

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;
Altrw ist zwar eine globale Variable aber man kann sie ja auch in das Form verbannen.
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:
txt := 'Hase-Hund-Maus-Dogge-Bunny-Mickey';
txt := 'Hase-Maus-Hund-Dogge-Bunny-Mickey';
txt := 'Dogge-Hase-Hund-Maus-Bunny-Mickey';
Gruß
K-H

/edit zu spät!

DeddyH 9. Okt 2009 16:43

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;

p80286 9. Okt 2009 16:52

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

DeddyH 9. Okt 2009 16:53

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 01:09 Uhr.
Seite 1 von 3  1 23      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz