SpiritualMadMan 39 Junior Poster in Training

The documentation for the textEdited signal shows the use of a required parameter const QString&

void textEdited (const QString&)

I am unable to get the Signal to work. Perhaps because I do not understand how to use the "const QString&"

Is this a literal copy into the parameter or is it created from something else first?

I have a similar problem with

void itemActivated (QListWidgetItem *)

where it appears they are using a pointer to a QListWidgetItem

Coming from a VB6 background where C++ constructs do not exist.

I could really use some help with this.

Thanks!

SpiritualMadMan 39 Junior Poster in Training

This code works for a range of "Button_xx"

Selection=[]
    for i in range(16):
        Selection.append(getattr(tcDict.get("form"), "Button_%d" %(i+1)))
        Selection[i].setEnabled(False)

What had me "stumped" was I forgot that the QT calls are "Functions" to which you "pass" a parameter not "set" a parameter.

that is: Selection.setEnabled = False will not work

My VB6 days getting in the way... :)

Gribouillis commented: Thanks for sharing. +13
SpiritualMadMan 39 Junior Poster in Training

I have a form from which I can launch various Test Modules.

The Form has 16 PushButtons, one for each of the possible Modules.

I need to disable Button_2 through Button_11 until the Modules that are connected to Button_1 and Button_0 are succesfully completed.

The Buttons are on a pyQT mainwindow, tabbed form which is referenced by a class titled, "tcmainform".

tcmainform is in turn instansiated? as simply, "form"

Again, what I want to do is disable/enabled buttons in the main code stream.

Is there a way to do it.

I would post my code for your review but NMCI will not allow any of my development stuff on their network which is the only way I can view/post on the web while at work.

Thanks!
Mike Sr.

SpiritualMadMan 39 Junior Poster in Training

OK, so there are no "Experts" on pyQT4 here...

Does anyone on this forum know how to use pyQT at all?

SpiritualMadMan 39 Junior Poster in Training

After a month of study on wxPython the vender finally admitted they were actually using pyQT...

There are enough differences to make pyQT a *real* pain.

So, I was wondering if there were *any* people on this Forum who were fairly well versed on pyQT?

SpiritualMadMan 39 Junior Poster in Training

Not so much a "pat on the back" as knowing if I am an effective communicator...

If there is no feedback then "we" don't know if the person gave up on us, got their answer, or needs further clarification.

SpiritualMadMan 39 Junior Poster in Training

I have begun to wonder whether frequenting this Board and trying to answer pleas for assistance is worthwhile...

I have posted several working solutions and there is no evidence that the requestor has even looked at them...

If a "possible" solution isn't what you were looking for at least clarify what you are looking for so that we can continue to post "possible" solutions and improve our responses.

As for me, no feedback means no encouragment to continue posting...

SpiritualMadMan 39 Junior Poster in Training

I have to wonder whether it is worth posting "possible" solutions or not as I have not gotten any feed back on my posts???

SpiritualMadMan 39 Junior Poster in Training

To get viewit to work with GIF's comment out Get_BMP_Info(uFileName As String) in the Main Module.

And, add ;*.gif as shown below...

Private Sub picInput_dblClick()
FN.cmboExts = "*.bmp; *.gif"

on the main form

SpiritualMadMan 39 Junior Poster in Training

You can use an Image Control or Picture Box to load and display a .GIF file (among others)

An Image Control allows stretching the .GIF to fit.

See the attached .zip for some ways to "play" with Images.

What "ViewIt" does is allows you to open a supported graphics file, transfer a part of it to an Image control to zoom in on it.

This was originally written to allow the creation of Phantom Test Driver code to allow exact co-ordinate positioning.


BTW when the app is first started it is likely that the other two forms will be hidden behind the top form...

SpiritualMadMan 39 Junior Poster in Training

This should work for DAO (and ADO, I believe)...

If you are doing SQL... Then I can't help you...

You have to use rst.Update to actually update the database record

You have to use rst.Edit to change fields in the record

