|
You might wa to try searching in the help for Visual Basic.NET for 'Attributes and Design-Time Support' for how to add descriptions to your code.
|
|
|
|
|
Anonymous wrote:
searching in the help for Visual Basic.NET
This didnt help me much.. thats why I was trying to get help from CP
I was born intelligent Education ruined me!.
|
|
|
|
|
I have two problems with a property for a custom control:
1) the default value does not show up when the properties for the custom control are viewed.
2) The size of the control at run time reverts to the initial size of the combo box which is the final result of user selections in the custom control.
These two problems may be interrelated.
The custom control is a composite of standard vb.net controls including a drop down combo (ccdropdown), some buttons, etc. The run time user sees the ccdropdown combo. At run time, when the user clicks on the drop down, the custom control displays the embedded standard controls and allows the user to set the final value which will be displayed as text in the ccdropdown combo box at which time the ccdropdown combox also closes up.
The custom control needs to have three different widths depending upon the value of a property that the designer will use. I can create a property called mode, and cause the designer to show the correct size on the design page depending on the value selected in the mode property.
The relevant code is as follows:
private parm1 as string
<typeconverterattribute(gettype(modelist)), _
="" categoryattribute("mode"),="" descriptionattribute("mode1,="" mode2,="" or="" both"),="" designonlyattribute(true),="" defaultvalueattribute("mode1")=""> _
Public Property Mode() As String
Get
Select Case parm1
Case "Mode1"
ccdropdown.Width = 90
Me.Width = 90
Case "Mode2"
ccdropdown.Width = 75
Me.Width = 75
Case "Both"
ccdropdown.Width = 150
Me.Width = 150
End Select
Return parm1
End Get
Set(ByVal Value As String)
Select Case Value
Case "Mode1"
ccdropdown.Width = 90
Me.Width = 90
Case "Mode2"
ccdropdown.Width = 75
Me.Width = 75
Case "Both"
ccdropdown.Width = 150
Me.Width = 150
End Select
parm1 = Value
End Set
End Property
Modelist has been initalized to "Mode1","Mode2","Both"
me.width is changed so that the designer sees the proper width of the control depending on the mode selection by the designer.
I would appreciate any insight into this problem from any source.
Thanks in advance.
|
|
|
|
|
Hi,
I am writing a VB app to use Word to dynamicaly create a document. It creates and all, but I am trying to create a hard page break and insert data into it. I can create the break, but I can't figure out how to have it go to the new page. Please help. Thanks,
|
|
|
|
|
Just starting out in programming, and I'm trying to create a program that can tell the user whether or not the word they input is a palindrome regardless of the length of the word.
Here's what I have as far as code:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim a, b As String
Dim length As Integer
a = InputBox("Enter a word to check and see if it is a Palindrome.")
length = Len(a)
If a.Substring(0, 1) = a.Substring(length, -1) Then
MsgBox("This is a Palindrome")
Else
MsgBox("This is not a Palindrome")
End If
End Sub
I get an error stateing "Additional information: Length cannot be less than zero."
Any insight into this matter would be greatly appreciated
P.S. Just for the record, I'm not looking for the answer. A point in the right direction would help though
|
|
|
|
|
BigGreen wrote:
If a.Substring(0, 1) = a.Substring(length, -1) Then
I'm in no way a VB dude, but is the comparison operator supposed to be: "=="? As in:
If a.Substring(0, 1) == a.Substring(length, -1) Then
Regards,
MarkC#
---------
.Net Head
|
|
|
|
|
|
|
Ian Darling wrote:
Equality *and* assignment are both '=' in VB.
There ya go. At least I can say with full cliche in tow, "I learn something new every day."
I'll stick with C# and Java, thank you. Best wishes!
Regards,
MarkC#
---------
.Net Head
|
|
|
|
|
First, I would compare characters using the Chars property. Creating a new string (which Substring presumably does) just to check a character value is a little wasteful, although nothing serious in your case.
The thing that's throwing the error is a.Substring(length, -1) (I think-- I'm not a VB.NET coder).
Your task is to check every character against the corresponding one the same distance from the end of the string. This means you will have to use a loop (even a recursive function call will still use 'tail recursion', which should be considered a loop, right?). Why is this? Because you can't tell beforehand how many things you'll have to check! Read the documentation on the for loop; it's the most appropriate loop type in VB for your purpose.
For extra fun, you should try reading about loop unrolling on the Web; then read about Duff's device.
Also, you need to start thinking even early on about always abstracting your code. Checking a string for palindromeness seems to be a useful function, which you may be able to reuse later; it's also a well-defined small problem. It's appropriate to make it into a function.
I'm appending a solution; don't read it unless you want to.
Regards,
Jeff Varszegi
|
|
|
|
|
Function IsPalindrome(ByVal s As String) As Boolean
Dim length As Integer
Dim position As Integer
length = s.Length
For position = 0 To (length / 2)
If (s.Chars(position) <> s.Chars((length - position) - 1)) Then
Return False
End If
Next position
Return True
End Function
Regards,
Jeff Varszegi
|
|
|
|
|
Thanx for all the input ya'll. This is the solution that I finally came up with. I've never created my own function so, that was the part that got me. This was actually in the school book (just the function not the code) in next weeks lesson area.
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim a As String
Dim b As Integer = 1
Do While b = 1
a = InputBox("Enter a word to find out if it's a Palindrome.")
If reverse(a) = a Then
MsgBox("This word is a palindrome.")
Else
MsgBox("This word is not a palindrome.")
End If
If a = "z" Then
b = b + 1
End If
Loop
End Sub
Function reverse(ByVal info As String) As String
Dim m, j As Integer, temp As String = ""
m = info.Length
For j = m - 1 To 0 Step -1
temp &= info.Substring(j, 1)
Next
Return temp
End Function
A lot of this is not really necessary however, I figured it was a good chance for a lil practice.
Thanx again for all the input
P.S. Sorry about the Lounge post that was my second post here and I was in a rush so didn't read the rules :P won't happen again
|
|
|
|
|
Interesting, two different solutions for the same thing.
I think reversing the word and checking whether it's the same as the original word is the easiest,
which reminds me to always look at a problem from a different point of view .
|
|
|
|
|
An issue you may be running into is your Dim statement. I'm not sure if you're using 6.0 or .NET (and I've yet to touch .NET), but with 6.0 you have to have a declaration type with each variable. For example,
Dim a as String, b as String
instead of
Dim a, b as String
The way you have it now, a is declared as a Variant which is basically a catch all variable type and extremely inefficient . I avoid them like I would a FORMAT C:.
Since I avoid playing around with them, I'm not sure about their little quirks and personalities, however, you're performing a lot of functions that work best with strings.
What is b used for? I don't see it in your code at all except at Dim.
--------------------
Tim Perry
"Remember, comments are there to make people laugh, not to help them fix your code later...because you're code is always perfect"
|
|
|
|
|
i believe the code you want is:
if a.substring(0,1)=a.substring(length-1,1)
rather than
if a.substring(0,1)=a.substring(length, -1)
|
|
|
|
|
I'm writing an Windows Forms VB.NET application where the user can type in some kind of compare evaluator.
Example :
{cost} > 10000 and {itemgroup} = 'A01'
My app. will take the entered text and evaluate it against in-memory data.
The values tags ( {cost}, {itemgroup}, etc.) are replaced with the proper values by my app before evaluation/parsing... so my question is :
Is there a simple way of parsing or evaluating a dynamic statement in a string ?
Something what would work like this :
dim strStatement as string = " 780 > 10000 and 'B54' = 'A01' "
if EvaluateStatement(strStatement) then
' Do some stuff..
else
' Do some other stuff..
end if
Do I need to code my own evaluator from scratch or is there a shortcut or code I can use... maybe a 3rd party control ?
Any advice ?
TIA
|
|
|
|
|
Hello,
I am a getting this error when trying to run my app on a PC that doesn't have VB6 installed. I have a form with an adodc connecting to a DSN, and some controls bind to it.
When trying to do some action, like addnew EOF, I get this error:
Run-time Error '91': Object Variable or Block Variable Not set
First I thought about my dependecy files, which I believe no one is missing in my VSInstaller project.
I downloaded the runtime VB6 files from microsoft, and de ado runtime files ans the mdac_type.exe all installed on the target PC.
But nothing of this seems to work.
I've installed it on two other PC's with vb6 installed and it runs fine.
Any ideas, of what could be happening here?
-Alfred
|
|
|
|
|
It sounds like you have code that is not handling an error correctly or at all. You are probably assuming in one line of code that is, say, returning a dataset sucessfully, but in actualality it generates an error or returns a Nothing object reference, then your trying to use that reference. An example of this would be:
Dim objRecordSet as RecordSet
objRecordSet.Next
This would generate the error your talking about because objRecordSet doesn't actually point to a RecordSet object.
RageInTheMachine9532
|
|
|
|
|
Well, you are right, and I just found out that the problem is that my recordset is not been opened. and that was giving me that error.
As I said, When I run this app on any PC that had VB6.0 previously installed, it runs fine, but when I run it on a new PC it doesn´t open my recordset.
It seems that some dll is missing on the target PC.
I am using an adodc data control connecting through ODBC to an access database. Do you know which other should be included when distributing?
|
|
|
|
|
You could probably take the shotgun approach to killing the problem(s) by installing the latest MDAC from Microsoft. You can find that here[^].
RageInTheMachine9532
|
|
|
|
|
I have a form with a textbox and i want to populate the textbox with the CPU time for a program called program.exe How do i specify showing only the CPU time for the one executable I want?
|
|
|
|
|
You can get the TotalProcessorTime and UserProcessorTime using the Process class. Docs for which can be found here[^].
RageInTheMachine9532
|
|
|
|
|
Sir i want to creat a Vc++ system wide hook dll.{{Whatever hook articles available on the internet are intended for advanced developers who know thing or 2 in vc++.}}But students like me who are new to vc++ find it difficult to grasp some ideas.
I want a basic level explanation from some experts who really wants to teach those things to their students.
The hooks i am intended to create is Wh_Getmessage and i have to call that dll from vb6
Say my objective of this hook is say if i a user type A then i have to change to B for any application running.
I am a stranger to vc++ so i need help in how to create this {{system wide}} wh_getmessge hook
1.In vc++ in new what dll i have to chose ]
a.MFC appwizard Dll
b.WIn32 Dynamic link library
What is the difference between these 2 dlls.?
2.What is an header file and what are the things we have to declare here and why we have to declare??
3.How functions in vc++ dll should be declared inorder to call those functions from vb.?
4.Say i am calling SetHook funciton from vb which is in dll then hook is set.
MsgFilterHook = SetWindowsHookEx( WH_GETMESSAGE,(HOOKPROC)MsgFilterFunc, dll_hInstance, threadID );
I am having the hookhandle in MsgFilterHook which i can use to unhook this hook.
Threadid = 0 to create a system wide hook
MsgFilterFunc is my callback function
My doubt is once hook is set , will the system automatically call my callback filter function for any application which process getmessage
Say i have notepad and i am typing A and in my call back function i will get a wm_char = A.NOw if i change to another application say wordpad and type B
then will it be possible to get the wm_char=B message in my callback function.Please Explain me how does this work.
5.Say n no of editor applications are running and i want to disable the character T from going to any application and i have to make T into H how to do this in my callbackfunciton.Issue in this question is how am going to get these hook work for any application which is running.??
Issues
1.How to start creating a dll in vc++6
2.Header file decleration ideas.
3.Export functions declerations.
4.Explanations of how these hook work on a systemwide basis(i understood how dll maps the memory of other applications but wanted codings point of view like what are the parameters come to callback function each time a new application is actvated.)
5.What is #pragma and shared data segment ?How variables should be decalred in the hook dll and how it should be accessed??Please explain at a lower level how this things are implemented why is the need?
Thanks in advance.
|
|
|
|
|
Is there a way that i can monitor the use of a file in terms of a timestamp? My goal is to monitor the activity of a file and when it goes beyond 10 minutes of non activity I will shut it down.
|
|
|
|
|
Not reliably. You don't have to actually run the executable to change its 'Last Accessed' attribute. Just getting properties on the file will change it.
A better method would be to poll and watch the process list, look for the name you want and get its process ID when it shows up, then monitor that ID for CPU usage. You could get those statistics from the Process class.
RageInTheMachine9532
|
|
|
|