Mega Code Archive

 
Categories / Delphi / Examples
 

Basicstr

I missed this thread the first time around. Sorry. I am not a VB expert - as a matter of fact, I have never used the language. However, I recently needed to interface to a VBX from Delphi, and experienced some mild annoyance with how it all works. But, the following summarizes my success: Given: The function I am interfacing to has the following declaration: Declare Function SpreadColNumberToLetter Lib "Spread20.VBX" (ByVal cn as Long) as String That translates to the delphi external reference shown below: SpreadColNumberToLetter: function(const lHeaderNumber : LongInt): TBasicString; Ahh you say - What is TBasicString? It is declared in the VBXCTRL unit as follows: TBasicString = ^Word; To encapsulate the functionality, I wrote the following function: function TC_SpreadSheet.ColNumberToLetter(const headerNum: LongInt): String; var str: TBasicString; begin str := SpreadColNumberToLetter(headerNum); result := BStrPas(str); { BStrPas defined in VBXCTRL } end; The companion function to BStrPas is BStrPCopy. BStrPCopy receives a Pascal string, and converts it to a TBasicString. The two function prototypes are shown below (note - these were lifted from the DELPHI\DOC\VBXCTRL.INT file): function BStrPas(BasicStr: TBasicString): string; function BStrPCopy(const Str: string): TBasicString; I Hope this helps...