AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Wörter eingabe

Ein Thema von Die Muhkuh · begonnen am 22. Aug 2003 · letzter Beitrag vom 22. Aug 2003
Antwort Antwort
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#1

Wörter eingabe

  Alt 22. Aug 2003, 08:05
Hi,

kann mir jemand helfen? Ich hab vor in ein Editfeld ein buchstabe wie "A" oder "B" ... einzugeben und dann kommt für a=1 für b=2 und so weiter. Nur was mir fehlt ist die Variable.
Andersrum geht wenn ich ne Zhal eintrage das dann der Entsprechende Buchstabe kommt.

Wenn wir schon dabei sind wie kann man z.b das so machen: Wenn ich einegebe in ein Editfeld: 12518 und dann ein Editfeld einzeigt "Du hast ABER geschrieben" Ist klar wie's geht? 1 steht für A,2 für B, 5 für E, 18 für R.

Am besten wärs natürlich wenn mans so eingeben kann 1,2,5,18
Weil sonst könnte Delphi meinen es 1,2,5,1,8 und dann kommt ABEAH raus.

So ich hoffe ihr habt mich verstanden.

greetz

Spider
Manuel
  Mit Zitat antworten Zitat
Illuminator-23-5
(Gast)

n/a Beiträge
 
#2

Re: Wörter eingabe

  Alt 22. Aug 2003, 08:16
du könntest im 1.edit das wort, und in einem 2. edit die zahlen drinnenhaben
ins OnChange-Event des 1.Editfeldes einfach immer den ganzen text ab'testen':
Delphi-Quellcode:
edit2.Text := '';
for i := 1 to length(edit1.Text) do
  edit2.Text := edit2.Text + chr(edit1.Text[i])-65
ins OnChange-Event des 2.Editfeldes machst du das umgekehrte
Delphi-Quellcode:
  edit1.Text := '';
  while pos(',', edit2.Text) > 0 do begin
    edit1.Text := edit1.Text + chr(StrToInt(copy(edit2.Text, 1, pos(',', edit2.Text) - 1)) + 65);
    edit2.Text := copy(edit2.Text, pos(',', edit2.Text)+1, length(edit2.Text) - pos(',', edit2.Text)-1);
  end;
müsste funzen, kanns nicht probieren
hoffe ich konnte dir helfen
  Mit Zitat antworten Zitat
neolithos

Registriert seit: 31. Jul 2003
Ort: Dresden
1.386 Beiträge
 
Delphi 7 Architect
 
#3

Re: Wörter eingabe

  Alt 22. Aug 2003, 08:19
Ich würde dann generell alles mit Komma trennen.

Zum müsstest du zwei Listen/Array's erstellen.
einen für die Buchstaben und einen für die Zahl

Zum Array aufbau schau mal in der OH unter
ARRAY oder Dynamische Array's SetLength

Zum String zerlegen
Pos, Copy, Delete, StrUtils und es gibt noch mehr.

Diese zwei Array kann man dann durch eine Schleife (z.B. For ... to ... do ) ergänzen.

Viel spaß beim Frimmeln
- ciao neo -
Es gibt niemals dumme Fragen, sondern nur dumme Antworten!
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#4

Re: Wörter eingabe

  Alt 22. Aug 2003, 13:53
Bei mir siehts jetzt so aus:
Delphi-Quellcode:
var
  Form1: TForm1;
  a: array[1..26] of string;

  Eingabe, Nr : Integer;
implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);

begin
  a[1] := 'A';
  a[2] := 'B';
  a[3] := 'C';
  a[4] := 'D';
  a[5] := 'E';
  a[6] := 'F';
  a[7] := 'G';
  a[8] := 'H';
  a[9] := 'I';
  a[10] := 'J';
  a[11] := 'K';
  a[12] := 'L';
  a[13] := 'M';
  a[14] := 'N';
  a[15] := 'O';
  a[16] := 'P';
  a[17] := 'Q';
  a[18] := 'R';
  a[19] := 'S';
  a[20] := 'T';
  a[21] := 'U';
  a[22] := 'V';
  a[23] := 'W';
  a[24] := 'X';
  a[25] := 'Y';
  a[26] := 'Z';
  
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  For Nr := 1 to 26 do
    Panel1.caption:= a[nr];
end;
Jetzt gibbet ein neues Problem: Egal was ich ins Editfeld eingebe das Panel zeigt immer ein Z an auch wenn ich 1 oder 2 eingebe. Selbst wenn ich a oder b eingebe kommt z raus!

Was muss ich den noch tun?
Manuel
  Mit Zitat antworten Zitat
Tpercon

Registriert seit: 7. Jun 2002
638 Beiträge
 
Delphi 5 Professional
 
#5

Re: Wörter eingabe

  Alt 22. Aug 2003, 14:23
Zitat von Spider:
Bei mir siehts jetzt so aus:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  For Nr := 1 to 26 do
    Panel1.caption:= a[nr];
end;
Jetzt gibbet ein neues Problem: Egal was ich ins Editfeld eingebe das Panel zeigt immer ein Z an auch wenn ich 1 oder 2 eingebe. Selbst wenn ich a oder b eingebe kommt z raus!

