Results 1 to 13 of 13

Thread: alleen de admin kan backuppen

  1. #1

    alleen de admin kan backuppen

    Geachte mensen,

    ik heb een inlogscherm hierna komt weer een apart hoofdmenu op een ander scherm. Als de admin inlogt moet er bij het hoofdmenu 1 knop bijkomen en dat is de backup knop. Alleen de admin kan dit doen dus. Weet iemand hoe ik dit kan realiseren? Dus logt de admin niet in moet de knop.visible:=false zijn.

    alvast bedankt
    _____________________
    delphi rulezzz

  2. #2
    5th member of nldelphi
    Join Date
    Mar 2001
    Location
    Alkmaar
    Posts
    2,127
    Mischien iets in deze geest

    Code:
    Procedure TfrmLogin.BtnLoginOkClick(Sender: TObject);
    begin
      if (edtLoginNaam.Text = 'Admin') and (edtWachtwoord.Text = '123') then
        begin
          BtnAdminSettings.Visible := True;
          frmLogin.Caption := 'Admin Logged in.';
        end
      else
        begin
          BtnAdminSettings.Visible := False;
          frmLogin.Caption := 'User Logged in.';
        end
    end;

    is uit het hoofdje dus er kan een foutje in zitten.

    Richard

    [edit]

    Owh verkeert gelezen denk ik, je bedoelt een menu item in een menu ??
    zo ja vervang dan de BtnAdminSettings.Visible voor mnuAdminSettings.Enabled

    geef maar een brul als je wat anders bedoeld

    [/edit]
    Last edited by Richard; 23-May-02 at 19:10.
    RLD

  3. #3
    en ik kan dit gewoon in het andere hoofdmenuform aanroepen dan frmlogin.caption? met een if statement?

  4. #4
    wanneer je inlogt op je programma zet je een aantal dingen op je hoofdscherm, dmv het if -then lusje van Richard,

    in de uses van je loginschem zet je wel de unit(hoofdscherm) naam. als het alleen om hoofdmenu item gaat dat gezet moet worden, hoef je op het hoofdscherm verder niets meer in te stellen, dit kan gewoon vanaf je loginscherm,,

    wat je ook kunt doen is een boolean meegeven (wel public declareren op je hoofdscherm) en dan zelf op je hoofdscherm een if-lusje maken die kijkt welke waarde deze boolean heeft, nu kun je op het hoofdscherm dingen instellen onFormShow bijvoorbeeld ..

    success

  5. #5
    bedankt voor de uitleg dees, hierdoor snap ik ook nog wat ik doe. Nu begrijp ik het nut van public en private
    '
    tnx

  6. #6
    maar goed ik ben een beetje aan het knutselen geweest en komt uiteindelijk tot dit resultaat wat dus niet werkt. hij blijft onzichtbaar de knop. kan iemand zeggen wat er verkeerd is?

    in het hoofdmenu-form
    Code:
    procedure Thoofdmenu.FormCreate(Sender: TObject);
    begin
    if backup then
     begin
       speedbutton2.visible:=true;
     end
     else
       speedbutton2.visible:=false;
    end;
    en op het inlog-form
    Code:
    procedure Tinloggen.Button1Click(Sender: TObject);
    var
    inlognaam:string;
    begin
    inlognaam:=edit1.text;
    lid.setloginstatus(ADOQuery1,edit1,edit2);
     if lid.getloginstatus then
        begin
           if inlognaam='admin' then
            begin
             Unit1.hoofdmenu.backup:=true;
             hoofdmenu.show;
             edit1.text:='';
             edit2.text:='';
             inloggen.hide;
           end
           else
             Unit1.hoofdmenu.backup:=false;
             hoofdmenu.show;
             edit1.text:='';
             edit2.text:='';
             inloggen.hide;
         end
         else
           Showmessage('Inlognaam en/of wachtwoord zijn onjuist');
           edit1.text:='';
           edit2.text:='';
    end;
    waar heb ik een fout wie ik over het hoofd zie?

  7. #7
    denk dat het hem hierin zit:

    Unit1.hoofdmenu.backup:=true;

    dit moet zijn: hoofdmenu.backup := true;
    je hoeft alleen de waarde van form meegeven dus:

    formnaam.variabele := iets;

    dit geldt uiteraard ook voor de false waarde die je wilt meegeven.

    wat wel van belang is dat je dus backup hebt gedeclareerd bij Public op je hoofdmenu(form);

    en dat de unit van je hoofdform in de uses van je inlog form staat.

    hoop dat je het een beetje begrijpt
    succes

  8. #8
    dit geeft helaas geen verbetering.

    bij uses staat wel unit1 en geen hoofdmenu. maar dit moet toch niets uitmaken?
    ik doe het nu dus op deze manier
    Code:
    hoofdmenu.backup:=true;
    
    of 
    
    hoofdmenu.backup:=false;

  9. #9
    bij de uses moet de naam komen van de unit naam.

    als je een variabele wilt zetten op een ander form roep je de formnaam aan, hierin zit een verschil.

    maar wat voor foutmelding krijg je dan?

    zet ander een breakpoint op je inlog scherm bij het inloggen en kijk wat hij met de waarde doet van je boolean backup

    success

  10. #10
    en zorg er wel voor dat als je gaat inloggen je

    admin met kleine letters tiept.

    anders kom je in de else terect en dan krijg je boolean de verkeerde waarde

  11. #11
    ik zie het denk ik al :P

    Code:
    procedure Thoofdmenu.FormCreate(Sender: TObject);
    begin
    if backup then
     begin
       speedbutton2.visible:=true;
     end
     else
       speedbutton2.visible:=false;
    end;
    dit moet je onFormShow doen of onFormActivate;
    onFormCreate is je Form gecreeerd wordt, waarschijnlijk wanneer je applicatie opstart dus.

  12. #12
    5th member of nldelphi
    Join Date
    Mar 2001
    Location
    Alkmaar
    Posts
    2,127
    Noppwes,

    hier een heel klein voorbeeldje,
    kijk maar of je er wat aan hebt.

    en kijk mischien ook eens naar dit touwtje :
    bla bla touw

    Richard
    Attached Files Attached Files
    RLD

  13. #13
    5th member of nldelphi
    Join Date
    Mar 2001
    Location
    Alkmaar
    Posts
    2,127
    Stukje vereenvoudiging van je eigen code:

    Code:
    procedure Tinloggen.Button1Click(Sender: TObject);
    var
      inlognaam: string;
    begin
      inlognaam := edit1.text;
      lid.setloginstatus(ADOQuery1, edit1, edit2);
      if lid.getloginstatus then
        begin
          if inlognaam = 'admin' then
            Unit1.hoofdmenu.backup := True
          else
            Unit1.hoofdmenu.backup := false;
    
          hoofdmenu.show;
          inloggen.hide;
        end
      else
        Showmessage('Inlognaam en/of wachtwoord zijn onjuist');
    
      edit1.text := '';
      edit2.text := '';
    end;
    als het goed is moet dit hetzelfde zijn

    Richard
    RLD

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. Replies: 7
    Last Post: 05-Jan-05, 18:16
  2. Debugger kan halve code niet debuggen
    By BVerhaar in forum Algemeen
    Replies: 9
    Last Post: 08-Oct-04, 12:32
  3. Hoe kan ik master-detail gegevens weergeven?
    By mierlp in forum Databases
    Replies: 1
    Last Post: 04-Jul-04, 15:05
  4. Replies: 67
    Last Post: 15-Jun-04, 12:32

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •