PDA

Visualizza versione completa : help for borland c++ builder 3.0 standard


pazzokramaz
25-08-2002, 20.27.09
help for borland c++ builder 3.0 standard

ciao ho il c++3 originale



presto metterò il 5, cmq ho vari problemi fisto che non ho mai utilizzato questo prog.


sto facendo un programma da tempo ed ho dovuto ricominciare diverse volte xchè andava in errore, mahhhhh:eek: :rolleyes:



allora 1 domanda stilizzata

-creo font
-posiziono bottoni
-rinonimo font e bottoni e compilo le opsioni
- (sono bloccato) vorrei che cliccando sul bottone 1 2 ecc.. mi aprisse un determinato file .exe o .bat che si trova a un determinato percordo, come faccio? come procedo???
cosa devo scrivere nella casellina OnClick?????????




2 domanda:

stesso discorso della 1 ma con il file che si trova nella stessa cartella dove è il progetto compilato, x intendersi l'exe finale
;)




3 domanda (sto impazzando):



creo una font bottini varie caz..te ecc.. ecc.... voglio scrivereuna piccola descrizione accanto ai bottoni o all'inizio dellla font, come faccio??????

ho cliccato sulla A nera li nella barra STANDARD in alto, poi ho messo autosize off e ho cominciato a scrivere il caption ma il punto è che non posso andare a capo, come mando a capo??? come faccio??? non mi dite che devo fare una costruzione di barre x scrivere una sopra l'altra fino a farlo sembrare un unico testo, ho provato e x scrivere 1 pagina ho impiegato una giornata:( :mad: :mad:



4 quando compilo il programma se lo do al mio amico gli chiede delle dll, xchè???? come faccio a inserire le dll nel l'exe??? il punto è che non so neanche dove le peschi sul mio hd, dove si trovano????? dove configuro le dll del c++ in modo che selezioni quelle che deve usare e quelle che non deve usare??? se riuscissi a vedere quali dll utilizza potrei prenderle e metterle in uno zip da dare al mio amico x provare il prog:(


5 dove sono contenute le dll che utilizza il c++ builder 3.0 standard della borland?????? il percorso????


grazie mille ciao;)

pazzokramaz
25-08-2002, 23.57.07
help

pazzokramaz
26-08-2002, 17.34.02
nessuno sa aiutarmi? ma allora cosa usate c - -:D

ekerazha
26-08-2002, 22.48.18
che raffica di domande :eek:

1) Clicchi 2 volte sulla casellina onclick, ti crea una procedura associata all'evento OnClick.

Adesso io non conosco molto il C++, ma ho abbasnatza dimestichezza con i prodotti della Borland perchè uso il Delphi: se non sbaglio c'è il modo per fa compilare al C++ Builder anche linguaggio Delphi, solo che non so esattamente come si fa.

In Delphi per avviare un programma farei:

var
c: array[0..800] of Char;
begin
StrPCopy(c, NomeOPercorsoDelFile);
ShellExecute(Application.Handle, 'open', c, nil, nil, SW_NORMAL);
end;

... aggiungendo poi "ShellAPI" nelle "uses".

In C++ il begin diventa una parentesi graffa aperta e l'end una parentesi graffa chiusa, ma non ho la più pallida idea di come si dichiarino le variabili... se qualcuno del forum che conosce il C++ mi può dare un po' del suo supporto, forse in 2 riusciamo ad aiutare questo povero cristiano ;)


3) Mi sa proprio che devi creare delle righe di label, anche se c'era il modo di mandare a capo il testo mi sembra, solo che non mi ricordo come si fa :(

4-5) Per le DLL non ti so proprio dire, guarda che DLL ti chiede, e fai una ricerca sul tuo hard disk per vedere se le trovi, poi prendile e copiale nella stessa cartella del tuo programma.

pazzokramaz
26-08-2002, 23.29.11
x la prima risposta, si è vero , mi viene tipo notepad , ci provo a scrivere quello che mi hai detto poi ti faccio sapere;)

