Delphi exam — Braindump
Well, I decided to write this braindump because I never found any good
references about materials or study guides to take the Delphi examination. I
don’t know if I’m the first guy around the world that writes a such
braindump, but I would’n like to be the first! I would like to have found a
braindump to guide me! Please, everyone that can help me adding comments or
notes, feel free to write me.
Well, let’s go:
This is the most difficult exam I ever made (at least, comparing with MS
exams). The passing score is 80% and I got 72%. I will take it again in 15
days. I’m still re-reading some books...
These are my memories:
Questions about TStoredProc object (the context asked about when to
connect a StoredProc to a DataSource)
Methods:
Fetch All // retrieve all records
Open does exist and also an Active clause (I didn’t know they exist!)
Don’t forget TStoredProc can act exactly as a TDataSet.
Questions about package distribution in client/server applications
COMP, VCLDB30, VCL30.DPL, DCL30.DPL
I think the correct choices were VCL30.dpl e VCLDB30.dpl. Not sure.
Questions about DLLs (how to manage long strings, what you must aggregate
in order to create a DLL). This section was difficult because it had many
multiple choice questions. I got 1 out of 5. There is a DLL called
ShareDMM.DLL that must be distributed if your DLL manipulate long strings.
I’m gonna read Marco Cantù’s "Mastering Delphi 3" again.
One question about how TPrint (EndDoc, EndPrintJob) open and closes a
print job
- EndDoc is the corret answer. Since I already had done a such component
before, I could remember it for sure.
Some questions about object’s owners and parents
- If you create a TLabel with ParentFont=True, where do the font settings
come from? From the owner or from the container? (From the Owner)
- How to check (make a loop) throughtout the objects owned by a
component? Controls or Components? Components, but maybe I have checked
Controls.
One question about TCustomControl (I think I got that). You were
requested to create an object (a watch) and the user should be able to
adjust the time with the mouse or the keyboard. In fact, the object has
necessarily to be able to receive focus (that’s the implicit point). I don’t
remember, but maybe TWinControl was available.
One question asking the best definition about TDataSource. The answer is
literally taken from the help: "Use TDataSource to provide a conduit between
a dataset and data-aware controls on a form that enable display, navigation,
and editing of the data underlying the dataset".
One question asked why to inherit from Tpersistent (in order to create
components able to store persistent streams and have RTTI information).
Questions about Threads (Wich methods must be overriden in order to
create a thread?)
I think the choices were:
Execute // The right answer
Create
Suspend
Another question on threads asked if Suspends can be nested and if
WaitFor must be set to true. Yes, Suspends can be nested, but WaitFor is a
method, not a property that can be set to True
Questions about SQL:
In case of a master-detail with Tquery, wich properties must be used:
SQL [x]
DataSource [x]
MasterSource [ ]
MasterFields [ ]
Questions about TDataSet:
- Table[‘Company’] - I didn’t know that fucking syntax exists, but I
think I got this one properly. The context was a function that received a
TTable parameter and returned the content of a field called ‘Company’ as a
string. FieldByName wasn’t available (at least with a correct syntax).
- OnDataChange (every time you move from a record/field, I don’t think
it’s triggered immediately when typing in a field)
- dsCalcFields (non-calculated fields cannot be modified during this
status). I missed this one.
- TDatabase definition (provides a discrete control over a single
conexion). Also missed this one.
One question about BatchMove (where do files resulting of a unsuccessful
importing go?). I checked Session.PrivateDir. I still didn’t find the right
answer.
One question about BeforeScroll (how to prevent a user from moving). I
checked BeforeInsert and lost this one.
One question asking what were the possible values to store in variant
variable. I would just have checked Null and String. A variant cannot
contain pointer to an VCL object or collection? The only alternative I did
not check pointed to a TDataSet. By the way, I lost this one because I
checked ClassType as a valid value.
One question about exception handling (What piece of code really
illustrates a resource protection?). Notice the sucking and subtle detail:
p:=strnew() // allocates memory before the protection block
try
use
finally
Dispose();
end;
or
try
p:=strnew() // allocates memory inside the protection block
use
finally
Dispose;
end;
I checked the second example, but the first example is the wise choice.
Some questions about SQL Explorer. (BDE Alias creation, METADATA
edition).
One question about DataBroker. What is the model used to
intercommunication? Mail Slots, IPX/SPX, DCOM, ou NetBEUI? (DCOM, if I’m not
wrong)
One or two questions about variable scope and visibility. Easy, but take
care because they are big questions (sample programs with 6 choices).
One huge question about Menu Merging within MDI applications. Lots of
menus, forms, GroupIndexes and choices. As far as I don’t have a lot of
practice with menu merging, I think I missed this one. It asked about
GroupIndex and menu positioning.
One question asked what are the characterisctics of a TGraphicControl
class. Don’t forget they consider Canvas as a protected *property* that must
be made public when deriving. In fact, TCanvas is not exactly a property,
but consider it as if it was.
Some questions about some clauses of packages: Contains, Requires.
6 questions about OLE (I missed just one of them). What’s the basic
Interface of COM? (IUnknown). Another question asked what was the file
extension for type libraries (.TLB)
One question about RTTI - what type casting uses RTTI (AS or IS). I
missed this one. I think this question is not clear in my mind.
No questions about Message Handlers.
One question contrasted SetRange (specific for files with indices) with
Filter
No questions about QuickReport or ReportSmith.
No questions about PVCS
One question about when to use Explicit Rebuild in packages. I missed
this one. According to Delphi’s Help (Build Control): "If the package is
low-level and does not change often, click Explicit Rebuild. It is built
only when you display it in the Package editor and click Build. For
automatic compilation, click Rebuild As Needed."
One question asked about what a DataModule is for. There were about 6
choices (multiple) and I remember one choice suggested that a DataModule
would be useful to store Timers in a server application. Another one
suggested consolidation of commom dialog boxes.
I found many questions with choices ranging from A to G. The multiple
choice questions never had a predefined number (like Choose two). All of
them were "Choose All that Apply". Take care with it.
I don’t remember for sure, but there was a question about how a
TWinControl could get a handle for a control. The options were HDC, hWnd,
Handle and WindowHandle. I think I missed this one. According to what I read
in Delphi’s Help, Handle is the property (hWnd is just a type). Maybe
WindowHandle is also right. Don’t confuse these elements.
I correctly answered 79 out of a total of 109(72%). Thus, I missed 30
questions. The multiple choice questions were the most difficult. My
impression is that the easy questions are VERY easy and the difficult ones
are VERY difficult.
One thing I have noticed is that if you pay attention to the definitions
written in Delphi’s help, you can save a lot of questions. Practice is
absolutely needed. One question asked what’s F11’s function. Without using,
you never would know how to answer a so easy question.
|