• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 456
  • Last Modified:

Delivering Delphi Component that works Design Time Only ?

Delphi 2010

I am writing a simple component for someone. I want to deliver it to them for testing purposes, but i want it to work in Design Time Only

How do i do this?

Please describe the steps please

thanks
0
Looking_4_Answers
Asked:
Looking_4_Answers
  • 3
  • 2
  • 2
  • +2
1 Solution
 
Ephraim WangoyaCommented:
add this function to your component
uses
  Windows;

function IsInIDE: Boolean;
begin
  Result := (FindWindow('TAppBuilder', nil) > 0) and (DebugHook <> 0);
end;

in the initialization section

initialization
  if not IsInIDE then
  begin
    MessageBox(0, 'Can only run in Delphi', 'Error', MB_OK);
    Application.Terminate; //Halt
  end;
0
 
epasquierCommented:
The first test will tell you that Delphi is loaded, but not that your application is running from Delphi.

That is where the check of DebugHook global variable comes into play, that Delphi sets when integrated debugging is activated and you launch the application from Delphi.

If Delphi integrated debugging is deactivated, then there is no difference between your application launched from Delphi and from explorer while delphi is already loaded.

0
 
Looking_4_AnswersAuthor Commented:
"That is where the check of DebugHook global variable comes into play, that Delphi sets when integrated debugging is activated and you launch the application from Delphi.

If Delphi integrated debugging is deactivated, then there is no difference between your application launched from Delphi and from explorer while delphi is already loaded."

Please Elaborate......maybe with code?
0
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
epasquierCommented:
ewangoya posted a code without explanation, I posted an explanation without code : both work together.

FindWindow('TAppBuilder', nil) >0  => Delphi is loaded somewhere

(DebugHook <> 0)  => that application is running under a debugger.

Both condition at the same time => most certainly that application has been launched from delphi and is being debugged
0
 
Looking_4_AnswersAuthor Commented:
Ok, ill try that part of it....but, I do not want to delliver the code for the compoenent.  How do i deliever just the compiled stuff. Package, DCU's, etc
0
 
jimyXCommented:
I have read sometime back that the Register procedure is only called in design mode. You can define a flag in your module and have your register procedure set that flag.  If that flag is clear in your constructor then you are not in design mode.
0
 
epasquierCommented:
design time is another issue. And one that is easily checked with the test :
csDesigning in ComponentState

Looking4Answers : just put all of it in a package, compile it and distribute .BPL and .DCU
0
 
Geert GruwezOracle dbaCommented:
if you want the absolute certain way :

within your component you could find if you have access to the IDE
basically you can query the IDE with IOTA (Open Tools Api) interfaces from within your component

uses ToolsApi;

function CheckInIde: Boolean;
begin
  Result := BorlandIdeServices <> nil;
end;

I think you need to add DesignEditors to your uses packages of your component
Don't have access to delphi here, i could test on monday

If you are looking for more such info, look for IOTA Delphi in google :)

0
 
Geert GruwezOracle dbaCommented:
here is a simple wizard by Allen:
http://edn.embarcadero.com/article/20419

you even get access to the debugger ...
you could even post a message to the debugger window using IOTADebuggerServices;
0

Featured Post

[Webinar] Database Backup and Recovery

Does your company store data on premises, off site, in the cloud, or a combination of these? If you answered “yes”, you need a data backup recovery plan that fits each and every platform. Watch now as as Percona teaches us how to build agile data backup recovery plan.

  • 3
  • 2
  • 2
  • +2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now