AGB  ·  Datenschutz  ·  Impressum  







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

Letztes Zeichen im Editfeld...

Ein Thema von Störtebeker · begonnen am 17. Feb 2008 · letzter Beitrag vom 18. Feb 2008
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Störtebeker
Störtebeker

Registriert seit: 9. Jul 2007
398 Beiträge
 
#1

Letztes Zeichen im Editfeld...

  Alt 17. Feb 2008, 17:00
Hallo,

ich schreibe ein Benutzerregistration für mein Programm, das eine INI erstellt und wenn die vorhanden ist, kommt beim nächsten Start die Loginform usw.

Beim Registrationsfenster wird eine Seriennummer verlangt, nach deren Eingabe der Reg-Button "Enabled" wird.
Nun habe ich sechs Editfelder, die zusammen die Seriennummer ergeben. Das erste feld ist "Enabled", die fünf folgenden sind "Disabled". Wird nun der erste Teil der Nummer in das erste Editfeld eingetragen, wird das zweite Editfeld automatisch auf "Enabled" gesetzt und der Cursor springt automatisch in das 2. Editfeld usw.

Nun möchte ich, dass ein entweder ein "Häkchen", oder ein "Kreuz" erscheint, wenn das letzte Zeichen im 6. Editfeld eingegeben wurde. Die Maximallänge jedes Editfeldes ist auf 5 Zeichen beschränkt.

Für das letzte Feld sieht momentan der Quelltext aus wie folgt:
Delphi-Quellcode:
procedure TForm1.Edit10Change(Sender: TObject);
begin
if
Edit6.Text='44551'
then begin
Image2.visible:=True;
Button1.enabled:=true;
end
else begin
Image2.Visible:=false;
Image3.Visible:=true;
Button1.Enabled:=false;
end
end;
Das mit dem Häkchen funzt, da es erst erscheint, wenn auch das letzte Feld komplett gefüllt ist, das X erscheint aber schon, wenn das Editfeld aktiviert wird.

So, nun die Frage:
Wie kann ich es anstellen, dass nur das letzte Zeichen (das 5. Zeichen) des letzten Editfeldes überprüft wird und dem entsprechen das Symbol auftaucht.

Ich kann mir vorstellen, dass der Text ersteinmal etwas verwirrend scheint.

Danke, schonmal.
"And he piled upon the whale´s white hump - a sum of all the rage and hate felt by his whole race.
If his chest had been a cannon, he would have shot his heart upon it."
  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
 
#2

Re: Letztes Zeichen im Editfeld...

  Alt 17. Feb 2008, 17:03
Oh ja, etwas verwirred ist er. Du meinst nicht zufällig sowas (im OnChange):

Delphi-Quellcode:
if Length(Edit6.Text) = 5 then
  // Edit 6 enthält 5 Zeichen
Natürlich kannst du auch die Stringlänger aller Feldinhalte überprüfen.
  Mit Zitat antworten Zitat
Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Letztes Zeichen im Editfeld...

  Alt 17. Feb 2008, 17:08
mit was oder nach was soll denn das letzte zeichen überprüft werden??

um das letzte zeichen rauszubekommen kannst du den text aus dem edit in ein string laden, und z.b. so:
Delphi-Quellcode:
var
  i: integer;
  edit6textstring: string;

  edit6textstring := edit6.text;
  i := strtoint(edit6textstring[5])


rausfinden! wenn ich dich jetzt richtig verstanden habe..
Martin
MFG Caleb
TheSmallOne (MediaPlayer)
Die Dinge werden berechenbar, wenn man die Natur einer Sache durchschaut hat (Blade)
  Mit Zitat antworten Zitat
Benutzerbild von Störtebeker
Störtebeker

Registriert seit: 9. Jul 2007
398 Beiträge
 
#4

Re: Letztes Zeichen im Editfeld...

  Alt 17. Feb 2008, 18:06
Naja, der richtige Eintrag für das letzte Editfeld heißt ja "44551".

Was ich vielleicht meinte ist, dass das Editfeld erst überprüft wird, wenn es vollständig ausgefüllt ist.
"And he piled upon the whale´s white hump - a sum of all the rage and hate felt by his whole race.
If his chest had been a cannon, he would have shot his heart upon it."
  Mit Zitat antworten Zitat
Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Letztes Zeichen im Editfeld...

  Alt 17. Feb 2008, 18:14
