![]() |
Passwortabfrage
Hallo,
ich bin noch ein Delphifrischling^^ und ich will ein Programm schreiben bei dem man einen Namen eingeben muss und dann das richtige Passwort dafür.
Code:
Also der 1. Buchstabe von "name" soll in den ASCII Wert umgewandelt werden und dieser Wert soll dann die "serie" sein.
unit Keygen;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Edit1: TEdit; Edit2: TEdit; Label1: TLabel; Label2: TLabel; Button1: TButton; procedure Button1Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation uses Unit2, Unit3, Unit4, Unit5; {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var serie: integer; name:string; begin if Edit1.Text = '' then Form4.Showmodal else name:= Edit1.text; serie:= ord(name[1]); if edit2.text=edit1.text then Form5.Showmodal else Form4.Showmodal end; end. Aber irgendwie klappt das nicht. Es wird fehlerfrei "compiliert". Aber wenn ich z.B. A als "name" eingebe und "65" als Serie dann kommt auch immer das Fenster mit der Fehlermeldung: falsch. Woran liegt das? Wo liegt der Hund begraben. Danke schonmal |
Re: Passwortabfrage
Gibst Du evtl. ein kleines a ein? Das hat nicht den ASCII-Wert 65, sondern 97.
P.S.: Willkommen in der DP :dp: |
Re: Passwortabfrage
Herzlich willkommen hier bei uns in der Delphi-Praxis,
Du solltest an deinem Code mal ein paar grundlegende Anpassungen machen, wie ich meine:
Zitat:
|
Re: Passwortabfrage
Hallo,
kann es sein , dass Du vor
Delphi-Quellcode:
ein
serie:= ord(name[1]);
Delphi-Quellcode:
und danach ein
begin
Delphi-Quellcode:
vergessen hast?
end;
|
Re: Passwortabfrage
Danke für die vielen Antworten :)
Ok ich werde den Code nächstes mal besser formatieren. ich habe ein Fenster gemacht dort drin steht "Falsch". Das kommt entweder wenn man Bei dem Namen 0 Zeichen eingibt:
Code:
begin
if Edit1.Text = '' then Form4.Showmodal Die "Form4" ist eben das Fenster das einem Mitteilt es ist Falsch. Oder es kommt wenn:
Code:
eben Edit2 und Edit1 nicht gleich sind.
if
edit2.text=edit1.text then Form5.Showmodal else Form4.Showmodal @Der.Kaktus Hilft leider nicht. @Jelly Ich kann leider keinen Fehler in der if-then Bedingung erkennen. Könntest du mir da mal helfen:) Ich kenn mich da auch noch nicht so aus. |
Re: Passwortabfrage
Hiho,
und, sind edit1.text und edit2.text gleich? :) Ich glaub genau da liegt nämlich der Fehler... [EDIT Ich verstehe noch gar nicht genau, was letztendlich die Lösung sein soll :gruebel: 1.) Du möchtest einen Namen (Edit1) und ein Passwort (Edit2) eingeben. 2.) Nun soll überprüft werden, ob "der Ascii des ersten zeichens von edit1.text " dem Wert aus "Edit2,text" entspricht?! dann sollte das ganze so aussehen:
Delphi-Quellcode:
procedure TForm1.btnClick(Sender: TObject);
var serie, iPW: integer; name: string; begin if Edit1.Text = '' then showmessage('NEIN') else name := Edit1.text; serie := ord(name[1]); if TryStrToInt(Edit2.Text, iPW) then begin if iPW = Serie then showmessage('JA') else showmessage('NEIN') end else showmessage('NEIN'); end; |
Re: Passwortabfrage
omg
Warum kommt man da nicht selbst drauf Oo Wenn ich in die 2 Editfelder das selbe eingebe kommt die Meldung das es "Richtig" sei. Dann muss der Fehler wohl an der "ord" Funktion liegen? Die sollte ja den ASCII Wert von dem 1. Buchstaben der VAribale "name" berechnen. |
Re: Passwortabfrage
schau dir nochmal meinen Beitrag an, habe was editiert. Ansonsten beschreibe bitte einfach nochmal (ohne sourcecode) genau das was eigentlich gemacht werden soll
ORD arbeitet korrekt, du machst damit aber nichts ;) |
Re: Passwortabfrage
Stimmt.
Deins Funktioniert super! Also es soll passieren: Ich will ein Art Loginfeld haben: Name, Passwort Wenn man nun bei Name: "Tobias" eingibt dann soll der 1. Buchstabe des Namens in den ASCII Wert umgewandelt werden soll. Also "T" und dieser ASCII Wert davon soll das Passwort sein. Und wenn es übereinstimmt also das Passwort und der vom Programm errechneten ASCII Wert soll eine Nachricht: JA kommen. Wenn nicht halt: Nein. Könntest du mir deinen Code nochmal kommentieren? Was bewirkt z.B. TryStrToInt(Edit2.Text, iPW) PS: Entschuligt den Crossoverpost. ![]() |
Re: Passwortabfrage
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:47 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