Auto Install activeX [closed] - activex

Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 14 years ago.
Improve this question
I'm a web developer and my current task is to build an ActiveX component.
It's the first time I have to work with ActiveX and I managed to make an working example.
However I cannot make the ActiveX install from a browser. When installing it using visual studio 2008 and running the web page all works as expected, when I don't have it installed I would expect something similar to windows updates asking me if I allow the installation but this does not happen....
Here is how I'm placing it in the web page:
<object id="myActiveX" name="myActiveX" classid="clsid:A68B19C8-9DB4-49e4-912F-37FB44968528"
codebase="http://localhost/myWebSite/install.cab#version=1,0,0,0"></object>
The guid in the classId matches the guid I created for my class.
Can anyone point out what I'm missing?
Edit:
Forgot to mention this, I have a Setup Project for my ActiveX that generates an .msi and an Setup.exe
i have made a cab file with those using a .inf file as so:
[version]
signature="$CHICAGO$"
AdvancedINF=2.0
[Setup Hooks]
hook1=hook1
[hook1]
run=msiexec.exe /i %EXTRACT_DIR%\Install.msi /qf

You might want to check your IE security settings: By default, unsigned ActiveX controls are ignored.
Here's another possibility:
Did you mark your control as "Safe for scripting" and "safe for initialization"?
I'm not sure this is the issue you're running into since 1) your sample HTML code doesn't show that you're using the control in a script and 2) said HTML snippet doesn't show that you set control properties.
However this is a usual trap so if I were you, I'd give a look.
IIRC this can be achieved either by implementing the IObjectSafety interface or using registry settings.
This and this are 2 pointers to get you started.

Related

Delphi 'The memory manager cannot be changed after it has been used' error on startup [closed]

Closed. This question needs debugging details. It is not currently accepting answers.
Edit the question to include desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem. This will help others answer the question.
Closed 5 years ago.
Improve this question
Recompiling a Delphi project in Delphi 10.1 Berlin, the system is throwing the following error at app startup:
The memory manager cannot be changed after it has been used
Why is that, and how do I fix it?
I found the problem. It is not Delphi or the project code, a 3rd party 'MadExcept handler' is causing the error.
To solve the issue, I removed the previously compiled .dcu files from my dcu folder, and rebuilt the project.

How to find Indy servers in Delphi7? [closed]

Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 7 years ago.
Improve this question
Can't find INDY SERVERS in my Delpi7 how to fix this I need to work with winsocks but I can't find it on panel of delphi7 ide
If you have a standard Delphi7 install, try this
In the IDE go to Component | Install packages
In the pop-up, click Add and navigate to your Delphi Bin folder, you should see a package dclIndy70.Bpl. Open it.
You should now have the Indy components on your Component Palette. They'll be a bit out of date, of course, as Indy has moved on a bit since their time.
Btw, if you decide to upgrade to a more recent version of Indy, make sure you make a back up of your entire project, especially the .DFM(s). With such a long time between the version which was current for D7 and now, you may find that some component properties are now out of date, so the IDE will complain when loading the .DFM(s).

XE2 project creates FastReport DCUs [closed]

