How do I use JCL after installing [closed] - delphi

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.

Related

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).

Cannot find jedi within my Delphi 5 file using XE6 [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about programming within the scope defined in the help center.
Closed 8 years ago.
Improve this question
I have a multi-file project that was created in Delphi5 and I am attempting to compile in Delphi XE6.
In my DSPack.pas file I get the error: "'jedi.inc' could not be found..." related to the code line:
{$I jedi.inc}
... there are also many, mostly "undeclared identifier", errors shown as errors - but named as initial errors, which I presume are because the compiler can't find the jedi.inc file...
I have located the jedi file - jcl- in my Comps folder.
My question is three-fold:
One: Why does XE6 not register jedi.inc whereas it did in Delphi 5?
Two: Where is jedi file usually located?
I believe I have downloaded an updated version of jcl file (jcl-2.6.0.5178).
Three: What do I need to do in my project so that the compiler and find the jedi.inc file?
I imagine you're aware that you can add a .Pas to a project by clicking the Add File to Project button in the D5..XE6 IDE. You can do likewise with an .Inc file. However ...
When you do that for a .Pas file, you can see in the Project Manager pop-up that it has recorded the path to it, and this is sufficient for the compiler to be able to find it. But, for some reason, the same is not the case for an .Inc file. This evidently by design, because this difference has existed at least as far back as D5, IIRC. TBH, I'm not sure why, because several times I've seen problems that would have been avoided if the compiler had been able to find an .Inc file from what the Project Manager obviously knows about its location. So, I can't answer your "why?" query, though I dare say the compiler designers could.
To enable the compiler to find an .Inc file, you have two alternatives to deal with your "how" query (apart from moving the .Inc file, which in the case of a thing as large and complex as the JCL/JVCL is probably not such a good idea):
Include the path to the .Inc file in the {$I } directive. In my case, the JCL stuff is located two folders below a Jedi folder which is itself below a Delphi directory on my D: drive, so I would write the "{$I ...}" line as
{$I D:\Delphi\Jedi\JCL\Source\Include\Jedi.Inc}
Add the path to the .Inc file to the list of paths under
Project|Options\Delphi compiler|Search path. The first of these methods is probably preferable, because it only involves the .Inc file, whereas the second tells the compiler to look in that path for anything it hasn't already found, which may not always be desirable.
As to your "where" point, as you may have gathered from one of the comments, the location of the Jedi.Inc file(s) in the JCL/JVCL distribution seems to have been moved since olden days to where it is now, which I think is why you're having this problem with something which used to compile under D5.

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

Auto Install activeX [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'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.

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