is there a way to list keywords as I type? lazarus / 9-Editor ---------------------------------------------------------------------- Inertially · 2011-11-29 14:12 I mean the intellisense box thing completion suggestion box. I want to type "wr...."  and it'll pop up with stuff like a list starting with "wr"  like writeln would be in there. And I want it to show as I type not some funky Ctrl Space. Seems like usability on Lazarus is awful. Even this forum looks like it's asking me to verify everything, walk backwards, and sing the number three every 2 seconds. ---------------------------------------------------------------------- Laksen · 2011-11-29 16:40 Not that I know of. After working with Visual Studio for a while I think I know what you think of, but I don't really like it. I guess it is a matter of taste, and it has historically not been used in Lazarus or Delphi, so there was never a need for it. But it would probably be easy to implement something that resembles it. You could try to do it yourself or create a feature request on the bug tracker. The verification on the forum is to battle spam, and is only a problem for your first few posts ---------------------------------------------------------------------- typo · 2011-11-29 17:07 Of course you can have anything if you write code instead of regretting. Code: [Select]procedure TForm1.ComboBox1Change(Sender: TObject); var   i :integer;   sl :TStringList;   t :string; begin   t := ComboBox1.Text;   sl := TStringList.Create;   try     // You must have a words list on ListBox1.Items     for i := 0 to ListBox1.Items.Count - 1 do       if (Pos(ComboBox1.Text, ListBox1.Items[i]) = 1) then         sl.Add(ListBox1.Items[i]);     ComboBox1.Items.Assign(sl);     Application.ProcessMessages;     ComboBox1.DroppedDown:= True;     ComboBox1.Text := t;     ComboBox1.SelStart := 100;   finally     sl.Free;   end; end; ---------------------------------------------------------------------- typo · 2011-11-29 21:54 And as a component: Code: [Select]unit IntelliSenseComboBox; {$mode objfpc} interface uses   Classes, SysUtils,  FileUtil, Forms, Controls, StdCtrls; type { TIntelliSenseComboBox }     TIntelliSenseComboBox = class(TCustomComboBox)     private       FWordsList :TStrings;       procedure Change; override;       procedure SetWordsList(const Value : TStrings);     public       constructor Create(AOwner : TComponent);override;       destructor Destroy;override;     published     property Align;     property Anchors;     property ArrowKeysTraverseList;     property AutoComplete;     property AutoCompleteText;     property AutoDropDown;     property AutoSelect;     property AutoSize;// Note: windows has a fixed height in some styles     property BidiMode;     property BorderSpacing;     property CharCase;     property Color;     property Constraints;     property DragCursor;     property DragKind;     property DragMode;     property DropDownCount;     property Enabled;     property Font;     property ItemHeight;     property ItemIndex;     //property Items;  // used internally     property WordsList :TStrings read FWordsList write SetWordsList;     property ItemWidth;     property MaxLength;     property OnChange;     property OnChangeBounds;     property OnClick;     property OnCloseUp;     property OnContextPopup;     property OnDblClick;     property OnDragDrop;     property OnDragOver;     property OnDrawItem;     property OnEndDrag;     property OnDropDown;     property OnEditingDone;     property OnEnter;     property OnExit;     property OnGetItems;     property OnKeyDown;     property OnKeyPress;     property OnKeyUp;     property OnMeasureItem;     property OnMouseDown;     property OnMouseEnter;     property OnMouseLeave;     property OnMouseMove;     property OnMouseUp;     property OnStartDrag;     property OnSelect;     property OnUTF8KeyPress;     property ParentBidiMode;     property ParentColor;     property ParentFont;     property ParentShowHint;     property PopupMenu;     property ReadOnly;     property ShowHint;     property Sorted;     property Style;     property TabOrder;     property TabStop;     property Text;     property Visible;   end; implementation { TIntelliSenseComboBox } procedure TIntelliSenseComboBox.Change; var   i :integer;   sl :TStringList;   t :string; begin   t := Text;   sl := TStringList.Create;   try     for i := 0 to FWordsList.Count - 1 do       if (Pos(Text, FWordsList[i]) = 1) then         sl.Add(FWordsList[i]);     Items.Assign(sl);     Application.ProcessMessages;     DroppedDown:= True;     Text := t;     SelStart := 100;   finally     sl.Free;   end;   inherited Change; end; procedure TIntelliSenseComboBox.SetWordsList(const Value: TStrings); begin   if (Value <> FWordsList) then     FWordsList.Assign(Value); end; constructor TIntelliSenseComboBox.Create(AOwner: TComponent); begin   inherited Create(AOwner);   FWordsList := TStringList.Create; end; destructor TIntelliSenseComboBox.Destroy; begin   FWordsList.Free;   inherited Destroy; end; end.         On the IDE, if you type '.' after an identifier, the behavior is just what you mention,  no need of feature request.