ma nel punto StrPCopy(c, NomeOPercorsoDelFile);
nel percorso ci devo mettere anche l'unita, anche se il file si trova nelle cartella del file exe in ese..????



accidenti:(

3) Mi sa proprio che devi creare delle righe di label, anche se c'era il modo di mandare a capo il testo mi sembra, solo che non mi ricordo come si fa


gulp devo creare 30 rettangolini:(

ciao grazie:)

pazzokramaz
27-08-2002, 01.40.38
uffa guarda cosa dice:

[C++Error] Unit1.cpp(22): Call to undefined function 'ShellExecute'.



uffa non va e poi cosa è uses??????:confused:

ho provato a usare questo

ShellExecute(Application->Handle,"open","<path completo del file>",NULL,NULL,SW_SHOWDEFAULT);

stessa cosa [C++Error] Unit1.cpp(22): Call to undefined function 'ShellExecute'.


è come se non conoscesse il comando shellexecute:eek:

ekerazha
27-08-2002, 16.12.09
Si, perchè devi dichiarare che stai usando le API di Windows. In Delphi basta aggiungere ShellAPI negli uses, in C++ credo ci sia qualcosa da includere.

pazzokramaz
27-08-2002, 16.49.04
aiuto ora prendo il cd del c++ e lo rompo:mad:
ma che schifo di programma:mad:

