Copyright: Copyright (C)1995 bytes & letters


Contents
FormEX-Ctl3D / VBX

Welcome to FormEX-Ctl3D/VBX, Version 1.1 !!!

Copyright © 1995 by

bytes & letters
software technology hilger
postfach 16 27

66716 Saarlouis, germany

 Shareware, Registration and more ...

 SmartHelP

Controls:

 The Ctl3D Control

 The FormEX Control

 The Panel Control

 The MultiButton Control

Important Information !!!

If you want to unload the BLFX10.VBX file from your project at design time, all forms must be closed before. If not so, you´ll earn a GPF (general protection fault).


 The Ctl3D Control

 Properties

The Ctl3D control is a replacement for all additional 3D controls, which doesn´t do anything else than adding a 3D effect to the Visual Basic standard controls. It also replaces the CTL3D.DLL from MicroSoft and some 3D controls of the VB Pro Edition.

Ctl3D supports the following standard controls with automatic 3D effects:

Form (Borderstyle must be 2 or 3)  (*)
Dialogs and Message Boxes (*)
TextBox
GroupBox (*)
CheckBox (*)
OptionButton (*)
DropDown & Drive-DropDown
ListBox & File/Directory ListBox
Data Control
PictureBox

Furthermore, one 3rd party custom control is supported:

APEX TrueGrid

(* The style of the controls which are marked with an asterisk are customizeable.)

Another nice feature is that you can change the Value property of a CheckBox or OptionButton at runtime, when you click with the right mouse button on it.

All these features are available after you´ve put one single Ctl3D control onto the main form in your application. All  properties of this control are task global, because of that, a second control would have no effect.

Important Information !!!

If you want to unload the BLFX10.VBX file from your project at design time, all forms must be closed before. If not so, you´ll earn a GPF (general protection fault).


Ctl3D Properties

Custom Properties

About

Brush

CheckBoxCaptionStyle

CheckBoxStyle

Form3D

FormCaptionRaised

FrameBorderOutline

FrameBorderStyle

FrameCaptionInside

FrameCaptionStyle

OptionCaptionStyle

OptionStyle

Standard Properties

Height

Left

Name

Tag

Top

Width


About
About Property

Usage	Available only at design time.

Description	Use this property to check the controls version at design time. Click on the ellipse in the properties window to bring up information about the control.


Brush
Brush Property

Usage	ctl.Brush = integervalue

Read/Write at run time.
Read/Write at design time.

Description	The Brush property may be a value between 0 and 20. This property is used to specify the background brush of the Panel control or the brush of the form with the FormEX control.


CheckBoxCaptionStyle
CheckBoxCaptionStyle Property

Usage	ctl.CheckBoxCaptionStyle = integervalue

Read/Write at run time.
Read/Write at design time.

Property is task global.

Description	The CheckBoxCaptionStyle specifies the look of all standard CheckBoxes and may have a value between 0 and 5.

0 - Flat
1 - Inset
2 - Raised
3 - Inset heavy
4 - Raised heavy
5 - Shadowed


CheckBoxStyle
CheckBoxStyle Property

Usage	ctl.CheckBoxStyle = integervalue

Read/Write at run time.
Read/Write at design time.

Property is task global.

Description	Specifies the bitmap style of all CheckBoxs. The Ctl3D control supports three different styles.

0 - Standard Ctl3D
1 - Blue Box
2 - Red Button


Form3D
Form3D Property

Usage	ctl.Form3D = integervalue

Read/Write at run time.
Read/Write at design time.

Property is task global.

Description	This properties determines the forms which window borders will be drawn in 3D style. There are three different possibilities:

0 - None
1 - Windows with fixed double borders (dialog style)
2 - Double fixed borders and normal, resizeable borders.


FormCaptionRaised

Usage	ctl.FormCaptionRaised = boolean

Read/Write at run time.
Read/Write at design time.

Property is task global.

Description	If you want to have a raised caption in dialog windows and forms with a fixed double borders, then set this value to True.


FrameBorderOutline
FrameBorderOutline Property

Usage	ctl.FrameBorderOutline = boolean

