Usage FAQ
How do I set the Taborder in TFrames?
The taborder has to be set in the inner IWFrameRegion, however when you click
into the frame, always the frame itself is selected. To select the
IWFrameRegion, please right-click the frame. Then set the desired taborder to
that Region. This is basically a limitation of Delphi's TFrame
implementation
When my sessions time out or close my application is throwing an
Access Violation. What might cause this?
Check any shutdown events in the server controller, as well as destructors of
any components on the user session. A common source of AV's are components on
the user session which do not destroy properly.
If you are using DBExpress in particular this is a problem. If you are using
DBExpress on the usersession and have an open transaction when the UserSession
is destroyed, then at some point within about 3 seconds from that point, you
will get an AV. If you are running in SA outside of the debugger, the SA
app will simply disappear. If you are running inside the debugger, you
will get eternal AVs until you reset.
This is a problem with DBExpress, and not IntraWeb. To fix this, make sure
all transactions are closed before the components are destroyed.
After installing SP2 on Windows XP I can no longer develop
IntraWeb applications unless I am connected to a network or have a dialup
connection established. What can I do to fix this?
It's a "feature" of WinXP called DHCP Media Sense, that automatically
disables the TCP/IP stack whenever there is no network connection. This can be turned off by adding a key to the Windows Registry.
Open the Registry Editor and locate this node:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters Add a
new DWORD key named DisableDHCPMediaSense with a value of 1. To
re-enable Media Sense, change the value to 0.
Warning: If you connect and reconnect to wire based networks this may
cause problems in reestablishing DHCP addresses. After making this change you
may find it necessary to retrieve a new IP address manually using ipconfig.
Dialup users with no wire based connections can probably make this change
without noticeable effect.
More Information
How to connect to Midas using a DCOMConnection?
If you get an EOLESysError ("Object is not connected to server") when
calling CoInitializeEx, you should disable asynchronous calls. This is
done with the SupportsCallbacks property of
TSocketConnection (not TDCOMConnection!).
Why does my application use so much memory?
You have to take into account that everything your app does in one session,
will be done for *every* running session.
That is, you have to be careful about components that use a lot of memory by
design. ClientDataSets, IWImages etc. are examples for such classes.
The other possible reason might be a memory leak. We try to keep IntraWeb
memory leak free. To be sure that your own code is leak-free, you might use one
of the available memory test tools. There are even some free tools:
My IntraWeb application freezes when I use SendFile, SendStream,
or I perform a File-upload?
IntraWeb 7.0 introduces a new feature called LockOnSubmit. This is to
prevent the user from double clicking on a form when a submit is already in progress. However,
it is incompatible with some functions such as SendFile and SendStream.
If you are performing any of these, make sure this property is set to False in
the form where they are used.
Can I use GIFs in my application?
Yes, but because of some historic patent issues, GIFs are not displayed in the Delhi IDE. The good news is:
Out of the box TIWImageFile will allow to add GIF files, but they will be displayed in the Webbrowser only. To display GIF images at design time as well, you can install a GIF
processor into Delphi. There are multiple GIF processors for Delphi availble. One of the most used is Finn Tolderlund's:
It's free and comes with source.
Can I use SSL in my IntraWeb
applications?
IntraWeb when deployed as ISAPI can be used with SSL by using the SSL
features of the hosting Webserver.
When deployed in stand alone mode, IntraWeb can also support SSL. However,
some countries disallow the use of strong methods of encryption. It depends on
the location where the application is to be run. Atozed Software does not
provide any rights or licenses to use strong encryption methods. However,
IntraWeb can support SSL if the OpenSSL dynamic link libraries (DLL's) for Indy are installed. Download SSL Libraries.
For instructions on setting up an IntraWeb stand alone server to use SSL
please see the SSL section in the IntraWeb Manual.
When using my SSL certificate from Verisign, then the web browser
complains that the parent certificate expired. Do I need a new
certificate?
No, your certifificate is most likely fine. The problem is that Verisign's so
called Intermediate CA Certificate is preinstalled on many webservers and that
preinstalled intermiediate certificate expired.
When I run my application it fails to work from Internet Explorer. IE
fails to connect to host when launched. What is wrong?
Installation of a different browser (Netscapte 6.1, etc.) can alter the IE
web settings which previously existed. Restoring IE to its original settings
should resolve the problem. To restore the settings, open IE, select Tool |
Internet Options | Program and click on Reset Web Settings.
Why does the port that the application runs on keep changing?
The evaluation version of IntraWeb picks the port at random. With an installed IntraWeb license key, fixed port numbers can be specified in the Server
Controller.
Can I use a reporting tool with IntraWeb?
Yes, as long as it is usable in threads you can use existing reporting
tools. Reporting tools that work with IntraWeb: - Crystal Reports
- RAVE Reports - IntraWeb can be used with RAVE
Reports. To use RAVE Reports, you cannot use direct data connections however
as they are do not support multiple connections per process. You must use SQL
connections. This newsgroup article also may be
of assistance. An IntraWeb Rave demo is also
available.
- Report Builder
- SQL Sever Reporting Services
- Most reporting tools
Reporting tools that do not work with IntraWeb: - QuickReports - QuickReports is not safe to use in
threads as it makes extensive use of globals and therefore cannot easily be
used with IntraWeb. There are methods, however they require the use of out of
process COM servers, etc
Does IntraWeb support visual form inheritance?
Currently, IntraWeb does not support visual form inheritance. However
IntraWeb does support code form inheritance and TFrame. TFrame is more flexible
than visual form inheritance in most situations.
Does IntraWeb support TFrame?
Yes.
How do I control the session timeout?
Set the SessionTimeout property in the application's ServerController.
When when using Internet Explorer is there a delay when I first click
on a button?
The first time you click on a button or other submittable item in Internet
Explorer and Internet Explorer has just recently been started, Internet Explorer
pauses for 1 to 2 seconds and loads its Javascript libraries. Notice that this
only happens on the first click, and subsequent actions are much quicker.
Why does Internet Explorer give me a Javascript error and when I look
at the javascript its incomplete?
Its a bug in IE. We have traced this with a network tracer and also see it on
internet sites with IE. One thing we have noted is that it seems to only happen
when IE is launched via a URL or the Execute (which uses a URL) in stand alone
mode. Use the "Copy URL to Clipboard" function and open IE manually, then open
the URL on the clipboard and it will work perfectly.
Why can't I use ShowModal?
IntraWeb requires that control be returned to its handling routines. Since
ShowModal effectively blocks the program flow, control cannot be returned. Thus
ShowModal cannot be used in an IntraWeb application, as it will cause the
program to freeze. Instead merely display an IntraWeb form wtih an Ok or Close
button which calls the Release method.
In essence though, since your IntraWeb application occurs in a single browser
window typically, all forms are "modal".
How can I have an ISAPI and a stand alone version of my
application?
Create two project files with different names, but include the same main unit
and other required files. Both the Guess/GuessDLL and Fishfact/FishfactDLL demos
demonstrate this.
I have set the proper Z-Index values but my comboboxes always appear
on top of all other components?
Comboboxes always appear on top of everything else and there is nothing that
can be done to change this behaviour. Its is implemented by the browsers in this
manner for some unknown reason.
Can I use Unicode with IntraWeb?
In Delphi 2009 Unicode is fully supported. In previous versions of Delphi and C++ you you can use Unicode by using the
following guidelines:
-
Use templates.
-
Set the first three chars of that template to #$ef#$bb#$bf.
-
Set the character set in the ServerController to utf-8.
Why do my DBGrid column events get lost when on a frame?
Its a problem in the Delphi streaming system and no work around has been
found. You need to assign the events at run time if the grid is on a frame.
How do I get decent thin lines (borders) for my IWGrid?
Two possibilities:
- In the OnRender of your form add this:
PageContext.AddStyle('TABLE {border-collapse: collapse;}');
- Or set the following properties of your grid:
BGColor :=
clBlack; BorderSize := 0; CellPadding := 1; CellSpacing := 1;
Then in the OnRenderCell of your grid you also may want to set
ACell.BGColor := clWhite
|