Autor Beitrag
Philipp S
Hält's aus hier
Beiträge: 10

Win XP

BeitragVerfasst: Mi 03.08.11 16:46 
Hallo liebe Mitdelphiisten,

ich habe mir seit langem mal wieder die Mühe gemacht ein neues Programm zu entwickeln, mit Delphi 6. ;)
Nach einem einfachen Münzwurfspiel mit dem Besitzer als Gewinner habe ich mir gedacht, mache ich doch mal ein nützliches Programm.
Damit entstand der Passwortgenerator. Hier präsentiere ich euch die erste Stufe des guten Stücks und bitte um reichlich Verbesserungsvorschläge.

Dann habe ich auch gleich noch eine kleine Frage an die Community, wie könnte ich eine kleine Anleitung einbinden, evtl. in noch einem zweiten Fenster, oder eher als Dateilink auf ein PDF? Wie funktioniert das?

MfG Philipp

Moderiert von user profile iconNarses: Anhang aktualisiert.
Einloggen, um Attachments anzusehen!
_________________
4 * 2GHz (Quadprozessor) ergeben nicht 8GHz!
Niko S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 566
Erhaltene Danke: 10

Win 7, Ubuntu
Lazarus, Turbo Delphi, Delphu 7 PE
BeitragVerfasst: Mi 03.08.11 17:15 
Ich hab meinen immer mit CheckBoxen versehen, anstatt mit Radiobuttons.
Finde ich persönlich besser gelöst.
Dazu würde ich eventuell noch ne Box einfügen mit den Sonderzeichen die man drin haben will bzw drin sind.
Und mach die Form kleiner, das ist zu Überdimensioniert.
Die Angabe der Länge kannst du ja über nem SpinEdit regeln.
Wenn es in Delphi 6 noch keinen SpinEdit gibt, kannste es ja leicht selbst bauen.
Sinspin
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1321
Erhaltene Danke: 117

Win 10
RIO, CE, Lazarus
BeitragVerfasst: Do 04.08.11 14:50 
Hi,

warum springt die Auswahl der Sicherheisstufe immer wieder auf den ersten Eintrag und nimmt nur Zahlen fürs Password?
Warum gibst du eine derart umständliche Anleitung zum kopieren in die Zwischenablage an wenn es doch auch einfach mit Rechtsclick und im kommenden Popup mit kopieren geht.
Als letztes schließe ich mich meinem Vorredner an und plädiere für Checkboxen zur Auswahl der Zeichengruppen die enthalten sein sollen und einem Freitextfeld für weitere Zeichen die man reinhaben will.

_________________
Wir zerstören die Natur und Wälder der Erde. Wir töten wilde Tiere für Trophäen. Wir produzieren Lebewesen als Massenware um sie nach wenigen Monaten zu töten. Warum sollte unser aller Mutter, die Natur, nicht die gleichen Rechte haben?
Sliver18
Hält's aus hier
Beiträge: 7

WinXP, WinVista, Win7
D7E
BeitragVerfasst: Do 04.08.11 15:59 
user profile iconPhilipp S hat folgendes geschrieben Zum zitierten Posting springen:
Hallo liebe Mitdelphiisten,

Dann habe ich auch gleich noch eine kleine Frage an die Community, wie könnte ich eine kleine Anleitung einbinden, evtl. in noch einem zweiten Fenster, oder eher als Dateilink auf ein PDF? Wie funktioniert das?

MfG Philipp


Hey Philipp,

ich hab auch mal eine Methode gesucht, eine PDF anzuzeigen - und stieß dabei ständig auf DLL's oder kostenpflichtige Komponenten. Ich habe dann jedoch einen TWebbroser auf einer TForm plaziert und navigiere dann zu dem PDF - was sich natürlich zu nutze Macht, dass ein dementsprechendes Plugin (hoffentlich) auf dem System, dass das Programm verwendet, installiert ist. Aber das sollte man ja überprüfen können.
Philipp S Threadstarter
Hält's aus hier
Beiträge: 10

