![]() |
submenu mit passwort schützen
vor dem Aufrufen einer Form durch mein Untermenu, soll ein Passwort verlangt werden, gibt es für diese Passwortabfrage schon eine fertige Form?
|
Re: submenu mit passwort schützen
Das Forumlar an sich gibt es (Datei -> Neu -> weitere | Registerkarte Dialoge | Dialogfeld Paßwort).
Aber es liegt kein Code dahinter. :) |
Re: submenu mit passwort schützen
ich hab's mal so probiert, klappt aber nicht, meine "geschützte Form" geht sofort auf, ohne dass ein Paswort eingegeben werden kann:
Delphi-Quellcode:
dies ist der Code des abgeönderen Passortdialogs, also Beispiel hier das Passwort mo:
procedure TMainForm.Editarencomendas1Click(Sender: TObject);
begin showpass; if passunit.passworddlg.Password.Text = 'mo' then passworddlg.Close else begin showdbview('select Order as "N.P.",Client as "Cliente",Article as "Artigo",finaldate as "Data Entrega",realdate as "Data Embalado",materialin as "Entrada Material",cuttingin as "Entrada Corte",cuttingout as "Saída Corte",' +'sewingin as "Entrada Conf.",sewingout as "Saída Conf.",tipo as "Stilo",Colour as "Côr",Pieces as "Peças",Minutes as "Minutos",pgroup as "Linha",prepair as "Prepar.",washing as "Lav.",' +'packingout as "Saída Embalagem",observations as "Observações" from orders','Mudificar Encomendas',true,true); end; end;
Delphi-Quellcode:
procedure TPasswordDlg.OKBtnClick(Sender: TObject);
begin if passworddlg.Password.Text = 'mo' then passworddlg.Close else passworddlg.password.Text := ''; end; |
Re: submenu mit passwort schützen
Wenn du das zu schützende Formular nur von einer Stelle aufrufst kann du doch deine Passwortabfrage vorm Aufruf machen.
Code:
Ansonsten würde ich die prüfung ins OnShow-Event legen.
wenn pwd = pwd dann
Anzeigen des Formulars sonst nicht anzeigen MfG freak |
Re: submenu mit passwort schützen
ich hab's mal so probiert, von meinem Hauptmenu auf (passowort nur auf ein bestimmtes Untermenu angwendet=editarencomendas1.click).
die form passworddlg öffne ich mit der procedure showpass, die form geht auf, wenn ich jedoch das passwort mo eingebe, passiert nichts...
Delphi-Quellcode:
procedure showpass;
begin passworddlg:=Tpassworddlg.create(mainform); passworddlg.Show; end; procedure TMainForm.Editarencomendas1Click(Sender: TObject); begin showpass; if passunit.passworddlg.Password.Text = 'mo' then showdbview('select Order as "N.P.",Client as "Cliente",Article as "Artigo",finaldate as "Data Entrega",realdate as "Data Embalado",materialin as "Entrada Material",cuttingin as "Entrada Corte",cuttingout as "Saída Corte",' +'sewingin as "Entrada Conf.",sewingout as "Saída Conf.",tipo as "Stilo",Colour as "Côr",Pieces as "Peças",Minutes as "Minutos",pgroup as "Linha",prepair as "Prepar.",washing as "Lav.",' +'packingout as "Saída Embalagem",observations as "Observações" from orders','Mudificar Encomendas',true,true) else passunit.PasswordDlg.CancelBtn.Click; end; |
Re: submenu mit passwort schützen
Code in Form1:
Delphi-Quellcode:
Wenn ich das Passwort richtig angebe, wird Form 2 geöffnet, ansonsten kommt die Meldung, dass das Passwort falsch ist.
procedure TForm1.Button1Click(Sender: TObject);
begin if InputBox('Caption', 'Password?', '') = 'test' then Form2.ShowModal else ShowMessage('Das eingegebene Passwort ist falsch!'); end; MfG freak |
Re: submenu mit passwort schützen
Hallo.
Wenn du deinen Kennwortdialog nicht modal zeigst, dann wird dein nachfolgender Code unbedingt ausgeführt. Versuche es besser so:
Delphi-Quellcode:
Das hat den Vorteil, dass der Dialog auch wieder freigegeben wird.
function AccessAllowed: Boolean;
begin with TPasswordDlg.Create(nil) do begin Result := (ShowModal = mrOK) and (PassWord.Text = 'mo'); Free; end; end; Das Kennwort als Klartext im Quelltext zu speichern ist unsicher und unflexibel. Eventuell ist es für deine Zwecke schon ausreichend, wenn ein aus dem Benutzernamen abgeleiteter Zahlwert eingegeben wird. Man kann dann leicht prüfen, ob sich der eingegebene Zahlwert z.B. durch Polynomdivision aus dem Benutzernamen ergibt - und nur wer das Polynom kennt, der kann den richtigen Zahlwert angeben. Dieses Verfahren habe ich früher oft verwendet um bestimmte Funktionen im Programm nur für mich frei zu schalten. Warum vergibst du Display-Namen als Spaltenalias in deiner Prozedur ShowDbView()? Grüße vom marabu |
Re: submenu mit passwort schützen
hatte es vor euren letzten Postings so gemacht und geht jetzt:
Delphi-Quellcode:
schaue mir nachher eure postings noch genauer an:
procedure TPasswordDlg.OKBtnClick(Sender: TObject);
begin if passworddlg.Password.Text = 'moritex2006' then showdbview('select Order as "N.P.",Client as "Cliente",Article as "Artigo",finaldate as "Data Entrega",realdate as "Data Embalado",materialin as "Entrada Material",cuttingin as "Entrada Corte",cuttingout as "Saída Corte",' +'sewingin as "Entrada Conf.",sewingout as "Saída Conf.",tipo as "Stilo",Colour as "Côr",Pieces as "Peças",Minutes as "Minutos",pgroup as "Linha",prepair as "Prepar.",washing as "Lav.",' +'packingout as "Saída Embalagem",observations as "Observações" from orders','Mudificar Encomendas',true,true) else PasswordDlg.Close; passworddlg.Close; end; marabu, betr. displaynamen in meinem showdbview: das programm ist hier für eine portugiesische Firma, die Menus sollen der tabellen sollen in portug. erscheinen, in der datenbank-tabelle sind sie auf englisch... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:00 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