home *** CD-ROM | disk | FTP | other *** search
- {
- EDWIN GROOTHUIS
-
- somebody asked For a inputline For passWords. I have such one, but I've
- forgotten WHICH discussionlist... so I'll mail it to the above lists, I
- know it's one of it, and know it can be interesting For somebody else.
-
- What I have done is overriden the Draw-Procedure For the inputline to draw
- only ***'s instead of the right Characters. The solution I gave yesterday
- was not quitte correct: I used the Procedure SetData to put the *'s into the
- Data^-field, but that Procedure calls the Draw-Procedure itself so you'll
- get an infinite loop and a stack-overflow error. Now I put the *'s direct to
- the Data^-field, I don't think it can give problems.
- }
-
- Uses
- app, dialogs, views, Objects;
-
- Type
- PPassWord = ^TPassWord;
- TPassWord = Object(TInputLine)
- Procedure Draw; Virtual;
- end;
-
-
- Procedure TPassWord.Draw;
-
- Var
- s, t : String;
- i : Byte;
- begin
- GetData(s);
- t := s;
- For i := 1 to length(t) do
- t[i] := '*';
- Data^ := t;
- inherited Draw;
- Data^ := s;
- end;
-
- Procedure about;
- Var
- d : pdialog;
- r : trect;
- b : pview;
- begin
- r.assign(1, 1, 60, 15);
- d := new(pdialog,init(r, 'About'));
- With d^ do
- begin
- flags := flags or wfgrow;
- r.assign(1,1,10,3);
- insert(new(PButton, init(r,'~O~K', cmok, bfdefault)));
- r.assign(2,4,8,5);
- insert(new(PPassWord, init(r,10)));
- end;
- desktop^.execview(d);
- dispose(d, done);
- end;
-
-
- Var
- a : TApplication;
- begin
- a.init;
- about;
- a.run;
- a.done;
- end.