General

What is the difference between the trial and the registered versions?

Trial version can't be used to build commercial applications and you'll see message indicating that you haven't registered InfoTree. Besides that trial and the registered version are identical.


I am a registered user, how do I get the updated versions?

Registered users are notified by e-mail with download instructions and new passwords for their registered products. If you have purchased through one of our resellers then you should be able to request the updates and new passwords directly from the reseller.


I have more than one registered product but installing one seems to uninstall the other because the install packages have the same name. What do I do?

You need to ensure that you install all the products into the same folder on your hard disk and then install only one package. You also need to ensure that the versions you are installing are all of the same version level.


Dream Designer

I try to install Dream Designer but get File not found: 'DsgnIntf.dcu' message

Please copy Dsgnintf.pas from Delphi\Source\ToolsApi to Delphi\Lib folder.


Can I install install new components into the designer component palette?

You can use RegisterComponent to install new components just like you do it in Delphi.

Designer also supports design time packages and ActiveX controls.
Double click on the component palette and select "Components..." to display Packages/ActiveX configuration form. 
When you load ActiveX it becomes immediately available from the component palette. To load design time packages you have to compile your application with "Build with runtime packages" option. (Select "Component | Install packages" to turn this option on).



For some properties like "Visible" the modifications are not applied when form is switched to run mode

You need to set Designer.NeedRecreateWnd = True


Is it possible to design form inserted in a PageControl?

Yes, designer can do this without any problems. Just take a look at Designer demo


Is it possible to restrict the functionality of form designer to a panel?

Yes, you can use LimitControl property of Designer.


How do I limit changes that can be applied by user?

There are several ways to do so: you can use LimitInfos or AllowedActions property of Designer. Another way is to handle OnAction event.


Dream InfoTree

What is the difference between Dream Tree and Dream Info Tree?

Dream Tree is based on TTreeView control and provides you with enhanced TTreeView control. It also includes data-aware treeview and listview but they work only with self-referenced tables. 
Dream InfoTree also has enhanced TreeView control but it also includes DCTree control - 100% VCL TTreeView replacement which is much more powerful and incredibly faster. Besides that InfoTree comes with data aware treeview and listview that support any data configuration including master/detail and self-referenced tables. 


Can I use InfoTree with third party dataset? 

InfoTree can be used with any dataset. It was tested with a large number of BDE replacements and works with them without any problems. 

Some of third party datasets don't support filtering. InfoTree works fine with them too - just set DCDBRelInfoSet.OwnFiltering to True.


Is Infotree based on TTreeView control?

No! Standard TTreeView control is incredibly slow and that's why InfoTree is based on our own 100% VCL DCTree control. It has all features of TTreeView but is significantly faster.


Dream Scriptor

Do I need MS Scripting Control OCX to use VBScript/JScript?

No. Dream Scripter directly uses Active Scripting.


How to use VCL in scripts?

Just add to your project Dream\Imported\vclimp.pas file.


Can I debug scripts?

Yes, with Dream Script Debugger you can debug any scripts including those, written on Delphi Script.


I get "Unknown identifier tagEXCEPINFO" error

You need to add ActiveX to the uses section of the unit.


How to use third-party components in scripts

You have to use UnitImporter utility. 


"Scripting engine can't be started" error occurs

If you use Active Scripting language check whether you have installed corresponding scripting engine. See Scripting Language Installation for details.

If scripting engine is successfully installed and the problem remains, it is likely that you use Dream Scripter from the thread. DCScripter uses COM functions, so it requires CoInitialize to be called in the current thread. The solution to this problem is to call CoInitialize(nil) in the thread before using functions of Scripter. Don't forget to call CoUninitialize when your thread is terminated.


"No Script Runner registered for DelphiScript language" error occurs

Just add dcpascal to the uses clause of your project.


None of VCL procedures or functions is working when calling from within the script

Just add to your project Dream\Imported\vclimp.pas file.


Script function called by DispatchMethod doesn't work properly