Basically, once you open a RecordSet you have to .Edit to change things, then, when you're done changing things, you have to .Update to write the changes back into the database...

SpiritualMadMan 39 Junior Poster in Training

The code looks like you are entering 20 numbers.

But, it is not clear what you are doing with a Two by Two FlexGrid...

But, that last section is where you get into trouble because you are changing your loop variable "i" within the loop in a way that will most likely terminate the loop before you get very far.

For instance if the first number in your array is 20, that would be the only number acted upon and the loop would exit with i equal to 20.

If all the numbers total less than 20, i will still end up being equal to 20...

If any of the numbers are greater than 20, and the previous total stays less than 19 then, i will exit equal to the first number greater than 19...


DryCola has the correct way to sum your twenty numbers. This works because "sum" is placed into memory, then added to, then the new value is written back to the variable "sum".

Please detail how and what you want to do with the Grid...

SpiritualMadMan 39 Junior Poster in Training

OK, took a look at the Datagrid and it does not allow access in a similar manner as the FlexGrid.

If I were you I would only use the datagrid to "see" your data and as an aid to selecting the data in the underlying database.

I would then look at selecting the appropriate Tables and fields and exporting them.

Again, I'd look at it as a two part excersize...

Export to a delimited Text File, first, and get that portion correct, selecting and exporting.

Then work on getting it into Excel.

Sorry, if my previous post caused any confusion.

I use the FlexGrid even for Databases and manually select Tables and Fields because it is much easier to loop through a FlexGrid using .textMatrix(row,col).

At least for me... :)

SpiritualMadMan 39 Junior Poster in Training

I do a lot of stuff with the MSFlexGrid...

I usually get real lazy when it comes to importing data into Excel.

What I normally do is export the grid and Tab Delimit the fields into a text file.

Then "Open With" Excel, after which I can save as a regular Excel File.


As to how to do it directly...

I've been too lazy to attack that problem, yet. :)

But, I suspect that after you build the export to Tab Delimited portion, and get it working, you can then learn how to access Excel and instead of writing to the text file write to the Excel Cells in your target workbook.

SpiritualMadMan 39 Junior Poster in Training

Take a look at the form (code) I placed on thread:

http://www.daniweb.com/software-development/visual-basic-4-5-6/threads/379911

It uses a DirListBox, (shows up on the left side of the form).

Copy the entire code section and paste into a text file, then rename the text file FN.frm

Add that .frm file to your VB project.

Take note of the comments at the top of the code section after opening the form in your VB project.

SpiritualMadMan 39 Junior Poster in Training

If all you want is to save your own passwords.

That is, not create an app for someone else...

I strongly recommend AI Roboform.

The Trial/Free version only saves 10 Passwords, but, the last version I got also saves an unlimited number of secure notes.

I've purchased two desktop licenses and one mobile license to use at work.

Unfortunately, my work computer is too locked down to even completely use the Mobile Version. But, for work ten is enough.

I also wrote a VB app to work around this issue, but, then I own a license to use its full potential. :)

SpiritualMadMan 39 Junior Poster in Training

The best way to give you more information is for you to experiment with the [CTRL]+[Print Screen] and [ALT]+[Print Screen]

What you would do is use one or the other key combinations, then open Paint, and hit [CTRL]+V to paste what you've captured into Paint.

As for ScreenHunter Free (there is also a version for purchase), after you install it, you can have it load at system start/boot or click the program Icon.

It gives you the oppurtunity to use [F6] as the "hot key" to bring up the application to capture and gives you a "cross hair" to select what you want to capture.

What you capture can be sent to the Windows Clipboard, or a Speficic File Name, or a Sequential FilaName with your dfined prefix, or a combination of those.

Again the best way to learn is to download and test it for yourself.

www.wisdom-soft.com/products/screenhunter_free.htm

SpiritualMadMan 39 Junior Poster in Training

OK, here is some working code to convert a String Number into a Value.

One Hundred Three Thousand --> 103000

It is written for non-fractional numbers...

You'll have to change all your numbers to Double and add a whole extra section for after the Point/Dot to handle fractions.

