unit UnitfrmProxy; interface uses SysUtils, Windows, Messages, Classes, Graphics, Controls, StdCtrls, ExtCtrls, Forms, TFlatButtonUnit, TFlatComboBoxUnit, TFlatEditUnit; type TfrmProxy = class(TForm) cmdClose: TFlatButton; lblProxy: TLabel; txtHost: TFlatEdit; cboProxy: TFlatComboBox; lblHost: TLabel; txtPort: TFlatEdit; lblPort: TLabel; lblUsername: TLabel; txtUsername: TFlatEdit; txtPassword: TFlatEdit; lblPassword: TLabel; procedure cboProxyChange(Sender: TObject); procedure txtPortChange(Sender: TObject); public procedure EnableControls(Enable: Boolean); end; var frmProxy: TfrmProxy; implementation {$R *.DFM} { TfrmProxy } procedure TfrmProxy.EnableControls(Enable: Boolean); begin lblHost.Enabled := Enable; lblPassword.Enabled := Enable; lblPort.Enabled := Enable; lblUsername.Enabled := Enable; txtHost.Enabled := Enable; txtPassword.Enabled := Enable; txtPort.Enabled := Enable; txtUsername.Enabled := Enable; end; procedure TfrmProxy.cboProxyChange(Sender: TObject); begin EnableControls(cboProxy.ItemIndex <> 0); // 0 = None end; procedure TfrmProxy.txtPortChange(Sender: TObject); var i: integer; begin if txtPort.Text = '' then txtPort.Text := '8080' else begin // check if value is numeric... for i := Length(txtPort.Text) downto 1 do begin if Pos(txtPort.Text[i], '0123456789') = 0 then begin txtPort.Text := '8080'; txtPort.SelStart := 4; exit; end; end; end; end; end.