Read/Write at run time.
Read/Write at design time.

Property is task global.

Description	If you want to have a black border around all GroupBox controls, set this value to True.


FrameBorderStyle
FrameBorderStyle Property

Usage	ctl.FrameBorderStyle = integervalue

Read/Write at run time.
Read/Write at design time.

Property is task global.

Description	Specifies the frame-style of all GroupBoxes in your application. The Ctl3D control supports 6 different styles.


FrameCaptionInside
FrameCaptionInside Property

Usage	ctl.FrameCaptionInside = boolean

Read/Write at run time.
Read/Write at design time.

Property is task global.

Description	If you want to have the title of all GroupBoxes inside the frame, set this property to True.


FrameCaptionStyle
FrameCaptionStyle Property

Usage	ctl.FrameCaptionStyle = integervalue

Read/Write at run time.
Read/Write at design time.

Property is task global.

Description	Specifies the style of the title in each GroupBox of your project. The Ctl3D control supports six different caption styles:

0 - Flat
1 - Inset
2 - Raised
3 - Inset heavy
4 - Raised heavy
5 - Shadowed


OptionCaptionStyle
OptionCaptionStyle Property

Usage	ctl.OptionCaptionStyle = integervalue

Read/Write at run time.
Read/Write at design time.

Property is task global.

Description	The OptionCaptionStyle specifies the title look of standard OptionButtons and may have a value between 0 and 5.

0 - Flat
1 - Inset
2 - Raised
3 - Inset heavy
4 - Raised heavy
5 - Shadowed


OptionStyle
OptionStyle Property

Usage	ctl.OptionStyle = integervalue

Read/Write at run time.
Read/Write at design time.

Property is task global.

Description	Specifies the bitmap style of all OptionButtons. The Ctl3D control supports three different styles:

0 - Standard Ctl3D
1 - Blue Box
2 - Red Button


 The FormEX Control

 Properties

The FormEX control can be used to:

-	fill the background of a form with one of twenty possible brushes

-	send/receive messages to/in forms

-	specify the position of a form (resolution independend)

-	keep a form always on the top of the screen

-	popup a modeless form from a modal form (normally not possible). This is useful, if you want to show a »floating message box« while you are printing or doing something else while the user must wait.


FormEX Properties

Custom Properties

About

Brush

Cancel

FormPos

FormShow

lParam

Msg

sParam

wParam

Events

Msg

Standard Properties

Height

Left

Name

Tag

Top

Width


Cancel
Cancel Property

Usage	ctl.Cancel = boolean

Read/Write at run time.
Read/Write at design time.

Description	This property is used to return a state value, after a form received a message. The property may be set directly but also within the Msg-Event.


FormPos
FormPos Property

Usage	ctl.FormPos = integervalue

Read/Write at run time.
Read/Write at design time.

Description	Specifies the position of a form when it´s about to be shown. Ten positions are available:

0 - Default (uses left, top property values)
1 - Left top
2 - Middle top
3 - Right top
4 - Left center
5 - Middle center
6 - Right center
7 - Left bottom
8 - Middle bottom
9 - Right bottom


FormShow

Usage	ctl.FormShow = integervalue

Read/Write at run time.
Read/Write at design time.

Description	This property is useful, if you want to show a »floating message box« while you are printing or if you want to have a topmost window.

The form is shown immediately after this property has been set, no matter if it is already displayed or not.

Possible values are:

0 - To show the form modeless
1 - To show it modeless topmost


lParam
lParam Property

Usage	ctl.lParam = long integer value

Read/Write at run time.
Read/Write at design time.

Description	This property specifies the long integer message value.

See Msg property and Msg event for more informations.


Msg Property

Usage	ctl.Msg = integer value

Read/Write at run time.
Not available at design time.

Description	This property is used to send a message to the form which owns the FormEX control. After this property has been set, the Msg event occurs in the dependend form.

Example

form!fex1.wParam = 1

form!fex1.lParam = 4000000

form!fex1.sParam = Test Message string

form!fex1.Msg = 0

if form!fex1.cancel then

   The event procedure has returned cancel!

