|
Hi !
(calling an ActiveX thing from Delphi 7)
Any clues as to why I am getting the following error msg ?
error msg; Undeclared identifier: 'Layer2'
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<Script
procedure TMinMap.MGMap3onMapLoaded(ASender: TObject;
const Map: IDispatch);
var
Layer2: String;
begin
Layer2 := 'Streets-All-With Names';
TMinMap.Layer2.setVisibility(true);
end;
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Thanks, Cliff
|
|
|
|
|
woah! what language is that? Greek?
Still Alive!!!
Thank you God.
|
|
|
|
|
Greek would possibly be easier !
It's a messy post, but between the<<<<<<<<<<<<'s
is a piece of Delhpi 7 script that is trying my patience. There isn't a Delphi forum here so. . .
|
|
|
|
|
|
Thanks Mike,
Didn't fix it though.
Cliff
|
|
|
|
|
CliffClimber wrote:
Layer2 := 'Streets-All-With Names';
TMinMap.Layer2.setVisibility(true);
No knowing delphi I have a problem with these two lines. In one you use Layer2 without a TMinMap. Are they two different variables named Layer2? One as an object variable and one as a local procedure variable?
John
|
|
|
|
|
John,
procedure TMinMap.MGMap3onMapLoaded(ASender: TObject; const Map: IDispatch);
var
// the following line declares the variable as
//a String
Layer2: String;
begin
// the following line assigns a value to the
//String
Layer2 := 'Streets-All-With Names';
// and this one is supposed to instruct the
// program to set the layer named
//'Streets-All-With Names' visible
TMinMap.Layer2.setVisibility(true);
end;
|
|
|
|
|
Did you try?
procedure TMinMap.MGMap3onMapLoaded(ASender: TObject; const Map: IDispatch)
var
Layer2: String;
begin
Layer2 := 'Streets-All-With Names';
Layer2.setVisibility(true);
end;
John
|
|
|
|
|
John,
It returns a different error
"Record, object or class type required"
I will change the name of the variable Layer2 and see if that works.
Thanks, Cliff
|
|
|
|
|
Nope, didn't work either.
|
|
|
|
|
Ok, I will apply some VC++ knowledge to it, lets see.
I assume TMinMap is a class as in c++;
so when you say TMinMap.Layer2.setVisibility(true); it is refering to the member variable of the class, but it is not coz i guess its a local variable of the procudure so you will get variable not declared error.
In one of the post you said Layer2.setVisibility(true) gives a different error as its not an object or so, that means setVisibility(true) is not a member function(procudure) of String.
So i guess these lines of code is quite wrong.
Still Alive!!!
Thank you God.
|
|
|
|
|
yes, I'm finished for today anyway.
Thanks for all the feedback !!
Cliff
Modification;
solved the problem
|
|
|
|
|
Hiya, I want an easy way of outputting persistant files in MFC but not serializing them. I've tried fostream and CFile techniques but am having no luck.
Trying to override the OnSaveDocument function to get access to the file name and path I'm saving to, but fostream doesn't accept LPCTSTR's as parameters, and am having no luck with CFile.
If anyone knows how to parse the variable to get the filename and path exactly, or has any techniques, I'd appreciate it.
Thank you.
|
|
|
|
|
strik wrote:
fostream doesn't accept LPCTSTR's as parameters
It should. Are you using UNICODE? Otherwise LPCTSTR is just a char *
John
|
|
|
|
|
well I've tried to put:
ofstream myFile(lpszPathName);
myFile << "Test output" << endl;
myFile.close();
but that doesn't seem to work... it writes the file but empty, yet something simple like:
ofstream myFile("C:/test.txt");
myFile << "Test output" << endl;
myFile.close();
MFC Doc/View creates the file fine, but I don't think that ofstream is working, hence it being blank! I think it's a simple case of the mix up between forward/back slashes.
|
|
|
|
|
for reference, after I wrote a string parser ('\' to '/'), after I tried a load of other methods, I found the problem was that.
MFC was overwriting the written file that I was making, and resetting it to an empty file!! Only found this out by accident as explorer was in the background of my app and I saw the filesize flip to 1kb from 0kb and back again.
Thanks for your help!
|
|
|
|
|
Thanks for the info. In most of my applications the doccument is only a small configuration file and the actual data is many external files or database(s) that are referenced in the configuration file.
John
|
|
|
|
|
I am working on a application that requires me to know which window has the focus. I have installed a hook for WH_CALLWNDPROC. By looking at WM_SETFOCUS. I can tell when the focus is changed. However, this does not work for console windows (like cmd.exe). Does anyone know how I can tell when a console window gets the focus? Is there a message that gets sent to console windows?
I have tried using WM_ACTIVATE and it does not work.
Dave
|
|
|
|
|
Try using SPY++
Still Alive!!!
Thank you God.
|
|
|
|
|
Spy++ doesn't show messages for console windows.
|
|
|
|
|
I am having difficulties getting VC 6 to honor the dependencies between projects with different configurations. Here is what I am running into:
Project Main has 3 confugrations
* C1
* C2
* C3
Project Sub has 2 of the 3 Main configurations
* C1
* C3
When I go to build Main project C2, which is trying to link with Sub project C3, VC insists on building Sub project C1 instead of C3. I have searched high and low for a way to specify this, w/o any luck (obviously).
I have the dependencies set up properly using the dependencies dialog. In the project settings, there is a check box for "Allow per-configuration dependencies" but that seems to operate on files, not on projects.
Please help
|
|
|
|
|
Was the set active project specified?
Still Alive!!!
Thank you God.
|
|
|
|
|
Not quite sure, but it sounds like your build targets don't have identical names. That makes VC guess as to which targets really need to be build. For example, if Project A has a ReleaseMinSize target, and depends on Project B which has a Release target, when you build A, VC will guess that you want B:Release built too. If the names are different enough, it may guess wrong.
If you can't change the names, go to Build->Batch Build and select the target(s) you need built.
--Mike--
Personal stuff:: Ericahist | Homepage
Shareware stuff:: 1ClickPicGrabber | RightClick-Encrypt
CP stuff:: CP SearchBar v2.0.2 | C++ Forum FAQ
Actual sign at the laundromat I go to: "No tinting or dying."
|
|
|
|
|
Hi Michael. The way I have it set up is my main project (Main) has 3 configurations: Internal, External, and Eval (internal is a private build for our company, external is the version we sell to the outside world, eval is a demo/trial build).
Main is dependant on Sub (a dll/lib pair). Sub only has 2 configurations: Full and Eval. It doesn't make a distinction between Internal and External because there is no need to.
So, Main-Eval should link with Sub-Eval, and that is working just fine. And Main-Internal is linking properly with Sub-Full. The problem is that when I go to build Main-External, VC thinks it is dependant on Sub-Eval. In Main-External's project settings, I have it linking with the Sub-Full.lib, which I don't think VC is paying any attention to... it is just taking a guess at which of the two Sub configurations Main-External is dependant on.
I was hoping that the "Allow per-configuration dependencies" check box in the project settings would alleviate this, but it doesn't. If it is not possible to do something like this, let me know. It would be a bummer, but at least I would stop cursing MS up and down as I have been for the past week.
Thanks.
D
|
|
|
|
|
In case anybody is interested... i figured this out (it wasn't easy). VC tries to do a name match between project configurations. If one project is dependant on another, and the other project doesn't have a configuration with an exact name match as the dependant one, it will do a "best guess" name match.
In my case, my main project configurations were:
Main - Win32
Main - Win32 External
Main - Win32 Eval
Sub - Win32
Sub - Win32 Eval
When compiling, Main - Win32 External, it looked at all the configs in Sub to try and find a match. Since it couldn't, it picked the closest match, which was Sub - Win32 Eval, and tried to compile it (which is not what I wanted).
So I changed the names to:
Main - Win32 Exec
Main - Win32 External
Main - Win32 Demo
Sub - Win32 Exec
Sub - Win32 Demo
and everything worked beautifully. Now when compiling Main External, it will find that the config name matches more closely to Sub Exec then Sub Demo.
One of those undocumented features, I guess.
|
|
|
|