Tuesday, October 23, 2007

VB Code Formatter Plug-in for Windows Live Writer

Refer to my post yesterday, I've found a new plug-in for Windows Live Writer (WLW), that can paste my Visual Basic Source Code and keep it's format. I've test some codes, and it seems works fine for me.

Here's a sample:

VB Code
Public Shared Function NumberToEnglishWords(ByVal num As Long) As String
Return NumberToEnglishWords(num, 0)
End Function

Other features that seems great is the ability to add line number, which I'm still can't decide whether I should use it or not. The plug-in is made with C# and it's open source. I'd like to learn the source when I have a spare time.


At the first look (in Live Writer editor), the table border width is not quite right. I'll look the result after I post this on my blog.


This plug-in was made by Steve Dunn. You can visit his blog here, while the article about the plug-in can be found here.

Windows Live Writer

I've finished download and installed Windows Live Writer. I use version 1.0. Actually I want to download the newest live writer, but it seems Microsoft didn't provide direct link with it. Sucks.

My first impression using this tool is good. It has spell check, Nice layout. But actually, that's not important to me. All I want is a style that can post source code without messing them.

Well, let's try it:

Code

Public Shared Sub DrawNonRectangleBorder(ByVal g As Graphics, ByVal borderColor As Color, _
                                         ByVal angle As Integer, ByVal rect As Rectangle)

    Using pth As New Drawing2D.GraphicsPath
        pth.AddLine(angle, 0, rect.Width - angle - 1, 0)
        pth.AddLine(rect.Width - 1, angle, rect.Width - 1, rect.Height - angle - 1)
        pth.AddLine(rect.Width - angle - 1, rect.Height - 1, angle, rect.Height - 1)
        pth.AddLine(0, rect.Height - angle - 1, 0, angle)

        pth.CloseAllFigures()
        g.SmoothingMode = Drawing2D.SmoothingMode.AntiAlias

        g.DrawPath(New Pen(borderColor), pth)
    End Using
End Sub

 

Ok. First testing, it has one big disadvantage than Office 2007. When I copy source code directly from VS IDE, the font color didn't change. That's a big drawback to me. In Office 2007, it copies all styles, including font color. Unfortunately, the table messed up after I post. For now, let's see the final result first...

Monday, October 22, 2007

Back to blog

After 5 months absent, I start to write the blog again. Now, I know, writing a blog is not an easy task. You should know how to explain/describe, express something in your mind, or even tell some strories or experience to the readers. Well, writing a blog is easy, but to write a GOOD article or blog need more effort than just writing. Heck, I event don't know whether I spelled my english perfectly in this blog, since blogger editor didn't contain spell check. Maybe because I use IE 7 for posting blog, since Firefox contain spell check by default. For some reason, I still not trust firefox right now. And don't ask me why. It's hard to explain.

For now, I'll try more active in writing blog. I hope this will horn my skills in writing and describing, so I can make a good speech in the future :p...

