Hidden Features of Delphi?

Really hidden: Help, About, hold the Alt key and type TEAM.

1 up to your first comma I though this was going to be another rant about the state of the documentation... ;) – Oliver Giesen Sep 19 '08 at 15:17 4 Just realized - in D2007, do this trick, then double-click on the scrolling credits to get a picture – JosephStyons Jul 13 '09 at 19:59 1 D2010 has this as well as the photo if you double-click the scrolling credits. – Red Haze Sep 14 '09 at 4:46.

CTRL-Click on any identifier takes you to the declaration of that identifier. CTRL-O-C enables block selection in the editor. And to turn them off: docwiki.embarcadero.com/RADStudio/en/Def... Ctrl+O+C Turns on column block selection Ctrl+O+K Turns off column block selection CTRL+O+L Turn on line mode selection CTRL+SHIFT+I indents selected code CTRL+SHIFT+U unindents selected code CTRL+K+N converts the selection to UPPERCASE CTRL+K+O to convert it to lowercase You can incrementally search for an item in the Object Inspector.

CTRL-J invokes live templates -- I think Live Templates are one of the most powerful and most under utilized features in the IDE. More info on Live Templates: http://delphi.wikia.com/wiki/Delphi_Live_Templates http://dn.codegear.com/article/37468 http://delphi.wikia.com/wiki/Live_Templates_Technical_Info.

1 Funny, I use CTRL+K+I and CTRL+K+U for (un)indenting. Did not know of the +Shift version. – NGLN May 22 at 6:55.

In the object inspector, if you hold the CTRL key when you double click a property that is linked to another component it takes you to that component. A linked property is in colored maroon.

ESC selects the parent control of the current selected control in the designer. Ctrl+Drag the mouse to select a group of controls without selecting/moving the parent. When controls are in a panel for example.

Shift+Arrows to resize controls. Ctrl+Arrows to move controls.

1 Yep, those are great. Especially Ctrl+Drag is largely unknown. – gabr Sep 19 '08 at 18:14.

You probably know that Alt+F7 and Alt+F8 navigate back/forward through the results of a "Find in Files" But did you know that when the compiler spits out a list of errors during compilation that Alt+F7 and Alt+F8 now navigate through the errors.

CTRL + Shift + C generates method header from body description and vice-versa. CTRL + Shift + Space gives a hint with method signature when editing a method call.

For me, the most important 'hidden' feature in RAD Studio is that it can be extended with experts. GExperts, DDevExtensions and ModelMaker Code Explorer are on my 'must-use' list and I cannot live without them (links to products and some description).

Dden deep in Delphi's help (Delphi 7 at least) is how to use macros (useful for repetitive tasks): Press Ctrl+Shift+R to begin recording a macro. Enter the keystrokes you want to record. Press Ctrl+Shift+R to finish and save the macro.To play back the macro, press Ctrl+Shift+P.

Tip: you can use any keyboard shortcuts available while recording the macro (e.g. Ctrl+C for copy, Ctrl+V for paste).

