Keine Ahnung, ob das unter Lazarus funktioniert, aber so oder ähnlich würde ich es wohl machen:
Delphi-Quellcode:
type
TForm1 = class(TForm)
edtPassword: TEdit;
btnBla: TButton;
btnBlubb: TButton;
btnWuppdi: TButton;
procedure FormCreate(Sender: TObject);
procedure edtPasswordChange(Sender: TObject);
...
private
{ Private-Deklarationen }
FButtons: array of TButton;
function PasswordValid(const APassword: string): Boolean;
...
end;
...
procedure TForm1.edtPasswordChange(Sender: TObject);
var
i: integer;
begin
for i := Low(FButtons) to High(FButtons) do
FButtons[i].Visible := PasswordValid(edtPassword.Text);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
FButtons := [btnBla, btnBlubb, btnWuppdi];
end;
function TForm1.PasswordValid(const APassword: string): Boolean;
begin
Result := APassword = 'test123';
end;
P.S.: das PasswordChar kann man direkt im Objektinspektor setzen und muss das nicht immer wieder tun.