By the way, I will leave Office 2007 for posting a blog due to some trouble I have with it. The table still sucks. If the table still sucks, I won't be able to post the code in this blog. So, I'll try another tools for posting the blog (And I don't like blogger default editor too. Heh..heh..). One tool that pop in my head is Live Writer...

Monday, May 14, 2007

Creating Component with Rich Design Time Support

These 2 weeks had been most exhausted event for my brain. While researching designer class, I found something new and yet confusing methods to study. Design time component has a very wide scope to begin with, and it seems like one method can spread to another method. Sometimes I can be very frustrating. Once I got a small solution or step, that step always connects to another 2 or 3 problem that had to be solved. I wonder how much time I have to spend to complete my current home project. Luckily, my work had been on simulation stage, which mean, I have more spare time to observe and studying articles while doing a little design to my next project. Now I start wonder, since I have to put a lot of effort to my home project, maybe I should start to commercialize it? It maybe worth some money.

Tuesday, May 8, 2007

Adorners and Glyphs

Currently, I've studied a bit about Adorner. With Adorners and Glyph, you can give full design time support for making some good components, especially such as multi tab component. I'm telling you, learning this stuff is more complicated than I expected. The concept is difficult as well. Much more difficult for a man who only have one year experience with .NET Framework. Now I feel sorry for being ignorance when .NET released. Too late for that now.

After a few days of learning and observing various codes, I learn that to fully support design time component, I must include some service before applying adorner and glyph. Adorner itself are is part of behavior service. Luckily, those services come from base class, if you inherit designer class to a ControlDesigner class. Base on that base class, you may add an adorner which contains any glyph which will represent your child control (it's an array). One note if you work with this, make sure you override dispose method which is removing your glyph from adorner. If you forgot to do this, the glyph will likely stay even when you remove the component and closing the form. The possible solution that I found is to close your IDE, and start it over again (and of course, override its dispose method).

I know it's a bit confusing if you read this post, but hey, I'm confused too. I'll try to hang out with this for a while, and once I fully understand about the concept, I'll try to make a new component that utilizes Adorner and Glyphs. I'll post some article about making this component too. So keep your eyes open for another updates in this blog and my vbcorner tutorial blog.

Thursday, April 26, 2007

Tables from Office 2007 to BlogSpot – Part II

Back to result from my previous post here, I'm disappointed from the results I get (Yeah, all of them). My first curious is because the table width are simply not dynamic. Let's try this again.

Table 1: Dynamic table with layout and auto fit content turned on

Code

Using lgb As
New LinearGradientBrush(Me.ClientRectangle, Color.Red, Color.Blue, LinearGradientMode.Horizontal)

e.Graphics.FillRectangle(lgb, Me.ClientRectangle)

End
Using


 

Table 2: Dynamic table with layout and auto fit to window turned on

Code

Using lgb As
New LinearGradientBrush(Me.ClientRectangle, Color.Red, Color.Blue, LinearGradientMode.Horizontal)

e.Graphics.FillRectangle(lgb, Me.ClientRectangle)

End
Using


 

Table 3: Dynamic table with layout and column width set to 100%

Code

Using lgb As
New LinearGradientBrush(Me.ClientRectangle, Color.Red, Color.Blue, LinearGradientMode.Horizontal)

e.Graphics.FillRectangle(lgb, Me.ClientRectangle)

End
Using


 

Okay, let's see the result now.

Tables from Office 2007 to BlogSpot

Since I'll use table a lot for posting a code, I'll do some test with this post. Here it goes.

Table 1: Default Table

Code

Using lgb As
New LinearGradientBrush(Me.ClientRectangle, Color.Red, Color.Blue, LinearGradientMode.Horizontal)

e.Graphics.FillRectangle(lgb, Me.ClientRectangle)

End
Using


 

Table 2: Table with layout (Font Bold by default)

Code

Using lgb As
New LinearGradientBrush(Me.ClientRectangle, Color.Red, Color.Blue, LinearGradientMode.Horizontal)

e.Graphics.FillRectangle(lgb, Me.ClientRectangle)

End
Using


 

Table 3: Table with layout (Font changed back to normal)

Code

Using lgb As
New LinearGradientBrush(Me.ClientRectangle, Color.Red, Color.Blue, LinearGradientMode.Horizontal)

e.Graphics.FillRectangle(lgb, Me.ClientRectangle)

End
Using


 

Table 4: Table with layout (Font changed to normal and same font)

Code

Using lgb As
New LinearGradientBrush(Me.ClientRectangle, Color.Red, Color.Blue, LinearGradientMode.Horizontal)

e.Graphics.FillRectangle(lgb, Me.ClientRectangle)

End
Using


 

Table 5: Table with layout (Font changed to normal and same font and same size)

Code

Using lgb As
New LinearGradientBrush(Me.ClientRectangle, Color.Red, Color.Blue, LinearGradientMode.Horizontal)

e.Graphics.FillRectangle(lgb, Me.ClientRectangle)

End
Using


 

Ok. Lets see the result for now