Delphi 2010 freeze on start-up - delphi

I've set up trial Delphi 2010 for the testing. After some days it is started and freeze. I just can see web-page with "how-to-buy" and at the right side last edited project. But Delphi's window do not react on any mouse events.
I've tried to reinstal and repair it.
So... What I have to do?
May be that project have bad files or some settings of IDE is incorrect?
Do you have any ideas?

Locate the .DSK file for any project it is trying to load, or the default.dsk file and delete it. Often this fixes Delphi startup failures. This file contains the desktop layout and list of open files.

Did you uninstall and resointall?
Did you contact Embarcadero? At this point in any potential business transaction you are at your most powerful. You have not paid, but it looks like you might; surely they would want to help you?
So, why ask us, rather than the company that wants to sell it to you?
Coupled with that - if you ask now you might get a rough idea of how helpful they could potentialy be if you ever do spring US $1k+

Related

DelphiXE7: Where''s the WinAPI help topics?

Hello I just finally buy the newest Delphi after many years using older version or free pascal. Everything seem to work as expected except when I look the help I can't find winapi or opengl topics like i could in old version.
Do I need to install something special so I can press f1 over for example "messagebox" or "sleep" or "glcolor" or whatever because I install delphi xe7 3 times now but there is only "Install Help" option during install and no other help option I can see.
A while ago I had tried to fix this annoying change from how it was to limited success. What I had done was:
- install the documentation part of "Windows 7 SDK with .net 3.5" (won't work with any later SDK installs since they changed help format)
- install a program from helpware called FAR
- in program FAR, choose H2 UTILS, then select "embarcadero.rs_xe7", then click register
- go to plugins and add WIN7SDKCOM
That was it, with that done both the table of contents and index of delphi help contained the whole windows 7 documentation. HOWEVER! There was a problem, and it was that many (most?) winapi F1 context sensitive help didn't work, it still took me to the standard delphi help page that said to go to MSDN even though if i went to the index i would immediately find the topic.
So, imperfect answer that I'm relaying from memory since I reinstalled that computer and didn't add the win7sdk this time. Hopefully it helps, I know I was happy to have easier offline access to the documentation. Maybe someone can figure out the extra step to make F1 help also work completely.

Cannot debug Delphi process because of UAC

I found interesting problem with Win7/X64 machine.
For this time I haven't got problem with Delphi 6 and UAC.
The exes are working in their's place, so I can use Delphi debugger with them.
But today I got error on run the project: "Unable to create process. For this operation you need higher user level".
How can I prevent this side-effect?
What causes this?
I don't understand why the older projects are running fine, but this new isn't...
Thanks for every idea, link, information!
Additional info:
Normally I using the Delphi 6 IDE with normal starting (without SysAdmin rigths).
So it is never asking me with "really?" kind UAC questions.
And every of the older projects are usable with Delphi 6 - I can build, run, debug everything.
This problem happened with only this project, so I try to find the differences if possible to solve the problem.
I using normal directory ("c:\dev\anyproject"), others are using "c:\dev\otherproject1..2..n").
Does your application request elevation when started from Windows Explorer?
Does it have a manifest?
The name of the exe, like setup.exe, could also trigger elevation. See an outline of the Installer detection technology.
Non-elevated process can't debug elevated process.
If your application requires elevation at the start, then you would need to run the IDE elevated to be able to debug it.
Starting your IDE as an administrator should solve the problem (option in the context menu).
If not, you could always disable UAC while developing.
There is a number of limitations that needs administrator's rights.
For example: you cannot write data directly into program files directory.

Delphi: Application error logging in the field