uffa quante cose bisogna fare x aprire un file cliccando su un bottone:(


mi suicido

ma dove sono tutti gli utenti che popolavano prima il form, i quali sapevano tutto sul c++??(S)

pazzokramaz
27-08-2002, 23.05.23
help:( :(

pazzokramaz
28-08-2002, 23.14.25
up:( :(

grazie

ekerazha
29-08-2002, 18.35.44
Bo, prova a cercare su Google "c++ api sample" e vedi se trovi qualche file di esempio, così vedi cosa devi includere...

pazzokramaz
30-08-2002, 17.07.40
provo a cercare poi vi faccio sapere:(

pazzokramaz
30-08-2002, 17.22.54
forse ho trovato qualcosa:)


/ fax_textDlg.cpp : implementation file
//

#include "stdafx.h"
#include "fax_text.h"

// include the api header file
#include "isfapi32.h"

#include "VerDlg.h"
#include "fax_textDlg.h"


#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif


/////////////////////////////////////////////////////////////////////////////
// Some usful FaxNow! defines

#define SEND_METHOD_NORMAL 1
#define SEND_METHOD_INTERNET 2
#define SEND_METHOD_EMAIL 3

#define SEND_PRIORITY_URGENT 0
#define SEND_PRIORITY_NORMAL 1
#define SEND_PRIORITY_OFFPEAK 2


COMBO_ITEMS g_SendMethod[] = {
{"Normal Fax", SEND_METHOD_NORMAL, TRUE},
{"Internet Fax", SEND_METHOD_INTERNET, FALSE},
{"E-mail Fax", SEND_METHOD_EMAIL, FALSE}
};

COMBO_ITEMS g_Priority[] = {
{"Normal", SEND_PRIORITY_NORMAL, TRUE},
{"Urgent", SEND_PRIORITY_URGENT, FALSE},
{"Off-Peak", SEND_PRIORITY_OFFPEAK, FALSE}
};

/////////////////////////////////////////////////////////////////////////////
// CFax_textDlg dialog

CFax_textDlg::CFax_textDlg(CWnd* pParent /*=NULL*/)
: CDialog(CFax_textDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CFax_textDlg)
m_sNumber = _T("");
m_sTextFile = _T("");
m_sCompany = _T("");
m_sName = _T("");
m_sJobTitle = _T("");
m_bUseCover = FALSE;
m_sCoverPath = _T("");
m_sCoverMessage = _T("");
m_sCoverSubject = _T("");
m_sAC = _T("");
m_sCC = _T("");
//}}AFX_DATA_INIT
// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}

/////////////////////////////////////////////////////////////////////////////
void CFax_textDlg::DoDataExchange(CDataExchange* pDX)
/////////////////////////////////////////////////////////////////////////////
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CFax_textDlg)
DDX_Text(pDX, IDC_EDT_NUMBER, m_sNumber);
DDX_Text(pDX, IDC_EDT_TEXT_FILE, m_sTextFile);
DDX_Text(pDX, IDC_EDT_DST_COMPANY, m_sCompany);
DDX_Text(pDX, IDC_EDT_DST_NAME, m_sName);
DDX_Text(pDX, IDC_EDT_JOB_TITLE, m_sJobTitle);
DDX_Check(pDX, IDC_CHK_USE_COVERPAGE, m_bUseCover);
DDX_Text(pDX, IDC_EDT_COVERPAGE, m_sCoverPath);
DDX_Text(pDX, IDC_EDT_MESSAGE, m_sCoverMessage);
DDX_Text(pDX, IDC_EDT_SUBJECT, m_sCoverSubject);
DDX_Text(pDX, IDC_EDT_AC, m_sAC);
DDX_Text(pDX, IDC_EDT_CC, m_sCC);
//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CFax_textDlg, CDialog)
//{{AFX_MSG_MAP(CFax_textDlg)
ON_BN_CLICKED(IDC_BTN_FAX, OnBtnFax)
ON_BN_CLICKED(IDC_CHK_USE_COVERPAGE, OnChkUseCoverpage)
ON_BN_CLICKED(IDC_BTN_BROWSE, OnBtnBrowse)
ON_BN_CLICKED(IDC_BTN_BROWSE_COVER, OnBtnBrowseCover)
ON_BN_CLICKED(IDC_BTN_ABOUT, OnBtnAbout)
ON_WM_CLOSE()
ON_CBN_SELCHANGE(IDC_CMB_SEND_METHOD, OnSelchangeCmbSendMethod)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CFax_textDlg message handlers

/////////////////////////////////////////////////////////////////////////////
BOOL CFax_textDlg::OnInitDialog()
/////////////////////////////////////////////////////////////////////////////
{
CDialog::OnInitDialog();

// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon

// Update the coverpage items...
OnChkUseCoverpage();


// set up the API to send the fax, we do this by creating a dispatch to
// the API's OLE server...
m_FNApi.CreateDispatch("FaxNow!.API");


// Add entries to the send method drop list, N.B. The values used in the
// list items data field corresponds with the values that needs to be passed
// to the API for the send method.
AddComboItems( (CComboBox*)GetDlgItem(IDC_CMB_SEND_METHOD),
g_SendMethod,
sizeof(g_SendMethod) / sizeof(COMBO_ITEMS));


// add entries to priority drop list box, N.B. The values used in the
// list items data field corresponds with the values that needs to be passed
// to the API for the priority.
AddComboItems( (CComboBox*)GetDlgItem(IDC_CMB_PRIORITY),
g_Priority,
sizeof(g_Priority) / sizeof(COMBO_ITEMS));


return TRUE; // return TRUE unless you set the focus to a control
}

/////////////////////////////////////////////////////////////////////////////
void CFax_textDlg::OnBtnFax()
/////////////////////////////////////////////////////////////////////////////
{
// get the control data into our member vars
UpdateData(TRUE);

if (!m_sTextFile.IsEmpty())
{

pazzokramaz
30-08-2002, 17.23.14
// set the fax addressing options
m_FNApi.SetDestNumber(m_sNumber);
m_FNApi.SetDestName(m_sName);
m_FNApi.SetDestCompany(m_sCompany);
m_FNApi.SetJobDescription(m_sJobTitle); // print job description to appear next to the fax.

// set faxes priority
CComboBox *pCombo = (CComboBox*)GetDlgItem(IDC_CMB_PRIORITY);
INT nIdx = pCombo->GetCurSel();
m_FNApi.SetPriority(pCombo->GetItemData(nIdx));

// set faxes send method
pCombo = (CComboBox*)GetDlgItem(IDC_CMB_SEND_METHOD);
nIdx = pCombo->GetCurSel();
INT nSendVia = pCombo->GetItemData(nIdx);
m_FNApi.SetSendMethod(nSendVia);

if (nSendVia == SEND_METHOD_INTERNET) // internet fax
{
m_FNApi.SetDestAreaCode(m_sAC);
m_FNApi.SetDestCountryCode(m_sCC);
}
else if (nSendVia == SEND_METHOD_EMAIL) // e-mail
{
m_FNApi.SetDestEmailAddress(m_sNumber);
}

// update the options for coverpages
m_FNApi.SetUseCoverPage(m_bUseCover);
if (m_bUseCover)
{
if (!m_sCoverPath.IsEmpty())
{
m_FNApi.SetCoverPageFile(m_sCoverPath);
m_FNApi.SetSubject(m_sCoverSubject);
m_FNApi.SetCoverNotes(m_sCoverMessage);
}
else
{
// cannot use coverpage if one was not specified.
m_FNApi.SetUseCoverPage(FALSE);
AfxMessageBox(IDS_NO_COVERPAGE);
}
}

// set the RedRock Fax printer driver to the default
m_FNApi.SetRedRockDefault();

// perform the print operation
ShellExecute(m_hWnd, "print", m_sTextFile, NULL, NULL, SW_SHOW);

// wait for the printer driver to complete the print operation
m_FNApi.WaitForPrintComplete(0, 10);

// restore the old default printer driver
m_FNApi.RestoreDefault();
}
else
AfxMessageBox(IDS_NO_FILE);
}

/////////////////////////////////////////////////////////////////////////////
void CFax_textDlg::OnChkUseCoverpage()
/////////////////////////////////////////////////////////////////////////////
{
// enable the coverpage dialog controls based upon the state of the use
// coverpage checkbox

// first find out what the state is we should be setting
BOOL bUseCover = ((CButton*)GetDlgItem(IDC_CHK_USE_COVERPAGE))->GetCheck();

// update the controls using the desired state.
GetDlgItem(IDC_EDT_COVERPAGE)->EnableWindow(bUseCover);
GetDlgItem(IDC_BTN_BROWSE_COVER)->EnableWindow(bUseCover);
GetDlgItem(IDC_EDT_SUBJECT)->EnableWindow(bUseCover);
GetDlgItem(IDC_EDT_MESSAGE)->EnableWindow(bUseCover);

}

/////////////////////////////////////////////////////////////////////////////
void CFax_textDlg::OnBtnBrowse()
/////////////////////////////////////////////////////////////////////////////
{
// allow the selection of the file to ShellExecute using a common windows FileDialog
UpdateData(TRUE);

CFileDialog dlg(TRUE, NULL, m_sTextFile, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT | OFN_FILEMUSTEXIST, "All Files (*.*)|*.*||");
if (IDOK == dlg.DoModal())
{
// user selected a file, so update the edit box accordingly
m_sTextFile = dlg.m_ofn.lpstrFile;
UpdateData(FALSE);
}
}

/////////////////////////////////////////////////////////////////////////////
void CFax_textDlg::OnBtnBrowseCover()
/////////////////////////////////////////////////////////////////////////////
{
// allow the selection of the cover file using a common windows FileDialog
UpdateData(TRUE);

CFileDialog dlg(TRUE, NULL, m_sCoverPath, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT | OFN_FILEMUSTEXIST, "Coverpage files(*.cvs)|*.cvs||");
if (IDOK == dlg.DoModal())
{
// user selected a file, so update the edit box accordingly
m_sCoverPath = dlg.m_ofn.lpstrFile;
UpdateData(FALSE);
}
}

/////////////////////////////////////////////////////////////////////////////
void CFax_textDlg::OnBtnAbout()
/////////////////////////////////////////////////////////////////////////////
{
// display a dialog that shows version information of FaxNow!
CVersionDlg dlg;

CString sVerInfo;
sVerInfo.Format("FaxNow! API reports FaxNow! version %d.%d, build %d.",
m_FNApi.GetVersionMajorNumber(),
m_FNApi.GetVersionMinorNumber(),
m_FNApi.GetVersionBuildNumber());

dlg.m_sVersionInfo = sVerInfo;
dlg.DoModal();
}

/////////////////////////////////////////////////////////////////////////////
void CFax_textDlg::OnClose()
/////////////////////////////////////////////////////////////////////////////
{
// release the FaxNow! dispatch
m_FNApi.ReleaseDispatch();
m_FNApi.DetachDispatch();

CDialog::OnClose();
}

/////////////////////////////////////////////////////////////////////////////
void CFax_textDlg::OnSelchangeCmbSendMethod()
/////////////////////////////////////////////////////////////////////////////
{
// get the current send via method and gray some of the edit boxes accordingly
CComboBox* pSendVia = (CComboBox*)GetDlgItem(IDC_CMB_SEND_METHOD);
INT nIdx = pSendVia->GetCurSel();
if (nIdx != CB_ERR)
{
BOOL bEnable = (SEND_METHOD_INTERNET == pSendVia->GetItemData(nIdx));
GetDlgItem(IDC_EDT_CC)->EnableWindow(bEnable);
GetDlgItem(IDC_EDT_AC)->EnableWindow(bEnable);
}
}

/////////////////////////////////////////////////////////////////////////////
void CFax_textDlg::AddComboItems(CComboBox *pCombo, COMBO_ITEMS *pItems, DWORD dwCount)
// add entries to a combo box, also sets the default selection also.
/////////////////////////////////////////////////////////////////////////////
{
ASSERT(pCombo);
ASSERT(dwCount);

for (DWORD dwLoop = 0; dwLoop < dwCount; dwLoop++)
{
INT nIdx = pCombo->AddString(pItems[dwLoop].szText);
pCombo->SetItemData(nIdx, pItems[dwLoop].dwData);
if (pItems[dwLoop].bDefaultItem)
pCombo->SetCurSel(nIdx);
}
}

/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////



forse devo mettere questa frase all'inizio del file:
#include "isfapi32.h"


io provo cmq
posso mettere tanti shellex.. in colonna x fare aprire tanti file???


come faccio x mettere un determinato spazio di tempo tra gli shellex.....????????


tipo, prima mi apre S.....1 poi dopo 1 secondo mi apre S2..


grazie ciao

ekerazha
30-08-2002, 18.57.32
si, credo tu debba inserire proprio #include "isfapi32.h" ... per l'intervallo di un secondo puoi sfruttare un timer...

pazzokramaz
30-08-2002, 21.07.15
ho provato ad inserirlo ma va tutto in errore e poi mi serve l'apposito file che ha lo stesso nome....

nada non funziona:(

facciamo così io posto quello che ho nel c++ magari confrontatelo con il vostro x vedere se mi manca qualche libreria da mettere:(



//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::FormCreate(TObject *Sender)
{

}
//---------------------------------------------------------------------------

AIUTOOOOOOOOO:( :( :(

ekerazha
30-08-2002, 23.11.17
La mia è solo un ipotesi fantascientifica, comunque prova ad inserire:

#include <shellapi.h>

pazzokramaz
01-09-2002, 00.40.51
ho provato poi ti faccio sapere? :)

grazie x l'aiuto:O


ma hai provato i miei programmi???:D
fai un salto alla mia pag web

\cancellami\http|//miomatrix*interfree*it/\cancellami\

decripting:

\cancellami\ = cancella questa scritta
| = :
*=.

ora puoi accedere alla mio pag web


ps così facendo non credo di aver postato la pagina web


:eek: :D :eek: :D

ekerazha
01-09-2002, 23.04.49
Originariamente inviato da pazzokramaz
ho provato poi ti faccio sapere? :)

grazie x l'aiuto:O


ma hai provato i miei programmi???:D


Io non sono un patico dei tweakkaggi, sono convinto che se il sistema operativo è della Microsoft, la Microsoft sa benissimo come impostare i valori del proprio "programma", senza bisogno di fare tante modifiche... cmq darò un'occhiata ;)

P.S.
Ha funzionato?