I expect that you will have some debugging to do. :) (It'll be good for you...)

I didn't really have time to extensively debug it myself.

You may also want to add some error checking in the Case Else's or some traps for mis-spelled words, etc.

Also, it expects compond numbers, like 53, to be hyphenated...

As this is my first pass after many many years, I expect that there are some areas that can be cleaned up...

Feel free... :)

AS you read through the code you'll realize that it is on a (test) form with only a textbox and a label.

There is also no code to handle when you do a number line "One Hundred Five Million Two Hundred Fifty Thousand". You'll have to add code to "see" when your Multiplier is les than it was previously. pMultiplier was supposed to do that. But, ran out of time.

Option Explicit

Public fValue As Long
Public pMultiplier As Long


Private Sub Text1_KeyPress(KeyAscii As Integer)
    fValue = 0
    If KeyAscii = 13 Then Label1.Caption = StringToNum(Text1.Text)
End Sub

Function StringToNum(uIn As String) As Long
    ' Do !NOT! make uIn …
SpiritualMadMan 39 Junior Poster in Training

I'll work on some code tonight, if, time allows.

This seems simple, at first, but as you consider all the ways numbers can be written out you quickly realize that the basic Select case statement isn't going to do the job.

That is why some agreement has to be made as to range and whether 41 has to be written as forty-one or fortyone or forty one... The first is the "accepted" method per http://www.merriam-webster.com/mw/table/number.htm

But, your users could make up their own rules...

Basically right now I am looking at around four Select Case sets...

1 through 19 with prefixes for 20 to 90 (the 20-90 would allbe one statement that would call to the next case section - a total of twenty cases)

another one to differentiate between the 20 to 90 prefixes (eight cases)

then 1 through 9 to add to the prefix value (nine casses)

and lastly the modifier... depending upon range hundred, thousand, million would be three cases...

Ie, if you have one (value equals 1) followed by hundred then you would take the 1 and multiply by 100...

hmm that's four large case statements to start with.

smm

SpiritualMadMan 39 Junior Poster in Training

Actually, IIRC, [CTRL]+[Print Screen] captures the whole screen

And, [ALT]+[Print Screen] captures the only the active window.

There is also a free program I (also) use called "ScreenHunter Free" which will allow you to capture any given area of the display you want...

SpiritualMadMan 39 Junior Poster in Training

I actually mean that I open "My Computer" and right click a file, the click "Open With" and select my program. Then my program should get the file's path.

That would be SomeVarName = App.Path

This gives you the Path where your Application is at...

Specific FileNames would be SomeVarName = App.Path & "\" & YourAppsFileName

SpiritualMadMan 39 Junior Poster in Training

I think we chased him off?

SpiritualMadMan 39 Junior Poster in Training

Right when you load the Splash Screen or Form, in the Load event enable the timer.

Or, if the timer is actually on the form you want to close just set the enabled property to true in the properties panel.

SpiritualMadMan 39 Junior Poster in Training

What is the largest number you need to convert?

Will you also need to convert fractional numbers?

Or, Decimal Numbers like Ten Point Four?

What are the variant in input text?

Will you accept the above entry as well as Ten dot 4?

Or, One Hundred and 4 vs One Hundred 4?


I did this once back when I was writing childrens programs in QuickBasic but I don't have that code here at work.

It' really not that hard once you properly define the problem. :)

SpiritualMadMan 39 Junior Poster in Training

Doh! I didn't even see that one! And, it's a good and "obvious" one, too.

SpiritualMadMan 39 Junior Poster in Training

No Fault about VBA, VBA and VB6 are pretty much the same thing anyway. Except VBA adds the unique bits and pieces for the Office Apps.

I am only guessing that going out and getting data from a cell takes a discrete amount of time, *possibly* a little more than a variable.

You said the data was in a list structure?

What would the list column headings be?

Are you inputting the list into Excel, then running your routine?

Are you "tied" to Excel? Or, asked differently, is the data source the Excel Worksheet?

This is an old version of a program I wrote that has a data importing function

