Shortcut | Description | IDE Version |
---|---|---|
Shift+Click | After selecting control in form designer, click on it with Shift again to select top most parent Form | Delphi 5+ |
F1 | Display Help | |
F3 | Find again | |
F4 | Run program to current cursor position | Delphi 2+ |
F5 | Toggle breakpoint | Delphi 2+ |
F6 or Ctrl+. (Period) | IDE Insight | at least since Delphi 10.2 |
F7 | Debugger step into | Delphi 2+ |
F8 | Debugger step over | Delphi 2+ |
F9 | Run program under debugger | Delphi 2+ |
F11 | Invoke Object Inspector window | Delphi 5+ |
F12 | Toggle between code view and design view | Delphi 5+ |
Ins | Insert Mode on / off | |
Escape | Selects parent control in design mode. Left mouse click + Escape drags the parent control | Delphi 2+ |
Tab | In Object Inspector activates incremental search for properties. Press again Tab to move focus to property value | Delphi 5+ |
Alt+F7/F8 | Previous/next result (for Find in Files and Build Error Messages) | Delphi 7+ |
Alt+F10 | Display Popup menu | |
Alt+F11 | Invoke Use unit dialog | Delphi 5+ |
Alt+F12 | Toggle between Form as text mode or design mode | Delphi 5+ |
Alt+RightArrow | Browse forward (hotlink history) | Delphi 6+ |
Alt+LeftArrow | Browse backward (hotlink history) | Delphi 6+ |
Alt+UpArrow | Browse to symbol under editor cursor (invoke a hotlink and add it to the hotlink history) | Delphi 7+ |
Alt+Backspace | Undo | |
Alt+[ | Match pair forward | Delphi 5+ |
Alt+] | Match pair backward | Delphi 5+ |
Alt+0 | Invoke Window list | Delphi 2005+ |
Alt+G | Goto line number in editor | Delphi 2+ |
Alt+X | Cut word under cursor / current selected block | |
Ctrl+F1 | Topic Search | |
Ctrl+F2 | Program Reset | Delphi 5+ |
Ctrl+F3 | Show Call Stack | |
Ctrl+F4 | Close current editor tab | |
Ctrl+F5 | Add Watch | Delphi 5+ |
Ctrl+F6 | Switches between source (.cpp) and header (.h) | BDS 2006+ C++ Builder personality |
Ctrl+F7 | Evaluate/modify | Delphi 2005+ |
Ctrl+F9 | Compile Project | Delphi 5+ |
Ctrl+F10 | Open Main Menu | |
Ctrl+F11 | Invoke Open Project Dialog | Delphi 2005+ |
Ctrl+F12 | View units | Delphi 2+ |
Ctrl+Ins | Copy selected Block | |
Ctrl+LeftArrow | Moves one word left | |
Ctrl+RightArrow | Moves one word right | |
Ctrl+UpArrow | Scrolls up one line | |
Ctrl+DownArrow | Scrolls down one line | |
Ctrl+PgDn | Moves to the bottom of a screen | |
Ctrl+PgUp | Moves to the top of a screen | |
Ctrl+Home | Moves to the top of a file | |
Ctrl+End | Moves to the end of a file | |
Ctrl+Backspace | Delete the word to the beginning | |
Ctrl+Spacebar | Invoke code completion | Delphi 5+ |
Ctrl+Tab | Switch to the next open file in the editor | Delphi 2006+ |
Ctrl+Enter | Open file at cursor | Delphi 2+ |
Ctrl+/ | Toggle comment per line or selected block and cursors goes down one line, Ctrl+# on nordic (and perhaps other international ) keyboards | Delphi 2005+ |
Ctrl+. (Period) | IDE Insight | at least since Delphi 10.2 |
Ctrl+1..9 | Go to a bookmark row in the source | BDS 2006+ |
Ctrl+A | Select all | |
Ctrl+B | Invoke buffer window when focus is on editor. The buffer window shows a list of all different tabs. | Delphi 2007+ |
Ctrl+C | Copy word under Cursor / selected block | |
Ctrl+D | Delete a currently selected block | |
Ctrl+E | Incremental search | Delphi 5+ |
Ctrl+F | Find | Delphi 3+ |
Ctrl+G | Goes to declaration (same as Ctrl+Click or Alt+UpArrow) | |
Ctrl+H | Replace Dialog | |
Ctrl+I | Inserts a tab character | |
Ctrl+J | Invoke code templates also called code snippets | Delphi 5+ |
Ctrl+K+0..9 | Set a bookmark at current row in the source | Delphi 1+ |
Ctrl+K B | Sets start of selection (Ctrl+K K sets the end) | Delphi 5+ |
Ctrl+K C | Copies selected text at the end of the selection | Delphi 5+ |
Ctrl+K E | Changes a word to lowercase and deselects selection | Delphi 5+ |
Ctrl+K F | Changes a word to uppercase and deselects selection | Delphi 5+ |
Ctrl+K H | Toggle selection | |
Ctrl+K I | Indent the current selected block or current line in case of no selection (Ctrl+K U unindents) | Delphi 5+ |
Ctrl+K K | Sets end of selection (Ctrl+K B sets the start) | Delphi 5+ |
Ctrl+K+L | Select current line | Delphi 1+ |
Ctrl+K N | Changes a word to uppercase | Delphi 5+ |
Ctrl+K O | Changes a word to lowercase | Delphi 5+ |
Ctrl+K P | Invokes print selection dialog | Delphi 5+ |
Ctrl+K R | Invokes Read block from file (inserts text at cursor) | Delphi 5+ |
Ctrl+K T | Select word at cursor position | Delphi 5+ |
Ctrl+K U | Unindent the current selected block or current line in case of no selection (Ctrl+K I indents) | Delphi 5+ |
Ctrl+K W | Invokes Write block to file (selected text) | Delphi 5+ |
Ctrl+K+Y | Delete current block | Delphi 1+ |
Ctrl+L | Find again | |
Ctrl+M | Insert new line (same as Enter) | |
Ctrl+N | Insert new line after cursor (cursor stays in current line) | |
Ctrl+O+A | Open file at cursor | |
Ctrl+O+B | Browse symbol at cursor | |
Ctrl+O+C | Turns on block selection mode | Delphi 5+ |
Ctrl+O+G | Goto line number in editor | Delphi 5+ |
Ctrl+O+K | Turns off block selection mode | Delphi 5+ |
Ctrl+O+L | Selects current line (and turns off block selection mode) | Delphi 5+ |
Ctrl+O+O | Inserts compiler options and directives | |
Ctrl+O U | Toggles case | Delphi 5+ |
Ctrl+Q+[ | Match pair forward | Delphi 1+ |
Ctrl+Q+] | Match pair backward | Delphi 1+ |
Ctrl+Q+0..9 | Go to a bookmark row in the source | Delphi 1+ |
Ctrl+Q+A | Search Replace Dialog | |
Ctrl+Q+B | Moves cursor to the beginning of a block | |
Ctrl+Q+C | Moves cursor to end of a file | |
Ctrl+Q+D | Moves cursor to the end of a line | |
Ctrl+Q+E | Moves cursor to the top of the window | |
Ctrl+Q+F | Search Find Dialog | |
Ctrl+Q+K | Moves cursor to the end of a block | |
Ctrl+Q+P | Moves cursor to previous position | |
Ctrl+Q+R | Moves cursor to the beginning of a file | |
Ctrl+Q+S | Moves cursor to the beginning of a line | |
Ctrl+Q+T | Moves cursor to the top of the window | |
Ctrl+Q+U | Moves cursor to the bottom of the window | |
Ctrl+Q+X | Moves cursor to the bottom of the window | |
Ctrl+Q+Y | Deletes to the end of Line | |
Ctrl+R | Replace Dialog | |
Ctrl+S | Save | |
Ctrl+V | Paste | |
Ctrl+T | Delete text from cursor position until end of word | Delphi 5+ |
Ctrl+X | Cut | |
Ctrl+Y | Delete current line | Delphi 5+ |
Ctrl+Z | Undo | |
Shift+F7 | Trace into next source line | Delphi 5+ |
Shift+F8 | Run until return | Delphi 5+ |
Shift+F9 | Build Project | Delphi 2005+ |
Shift+F11 | Invoke Add to project window | Delphi 5+ |
Shift+Tab | Moves the cursor to the left one tab position | |
Shift+Enter | Inserts a new line with a carriage return | |
Shift+Del | Cut to clipboard | |
Shift+Ins | Paste from clipboard | |
Shift+Home | Selects from the cursor position to the start of the current line | |
Shift+End | Selects from the cursor position to the end of the current line | |
Shift+PgUp | Moves the cursor up one screen and selects from the left of the starting cursor position | |
Shift+PgDn | Moves the cursor down one line and selects from the right of the starting cursor position | |
Shift+LeftArrow | Selects the character to the left of the cursor | |
Shift+RightArrow | Selects the character to the right of the cursor | |
Shift+UpArrow | Moves the cursor up one line and selects from the left of the starting cursor position | |
Shift+DownArrow | Moves the cursor down one line and selects from the right of the starting cursor position. | |
Ctrl+Shift+F4 | Close all other editor tabs | |
Ctrl+Shift+F9 | Run without debugging | Delphi 2005+ |
Ctrl+Shift+F11 | Invoke Project Options window | Delphi 2005+ |
Ctrl+Shift+End | Selects from the cursor position to the end of the current file | |
Ctrl+Shift+Home | Selects from the cursor position to the start of the current file | |
Ctrl+Shift+LeftArrow | Selects the word to the left of the cursor | |
Ctrl+Shift+PgDn | Selects from the cursor position to the bottom of the screen | |
Ctrl+Shift+PgUp | Selects from the cursor position to the top of the screen | |
Ctrl+Shift+RightArrow | Selects the word to the right of the cursor | |
Ctrl+Shift+UpArrow | Navigate to method implementation/declaration | Delphi 5+ |
Ctrl+Shift+DownArrow | Navigate to method implementation/declaration | Delphi 5+ |
Ctrl+Shift+Spacebar | Invoke code parameter hints | Delphi 5+ |
Ctrl+Shift+Enter | Find all references | Delphi 2005+ |
Ctrl+Shift+Tab | Switch to the previous open file in the editor | Delphi 2006+ |
Ctrl+Shift+1..9 | Set a bookmark at current row in the source | BDS 2006+ |
Ctrl+Shift+A | Invoke Add to uses clause(Find unit in Delphi 2006) window (Refactoring) | Delphi 2005+ |
Ctrl+Shift+B | Invoke Browser window | Delphi 5-7 |
Ctrl+Shift+B | Invoke Buffer list | Delphi 2005+ |
Ctrl+Shift+C | Invoke class completion for the class that currently contains the cursor | Delphi 5+ |
Ctrl+Shift+F | Find in Files | Delphi 3+ |
Ctrl+Shift+G | Insert a new GUID at the cursor position | Delphi 5+ |
Ctrl+Shift+I | Indent the current selected block | Delphi 5+ |
Ctrl+Shift+J | Invoke SyncEdit | BDS 2006+ |
Ctrl+Shift+K+A | Code folding: Expands All blocks of code | Delphi 2006+ |
Ctrl+Shift+K+C | Code folding: Collapse all classes | Delphi 2006+ |
Ctrl+Shift+K+E | Code folding: Collapse current block of code | Delphi 2006+ |
Ctrl+Shift+K+G | Code folding: Collapses down to primary Groups [Interface/Implementation] | Delphi 2006+ |
Ctrl+Shift+K+M | Code folding: Collapse all methods | Delphi 2006+ |
Ctrl+Shift+K+N | Code folding: Collapses Namespace/Unit | Delphi 2006+ |
Ctrl+Shift+K+O | Toggles Code folding between On and Off | Delphi 2006+ |
Ctrl+Shift+K+P | Code folding: Collapse nested procedures | Delphi 2006+ |
Ctrl+Shift+K+R | Code folding: Collapses all regions {$region 'comment'}..{$endregion} | Delphi 2006+ |
Ctrl+Shift+K+U | Code folding: Expand current block of code | Delphi 2006+ |
Ctrl+Shift+K+T | Code folding: Toggle Current block (expand & collapse) | Delphi 2006+ |
Ctrl+Shift+P | Play editor macro | Delphi 2+ |
Ctrl+Shift+R | Start/stop recording editor macro | Delphi 2+ |
Ctrl+Shift+S | Save All | |
Ctrl+Shift+T | Add todo list item | Delphi 2005+ |
Ctrl+Shift+U | Unindent the current selected block | Delphi 5+ |
Ctrl+Shift+V | Automatically declare variable at cursor position | BDS 2006+ |
Ctrl+Shift+Y | Delete to the end of line | Delphi 5+ |
Ctrl+Shift+Z | Redo | |
Ctrl+Alt+MouseWheel | Navigate to previous or next method implementation in lexical order in this source unit, or within the class to which scope has been limited using Ctrl+Q+L | BDS 2006+ |
Ctrl+Alt+F11 | Invoke Project manager window | Delphi 2005+ |
Ctrl+Alt+F12 | Select editor window tab | |
Ctrl+Alt+F12 | Opens the drop-down on the top-right corner of the code editor, listing all open files | BDS 2006+ |
Ctrl+Alt+UpArrow | Navigate to previous method implementation in lexical order in this source unit, or within the class to which scope has been limited using Ctrl+Q+L | BDS 2006+ |
Ctrl+Alt+DownArrow | Navigate to next method implementation in lexical order in this source unit, or within the class to which scope has been limited using Ctrl+Q+L | BDS 2006+ |
Ctrl+Alt+Home | Navigate to the lexically first method implementation in this source unit, or within the class to which scope has been limited using Ctrl+Q+L | BDS 2006+ |
Ctrl+Alt+End | Navigate to the lexically last method implementation in this source unit, or within the class to which scope has been limited using Ctrl+Q+L | BDS 2006+ |
Ctrl+Alt+A | Adds current date to source code | BCB 4.0+ (Delphi 5+) |
Ctrl+Alt+B | Invoke Breakpoint window | Delphi 5+ |
Ctrl+Alt+C | Invoke CPU window | Delphi 5+ |
Ctrl+Alt+F | Invoke FPU window | Delphi 2005 (removed in Delphi 2006+) |
Ctrl+Alt+L | Invoke Local Variables window | Delphi 5+ |
Ctrl+Alt+M | Invoke Modules window | Delphi 2005+ |
Ctrl+Alt+P | Activate the Tool Palette in filtering mode (start typing, press Enter to drop component) | Delphi 2005+ |
Ctrl+Alt+S | Invoke Call Stack window | Delphi 5+ |
Ctrl+Alt+T | Invoke Threads window | Delphi 7+ |
Ctrl+Alt+V | Invoke Event window | Delphi 5+ |
Ctrl+Alt+W | Invoke Watches window | Delphi 5+ |
Alt+Shift+F11 | Invoke Structure window | Delphi 2005+ |
Alt+Shift+DownArrow | Moves the cursor down one line and selects the column from the left of the starting cursor position | |
Alt+Shift+End | Selects the column from the cursor position to the end of the current line | |
Alt+Shift+Home | Selects the column from the cursor position to the start of the current line | |
Alt+Shift+LeftArrow | Selects the column to the left of the cursor | |
Alt+Shift+PgDn | Moves the cursor down one line and selects the column from the right of the starting cursor position | |
Alt+Shift+PgUp | Moves the cursor up one screen and selects the column from the left of the starting cursor position | |
Alt+Shift+RightArrow | Selects the column to the right of the cursor | |
Alt+Shift+UpArrow | Moves the cursor up one line and selects the column from the left of the starting cursor position | |
Alt+Shift+Backspace | Redo | |
Ctrl+Alt+Shift+End | Selects the column from the cursor position to the end of the current file | |
Ctrl+Alt+Shift+Home | Selects the column from the cursor position to the start of the current file | |
Ctrl+Alt+Shift+LeftArrow | Selects the column to the left of the cursor | |
Ctrl+Alt+Shift+PgDn | Selects the column from the cursor position to the top of the screen | |
Ctrl+Alt+Shift+PgUp | Selects the column from the cursor position to the bottom of the screen | |
Ctrl+Alt+Shift+RightArrow | Selects the column to the right of the cursor | |
Ctrl+Alt+Shift+P | Sync method prototypes |
Please note the IDE shortcuts might work on earlier versions of Delphi. Correct the list if you find shortcuts working in earlier versions.
You can add your own shortcuts with a free tool called AutoHotKey, see there for some ideas.
Some ancient shortcuts some of which are still working, can be found here
For recent versions, Embarcadero has documented the default keyboard shortcuts in their DocWiki.