Using Delphi 7, I wonder if there is a free component which will collect diagnostic information as my application runs at a remote site and will help me to debug error reports.
Maybe it records each menu item selected, control clicked, text input, etc? Maybe it just dumps the stack on a crash. Maybe it does something else ...
I don't mind adding code (e.g at the start and end of each procedure), as that might generate more useful info than a fully automatic system.
I am not sure if the solution ought to "phone home" or if it is enough to produce a text file which can be emailed to me.
Any suggestions?
with the crash debuging have a look at MadExcept
http://www.madshi.net/madExceptDescription.htm
madExcept was built to help you locating crashes in your software. Whenever there's a crash/exception in your program, madExcept will automatically catch it, analyze it, collect lots of useful information, and give the end user the possibility to send you a full bug report.
free for non-commercial usage, inexpensive for commercial usage
or JclDebug from the JEDI Code Library
http://www.delphi-jedi.org/
A Blog Posting about it can be found here
http://www.gnegg.ch/2002/12/jcldebug/
EDIT: This seems to be a very good example on how to use JCLDebug
http://robstechcorner.blogspot.com/2009/04/finding-hard-to-reproduce-errors.html
I use EurekaLog http://www.eurekalog.com
It does the call stack, memory contents, other apps running, a good description of the machine, OS, patches, etc.., It can (with user permission, and if configured to to so) take a screenshot, ask the user for input (what were you doing when it crashed?), etc.. It can send the dump via e-mail, post to http, post directly to bug trackers like Mantis and FogBugz, or just leave it on the system. It's great, and well supported.
Also, here's a link to a similar question
Compare Delphi Exception Handlers
Have you looked at the open-source JclDebug from Project Jedi? Here's a nice succinct write-up on JclDebug.
Imagine you could get a detailed
error-report containing a full
callstack of where the error occured
combined with information about file
and line-number. This report could be
generated directly on the users
computer and be sent to you via email
or directly via the internet, using a
custom procedure - even directly
creating entries in the
bugtracking-tool you are using.
This and more is made possible by the
Project JEDI - more accuratly, the
JCL-Subproject with its
JclDebug-Framework. When you have
completed the installation of the
package, a new Menu Option called
"Inser JCL Debug Data" will be added
to the Project-Menu of your
Delphi-IDE.
There is a great delphi porting of the most known opensource logging framework written in java, Log4J: it is called Log4Delphi.
http://log4delphi.sourceforge.net
I downloaded it, extended and used with my projects with success.
Best features: opensource, Apache license, very well documented, simple to extend it, power design: with the concept of appender, you could build up your custom appender and use it to send logging data from remote customer computer to your head quarter using UDP protocol.
Try it, and let me know :-)
PS: the project seems to be discontinued, but it is mature and I'd used it without memory overload and cpu overhead problems.
The log4Delphi project has been dormant for 4 years but I have been granted access to update the dormant Log4Delphi project and I have rolled up 4 years of bugfixes and patches into the latest 0.8 release available on Source-forge. I use this library in production and have found it to very stable and reliable and easy to use.
Log4Delphi Downloads Page

How can I load a package and keep the debugger working?

I'm using TJvPluginManager in the JVCL to create and load BPL-based plugins for my program. Problem is, one of the plugins isn't loading properly, and I can't debug it. Every time I try to trace into the loading sequence, it gets as far as the LoadLibrary API call, and then the debugger seems to forget what it's there for. It completely loses the ability to associate program code with source lines, give meaningful data in a call stack, or display local variables. It will still stop at breakpoints, but it breaks to the CPU window, with all the inline source code stripped out.
This happens on Delphi 2007 and 2009, and it's driving me nuts. Does anyone know how to load a plugin without it breaking the debugger? Does anyone even know why it's breaking it in the first place?
NOTE: I'm not looking for alternative methods of debugging. I know all about tracing and logging and all the rest. What I want is to understand what's going wrong and how to fix it. Surely I'm not the only person who's ever used TJvPluginManager?
Not quite the answer to your question: Have you tried to debug the package project, by setting the host application and putting a breakpoint into the package's startup code?
I've found Ray Kanopka's (Raize) CodeSite to be invaluable for debugging in situations where the integrated debugger is acting up. Thinking about the things I want to monitor using CodeSite actually helps me focus on what's important - it enforces good habits.
Another alternative to Codesite is Overseer which is part of the nexus project, but stands alone so does not require you to use their framework. Codesite is by far the better option, but in a pinch Overseer would work just as well.
I found that using packages for plugins can be problematic and many years ago switched to a completely COM based implementation for plugins and never had any problems. The other advantage to COM based plugins, they don't require Delphi to write, do not need to be recompiled when the main app switches to a new version of the compiler (my plugins compiled with Delphi 5 still run fine against the main application compiled in Delphi 2009!) and they are easier to write test applications to assist in debugging.
The only side effect I notice, is that shared code ends up in both executables and the plugins require registration into the registry.
Hmmmm... This is a stupid question, but I have to ask: the initialization function have the EXACT declaration syntax like the other plugins that work ?(from your question, I deducted you made some others that work)
Check your dependencies. Make sure each unit is compiled into one package only. Whenever a package needs to reference a unit from another package, use the requires clause to do so. Watch for compiler warnings about implicitly linked units.