http://www.houseofmyrrh.com/text2dao.htm

It was originally concieved to import delimited text files and create a database from them for the old version of the e-Sword Bible Study Program... It also (there are bugs mostly places where I haven't trapped for nulls in the data) allows the user to open an unknown database and see it's contents and structure...

There might be something about it that strikes your fancy?

If you were only testing a single coordinate position (offset) then I'd say use a Select Case instead...

Another trick is to, as much as possible, place the Cell test you think you will encounter most frequently at the top of your testing structure.

In other words if you look at the sheet and it looks like most of the …

SpiritualMadMan 39 Junior Poster in Training

Had not looked at tkinter as, up til now, :) everyone was pinting me towards wxPython...

SpiritualMadMan 39 Junior Poster in Training

chamnab, how is it going?

We haven't heard from you in a while, and were wondering if you;d made any progress or if you'd hit a road block and needed help to get through to the next step?

SpiritualMadMan 39 Junior Poster in Training

Another thought...

When I expect more than one file to be opened. For instance I have a Test Procedure File (.prc) and an INI file I will put all the handler routines in a module an (shudder) use Global variables (if needed, due to Multiple Forms and Multiple Module Sturcture) for the Filenames and File Handles.

If a File Handle equals zero then the file hasn't been opened.

I use the same FN form and take the FN.Filename and FN.Dir to assisn the Path and Filename to the variable and when I open the file I first get INI_NUM = Freefile and use that handle throughout the project to access the file.

SpiritualMadMan 39 Junior Poster in Training

Understandable.

I thought you were working with an Excel instance inside a VB6 project.

But, from what has been said it is actually a VBA "macro" in a Workbook?

My Excel VBA work is extremely limited.

Updating the display always takes time and while you may not think it was much of an improvement it does add up in a loop.

The only suggestion I can come up with is to take a look at how your Workbook is constructed.

What I am saying is that the way the Sheet is structured makes simplifying the loop "difficult".

If only one cell offset was being checked then you could do a select case after assigning the cell contents to a temporary variable.

I am not sure, because I haven't done this particular task before, but, I think it takes additional time to go retrieve the value each time instead of getting the value once and comparing it multiple times.

But, it looks like you have specific ranges of values based on the cell offset and that makes it hard to simplify.

If we had some idea of how the sheet was being constructed it might help us help you.

But, right now I can't see where an improvement can be had.

Wish I did more Excel VBA stuff.

Sorry.

SpiritualMadMan 39 Junior Poster in Training

I *really* do apprecciate your taking the time to help!

Well, other than not using a spelling checker. :) I have come to the same conclusion.

Maybe not for the same reason, though...

I have found that I can instantiate three frames at one time, have one active for the duration.

What I did not understand from the beginning is that a Frame cannot be made Modal. But, a Dialog can.

So two of my Frames are going to have to be re-crafted into Dialogs.

I am still running into "referencing issues". But, that'll be another thread.

As to what I am doing...

I am trying to craft a Test Control Program structure for testing various Instruments and devices. UUT's (Unit Under Test)

The overall Control, which is common to all testing, is called the test Control Program, or pyTC.py

Each UUT will have a unique .py program that will include all the functionality required to test it. The Test procedure is started by running that unique .py file.

That's just the way it's been done since before I got here... Besides, if we started the process with pcTC.py then we would have to allow every follow on programmer to modify our reference.

My biggest single problem, I think, right now is being able to reference functionality in the other module.

I am using a Dictionary referenced in my common file TC_

SpiritualMadMan 39 Junior Poster in Training

I am not sure what you are trying to do...

But, you might try adding a List Box to display the sub-items from the Combo-Box Selection.

In other words, only populate the ComboBox with the primary selections...

Then when a selection is made in the ComboBox, use its text Field to load the sub-items into the adjacent ListBox...

SpiritualMadMan 39 Junior Poster in Training

Are these Cells in an Excel instance or a MSFlexGrid Instance?

SpiritualMadMan 39 Junior Poster in Training

There really isn't any super quick way to do what you want...