end if


Msg Event

Syntax	Msg ( msg%, wParam%, lParam%, sParam$, Cancel% )

Description	This event occurs after the Msg property has been set.

It´s useful to communicate between forms.

Example

sub fex1_Msg( msg%, wParam%, lParam%, sParam$, Cancel% )

  MsgBox I received a message!  & sParam$

    Cancel=True

end if


sParam
sParam Property

Usage	ctl.sParam = string value

Read/Write at run time.
Read/Write at design time.

Description	This property specifies the string message value.

See Msg property and Msg event for more informations.


wParam
wParam Property

Usage	ctl.lParam = integer value

Read/Write at run time.
Read/Write at design time.

Description	This property specifies the integer message value.

See Msg property and Msg event for more informations.


 The Panel Control

At first, the Panel control is nothing else than a simple container control.

Second, the Panel control may be used to create tabbed dialogs in combination with the MultiButton control.

Custom Properties

About

AutoSizeChild

BevelInner

BevelOuter

BevelSpacing

BevelWidth

BorderSpacing

BorderStyle

BorderWidth

Brush

TabID

Standard Properties

Align

BackColor

DragIcon

DragMode

Enabled

Height

Index

Left

Name

Tag

Top

Visible

Width


AutoSizeChild
AutoSizeChild Property

Usage	ctl.AutoSizeChild = boolean

Read/Write at run time.
Read/Write at design time.

Description	If this property is set to True, the Panel control resizes it´s child automatically each time the panels extent has changed.


BevelInner
BevelInner Property

Usage	ctl.BevelInner = integer value

Read/Write at run time.
Read/Write at design time.

Description	This property specifies one of the following styles, for the inner bevel:

0 - None
1 - Black
2 - White
3 - Gray
4 - Light Gray
5 - Inset (Gray/White)
6 - Inset (Black/Light Gray)
7 - Inset (Gray/Black)
8 - Raised (White/Gray)
9 - Raised (Light Gray/Black)
10 - Raised (Black/Gray)


BevelOuter
BevelOuter Property

Usage	ctl.BevelOuter = integer value

Read/Write at run time.
Read/Write at design time.

Description	This property specifies one of the following styles, for the outer bevel:

0 - None
1 - Black
2 - White
3 - Gray
4 - Light Gray
5 - Inset (Gray/White)
6 - Inset (Black/Light Gray)
7 - Inset (Gray/Black)
8 - Raised (White/Gray)
9 - Raised (Light Gray/Black)
10 - Raised (Black/Gray)


BevelSpacing
BevelSpacing Property

Usage	ctl.BevelSpacing = integer value

Read/Write at run time.
Read/Write at design time.

Description	Specifies the space (in pixels) between the outer and the inner bevel.


BevelWidth
BevelWidth Property

Usage	ctl.BevelWidth = integer value

Read/Write at run time.
Read/Write at design time.

Description	Specifies the width (in pixels) of the outer and the inner bevel.

In the case of a MultiButton control, it specifies the width of it´s inner frame.


BorderSpacing
BorderSpacing Property

Usage	ctl.BorderSpacing = integer value

Read/Write at run time.
Read/Write at design time.

Description	Specifies the space (in pixels) between the outer border and the outer bevel.


BorderStyle
BorderStyle Property

Usage	ctl.BorderStyle = integer value

Read/Write at run time.
Read/Write at design time.

Description	This property specifies one of the following styles, for the outer border:

0 - None
1 - Black
2 - White
3 - Gray
4 - Light Gray
5 - Inset (Gray/White)
6 - Inset (Black/Light Gray)
7 - Inset (Gray/Black)
8 - Raised (White/Gray)
9 - Raised (Light Gray/Black)
10 - Raised (Black/Gray)


BorderWidth
BorderWidth Property

Usage	ctl.BorderWidth = integer value

Read/Write at run time.
Read/Write at design time.

Description	Specifies the width (in pixels) of the outer border.


TabID

Usage	ctl.TabID = integer value

Read/Write at run time.
Read/Write at design time.