Make sure that you pass parameters in reverse order. 

If you call method without parameters you need to use CallNoParams method.


Script property of TDCScripter doesn't affect anything

Make sure that you don't use ScriptFile property of TDCScripter. 


I cannot compile application with DCScripter because of some units not found

You need to download imported files or generate them using the UnitImporter utility.


Events aren't called when executing script projects

Event may not be called if its type isn't registered in the Dream Scripter with RegisterEvent routine or corresponding import file. If you add unit Dream\Imported\vclimp.pas to your project, all standard VCL event types will be registered and will be available for use in scripts.


How do I pass variable by reference to script?

Delphi script:

procedure Mul2(var x : integer);
begin
  x := x * 2;
end;

Delphi program:

var
  v : OleVariant;
  pv : OleVariant;
....
  v := 1;
  
  TVarData(pv).vType := varVariant + varByRef;
  TVarData(pv).vPointer := @v;
  DCScripter1.DispatchMethod('Mul2', [pv]);
  ShowMessage(v);
 

This code will display 2.


How can I work with sets in scripting language?

You can use in scripts 2 functions: MkSet and InSet.

MkSet - this is a set constructor. It has variable number of arguments. You can write smth like 
Font.Style = MkSet(fsBold,fsItalic).

InSet - this function is used as substitution of Pascal in operator. A in B is equal to InSet(A, B).

You should use logical operations to include or exclude elements to set.
Examples:
Font.Style = ~fsBold // exclude bold style on JavaScript
Font.Style = Font.Style or fsItalic ' include italic style on VBScript

Example of how to work with sets is placed in Scripts\Sets subdirectory.


How can I work with variables declared in script?

To get/set value of script variables use ScriptVars property of TDCScripter.
To get the list of variables declared in script use ScriptRun.GetVarList


I want to enable my application as automation server. How Dream Scripter can help me with this?

With Dream Scripter it's much easier to create automation servers. You can obtain IDispatch for any VCL object or component. 

Example: the following code can be used to enable Appication variable for automation controllers:

type
TExampleAutomation = class(TAutoObject, IExampleAutomation)
protected
function Get_Application: IDispatch; safecall;
end;

function TExampleAutomation.Get_Application: IDispatch;
begin
Result:=GetObjectDispatch(Application,nil);
end;


How do I pass parameters of TObject type when I call TDCScripter.DispatchMethod?

You need to convert object parameter to variant with VarFromObject  function.

Example:
DCScripter1.DispatchMethod('Test',[VarFromObject(Memo1.Lines)]);


How to pass an open array to Delphi function from script?

It depends on scripting language you are using.

VBScript/JScript: Use Array function.
Example: Format("The height of %s is %d", Array(Button1.Name, Button1.Height) )

JScript/Delphi Script: Use [ ] array declaration.
Example: Format('The height of %s is %d', [ Button1.Name, Button1.Height] )


I generated import files for my components with UnitImporter program. How do I use them?

Just add import files to your project.


How do I call TDCScripter.DispatchMethod from C++ Builder?

If you have script like (VBScript is used)
sub test(a, b)
MsgBox a
MsgBox b
end sub


then you can call it with 
DCScripter1->DispatchMethod("test", OPENARRAY(OleVariant,(2, 1)));
Please note that parameters should be passed in reverse order. 

If you need to call script method that doesn't have any parameters you have to use 
DCScripter1->CallNoParamsMethod


Dream Editor/Rich Editor

Is the registered version compiled with DBCS?

The registered version comes will full sources, so it's possible to switch to DBCS using the define from Easy.Inc file. By default DBCS is disabled.


How do you use syntax schemes?

This is described in help file, EasyParser.Rules topic.


What’s new in version 1.2?

See the What's New page on our web site, http://www.dreamcompany.com/whatsnew411.html#Editor


Home | Products | Download | Ordering | People Say | About Us
 


Copyright (c) 1997-2005 Dream Company

Last updated 15.03.05