If the file is line based then you either have to scan through the file sequentially using LineInput

Or, open the the file, I believe in binary mode, and SEEK to a given position.

Here's the problem, using Line Input the File System finds all your End Of Lines (EOL) and gives yous a nice "line at a time" package...

With a File Open method that allows SEEK you can divide and conquer, say SEEK to the middle and see what the INIT number is, assuming that *they* are sequential.

(This method works really good with Fixed Format Files, but it gets tricky when your lines are of variable length.)

But, once you SEEK to a given position *YOU* have to write the code to find the next EOL character and then create a line in your buffer the check for the String in question.

Not impossible...

But, you will have to take your existing code and get a little more creative...

If you check around the middle and you are too far into the file. You then set your Working "End Of File" number to where you are and check between where you are and the Begining of File...

If you are not far enough into the file you use where you are and go halfway to the physical end of your file.

In this way …

SpiritualMadMan 39 Junior Poster in Training
SpiritualMadMan 39 Junior Poster in Training

{BUMP} Come on guys... I'm dying here... Hasn't anyone *ever* Created a Visible form inside a Thread and sent data to it from the main app to display?


Yes, I know I am trying to fly before I am walking all that well.

If there was a course I could afford, or a book I could buy that covered *THIS* specific issue I'd gladly pay for it...

Of, course that cost may exceed my allowance... :)

SpiritualMadMan 39 Junior Poster in Training

I need to point out another possible "killer" for a VB6 executable...

If your project uses Active-X Controls such as the MSFlexGrid, and it is not already on the target system, it will have to be added to Win-Sys32 and manually Registered if you are not using an Installer/Packager...

You can develope a project on any system. But, before sending it out, test it on a clean minimally configured system.

Again, any system that has a lot of Microsoft Products already installed may fool you into thinking the exe is all you need.

Not everyone is as deeply committed to Microsoft, so remember that Add-Ins and Project Components may ne be on the target system...

debasisdas commented: agree +13
SpiritualMadMan 39 Junior Poster in Training

What you are describing is "non-trivial"...

Look at the <project> <components> for anything connected with Internet and research them...

Microsoft HTML Object Library
Microsoft Internet Control
Microsift Internet Transfer Control

I haven't done this, so all I can do is point you to where I would start my search. :)

I usually use an FTP app, like the free version of File Zilla...

You can also check out www.Karenware.com and see if she had anything like what you are looking for.

Karen Kenworthy was a very expert VB6 code writer who passed awhile back. But, her folks are keeping the site up as a tribute to her.

All her programs have the source code available...

SpiritualMadMan 39 Junior Poster in Training

The other thing to do is combine the variables as strings before writing to the file...

Write #1, var1 & var2

Of course if either variable is not a String you'll need to do Conversion and/or formatting.

If the above doesn't work as I remember, try combining the variables into one String before the write statement.

Temp = var1 & var2
Write #1,Temp

Also, you can use [CTRL]+G to bring up the debug window and then use debug.print VarName to view your variables to see what you are really passing to the Write function.

That way you can divide and conquer the problem and see where it is really happening at.

What I thin we are all suspecting is that the comma in what we suspect is your original code is being passed through the write function to the file.

Of course we can't really know that if you don't share a sample of your code... :)

SpiritualMadMan 39 Junior Poster in Training

It was so much easier in the good old DOS Days... You had direct control of the hardware and didn't have to fight with the Hardware Abstraction Layer...

In <Project> <Components> you can add the "Windows Media Player" Control and this will give you control of MP3; WMA; and .WAV (Maybe a few others).

This is the code from a desktop Alarm Clock I put together

Private Sub Do_Alarm(aFile As String, aPrompt As String)
    
    If Not Muted Then
        wmp.settings.volume = 100
        wmp.URL = aFile
        wmp.Controls.play
    End If
    
    Call Set_Prompt
    If Not Hold_Off Then Prompt.Show

    Prompt.Prompt.Caption = " "
    Prompt.Prompt.Caption = aPrompt

End Sub