Description	Specifies the ID of a MutiButton control and the ID of a Panel Control. If a MultiButton and a Panel have the same ID, they are connected and act like a tabbed dialog control. In other words, if you click on the MultiButton, the Panel will be taken to the front and the first control within the Panel will receive the input focus. In fact it´s nothing else than a single group tabbed dialog.

At design time you can use the right mouse button to bring the connected Panel to the front.


 The MultiButton Control

 Properties

The MultiButton control is one of the most powerful controls of this collection.

You can do a lot of things with it. In fact it is able to replace:

-	the VB-PictureButton control

-	VB-GroupPush control

-	an extra control for tabbed dialogs

-	an extra control for toolbars

-	and .. with a little work, a Statusbar control (see example)

Last not least it is much more flexible than the most of the controls in this enumeration. The MultiButton control is able to display bitmaps or icons. The bitmap may consist of up to three states: Up, Disabled and Down - can, but need not. One bitmap is enough, the rest can be displayed automatically.

The MultiButton control is a ShortCut & Click control, it never has the focus. In our opinion, the focus is absolutely unnecessary for a control like this, it just would confuse the user.


MultiButton Properties

Custom Properties

About

BevelWidth

BitMap

BitMapDown

BitMapType

CaptionStyle

Effect

Group

Outline

RoundedCorners

TabID

Value

Standard Properties

Alignment

Caption

DragIcon

DragMode

Enabled

FontBold

FontItalic

FontName

FontSize

Height

Index

Left

Name

Tag

Top

Visible

Width


BitMap
BitMap Property

Usage	ctl.BitMap = LoadPicture(nPicture$)

Read/Write at run time.
Read/Write at design time.

Description	Specifies the bitmap or the Icon which will be displayed inside the button.

Because the MultiButton can be a multistate button (up, disabled, down), the bitmap-file may contain up to three pictures; one for the up state, one for the disabled state and one for the down state. They must be ordered from left to right and they must have the same size.

A three state bitmap would look like this:

But - once again - one state is enough, because the other states can be drawn automatically, also if your bitmap contains colors like red, green or blue.

In the case of an icon, the states disabled and down will be drawn automatically.


BitmapDown
BitmapDown Property

Usage	ctl.BitMapDown = integer expression

Read/Write at run time.
Read/Write at design time.

Description	If your bitmap is a one-state bitmap or if it is an icon, you may choose one of two styles for the bitmap if the button is down.

0 - Unchanged
1 - Dithered


BitmapType
BitmapType Property

Usage	ctl.BitMapType = integer expression

Read/Write at run time.
Read/Write at design time.

Description	Specifies how many styles your bitmap contains.

0 - Only Up
1 - Up and Disabled
2 - Up, Disabled and Down


CaptionStyle
CaptionStyle Property

Usage	ctl.CaptionStyle = integer expression

Read/Write at run time.
Read/Write at design time.

Description	Specifies the style of the button´s caption. The MultiButton control supports six different caption styles:

0 - Flat
1 - Inset
2 - Raised
3 - Inset heavy
4 - Raised heavy
5 - Shadowed


Effect
Effect Property

Usage	ctl.Effect = integer expression

Read/Write at run time.
Read/Write at design time.

Description	This property specifies the visual effect of the button. It´s useful if you use the MultiButton control as a part of a toolbar. Two effects are possible:

0 - Normal
1 - Heavy


Group
Group Property

Usage	ctl.Group = integer expression

Read only at run time.
Read/Write at design time.

Description	Specifies the group of the MultiButton control. This property is used to group multiple buttons and to put them into a dependence.

There are five group ranges which have different results.

Group 0 (standard value) is used for simple PushButtons, each button is independend from the others.

Groupvalues 1-99 are used for simple multistate buttons, which means, that all the buttons may be down or up.

Groupvalues 100-199 mean the same as above, with one exception: At least one button must be down.

Groupvalues 200-299 are used for exclusive state buttons. In other words, only one button can be down in a group of buttons with the same group-value, but all may be up

Groupvalues 300-399 mean the same as above, with one exception: All up is not allowed.


Outline
Outline Property