Closed. This question is not reproducible or was caused by typos. It is not currently accepting answers.
This question was caused by a typo or a problem that can no longer be reproduced. While similar questions may be on-topic here, this one was resolved in a way less likely to help future readers.
Closed 8 years ago.
Improve this question
I'm currently working on a delphi project, my problem is that everytime I compile the project a couple of FastReport DCUs are created, but I'm not using FastReport at all.
I'm not using a single FastReport component.
The DCUs are called 'fs_iclassesrtti', 'fs_idialogsrtti', 'fs_iformsrtti', ...
Most likely, they're used by some other unit you're using.
One way to find out which is to a) find the .Pas versions of these files, b) temporarily move them (don't delete them!) so that they're not on Delphi's search path then c) do a Build on your project; the Build should fail and the IDE should open the (first) source file which uses one of them. Repeat d) until all are found

How do I use JCL after installing [closed]

Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 8 years ago.
Improve this question
I have just installed JCL v2.4.1.4571 in D2009 (using the Install.bat file) from http://wiki.delphi-jedi.org/wiki/JEDI_Code_Library
There was a lot of 'progress activity' in the installation screen so I guess all went well.
My question is how do I use this newly installed JCL?
I found some .pas files in the ..\source\common folder I used for expanding the downloaded jcl-2.4.1.4571.zip file into. One .pas file is JclDateTime.pas and it contains the 'dates and times' routines. So I guess I can just search through this file for a routine I may want, but maybe there is a more streamlined way of finding routines?
Also any hints on using JCL in the IDE itself? I did not get much help asking google.
cheers
Posting this as an answer because it's too big for comments.
http://wiki.delphi-jedi.org/wiki/JEDI_Code_Library - "The JEDI Code Library (JCL) consists of a set of thoroughly tested and fully documented utility functions and non-visual classes". It's a code library. There are only a couple of things that plug into the IDE like JclDebug. You won't get much help from google because you don't use it in the IDE. You include the Jcl.... files in your source code and you can then use the functions.
A good starting point is the help files.
http://sourceforge.net/projects/jcl/files/JCL%20Releases/JCL%202.6%20Build%205178/jcl-2.6.0.5178-chmhelp.zip/download
or for the PDF file
http://sourceforge.net/projects/jcl/files/JCL%20Releases/JCL%202.6%20Build%205178/jcl-2.6.0.5178-pdf.zip/download
Don't confuse the JCL with the JVCL. The first is a non-visual classes and utility functions, the second is a component library that plugs into the IDE.

Why can't Indy 10 initialize? [closed]

Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 14 years ago.
Improve this question
I have a problem with a Delphi 2009 project : It can't initialize Indy 10 !
This code worked fine before in Delphi 2007 (although we might have been using an older revision of Indy, but I suspect that has not much to do with it);
The initial call to IdWinsock2.InitializeWinSock(), raises this exception (with error code 998) :
Project EAServer.exe raised exception class EIdWinsockStubError with message
'Error on loading Winsock2 library (WS2\_32.DLL): Invalid access to memory location'.
But ws2_32.dll is in C:\Windows\System32 allright, with these version details :
File Version : 5.1.2600.5512 (xpsp.080413-0852)
Description : Windows Socket 2.0 32-Bit DLL
Copyright : © Microsoft Corporation. All rights reserved.
(this shows I'm on WinXP btw).
The silly thing is, that when I look at the process itself (using "Process Explorer"), I can see the process already has this DLL open. The reason "WS2_32.DLL" is already loaded, seems to be because we use the RTL unit Winsock.pas in this project too.
This unit is statically linked to "wsock32.dll", which has a dependancy on WS2_32.DLL, so there.
Does anyone know why this code worked fine before (in Delphi 2007), and now (in Delphi 2009) it suddenly breaks?
And is this inability to re-open the ws2_32 dll common knowledge, or is there really something wrong here? (I did check : I only have 1 version of these DLL's present on my system).
Better yet : Can anyone help me fixing this?
I finally found an answer to this : The affected applications contained a bit of code-hooking that randomly damaged parts of System.dcu! (FYI : We're using a Delphi 2009 beta version of madshi's madCodeHook library). As soon as we switched to another code-hooking library, these symptoms disapeared... I guess that's what happens when you use beta-software. Anyway, sorry for bothering you with this. Problem solved!
This may be overly simplistic, but have you tried changing the order in which the relevant units are listed in your uses clause? Sometimes this helps in these situations.
I think it could be problem with Ansi/Unicode calls of Win32 API (including WinSock API). Check if code using AnsiString/AnsiPchar call XxxA functions (eg MessageBoxA), and String/Pchar call xxW function (eg MessageBoxW). In previous versions of Delphi String was alias to AnsiString and XxxA Win API function was used, but now String is unicode by default and XxxW functions should be used.

Resources