You can also use the Media Control Interface by Declaring it in a Module

Declare Function mciSendString Lib "winmm.dll" Alias _
        "mciSendStringA" (ByVal lpstrCommand As String, ByVal _
        lpstrReturnString As Any, ByVal uReturnLength As Long, ByVal _
        hwndCallback As Long) As Long

However, the MCI interface will not work on some "Locked Down" Computers...

Once you start the sound the following code should stop it

Private Sub mmnuStop_Click()
    Clock.wmp.Close
End Sub

DoAlarm is called as follows

Do_Alarm Alarms.fgAlarms.TextMatrix(n, 6), Alarms.fgAlarms.TextMatrix(n, 7)

Where field 6 is the File Path to be Played and Field 7 is the User Prompt to be Displayed.

There is a delay in playing using the WMP control.

If the system is not locked down then the MCI control is a bit faster if memory serves me well. But, it is also much more complex …

SpiritualMadMan 39 Junior Poster in Training

Note: Not all systems have the VB6 Runtime Installed...

*IF* The VB6 Runtime is *NOT* installed and you are *NOT* using an installer you must install the VB6 Runtime for the VB6 .exe to work.

Many system already have the VB6 Runtime installed as part of another package, such as earlier MS Office versions. Not everyone already has an app installed that includes the VB6 Runtime.

I am not 100% sure, but I think MS Office 2010 is supposed to be the last version of office to support VBA as we know it.

In addition to VB6 SP 6 there were two other later patches. So, try to find a copy of the Runtime Installer for VB6 Sp6.

If the www.Karenware.com site is still up you can get it there as well as tons of Source Code to Learn from...

SpiritualMadMan 39 Junior Poster in Training

Let us know how you're studying is going.

And, when you can tell us you understand the concept (not details) of what an ActiveX Control is.

This link may help: http://www.vb6.us/guides/vb6-controls-guide

Also, it may be beneficial to checkout what's available to you under <projects> <components> watch out for that little checkbox about seeing only selected items...

SpiritualMadMan 39 Junior Poster in Training

Honestly, this sounds more like a database Program than a Dictionary.

IIRC Dictionaries are really structured lists that have a Key:Value

What you seem to be asking is for something with a third part to it, "Pictures Appeared In"

This could be done, possibly by restructuring your dictionary so that the "Key" is the Persons (Complete) Name, and the "Value" is a List of Pictures Appeared In.

Then you could access the Dictionary by Name and parse the Value whether a given person is in a given picture.

# Create the Dictionary
Photos={Person-1:[Photo-1, photo-2, photo-5]}
# Add or **Modify** Dictionary Entries
Photos["Person-2"]=[Photo-1, photo-2, photo-9]
Photos["Person-3"]=[Photo-1, photo-3, photo-6]
Photos["Person-4"]=[Photo-1, photo-7, photo-10]
SpiritualMadMan 39 Junior Poster in Training

I'd be interested in knowing this as well. :)

But, depending upon what security protocols your client has placed on thier computer your upgrade may be as simple as writing an AutoRun that overwrites the existing files.

The exe would be in the install directory and the ocx is probably in [Windows] [System32]

But, I'd try it on a non-critical machine before I committed it to a client.

This should be fairly easy *IF* the user used a the standard location for the install directory and *if* the win sys32 folder is not locked out.

If the installer registered the product in a registry location other than the VB/VBA area then you wouldn't be able to query the registry (using your own VB applet) for the actual install location...

Hope this triggers some ideas. :)

SpiritualMadMan 39 Junior Poster in Training

Well, you can scan through the string using a loop creating a new temporary string...

Try This

function StripNewLine(q as string) as string
    dim x as string
    dim n as long

    for n = 1 to len(q)
        if mid(q,n,1) <> vbcrlf then
            x = x & mid(q,n,1)
        end if
    next n

    StripNewLine = x
SpiritualMadMan 39 Junior Poster in Training

Here's some code I use to Create a delay...