If you press Ctrl+Space while in the interface section of a class, you will get a list of methods you can override and properties you can publish. Methods listed in red must be implemented (they're abstract or from an interface).

Team pictures Tested in Delphi 2007 and 2009. Go to Help|About Hold town the Alt key ant type T E A M to get the scrolling team list. Double-click on the list to see the team picture.

Bonus: - Help|About - Hold down the Alt key and type G U N G L A.

Ctrl-Alt + '. ' - Comment out the selected block of code Ctrl-Alt + ',' - Reverse the above.

Ctrl+/ does the same (in both directions). – gabr Sep 19 '08 at 16:46.

Ctrl-Shift + I - Indent selected block Ctrl-Shift + U - UN-Indent selected block.

The debugger enhancements: Dbl-Click in the Call Stack panel on a line with a blue dot (i.e. There is debug info) jumps to the calling code (expected) but it also updates the local variables with the values in scope at this new location When the tooltip evaluation is displayed (mouse hovering a symbol), pressing Ctrl make it temporarily transparent Dragging some code expression into any of the debugger window: Watch List, Evaluate Dialog, Debug Inspector.

1 Delphi 2006 and up – Lars Truijens Sep 20 '08 at 10:46.

Hold Alt and Drag the mouse in the editor to block-select.

1 This is similar to shift selection with cursor keys. I.e. If you also hold down Alt, then a block selection will be done instead.

– Craig Young Dec 17 '09 at 13:37.

Code folding: Ctrl+Shift+K+A Expands All blocks of code Ctrl+Shift+K+E Collapse current block of code Ctrl+Shift+K+U Expand current block of code Ctrl+Shift+K+T Toggle Current block (expand & collapse) Ctrl+Shift+K+R Collapses all regions {$region 'comment'}..{$endregion} Ctrl+Shift+K+P Collapse nested procedures Ctrl+Shift+K+M Collapse all methods Ctrl+Shift+K+C Collapse all classes Ctrl+Shift+K+G Collapses down to primary Groups Interface/Implementation Ctrl+Shift+K+N Collapses Namespace/Unit This and others shortcuts in a little unknown wiki.

Ctrl-Shift-E invokes the rename refactor. It's available in Delphi 2005+. It allows you to quickly rename a function or variable and all references to it via one pop up dialog.

This is the best refactor in the IDE imho. Second best rename trick is too highlight a block of code, click on the icon that appears in the left hand gutter, then select and rename the variable you want to rename. This will rename all copies of that variable within the selection.

This is most useful for renaming a local variable to split it from another copy of it.

1 SyncEdit is the second feature called. You can also invoke it with Ctrl-Shift-J. – gabr Sep 19 '08 at 19:23.

Resize the Code completion popup (invoke via Ctrl+Space) by dragging its borders. The new size will be remembered.

Ctrl+/ to comment/uncomment a block of code. The problem with CTRL+Alt+". " and Crtl+Alt+"," is that it unmarks the block.

I also like having the same key combination toggle the comments on and off. Introduced after Delphi 7. Possibly in Delphi 2005.

Incremental Search in the Object Inspector here.

In the editor, you can hold down the alt key and drag select to perform a block selection.

I did not discover this until recently, but now I use it a lot. If you press Ctrl-Shift-Enter while the cursor is over an identifier, you can see the places that identifier is referenced in your entire project. Very useful if you are trying to figure out where a change is happening or what you will break if you change something.

Ctrl-Shift + Up/Down jumps between declaration and implementation of a routine.

Ctrl-Shift-0 .. Ctrl-Shift-9 sets marker (or clears if caret is in marked line) Ctrl-0 .. Ctrl-0 jumps to marker Ctrl-Shift-Enter finds references for current symbol (where caret is) in the project.

The build order of projects in a project group can be changed with Ctrl+Up/Down (though I would prefer drag&drop).

Up until Delphi 2007 you could drag two different components from the pallet to the form at the same time by using Shift selecting one, and then dragging a different one. I guess someone thought that was a bug and removed it though.

CTRL+ALT+P to activate Pallete Window and do component filtering depend on the text you entered (Delphi 2005+).

Ctrl+Click on a line in the Code completion popup (invoke via Ctrl+Space) to jump to the definition of the symbol.

I find the -r command line switch very useful.

The command line switch -np starts Delphi without loading the last used project.

1 add -ns for "no splash screen" and it improves the startup time noticeably. – JosephStyons Apr 20 '09 at 16:07.

Bit of a late reaction, but Ctrl+O , O inserts your current compiler settings into the current unit. I mostly use it when I can't think of the name of a define. {$A8,B-,C+,D+,E-,F-,G+,H+,I+,J-,K-,L+,M-,N-,O+,P+,Q-,R-,S-,T-,U-,V+,W-,X+,Y+,Z1} {$MINSTACKSIZE $00004000} {$MAXSTACKSIZE $00100000} {$IMAGEBASE $00400000} {$APPTYPE GUI} {$WARN SYMBOL_DEPRECATED ON} {$WARN SYMBOL_LIBRARY ON} {$WARN SYMBOL_PLATFORM ON} {$WARN SYMBOL_EXPERIMENTAL ON} {$WARN UNIT_LIBRARY ON} {$WARN UNIT_PLATFORM ON} {$WARN UNIT_DEPRECATED ON} {$WARN UNIT_EXPERIMENTAL ON} {$WARN HRESULT_COMPAT ON} {$WARN HIDING_MEMBER ON} {$WARN HIDDEN_VIRTUAL ON} {$WARN GARBAGE ON} {$WARN BOUNDS_ERROR ON} {$WARN ZERO_NIL_COMPAT ON} {$WARN STRING_CONST_TRUNCED ON} {$WARN FOR_LOOP_VAR_VARPAR ON} {$WARN TYPED_CONST_VARPAR ON} {$WARN ASG_TO_TYPED_CONST ON} {$WARN CASE_LABEL_RANGE ON} {$WARN FOR_VARIABLE ON} {$WARN CONSTRUCTING_ABSTRACT ON} {$WARN COMPARISON_FALSE ON} {$WARN COMPARISON_TRUE ON} {$WARN COMPARING_SIGNED_UNSIGNED ON} {$WARN COMBINING_SIGNED_UNSIGNED ON} {$WARN UNSUPPORTED_CONSTRUCT ON} {$WARN FILE_OPEN ON} {$WARN FILE_OPEN_UNITSRC ON} {$WARN BAD_GLOBAL_SYMBOL ON} {$WARN DUPLICATE_CTOR_DTOR ON} {$WARN INVALID_DIRECTIVE ON} {$WARN PACKAGE_NO_LINK ON} {$WARN PACKAGED_THREADVAR ON} {$WARN IMPLICIT_IMPORT ON} {$WARN HPPEMIT_IGNORED ON} {$WARN NO_RETVAL ON} {$WARN USE_BEFORE_DEF ON} {$WARN FOR_LOOP_VAR_UNDEF ON} {$WARN UNIT_NAME_MISMATCH ON} {$WARN NO_CFG_FILE_FOUND ON} {$WARN IMPLICIT_VARIANTS ON} {$WARN UNICODE_TO_LOCALE ON} {$WARN LOCALE_TO_UNICODE ON} {$WARN IMAGEBASE_MULTIPLE ON} {$WARN SUSPICIOUS_TYPECAST ON} {$WARN PRIVATE_PROPACCESSOR ON} {$WARN UNSAFE_TYPE OFF} {$WARN UNSAFE_CODE OFF} {$WARN UNSAFE_CAST OFF} {$WARN OPTION_TRUNCATED ON} {$WARN WIDECHAR_REDUCED ON} {$WARN DUPLICATES_IGNORED ON} {$WARN UNIT_INIT_SEQ ON} {$WARN LOCAL_PINVOKE ON} {$WARN MESSAGE_DIRECTIVE ON} {$WARN TYPEINFO_IMPLICITLY_ADDED ON} {$WARN RLINK_WARNING ON} {$WARN IMPLICIT_STRING_CAST ON} {$WARN IMPLICIT_STRING_CAST_LOSS ON} {$WARN EXPLICIT_STRING_CAST OFF} {$WARN EXPLICIT_STRING_CAST_LOSS OFF} {$WARN CVT_WCHAR_TO_ACHAR ON} {$WARN CVT_NARROWING_STRING_LOST ON} {$WARN CVT_ACHAR_TO_WCHAR ON} {$WARN CVT_WIDENING_STRING_LOST ON} {$WARN XML_WHITESPACE_NOT_ALLOWED ON} {$WARN XML_UNKNOWN_ENTITY ON} {$WARN XML_INVALID_NAME_START ON} {$WARN XML_INVALID_NAME ON} {$WARN XML_EXPECTED_CHARACTER ON} {$WARN XML_CREF_NO_RESOLVE ON} {$WARN XML_NO_PARM ON} {$WARN XML_NO_MATCHING_PARM ON}.

I cant really gove you an answer,but what I can give you is a way to a solution, that is you have to find the anglde that you relate to or peaks your interest. A good paper is one that people get drawn into because it reaches them ln some way.As for me WW11 to me, I think of the holocaust and the effect it had on the survivors, their families and those who stood by and did nothing until it was too late.

Related Questions