Was muss ich den noch tun?
Natürlich gibt er immer ein Z an. Du durchläufst die Schleife ja auch immer von 1 bis 26 und 26 ist nunmal ein Z.
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#6

Re: Wörter eingabe

  Alt 22. Aug 2003, 14:25
Und was soll ich dann tun damit er bei 1 auch a angibt?
Manuel
  Mit Zitat antworten Zitat
czapie

Registriert seit: 17. Nov 2002
Ort: Berlin
384 Beiträge
 
Delphi 5 Standard
 
#7

Re: Wörter eingabe

  Alt 22. Aug 2003, 16:16
mh ehrlich gesagt versteh ich nicht wozu die Schleife da da ist, ich denke du willst die Umwandlugn erreichen, warum gehst du dein Array deswegen ganz durch?
Du kannst doch den Inhalt des Edits abfragen, dann nach jedem Komma die Zahl in einen zweiten Array speichern und denn dann durchgehen?
oder nicht?
Czapie.
Was man zu verstehen gelernt hat, fürchtet man nicht mehr.
(Marie Curie)
http://www.cafes-in-berlin.com
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Wörter eingabe

  Alt 22. Aug 2003, 16:53
Im OnCreate der Form das a-Zeugs zu machen ist auch nicht so toll, oder?

Mach's doch so:

Code:
var a: array[1..26] of string =('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z');
Gruß Matze
  Mit Zitat antworten Zitat
Benutzerbild von Memo
Memo

Registriert seit: 19. Aug 2003
509 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: Wörter eingabe

  Alt 22. Aug 2003, 17:46
Delphi-Quellcode:
implementation

{$R *.DFM}

 type TBezeichner = record
       a ,zahl: String[2];
 end;

 var S : array[0..25] of TBezeichner;


procedure TForm1.FormCreate(Sender: TObject);
begin
  s[0].a := 'A'; s[0].zahl := '1';
  s[1].a := 'B'; s[1].zahl := '2';
  s[2].a := 'C'; s[2].zahl := '3';
  s[3].a := 'D'; s[3].zahl := '4';
  s[4].a := 'E'; s[4].zahl := '5';
  s[5].a := 'F'; s[5].zahl := '6';
  s[6].a := 'G'; s[6].zahl := '7';
  s[7].a := 'H'; s[7].zahl := '8';
  s[8].a := 'I'; s[8].zahl := '9';
  s[9].a := 'J'; s[9].zahl := '10';
  s[10].a := 'K'; s[10].zahl := '11';
  s[11].a := 'L'; s[11].zahl := '12';
  s[12].a := 'M'; s[12].zahl := '13';
  s[13].a := 'N'; s[13].zahl := '14';
  s[14].a := 'O'; s[14].zahl := '15';
  s[15].a := 'P'; s[15].zahl := '16';
  s[16].a := 'Q'; s[16].zahl := '17';
  s[17].a := 'R'; s[17].zahl := '18';
  s[18].a := 'S'; s[18].zahl := '19';
  s[19].a := 'T'; s[19].zahl := '20';
  s[20].a := 'U'; s[20].zahl := '21';
  s[21].a := 'V'; s[21].zahl := '22';
  s[22].a := 'W'; s[22].zahl := '23';
  s[23].a := 'X'; s[23].zahl := '24';
  s[24].a := 'Y'; s[24].zahl := '25';
  s[25].a := 'Z'; s[25].zahl := '26';
end;

function TForm1.isZahl(c: Char): Boolean;
begin
  result := c in ['0'..'9']
end;

function TForm1.isBuchstabe(c: Char): Boolean;
begin
   result := c in ['A'..'Z','a'..'z']
end;


procedure TForm1.Button1Click(Sender: TObject);
var index,i : Integer;
    u : String;
begin
   index := 0;
   i := 1;
   while i <= length(Edit1.Text) do
   begin
      u := Edit1.Text;
      if isBuchstabe(Edit1.Text[i]) then
      begin
        while index < 25 do
        begin
           if s[index].a = Edit1.Text[i] then
           begin
             insert(s[index].zahl, u,i);
             delete(u,i+1,1);
             Edit1.Text := u;
             index := 25;
           end else
            index := index+1;
        end;
       end else
       begin
         if isZahl(Edit1.Text[i]) then
         begin
           while index < 25 do
           begin
            if s[index].zahl = Edit1.Text[i] then
            begin
             // hier muss noch der Teil rein, der wenn eine Zahl gefunden eird ,den String nach
             //Kommas zerlegt; so wie es jetzt ist, geht es nur einstellig dafür aber hin- und her
             delete(u,i,1);
             insert(s[index].a, u,i);
             Edit1.Text := u;
             index := 25;
            end else
            index := index+1;
          end;
         end;
       end;
     index :=0;
     i:=i+1;
   end;
end;

end.
Das hab ich ebend mal schnell zusammen genagelt. Nur grob getestet. Muß noch tüchtig viel optimiert werden. Aber es sollte ja blos eine Anregung sein.

[edit=Daniel B]Delphi-Tags korrigiert. Mfg, Daniel B[/edit]
Danke Daniel. Ich gelobe Besserung.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:18 Uhr.
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