Win XP

BeitragVerfasst: Fr 05.08.11 03:16 
Hallo,

vielen Dank für die bisherigen Hinweise. :D Das mit dem Zurückspringen des Radiobuttons hatte ich gleich danach bemerkt und korrigiert, da stand ein Befehl doppelt und an der falschen Stelle, konnte es aber leider nicht mehr hochladen!^^ ;)

Die Größe habe ich auch verringert, sieht wirklich besser aus und habe nun das Editfeld mit einem UpDown versehen.

Als nächstes nehme ich mir die Checkboxen vor. Mit der Anleitung möchte ich eine einfache Textdatei einbinden über eine Schaltfläche am besten, wie könnte ich das realisieren??

FG Philipp

Moderiert von user profile iconNarses: Anhang in den ersten Beitrag verschoben.

_________________
4 * 2GHz (Quadprozessor) ergeben nicht 8GHz!
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 05.08.11 05:55 
Bingo. :mrgreen:

Immer mein erster Test:
Zitat:
---------------------------
Passwortgenerator 1.0
---------------------------
'sdfsf' ist kein gültiger Integerwert.
---------------------------
OK
---------------------------
HeftCD
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 91
Erhaltene Danke: 9

Win2k, WinXP, Win7, Win8
Delphi 3 Pro, Delphi 5, Delphi 7, Turbo Delphi, BC1
BeitragVerfasst: Fr 05.08.11 09:36 
außerdem fängst Du mit der Einstellung Passwortlänge = 1 an - mittlerweile werden mindestens 10 vorgeschrieben, da man 8 Zeichen auf einem aktuellen Dualcore Laptop auch schon in einem Jahr (253 Tage bei 8 verwendeten aus 62 versch. mögl. Zeichen [Groß,Klein,Zahlen]) cracken kann.

oder arbeitest Du für den CIA und möchtest denen die Arbeit erleichtern? :)



... so, da wollen wir mal:
Da müßte in dem dritten TAB immer noch die Richedit-komponente sein.
Damit kannst Du formatierte RTF Dateien laden (sieht besser aus; dickere Überschriften usw.)

dann ein Button namens "Hilfe"


und in die zweite Form ein MEMO und ein Button 'Close'



ganz oben unter "implementation" in der ersten Form den Namen der zweiten unit eintragen, - also
ausblenden Delphi-Quelltext
1:
USES unit2;					


dann im Hilfe-Button der ersten Form
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
try
    form2.Richedit1.lines.loadfromfile('.\HilfeDatei.rtf');
else
    MessageDlg ('Hilfe-Datei existiert nicht !',mtError, [mbOK], 0);
end;


oder
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
 if FileExists('.\HilfeDatei.rtf'then
    form2.Richedit1.lines.loadfromfile('.\HilfeDatei.rtf')
else
messag ... s.o.
end;


.\ im DateinamenString sorgt dafür, daß das Programm später im Anwendungs/Programm/exe) Verzeichnis - aus dem es gestartet wurde - nach der Datei sucht - damit vermeidest Du einen konkreten Pfad wie 'C:\Programme\MeinPWgenerator\Hilfe.rtf' - welcher auf anderen Systemen nicht stimmen muß und zu Fehlern führen könnte.

und dann kannste noch
statt der Radiobuttons die 5 Checkboxen anlegen und 1 weiteres Editfeld.
und machst dann im Generieren Button
ausblenden Delphi-Quelltext
1:
2:
3:
4:
if checkbox1.checked then Auswahl := 'ABCDE';
if checkbox2.checked then Auswahl := 'abcde';
...
if checkbox5.checked then Auswahl := 'ABCDEabcd123465' + Edit2.text;


und genrierst dann davon.

und unter FORM.Create () machste
ausblenden Delphi-Quelltext
1:
Edit2.text := ' !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~';					

