Need a help

devinim.solen@tde.alstom.com
Wed, 17 Mar 1999 09:05:41 +0200


Dear CINT users;

Here is my source; and the problem is I get an error, when I call void
BuildCurrencyListCtrl(CChDatabase* p1, CChListCtrl* p2) function from my
application as follows;

Error
--------------------------------------------------------------------------------

D:\Projects\Script>cint CurrencyListDialog.cpp
Error: No symbol CChCurrencyListCtrl in current scope
FILE:\Projects\Script\ChCurrencyListCtrl.cpp LINE:130
!!!Error recovered!!!

void BuildCurrencyListCtrl(CChDatabase* p1, CChListCtrl* p2)
{
CChCurrencyListCtrl c(p1, p2); ----------------------> this lines occurs
this error.

c.Build();
}

Application
--------------------------------------------------------------------------------

void CCurrencyListCtrl::Build()
{
CString Command;

/*
Command.Format(_T("\
{ \
CChCurrencyListCtrl CurrencyListCtrl((CChDatabase*) %lu,
(CChListCtrl*) %lu); \
\
CurrencyListCtrl.Build();\
}"), m_pDatabase, this);
*/

Command.Format(_T("BuildCurrencyListCtrl((CChDatabase*) %lu, (CChListCtrl*)
%lu)"), m_pDatabase, this);

G__loadfile("\\Projects\\Script\\ChCurrencyListCtrl.cpp");
G__calc((char*) (LPCTSTR) Command);
}

Script header source.
--------------------------------------------------------------------------------

#pragma includepath "\Projects\Debug\Bin"
#pragma includepath "\Projects\ChDatabase"
#pragma includepath "\Projects\Accountant\Currency"

#include "String.cpp"
#include <ChDatabase.dll>
#include <ChWinLib.dll>
#include <Currency.dll>
#include <CurrencyBusinessLogic.dll>

class CChCurrencyListCtrl
{
public:
CChCurrencyListCtrl(CChDatabase* pDatabase);
CChCurrencyListCtrl(CChDatabase* pDatabase, CChListCtrl* pListCtrl);
~CChCurrencyListCtrl();

virtual BOOL OnCommand(WPARAM wParam, LPARAM lParam);
virtual void OnLButtonDown(UINT nFlags, CChPoint point);
virtual void OnRButtonDown(UINT nFlags, CChPoint point);

int InsertItem(int nItem, CString strItem);
int InsertColumn(int nCol, CString ColumnHeading);
int DeleteAllItems();
int SetColumnWidth(int nCol, int cx);

void OnRefresh();
virtual void Build();

private:
CChDatabase* m_pDatabase;
CCurrencyListCtrl* m_pListCtrl;
};

Source.
--------------------------------------------------------------------------------

#include "ChCurrencyListCtrl.h"

CChCurrencyListCtrl::CChCurrencyListCtrl(CChDatabase* pDatabase)
{
m_pDatabase = pDatabase;
m_pListCtrl = new CCurrencyListCtrl;
}

CChCurrencyListCtrl::CChCurrencyListCtrl(CChDatabase* pDatabase, CChListCtrl*
pListCtrl)
{
m_pDatabase = pDatabase;
m_pListCtrl = pListCtrl;
}

CChCurrencyListCtrl::~CChCurrencyListCtrl()
{
if (m_pListCtrl)
delete m_pListCtrl;
}

int CChCurrencyListCtrl::InsertItem(int nItem, CString strItem)
{
return m_pListCtrl->InsertItem(nItem, strItem);
}

int CChCurrencyListCtrl::InsertColumn(int nCol, CString ColumnHeading)
{
return m_pListCtrl->InsertColumn(nCol, ColumnHeading);
}

int CChCurrencyListCtrl::DeleteAllItems()
{
return m_pListCtrl->DeleteAllItems();
}

int CChCurrencyListCtrl::SetColumnWidth(int nCol, int cx)
{
return m_pListCtrl->SetColumnWidth(nCol, cx);
}

BOOL CCurrencyListCtrl::OnCommand(WPARAM wParam, LPARAM lParam)
{
printf("Command:%lu %lu\n", wParam, lParam);

switch(wParam)
{
case MF_CURRENCYLISTCTRL_ADD:
{
CChCurrencyDialog(m_pChDatabase).DoModal();
}
break;
case MF_CURRENCYLISTCTRL_EDIT:
//OnEdit();
break;
case MF_CURRENCYLISTCTRL_DELETE:
//OnDelete();
break;
case MF_CURRENCYLISTCTRL_REFRESH:
OnRefresh();
break;
};
return TRUE;
}

void CCurrencyListCtrl::OnLButtonDown(UINT nFlags, CChPoint point)
{
}

void CCurrencyListCtrl::OnRButtonDown(UINT nFlags, CChPoint point)
{
CChMenu Menu;

Menu.CreatePopupMenu();

Menu.InsertMenu(-1, 0, 1, "Add");
Menu.InsertMenu(-1, 0, 2, "Edit");
Menu.InsertMenu(-1, 0, 3, "Delete");
Menu.InsertMenu(-1, MF_SEPARATOR, 0); // ???
Menu.InsertMenu(-1, 0, 4, "Refresh");
//Menu.InsertMenu(UNIT nPosition, UINT nFlags, UINT nIDNewItem,LPCTSTR
lpszNewItem);

ClientToScreen(&point);

Menu.TrackPopupMenu(0, point.x, point.y, this);
}

void CChCurrencyListCtrl::OnRefresh()
{
CCurrencyViewRecordset Set(m_pDatabase);

Set.Open();

DeleteAllItems();

while (!Set.IsEOF())
{
InsertItem(0, Set.m_Symbol);
Set.MoveNext();
}

Set.Close();
}

void CChCurrencyListCtrl::Build()
{
InsertColumn(0, "Symbol");
SetColumnWidth(0, 54);

InsertColumn(1, "Name");
SetColumnWidth(1, 115);

OnRefresh();
}

void BuildCurrencyListCtrl(CChDatabase* p1, CChListCtrl* p2)
{
CChCurrencyListCtrl c(p1, p2);

c.Build();
}

Thanks.

Devinim SOLEN