Any idea how to resolve a BDE error $251e?

Here's the situation:
A user of our program suddenly started receiving an error from the Borland Database Engine (BDE) when attempting to start the application. The error message says that it was unable to initialize the BDE and gives error code $251e. User is on BDE 5.2.0.2.
I cannot find any official documentation on the error $251e. The only somewhat useful hit I can get on Google is not very instructive and the suggestion there does no good.
Here are some things that we have tried / discovered:
Other applications that access the BDE the exact same way have no complaints.
The error occurs on a line where we set Connected := True on the TDatabase component.
Reinstalling the BDE makes no difference.
Closing all BDE apps except the one in question makes no difference.
Changing from using an MSSQL database to a Paradox database makes no difference.
Making the logged in user a member of the Administrators group on the workstation makes no difference.
The typically logged in user is a domain user.
Logging in as a workstation administrator (non-domain) account that was originally setup on the machine as a last resort administration account, all works fine.
Creating a new workstation user with local admin rights, the problem returns.
The user has been temporarily allowed to use the one workstation admin account that actually works, but this is not an acceptable long-term solution. Any idea where we might go from here? Any clue as to what $251e really means?
I know that the BDE is way out of date and no longer supported, but changing the use of the BDE is not an option right now.
You might have better luck searching for the error here..
http://www.fulltextsearch.com/
A common culprit seems to be a conflicting device driver.
Good luck
I am not sure, because I don't use BDE for lot's of years, but here are some hints and links:
Error is probably related to BDE parameters (as article you linked claims)
Here are some sites that have some suggestions for optimal BDE configuration
http://www.kennedysoftware.ie/oldapps.htm - check BDE section, have information about BDE configuration and some advices about using BDE with Vista
http://www.thedbcommunity.com/index.php - community site about Paradox and BDE
BDE issues from Codegear quality central
search newsgroup borland.public.bde - there is lots of questions about #251E
Error $251E means "Insufficient shared memory available"
Proposed solutions:
Increase SharedMemSize to 4096 or 8192
Change SharedMemLocation to 0x5BDE.
After using www.fulltextsearch.com to read through hundreds of messages regarding 251e (thanks for the pointer KevinRF), we came up with a list of about a half-dozen new things to try.
Turns out the user had turned on compatibility mode (right-click exe file, choose Properties, Compatibility tab) for the program in question. Turning compatibility mode off for the application resolved the error.
Thanks to all for the suggestions!
Turn off uac and add the setup.exe and regsvr32.exe to DEP.
look on codegear's web site. some time ago i saw an article about the memory layout for this shared memory and ways to resolve a problem like this. it's an ugly business but there was a good article on this. sorry, i can't find it offhand.
Wow, I tried a lot of tactics to try and solve this problem, and it was the same. Compatibility mode. Disabled the compatibility mode and the problem is gone for good.
If your executable is with the tables (same directory), try putting it in another location.
You can also Try to rename the Executable file name, had the same problem, I know it sounds strange but it worked for me.
Looks like the path somehow caused the problem.
I solved it by renaming the folder containing project files.

Resources