Usage	ctl.Outline = boolean

Read/Write at run time.
Read/Write at design time.

Description	If you want to have a black border around the button, set this property value to True.


RoundedCorners
RoundedCorners Property

Usage	ctl.RoundedCorners = boolean

Read/Write at run time.
Read/Write at design time.

Description	If the outline border of the around the button should have rounded corners, set this value to True.


Value
Value Property

Usage	ctl.Value = boolean

Read/Write at run time.
Read/Write at design time.

Description	Use this property to set or to read the current state of the button.

At design time, this property may also be changed if you move the cursor onto to control and press the right mouse button. This works only with multistate buttons (group<>0) or buttons which are connected to a Panel Control (TabID<>0)

Setting this value to True will be followed by the Click-event.


Shareware Version

FormEX-Ctl3D/VBX is Copyright (C)1995 by bytes & letters, software technology hilger.

At first: If you have problems with this tool or if you found a bug - please, please inform us about!!!

That´s the only way to make a bug-free product, and it´s also your advantage; because, if you found a bug that makes it impossible to continue with your work, you´ll be registered free. In other words: You save the registration fee. Our e-mail adress is:

CompuServe-ID: 100275, 3554

The shareware version is limited to one task at design time and has lots of messages. But it´s good enough to evaluate FormEX-Ctl3D/VBX and to decide if it´s good or bad for you. If you are going to ship or sell your product with FormEX-Ctl3D/VBX controls inside, you must register it first. You have no right to do this if you are not a registered user.

There are two possibilities to do this:

Via CompuServe

GO SWREG

The program number is 4543. You also can find it with the keywords »FORMEX, 4in1, CTL3D«. The registration fee is US $35. After we have received your registration, you´ll get a User ID and a Serial Number. Start REG.EXE and type in the values we´ve sent. After that, there will be no limits and no messages anymore.

By Mail

Our adress is:

bytes & letters
software technology hilger
Postfach 16 27
66716 Saarlouis
Germany

If you are from anywhere in the world ....

please enclose a cheque over US$43 (it´s more than $35, we know, but that´s because of the bank fees, about $8). A few days later, you´ll get the registration number and ID by fax or mail. However you want it.

Thanx a lot.

Wenn Sie aus Deutschland sind, ...

dann senden Sie bitte Bargeld oder einen Scheck in Höhe von DM 56,-- an unsere Postadresse. In diesem Fall erhalten Sie eine Registrierungsbestätigung, bzw. eine Quittung mit ausgewiesener MwSt. per Post oder per Fax. Ganz wie Sie wünschen.

Herzlichen Dank.

Dirk Hilger


Registration

To
bytes & letters
software technology hilger
Postfach 1627

66716 Saarlouis
Germany

 Registering FormEX-Ctl3D/VBX, Version 1.00.000

Please send a registration ID and a serial number to:

Title 	_____________________________________

Name	_____________________________________

Street	_____________________________________

City/Zip	_____________________________________

State, Country	_____________________________________

Phone	___________________________

Fax	___________________________

E-Mail	___________________________

I´ve enclosed:

(  )  Cheque, No.	___________________________

(  )  Cash

Sincerely	________________________________


SmartHelP

This helpfile was created with SmartHelP One.

SmartHelP is a really simple to use Word 6 utility and  was designed for all those, who want to have a simple but useful help in their applications.

If you are planning to built an interactive-multimedia-macro-power-user-confusion help, SmartHelP is really not the right thing for you. But if you say, »I´ve got an pretty good application and I want to provide help to my users when they press the <F1> key ... «; if you do not want spend weeks on it and if you want to write your manual and your help at the same time, maybe SmartHelP is the best what can happen to you.

SmartHelP has Visual Basic Specials: It can update all the HelpContextID´s of all forms in your project automatically. So you need not to worry about the rightness of your ID´s, they´re always corrected by SmartHelP.

Try it, it´s really easy. You must know nothing about the help compiler if you want to built helpfiles, you just need SmartHelP.

SmartHelP can be found in several Microsoft forums on CompuServe. Search for SMARTHELP or SMTHLP.ZIP.