Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Variabel-Fehler (https://www.delphipraxis.net/39169-variabel-fehler.html)

Gast 29. Jan 2005 18:16


Variabel-Fehler
 
Die funktion von folgendem soll sein, dass man im Edit1 eine Zahl eingeben kann und dann auf Passwort erstellen und dann ein Passwort mit der Länge aus dem Edit1 erstellt werden soll.

Code:
Var
X: integer;

function RandName(Length : Integer):String;
var
  i : Byte;
begin
  randomize();
  result := '';
  SetLength(Result,Length);
  for i := 0 to Length do
  begin
    Result[i] := Char(Random(25)+65);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Label1.Caption := RandName(x);
  Edit1.Text := inttostr(X);
end;
Ich habe irgendwas mit der Variabel falsch gemacht, da es vorher ging. Kann mir das jmd verbessern ? Und dann direkt noch eine Frage.. wie schaffe ich es, dass man im Edit Feld nur Zahlen eingeben kann ? Thx im Vorraus.

*edit* Noch eine Frage .. wenn ich das in einem Memo ausgebe wie schaffe ich es, dass es z.B. 5 mal untereinander ausgegeben werden soll aber verschiedene PW´s ?

ReDoX 29. Jan 2005 18:27

Re: Variabel-Fehler
 
Also was mir auffällt ist

Delphi-Quellcode:
for i := 0 to Length do
besser

Delphi-Quellcode:
for i := 0 to Length-1 do
Was geht den jetzt nicht mehr?
Mfg ReDoX

SirThornberry 29. Jan 2005 18:30

Re: Variabel-Fehler
 
genau falsch. bei strings sollte es von 1 bis length gehen.

Die Frage mit dem Editfeld und den Zahlen beantwortet dir die Suchfunktion.
Desweiteren gilt: neue Frage neuer Thread. Also lieber 3 thead aufmachen aber eben niemals mehrere Fragen in einem Thead stellen.

TypusMensch 29. Jan 2005 18:33

Re: Variabel-Fehler
 
Zitat:

Und dann direkt noch eine Frage.. wie schaffe ich es, dass man im Edit Feld nur Zahlen eingeben kann
Delphi-Quellcode:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in ['0' .. '9']) then key:=#0;
end;

Gast 29. Jan 2005 18:45

Re: Variabel-Fehler
 
Liste der Anhänge anzeigen (Anzahl: 1)
Okay das funktioniert aber irgendwas stimmt mit der Variabel nicht .. wenn ich anstatt das "X" eine Zahl reinschreibe in
Code:
Memo1.Text := RandName(5);
dann kommt ein Fehler (siehe Anhang). Ich tippe mal, dass bei
Code:
Edit1.Text := inttostr(X);
irgendwas nicht stimmen wird. Aber hab keine Ahnung was es sein könnte.

TypusMensch 29. Jan 2005 18:48

Re: Variabel-Fehler
 
Klappt dich wunderbar. Nur muss halt X vorher n Wert zugewiesen werden...

Delphi-Quellcode:
function RandName(Length : Integer):String;
var
  i : Byte;
begin
  randomize();
  result := '';
  SetLength(Result,Length);
  for i := 0 to Length do Result[i] := Char(Random(25)+65);
end;

procedure TForm1.Button1Click(Sender: TObject);
var x:integer;
begin
x:=12; // <--- Zuweisen!
Label1.Caption := RandName(x);
Edit1.Text := inttostr(X);
end;

TypusMensch 29. Jan 2005 18:53

Re: Variabel-Fehler
 
TMemo besitzt doch gar keine Eigenschaft namens "Text". Dafür sind doch die Lines da. Oder steh ich auf der Leitung?

Delphi-Quellcode:
//5 verschiedenen Pwds aus zufälliger Erstellung von Zahlen
Memo1.Lines.Add(RandName(5));
Memo1.Lines.Add(RandName(6));
Memo1.Lines.Add(RandName(7));
Memo1.Lines.Add(RandName(8));
Memo1.Lines.Add(RandName(8));

Gast 29. Jan 2005 18:58

Re: Variabel-Fehler
 
Das mit dem
Code:
X := 12;
klappt wunderbar, doch wenn ich im edit feld die Zahl änder dann geht die Variabel immer auf 12 obwohl ich das nichtmal im Timer oder so habe..

ReDoX 29. Jan 2005 19:03

Re: Variabel-Fehler
 
Dann musst du X auch edit1.text zuweisen!
Delphi-Quellcode:
 X := StrToInt(Edit1.Text)
Mfg ReDoX

TypusMensch 29. Jan 2005 19:05

Re: Variabel-Fehler
 
Block ich net

Ein Formular mit 1 Edit, 1 Memo und 1 Button....

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls, TMUnit, RtColorPicker, ExtCtrls, ColorGrd,
  ExtDlgs, jpeg;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Memo1: TMemo;
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1:TForm1;

implementation

{$R *.dfm}

function RandName(Length : Integer):String;
var
  i : Byte;
begin
  randomize();
  result := '';
  SetLength(Result,Length);
  for i := 0 to Length do Result[i] := Char(Random(25)+65);
end;

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in ['0' .. '9']) then key:=#0;
end;

procedure TForm1.Button1Click(Sender: TObject);
var x:integer;
begin
x := strtoint(Edit1.Text);
Memo1.Lines.Add(RandName(x));
Memo1.Lines.Add(RandName(x));
Memo1.Lines.Add(RandName(x));
Memo1.Lines.Add(RandName(x));
Memo1.Lines.Add(RandName(x));
end;

procedure TForm1.FormShow(Sender: TObject);
begin
Edit1.Text := '';
end;

end.
Ansonsten kapier ich nich, wo das Problem liegt....


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:13 Uhr.
Seite 1 von 2  1 2      

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