(das erste ist ein LEERZEICHEN - könnte man auch noch optional mit ner weiteren Checkbox dranhängen/auslagern)

und dann noch:
ein Button 'Copy'
und trägst dann da ein:
ausblenden Delphi-Quelltext
1:
Clipboard.astext := Edit1.text;					


und fügst ganz oben in der unit noch unter USES Windows, sysutils, bla ... , clipbrd; ein, damit's läuft.



und dann vermeide aber bitte einen "Registrieren/KAUFEN - nur 29 Euro" Button :)
weil sowas gibt's schon wie Sand am Meer. :)



und erklär mir doch bitte noch, warum der bei 10.000 Zeichen ganze 4 Sekunden braucht?
[Aha, dafür ist also die Prograessbar doch notwendig ... aber ungewönlich ] - also, WARUM ?
Niko S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 566
Erhaltene Danke: 10

Win 7, Ubuntu
Lazarus, Turbo Delphi, Delphu 7 PE
BeitragVerfasst: Fr 05.08.11 10:21 
Er könnte auch konstanten für die Zahlen und Buchstaben deklarieren.
ausblenden Delphi-Quelltext
1:
2:
3:
4:
const
  lower = 'abcdefghijklmnopqrstuvwxyz';
  upper = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
  digit = '0123456789';


Und diese dann verbinden..
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
Auswahl := '';
if (Box1.Checked) then
  Auswahl := Auswahl + lower;
if (Box2.Checked) then
  Auswahl := Auswahl + upper;
// und so weiter


Und wenn wir dann schon dabei sind: Wie kontrollier ich, was in einem Edit-Feld eingetragen wird?
Da gibt es mehrere Möglichkeiten...

Direkt beim übernehmen der Zahl
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
...
try
  ZeichenLaenge := StrToInt(Edit1.text);
except
  ZeichenLaenge := -1
end;

if (ZeichenLaenge = -1then
begin
  ShowMessage('Du solltest schon eine Zahl eintippen.');
  ZeichenLaenge = 1// standard Wert..
end;


Beim Eintippeln der Zahlen:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
// entweder hier
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: char);
begin
  if not (Key in ['0'..'9'#9#8]) then
    Key := #0;
end;  

// oder hier
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  if not (Chr(Key) in ['0'..'9'#9#8]) then
    Key := 0;
end;


Womöglich sollte man beides machen, wobei ich nicht glaube, dass der User versucht das Programm zu hacken um unerlaubte Zeichen einzuschleusen. (Warum auch)...
#8 ist die Tab-Taste und #9 die "Zurück" Taste.
#13 wäre die Enter-Taste

An der Stelle mal ne Frage, besitzt Delphi die Funktion "StrToIntDef"?

PS: Ich könnt schwören, dass gerade wegen dem Fortschrittsbalken, das Generieren der extrem langen Zeichenketten so lange dauert.
Das Programm Zeichnet ja erst das ding bevor es weiter macht und wenn es 10000 mal gezeichnet werden muss (leer -> voll) dann dauert das seine Zeit..
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10181
Erhaltene Danke: 1254

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Fr 05.08.11 12:06 
Moin und :welcome: im Forum!

Aktualisiere bitte demnächst dein Programm im ersten Beitrag des Threads, so wie es die Regeln für diese Sparte vorsehen. Danke. ;)

Grund: So muss nicht jeder immer den ganzen Thread durchlesen, um an die aktuellste Version deines Programms zu kommen. :idea:

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
Sliver18
Hält's aus hier
Beiträge: 7

WinXP, WinVista, Win7
D7E
BeitragVerfasst: Fr 05.08.11 12:07 
user profile iconNiko S. hat folgendes geschrieben Zum zitierten Posting springen:


An der Stelle mal ne Frage, besitzt Delphi die Funktion "StrToIntDef"?



Ja - Ich habs grad getestet in Delphi 7. Kannte ich noch nicht - danke.