Sub delay(timeout As Long)
    Dim OldCap As String
    Dim OldFont As Long
    
    ' Here I am saving the Button Caption and Font
    OldCap = MN.cmdRun.Caption
    OldFont = MN.cmdRun.FontSize
    MN.cmdRun.FontSize = 14
    ' timeout is Delay Time in tenths of a Second
    ' Here is where I turn the Timer On
    MN.Timer1.Enabled = True
    Tic = 0
    Do While Tic < timeout
        MN.cmdRun.Caption = Str((timeout - Tic) / 10)
        ' Do Events allows other stuff, like keypresses, button clicks, etc. to
        ' happen while you are in the delay loop.
        DoEvents
    Loop
    ' here I restore the Button Caption
    MN.cmdRun.FontSize = OldFont
    MN.cmdRun.Caption = OldCap
    ' hmmmmmmm I didn;t turn the timer back off????
    ' gotta wonder if I forgot, or am doing it elsewhere...
End Sub

On the form where you've placed your Timer add

Private Sub Timer1_Timer()
    ' The variable tic will be incremented each time the time interval expires.
    Tic = Tic + 1
End Sub

Do not forget to either programmatically set your .Interval or set it in your Properties when you place the timer on the form. I am using a value of 100 or a tenth of a second.

NOTE: tic is a Public Variable

SpiritualMadMan 39 Junior Poster in Training

Agreed, though I have done most work in DAO not ADO or SQL...

This error, though not as bad as the illegal "Null" error, usually requires a type conversion when going into the RecordSet.

And, sometimes when retrieving, as well.

SpiritualMadMan 39 Junior Poster in Training

Copyrights are a Courtesy and Convenience if you do not legally Copyright with the Patent and Copyright Office.

You can use Prior Work and First Use in some cases. But, it is getting harder and harder and more and more expensive to get a genuine legally enforceable Copyright.

Then it can get extremely expensive to prosecute someone who has stolen your code or idea.

For an xlt, you can password protect it...

For an .exe you have to protect your code...

One method that used to work in the old days was to create your source and executable disk set and mail them to yourself in Certified/Registered Mail. do not open them when you get them back.

What this does is put a legal US Government Time Mark on your package proving that you wrote the code before someone else "stole" it.

But, unless the idea is *really* unique and *really* marketable, it is generally not worth the ffort.

Except in this one case.

If it's something you really like playing with that *might* be stolen by the "big boys" and you want to right to continue to play with it and sitribute it without paying the "big boys"... You may want to prove that you had the idea before they made theirs public.

SpiritualMadMan 39 Junior Poster in Training

Which Version of VB or Visual Studio are you using?

Secondly, did you install the MSDN that came with your software?

The VB Help files are usually included in the MSDN install...

Learn what Active-X means to you in this context.

In the Documentation under Controls Reference it covers "Intrinsic Controls" and "ActiveX Controls"... That should get you started.

I am not familiar with Tune-Up 2011... So, I can't help you with that.

But, you *really* need to get intimately familiar with the Documentation for the version of VB you are using.

I know most of the on-line MSDN is over-ridden with .NET stuff...

If you do not have the MSDN install disk then you are stuck with either buying new or used books are checking them out from yur library.

I am not a lawyer, but, as of VB6 the MSDN License was useable by anyone in the company that owned a license. This means that if your school has a legal license for VB or Visual Studio, it might be transferrable to you the student while you are a student.

Come back in a bit after you've studied a bit more. And, any of us will be glad to walk you through it.

Look, I understand where you're coming from. When I first got into VB6 programming I was totally lost knowing only DOS Based BasicA, GWbasic and QB 4.5...

Forms and controls drove me nuts...

SpiritualMadMan 39 Junior Poster in Training

Could really use some more inforation... :)

Basically, the question is, search what?

A ComboBox, pretty much follows your keystrokes as you enter text.

You can simulate that action by using a Textbox for your text entry and intercepting each keystroke as entered, create a new search term at each keystroke and then do your search.

This can get really slow if you're trying to search something large like a database, unless your large search area is sorted or indexed and you can divide or conquer it.

Give us some more information and we may be able to help...