dann musst du das verwenden was matze gepostet hat..
Martin
MFG Caleb
TheSmallOne (MediaPlayer)
Die Dinge werden berechenbar, wenn man die Natur einer Sache durchschaut hat (Blade)
  Mit Zitat antworten Zitat
Benutzerbild von Störtebeker
Störtebeker

Registriert seit: 9. Jul 2007
398 Beiträge
 
#6

Re: Letztes Zeichen im Editfeld...

  Alt 17. Feb 2008, 18:29
Delphi-Quellcode:
procedure TForm1.Edit10Change(Sender: TObject);
begin
 if
  Edit6.Text='44551'
 then begin
 if
  Length(Edit6.Text) = 5
 then begin
  Image2.visible:=True;//Häkchen
  Button1.enabled:=true;
 end
 else begin
  Image2.Visible:=false;//Häkchen
  Image3.Visible:=true;//Kreuz
  Button1.Enabled:=false;
 end
end
end;
So funzt das leider nicht ganz. Er scheint irgendwie das "ELSE" ereignis auszulassen. Wenn ich das Feld komplett ausfülle, kommt das Häkchen. Wenn ich allerdings wieder ein Zeichen lösche, bleibt das Häkchen und wenn ich danach wieder ein falsches Zeichen hinzufüge, bleibt das Häkchen, der Button bleibt "Disabled"...

Kann natürlich daran liegen, dass ich das if Length... an die falsche Position gesetzt habe, oder irgendwas vergessen habe. Aber ich wusste nicht, wie ich sonst die richtige Vorgabe if Edit6.Text='44551' für das Feld schreiben sollte.
"And he piled upon the whale´s white hump - a sum of all the rage and hate felt by his whole race.
If his chest had been a cannon, he would have shot his heart upon it."
  Mit Zitat antworten Zitat
Benutzerbild von Störtebeker
Störtebeker

Registriert seit: 9. Jul 2007
398 Beiträge
 
#7

Re: Letztes Zeichen im Editfeld...

  Alt 17. Feb 2008, 18:33
Hat sich erledigt...

Ich musste aus:

Delphi-Quellcode:
procedure TForm1.Edit6Change(Sender: TObject);
begin
if
  Edit6.Text='44551
then begin
if
  Length(Edit6.Text) = 5
then begin
  Image2.visible:=True;//Häkchen
  Button1.enabled:=true;
end
else begin
  Image2.Visible:=false;//Häkchen
  Image3.Visible:=true;//Kreuz
  Button1.Enabled:=false;
end
end
end;
Delphi-Quellcode:
procedure TForm1.Edit6Change(Sender: TObject);
begin
if
  Length(Edit6.Text) = 5
then begin
if
  Edit6.Text='44551
then begin
  Image2.visible:=True;//Häkchen
  Button1.enabled:=true;
end
else begin
  Image2.Visible:=false;//Häkchen
  Image3.Visible:=true;//Kreuz
  Button1.Enabled:=false;
end
end
end;
machen.
"And he piled upon the whale´s white hump - a sum of all the rage and hate felt by his whole race.
If his chest had been a cannon, he would have shot his heart upon it."
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Letztes Zeichen im Editfeld...

  Alt 17. Feb 2008, 18:49
Hai Störtebeker,

eventuell wäre es so einfacher:

Delphi-Quellcode:
procedure TForm1.Edit6Change(Sender: TObject);
var
  okay : Boolean;
  editstr : String;
begin
  editstr := (Sender as TEdit).Text;
  okay := (Length(editstr) = 5) AND (editstr = '4451');
  Image2.Visible := okay;
  Button1.Enabled := okay;
  Image3.Visible := not (okay);
end;
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#9

Re: Letztes Zeichen im Editfeld...

  Alt 17. Feb 2008, 19:32
Zitat von Sharky:
  okay := (Length(editstr) = 5) AND (editstr = '4451');
Ich würd sagen, das wär in mindestens 99 / 100 Fällen false
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#10

Re: Letztes Zeichen im Editfeld...

  Alt 17. Feb 2008, 19:34
Zitat von Jelly:
Ich würd sagen, das wär in mindestens 99 / 100 Fällen false
Ich hatte es mir extra verbissen
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 04:29 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