Thanks for you willingness to contribute, to help others. May I suggest that you use the wiki for your documentation?
http://www.crosswire.org/ucgi-bin/twiki/view/Swordwin/WebHome It allows you to update your docs without loosing older content (version control) and does also allow for collaboration. Martin Am Freitag, 9. April 2004 17:02 schrieb Jonathan Mickelson: > Yes, I'm using the SWORD API. I'm using standard sword-api calls; very > simple when you're back down to the basics. > > My objective publicly is to become a helpful, contributing member of > Crosswire and the sword project. > At the moment, this means developing some simple working examples of > sword-api in use that can be employed by interested parties with various > levels of programming skills. I want the examples to show the > minimalist approach to having a working program that can then be > enhanced, hacked, etc. Having something working in your hands is very > satisfying. > > My personal objectives, for my inhouse program (PlowShare), is to > develop my dream bible tool considering my own goals and desires and not > for public release (too many support issues/questions/complaints for a > personal tool). When some UI feature works real well, I'll add it to > the list of tips and tricks. I greatly prefer CLX over VCL primarily > because CLX has an HTML widget that has made that first screen shot > possible with 10-15 of coding (once the development environment is setup > properly). > > The screen shot was to garner interest in the Sword API and this > "tutorial". > > The rest of this text is from a previous posting. My preference is too > have some other develops from scratch also, compare notes and make sure > we have all the information corrected and documented for others. So, I > will help you. > ----------- > This thread will archive the neccesary steps to compile your own Sword > Project from scratch using BCB 6.0 > > Later, this material will be consolidated into a tutorial. > > Create a new Borland BCB 6 project > [I am building a CLX project though either CLX or VCL (standard) may be > used. ] > > 1) modify the Project Options dialog box. > TAB "Directories/Conditional" > > Include Path = > $(BCB)\include > $(BCB)\include > ..\..\sword\include > ..\..\icu-sword\source\common > ..\..\icu-sword\source\i18n > > Library Path = > $(BCB)\lib\obj > $(BCB)\lib > ..\..\icu-sword\as_is\borland > ..\..\sword\lib > > Conditional Defines (VERY IMPORTANT) > _DEBUG > _ICU_ > _ICUSWORD_ > _USE_OLD_RW_STL > U_HAVE_PLACEMENT_NEW=0 > > 2) here is my simple program to display module names and descriptions on > a form. > //------------- > // download and install BibleCS 1.5.6. This creates all the proper > production directories. > // download some bible modules > // test that BibleCS is working properly > //------------- > // Add a memo component to the form (it's under the "Standard" tab) > // Create Form Events for OnDestroy and OnShow > // judiciously use the code below putting things in their proper place > // compile and run > // the form should appear with a list of module names and descriptions > //------------- > #include <clx.h> // used for CLX projects > #pragma hdrstop > > #include "MySampleProject.h" > #include <string> > #include <swmgr.h> > #include <swconfig.h> > #include <markupfiltmgr.h> > > #define WM_VERSE (WM_APP + 1995) > extern AnsiString startVerse; > > using namespace sword; > //------------------------------------------------------------------------- >-- > > //#pragma package(smart_init) > #pragma resource "*.xfm" > > SWConfig *userPrefs; > SWMgr *mainmgr; > SWConfig *optionsconf; > > > TForm1 *Form1; > //------------------------------------------------------------------------- >-- > > __fastcall TForm1::TForm1(TComponent* Owner) > > : TForm(Owner) > > { > } > //------------------------------------------------------------------------- >-- > > void __fastcall TForm1::FormDestroy(TObject *Sender) > { > if (mainmgr) > delete mainmgr; > if (userPrefs) > { > userPrefs->Save(); > delete userPrefs; > } > if (optionsconf) > delete optionsconf; > } > //------------------------------------------------------------------------- >-- > > void __fastcall TForm1::FormShow(TObject *Sender) > { > // MyLibrary = new SWMgr(0, 0, true, new > MarkupFilterMgr(FMT_HTMLHREF, ENC_HTML)); > > ModMap::iterator it; > SWModule *MyMod; > > optionsconf = new SWConfig("./options.conf"); > > try > { > mainmgr = new SWMgr(0, 0, false, new MarkupFilterMgr(FMT_RTF, > ENC_RTF)); > userPrefs = 0; > mainmgr->Load(); > > userPrefs = new SWConfig("./userprefs.conf"); > if ((mainmgr->config) && (userPrefs)) > (*(mainmgr->config)) += (*userPrefs); > } > catch (...) > { > Application->Terminate(); > } > > if (!mainmgr->config) > Application->Terminate(); > > for (it = mainmgr->Modules.begin(); it != mainmgr->Modules.end(); it++) > { > MyMod = (*it).second; > if (!strcmp((*it).second->Type(), "Biblical Texts")) > { > Memo1->Lines->Append(MyMod->Name()); > Memo1->Lines->Append(MyMod->Description()); > } > } > } > //---------------- > // End of code > //---------------- > > > > _______________________________________________ > sword-devel mailing list > [EMAIL PROTECTED] > http://www.crosswire.org/mailman/listinfo/sword-devel _______________________________________________ sword-devel mailing list [EMAIL PROTECTED] http://www.crosswire.org/mailman/listinfo/sword-devel
