Sudoku test 26

Came up with this sudoku game, thought I would share :-) Enjoy
Form1's code:
Option Strict On
Option Explicit On
Option Infer Off
Public Class Form1
Private gameNumbers As New List(Of Integer) From {5, 3, 0, 0, 7, 0, 0, 0, 0, 6, 0, 0, 1, 9, 5, 0, 0, 0, 0, 9, _
8, 0, 0, 0, 0, 6, 0, 8, 0, 0, 0, 6, 0, 0, 0, 3, 4, 0, 0, 8, _
0, 3, 0, 0, 1, 7, 0, 0, 0, 2, 0, 0, 0, 6, 0, 6, 0, 0, 0, 0, _
2, 8, 0, 0, 0, 0, 4, 1, 9, 0, 0, 5, 0, 0, 0, 0, 8, 0, 0, 7, 9}
Private sGame As New SudokuGame(Me, gameNumbers)
Private Sub Form1_SizeChanged(sender As Object, e As EventArgs) Handles Me.SizeChanged
Me.Invalidate()
End Sub
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Me.DoubleBuffered = True
End Sub
End Class
Sudoku game class
Public Class SudokuGame
Public Property cellHeight As Integer = 20
Public Property cellWidth As Integer = 20
Public Property canvas As Control
Private center As New Point(200, 200)
Private mouseisDown As Boolean = False
Private numbers As New List(Of SudokuGame.NumberCell)
Private numberCells As New List(Of SudokuGame.NumberCell)
Private currentPT As Point = New Point(0, 0)
Private dFont As New Font("segoe script", 12)
Private mousex As Integer
Private mousey As Integer
Friend WithEvents EditTB As New RichTextBox With {.Parent = canvas, .BorderStyle = BorderStyle.None, .Visible = False, .Font = New Font("Consolas", 16), .MaxLength = 1, .Multiline = False, .ForeColor = Color.Red, .BackColor = Color.DarkGoldenrod}
Private editingIndex As Integer = 0
Public Function CanCommitChange(ByRef numbercells As List(Of NumberCell), ByRef numberCell As NumberCell) As Boolean
Dim cellRegionEnum As SudokuRegion = GetCellRegionEnum(numberCell)
Dim cellRegion As List(Of NumberCell) = Me.GetRegion(numbercells, cellRegionEnum)
Dim cellColumn As List(Of NumberCell) = Me.GetColumn(numbercells, numberCell.X)
Dim cellRow As List(Of NumberCell) = Me.GetRow(numbercells, numberCell.Y)
For Each nC As NumberCell In cellRegion
If nC.Value = numberCell.Value Then
If numberCell.Value = 0 Then Continue For
Return False
End If
Next
For Each nC As NumberCell In cellColumn
If nC.Value = numberCell.Value Then
If numberCell.Value = 0 Then Continue For
Return False
End If
Next
For Each nC As NumberCell In cellRow
If nC.Value = numberCell.Value Then
If numberCell.Value = 0 Then Continue For
Return False
End If
Next
Return True
End Function
Function colString(col As List(Of NumberCell)) As String
Dim s As String = String.Empty
For Each n As NumberCell In col
s = s & n.Value
Next
Return s
End Function
Public Function GetCellRegionEnum(numberCell As NumberCell) As SudokuRegion
Dim result As String = String.Empty
Dim tLregion As New List(Of Integer) From {0, 1, 2, 9, 10, 11, 18, 19, 20}
Dim tCregion As New List(Of Integer) From {3, 4, 5, 12, 13, 14, 21, 22, 23}
Dim tRregion As New List(Of Integer) From {6, 7, 8, 15, 16, 17, 24, 25, 26}
Dim cLregion As New List(Of Integer) From {27, 28, 29, 36, 37, 38, 45, 46, 47}
Dim cCregion As New List(Of Integer) From {30, 31, 32, 39, 40, 41, 48, 49, 50}
Dim cRregion As New List(Of Integer) From {33, 34, 35, 42, 43, 44, 51, 52, 53}
Dim bLregion As New List(Of Integer) From {54, 55, 56, 63, 64, 65, 72, 73, 74}
Dim bCregion As New List(Of Integer) From {57, 58, 59, 66, 67, 68, 75, 76, 77}
Dim bRregion As New List(Of Integer) From {60, 61, 62, 69, 70, 71, 78, 79, 80}
Select Case True
Case tLregion.IndexOf(numberCell.ArrayIndex) > -1 : Return SudokuRegion.TopLeft
Case tCregion.IndexOf(numberCell.ArrayIndex) > -1 : Return SudokuRegion.TopCenter
Case tRregion.IndexOf(numberCell.ArrayIndex) > -1 : Return SudokuRegion.TopRight
Case cLregion.IndexOf(numberCell.ArrayIndex) > -1 : Return SudokuRegion.CenterLeft
Case cCregion.IndexOf(numberCell.ArrayIndex) > -1 : Return SudokuRegion.CenterCenter
Case cRregion.IndexOf(numberCell.ArrayIndex) > -1 : Return SudokuRegion.CenterRight
Case bLregion.IndexOf(numberCell.ArrayIndex) > -1 : Return SudokuRegion.BottomLeft
Case bCregion.IndexOf(numberCell.ArrayIndex) > -1 : Return SudokuRegion.BottomCenter
Case bRregion.IndexOf(numberCell.ArrayIndex) > -1 : Return SudokuRegion.BottomRight
End Select
Return Nothing
End Function
Public Function GetColumn(numbercells As List(Of NumberCell), colNumber As Integer) As List(Of NumberCell)
Dim results As New List(Of NumberCell)
For i As Integer = colNumber To 80 Step 9
results.Add(numbercells(i))
Next
Return results
End Function
Public Function GetRow(numbercells As List(Of NumberCell), rowNumber As Integer) As List(Of NumberCell)
Dim start As Integer = rowNumber * 9
Dim results As New List(Of NumberCell)
For I As Integer = start To start + 8
results.Add(numbercells(I))
Next
Return results
End Function
Public Function RegionToString(numbercells As List(Of NumberCell), sRegion As SudokuRegion) As String
Dim region As List(Of NumberCell) = Me.GetRegion(numbercells, sRegion)
Dim sb As New System.Text.StringBuilder
For i As Integer = 1 To region.Count
sb.Append(region(i - 1).Value.ToString)
If i Mod 3 = 0 Then sb.Append(vbCrLf)
Next
Return sb.ToString
End Function
Private Function ZeroCount(s As String) As Integer
Dim result As Integer
For Each c As Char In s
If c = "0"c Then result += 1
Next
Return result
End Function
Public Function GetRegion(numbercells As List(Of NumberCell), region As SudokuRegion) As List(Of NumberCell)
Dim c As List(Of NumberCell) = numbercells
Select Case region
Case SudokuRegion.Top
Case SudokuRegion.TopCenter : Return {c(3), c(4), c(5), c(12), c(13), c(14), c(21), c(22), c(23)}.ToList
Case SudokuRegion.TopRight : Return {c(6), c(7), c(8), c(15), c(16), c(17), c(24), c(25), c(26)}.ToList
Case SudokuRegion.Center
Case SudokuRegion.CenterCenter : Return {c(30), c(31), c(32), c(39), c(40), c(41), c(48), c(49), c(50)}.ToList
Case SudokuRegion.CenterRight : Return {c(33), c(34), c(35), c(42), c(43), c(44), c(51), c(52), c(53)}.ToList
Case SudokuRegion.Bottom
Case SudokuRegion.BottomCenter : Return {c(57), c(58), c(59), c(66), c(67), c(68), c(75), c(76), c(77)}.ToList
Case SudokuRegion.BottomRight : Return {c(60), c(61), c(62), c(69), c(70), c(71), c(78), c(79), c(80)}.ToList
End Select
Return New List(Of NumberCell)
End Function
Public Enum SudokuRegion
TopLeft
TopCenter
TopRight
CenterLeft
CenterCenter
CenterRight
BottomLeft
BottomCenter
BottomRight
End Enum
Public Function renderSudakoCard(g As Graphics, center As Point, frameSize As Size, backColor As Color, numbers As List(Of NumberCell), font As Font) As List(Of NumberCell)
Dim results As New List(Of NumberCell)
Dim boldEveryNLines As Integer = 3
Dim BoldLines As Boolean = True
Dim rowCount As Integer = 9
Dim columnCount As Integer = 9
g.Clear(backColor)
Dim combo As String = "000000"
If rowCount Mod 2 = 1 Then combo = combo & "1" Else combo = combo & "0"
If columnCount Mod 2 = 1 Then combo = combo & "1" Else combo = combo & "0"
If cellHeight Mod 2 = 1 Then cellHeight += 1
If cellWidth Mod 2 = 1 Then cellWidth += 1
Select Case Convert.ToInt32(combo, 2)
Case 0
Dim centerX As Integer = center.X
Dim centerY As Integer = center.Y
Dim topY As Integer = centerY - ((rowCount \ 2) * cellHeight)
Dim bottomY As Integer = centerY + ((rowCount \ 2) * cellHeight)
Dim leftX As Integer = centerX - ((columnCount \ 2) * cellWidth)
Dim rightX As Integer = centerX + ((columnCount \ 2) * cellWidth)
RenderBackGround(g, topY, bottomY, leftX, rightX)
DrawLines(g, leftX, rightX, topY, bottomY, boldEveryNLines, BoldLines)
results.AddRange(DrawNumbers(g, numbers, topY, leftX, font))
Case 1
Dim centerX As Integer = center.X
Dim centerY As Integer = center.Y
Dim topY As Integer = centerY - ((rowCount \ 2) * cellHeight)
Dim bottomY As Integer = centerY + ((rowCount \ 2) * cellHeight)
Dim remainderColumns As Integer = (columnCount - 1) \ 2
Dim leftX As Integer = (centerX - (cellWidth \ 2)) - (remainderColumns * cellWidth)
Dim rightX As Integer = (centerX + (cellWidth \ 2)) + (remainderColumns * cellWidth)
RenderBackGround(g, topY, bottomY, leftX, rightX)
DrawLines(g, leftX, rightX, topY, bottomY, boldEveryNLines, BoldLines)
results.AddRange(DrawNumbers(g, numbers, topY, leftX, font))
Case 2
Dim centerX As Integer = center.X
Dim centerY As Integer = center.Y
Dim remainderRows As Integer = (rowCount - 1) \ 2
Dim topY As Integer = (centerY - (cellHeight \ 2)) - (remainderRows * cellHeight)
Dim bottomY As Integer = (centerY + (cellHeight \ 2)) + (remainderRows * cellHeight)
Dim leftX As Integer = centerX - ((columnCount \ 2) * cellWidth)
Dim rightX As Integer = centerX + ((columnCount \ 2) * cellWidth)
RenderBackGround(g, topY, bottomY, leftX, rightX)
DrawLines(g, leftX, rightX, topY, bottomY, boldEveryNLines, BoldLines)
results.AddRange(DrawNumbers(g, numbers, topY, leftX, font))
Case 3
Dim centerX As Integer = center.X
Dim centerY As Integer = center.Y
Dim remainderRows As Integer = (rowCount - 1) \ 2
Dim topY As Integer = (centerY - (cellHeight \ 2)) - (remainderRows * cellHeight)
Dim bottomY As Integer = (centerY + (cellHeight \ 2)) + (remainderRows * cellHeight)
Dim remainderColumns As Integer = (columnCount - 1) \ 2
Dim leftX As Integer = (centerX - (cellWidth \ 2)) - (remainderColumns * cellWidth)
Dim rightX As Integer = (centerX + (cellWidth \ 2)) + (remainderColumns * cellWidth)
RenderBackGround(g, topY, bottomY, leftX, rightX)
DrawLines(g, leftX, rightX, topY, bottomY, boldEveryNLines, BoldLines)
results.AddRange(DrawNumbers(g, numbers, topY, leftX, font))
End Select
Return results
End Function
Private Sub RenderBackGround(g As Graphics, topY As Integer, bottomY As Integer, LeftX As Integer, RightX As Integer)
Dim left As Integer = LeftX - 5
Dim top As Integer = topY - 5
Dim width As Integer = (RightX - left) + 5
Dim height As Integer = (bottomY - top) + 5
Dim backGround As New Rectangle(left, top, width, height)
g.FillRectangle(Brushes.White, backGround)
End Sub
Public Function GetCellAt(arr As List(Of NumberCell), location As Point) As NumberCell
Dim index As Integer = (location.Y * 9) + location.X
Return arr(index)
End Function
Private Sub DrawLines(g As Graphics, leftX As Integer, rightX As Integer, topY As Integer, bottomY As Integer, boldEveryNLines As Integer, boldLines As Boolean)
Dim cnt As Integer = 0
Dim sudPen As New Pen(Brushes.OliveDrab, 2)
For x As Integer = leftX To rightX Step cellWidth
Dim p1 As New Point(x, topY)
Dim p2 As New Point(x, bottomY)
If cnt Mod boldEveryNLines = 0 AndAlso boldLines = True Then
g.DrawLine(sudPen, p1, p2)
Else
g.DrawLine(Pens.Black, p1, p2)
End If
cnt += 1
Next
cnt = 0
For y As Integer = topY To bottomY Step cellHeight
Dim p1 As New Point(leftX, y)
Dim p2 As New Point(rightX, y)
If cnt Mod boldEveryNLines = 0 AndAlso boldLines = True Then
g.DrawLine(sudPen, p1, p2)
Else
g.DrawLine(Pens.Black, p1, p2)
End If
cnt += 1
Next
End Sub
Private Function DrawNumbers(g As Graphics, numbers As List(Of NumberCell), topY As Integer, leftX As Integer, font As Font) As List(Of NumberCell)
Dim results As New List(Of NumberCell)
Dim counter As Integer = 1
Dim txtY As Integer = topY + (cellHeight \ 2)
Dim locX As Integer = 0
Dim locY As Integer = 0
For I As Integer = 0 To numbers.Count - 1
Dim n As Integer = numbers(I).Value
Dim x As Integer = (leftX - (cellWidth \ 2)) + (cellWidth * counter)
Dim nString As String = n.ToString
Dim textSizeF As SizeF = g.MeasureString(nString, font)
Dim textSize As Size = New Size(CInt(textSizeF.Width), CInt(textSizeF.Height))
Dim nX As Integer = x - (textSize.Width \ 2)
Dim nY As Integer = txtY - (textSize.Height \ 2)
Dim cX As Integer = leftX + (cellWidth * counter) - cellWidth
Dim cy As Integer = txtY - (cellHeight \ 2)
Dim cR As New Rectangle(cX, cy, cellWidth, cellHeight)
Dim nCell As New NumberCell(n, I)
nCell.Locked = numbers(I).Locked
nCell.Bounds = cR
nCell.X = locX
nCell.Y = locY
results.Add(nCell)
locX += 1
counter += 1
If counter Mod 10 = 0 Then
txtY += cellHeight
locY += 1
locX = 0
counter = 1
End If
If n = Nothing OrElse n = 0 Then Continue For
If nCell.Locked = True Then
g.DrawString(nString, font, Brushes.Black, New Point(nX, nY))
Else
g.DrawString(nString, New Font(font.FontFamily, font.Size, FontStyle.Bold), Brushes.Green, New Point(nX, nY))
End If
Next
Return results
End Function
Public Class NumberCell
Public Property Bounds As New Rectangle
Public Property ArrayIndex As Integer
Public Property Value As Integer
Public Property Locked As Boolean = False
Public Property X As Integer
Public Property Y As Integer
Sub New(value As Integer, ArrayIndex As Integer)
Me.Value = value
Me.ArrayIndex = ArrayIndex
If value = 0 Then
Me.Locked = False
Else
Me.Locked = True
End If
End Sub
Public Function IntersectsWith(pt As Point) As Boolean
Return Bounds.IntersectsWith(New Rectangle(pt, New Size(1, 1)))
End Function
Public Shadows Function ToString() As String
Return String.Format("Value={0} ArrayIndex={1} {2} X={3} Y={4}", Me.Value, Me.ArrayIndex, Me.Bounds.ToString, Me.X, Me.Y)
End Function
End Class
Sub AddHandlers()
AddHandler canvas.MouseClick, AddressOf canvas_MouseClick
AddHandler canvas.Paint, AddressOf canvas_Paint
AddHandler canvas.MouseMove, AddressOf canvas_MouseMove
AddHandler canvas.MouseUp, AddressOf canvas_MouseUp
AddHandler canvas.MouseDown, AddressOf canvas_MouseDown
End Sub
Private Sub canvas_MouseClick(sender As Object, e As MouseEventArgs)
If e.Button = Windows.Forms.MouseButtons.Right Then Exit Sub
For Each n As SudokuGame.NumberCell In numberCells
If n.IntersectsWith(currentPT) Then
If Not n.Locked Then
If n.Value > 0 Then
EditTB.Text = n.Value.ToString
Else
EditTB.Text = ""
End If
EditTB.Visible = True
EditTB.Width = n.Bounds.Width - 1
EditTB.Height = n.Bounds.Height - 1
EditTB.Left = n.Bounds.X + 1
EditTB.Top = n.Bounds.Y + 1
EditTB.Focus()
EditTB.SelectionStart = 0
EditTB.SelectionLength = EditTB.Text.Length
editingIndex = n.ArrayIndex
Else
EditTB.Visible = False
End If
canvas.Invalidate()
Exit For
Else
End If
Next
End Sub
Private Sub canvas_Paint(sender As Object, e As PaintEventArgs)
canvas.Text = "Sudoku v0.1 by Paul Ishak"
numberCells = Me.renderSudakoCard(e.Graphics, center, canvas.ClientRectangle.Size, canvas.BackColor, numbers, dFont)
e.Graphics.DrawString("Use the RIGHT mouse button to drag the sudoku grid.", New Font("segoe script", 12), Brushes.Black, New Point(5, 5))
End Sub
Sub CommitChange()
If Not EditTB.Text = "" Then
Try
Dim tmp As SudokuGame.NumberCell = numberCells(editingIndex)
Dim intValue As Integer = 0
Integer.TryParse(EditTB.Text, intValue)
If intValue > 9 Then intValue = 9
Dim newCell As New SudokuGame.NumberCell(intValue, tmp.ArrayIndex)
newCell.Bounds = tmp.Bounds
newCell.Locked = tmp.Locked
newCell.X = tmp.X
newCell.Y = tmp.Y
If Me.CanCommitChange(numberCells, newCell) Then
numbers(editingIndex) = newCell
numberCells(editingIndex) = newCell
EditTB.Text = ""
EditTB.Visible = False
canvas.Invalidate()
Else
EditTB.Text = ""
EditTB.Visible = False
Beep()
canvas.Invalidate()
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
End If
End Sub
Public Function configureGame(gameNumbers As List(Of Integer)) As List(Of SudokuGame.NumberCell)
Dim result As New List(Of SudokuGame.NumberCell)
For I As Integer = 1 To 81
result.Add(New SudokuGame.NumberCell(gameNumbers(I - 1), I - 1))
Next
Return result
End Function
Private Sub canvas_MouseMove(sender As Object, e As MouseEventArgs)
Dim pt As Point = canvas.PointToClient(Control.MousePosition)
currentPT = pt
If mouseisDown Then
center = pt
canvas.Invalidate()
Else
End If
End Sub
Private Sub canvas_MouseUp(sender As Object, e As MouseEventArgs)
mouseisDown = False
End Sub
Private Sub canvas_MouseDown(sender As Object, e As MouseEventArgs)
If e.Button = Windows.Forms.MouseButtons.Right Then
EditTB.Visible = False
mouseisDown = True
ElseIf e.Button = Windows.Forms.MouseButtons.Left Then
End If
End Sub
Private Sub EditTB_KeyDown(sender As Object, e As KeyEventArgs) Handles EditTB.KeyDown
Select Case True
Case e.KeyCode = Keys.Enter
End Select
End Sub
Private Sub EditTB_KeyUp(sender As Object, e As KeyEventArgs) Handles EditTB.KeyUp
CommitChange()
End Sub
Sub New(canvas As Control, gameNumbers As List(Of Integer))
Me.canvas = canvas
EditTB.Parent = canvas
AddHandlers()
numbers = configureGame(gameNumbers)
End Sub
End Class
“If you want something you've never had, you need to do something you've never done.”
Don't forget to mark
helpful posts and answers
! Answer an interesting question? Write a
new article
about it! My Articles
*This post does not reflect the opinion of Microsoft, or its employees.

Have you tried searching for the error message? A few min on google gives some useful advice.
http://stackoverflow.com/questions/14527201/vhdl-assigning-default-values
"All entity inputs must have either a signal driving them, or a default value specified in the entity declaration."

Similar Messages

  • SUDOKU (résolutio​n avec LV)

    Résolution des Sudoku avec LV.
    Ce VI utilise un algorithme de réflexion associé à un algorithme de backtraking. (100% home made)
    Il agit comme nous le ferions nous mêmes, par déductions, éliminations, recoupements
    et ... retour arrière en cas de "cul de sac".
    Les Sudoku "faciles" utilisent peu le backtraking. (pas du tout pour certains)
    Plus un Sudoku est difficile, plus il possède de solutions différentes.
    Celui que j'ai placé en "valeur par défaut d'entrée" est un exemple de Sudoku très difficile.
    Une horreur à résoudre, pour reprendre les termes de certains (je l'ai trouvé sur le Net)
    Ce Sudoku possèdent 2756 solutions différentes.
    Ce VI trouve la 1ere solution en 23 ms ... et les 2756 en un peu plus de 9 sec (Q6600 - 2.6Ghz)
    Possibilités:
    input - votre sudoku à résoudre.
    trouver une solution (la 1ere)
    trouver toutes les solutions.
    Faire pause (une fois que vous avez appuyé sur Pause, le petit bouton blanc permet de visualiser les solutions une par une)
    Le VI principal est : SUDOKU.vi
    Pour le tester rapidement ... lancer le vi et run
    1) start : il vous trouve la 1ere solution
    2) basculer l'interrupteur sur "all solutions" ... start ... il trouvera les 2756 solutions.
    voilou.
    Sur ce coup là ... me suis encore bien amusé
    Résolu !
    Accéder à la solution.
    Pièces jointes :
    main = SUDOKU.vi.zip ‏194 KB

    Il y a une règle pour interdire les groupes non anglophone?
    1) mon dieu ... que cela est bien difficle d'exprimer quelque chose ... de simple et de simplement dit.
    Je comprends que ceux qui travaillent sous LabVIEW tout ou partie de la journée aient envie de faire autre chose une fois chez eux.
    2) Je comprends parfaitement également, Il s'agissait d'un simple constat. (voir point 1)
    https://decibel.ni.com/content/docs/DOC-6108
    J'ai trouvé ceci sur le Net ... joli morceau de code ! très jolie cette solution récursive ...
    Mais ... mon algo va 5 fois plus vite. Résolution de la 1ere solution : 138ms contre 27ms.
    Cet algo récursif utilise également le backtraking, mais devant une impasse, il essaye "simplement" le nombre suivant.
    De mon côté, je calcule les possibilités pour chaque cases et à chaque instant,
    et quand je reviens en arrière, je ne passe pas "simplement" au nombre suivant ... mais au nombre suivant "possible" !

  • How to Test AIR 1.5

    Sorry if this seems slightly off center, but I blame Adobe, not myself. Trying to determine the true status and positioning of AIR amongst the various Flex forums and projects for an outsider is practically impossible. So, I will be brief. In September Mr. Chambers sent opened the flow by telling us that we could find FP10 integrated with Flex SDK in something you call 1.5 or Cosmo, or both. He was properly circumspect, so I didn't rush into it -- there was not even an ADL binary when I checked. Now it is November, the Trunk is at 4005, and ostensibly, everything we need to start trying to take advantage of FP support of 3D operations is out there. But where? Where do we get a version of AIR 1.5 that can be installed on a target desktop, so that we can try to run the ADT test cycle?
    Call it Gumbo, call it Flex4, call it whatever, but can someone tell us how to start testing it for AIR application deployment?
    Thank you.

    <DIV><FONT face=Arial size=2>I am sure you are right about an AIR application <br />being able to use Loader and SWFLoader.  I hope I have more or less figured <br />out the right way to do that.  But, I guess my point is that none of the <br />documentation I have been able to find anywhere would answer the question about <br />what to do with the framework and/or rpc files.  What, as far as you <br />understand it, is the correct way to manage the use of the A</FONT><FONT <br />face=Arial size=2>dobe swz files in an AIR application?</FONT></DIV><br /><BLOCKQUOTE <br />style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px"><br />  <DIV style="FONT: 10pt arial">----- Original Message ----- </DIV><br />  <DIV <br />  style="BACKGROUND: #e4e4e4; FONT: 10pt arial; font-color: black"><B>From:</B> <br />  <A [email protected] href="mailto:[email protected]">Josh <br />  McDonald</A> </DIV><br />  <DIV style="FONT: 10pt arial"><B>To:</B> <A [email protected] <br />  href="mailto:[email protected]">[email protected]</A> <br />  </DIV><br />  <DIV style="FONT: 10pt arial"><B>Sent:</B> Monday, November 03, 2008 11:01 <br />  PM</DIV><br />  <DIV style="FONT: 10pt arial"><B>Subject:</B> Re: How to Test AIR 1.5</DIV><br />  <DIV><BR></DIV>A new message was posted by Josh McDonald in <br />  <BR><BR><B>Developers</B> --<BR>  How to Test AIR 1.5<BR><BR>I'm <br />  sure there's nothing stopping you from loading SWFs and SWZs and SWCs and <br />  loading them in AIR? Just treat them as normal files, and use whatever you <br />  please to push out updates etc?<BR><BR>-Josh<BR><BR>On Tue, Nov 4, 2008 at <br />  4:53 PM, Terry Corbet <SPAN dir=ltr>&lt;<A <br />  href="mailto:[email protected]">[email protected]</A>&gt;</SPAN> <br />  wrote:<BR><br />  <BLOCKQUOTE class=gmail_quote <br />  style="PADDING-LEFT: 1ex; MARGIN: 0pt 0pt 0pt 0.8ex; BORDER-LEFT: rgb(204,204,204) 1px solid">A <br />    new message was posted by Terry Corbet in<BR><BR>Developers --<BR> How <br />    to Test AIR 1.5<BR><BR>01.  Thanks, I will continue testing with ADL <br />    and hopefully be able to move up to a web-base, remote installation/update <br />    scenario in a couple of weeks.<BR><BR>02.  I'm sorry you feel that my <br />    failure to accept what may be 'intuitively obvious to you' -- that I can <br />    design and test a 3D front end to FMS that works the same in a native window <br />    as in a browser window -- indicates any lack of faith in what will be <br />    delivered.  So far, I have found subtle, important differences, and I <br />    am sure there will be others that will just have to be patiently tested <br />    before I get it right.<BR><BR>03.  So, I'm glad you asked about swz in <br />    an AIR environment because that is a whole topic for which I have not been <br />    able to find any discussion on any of the many fine forums you have.  I <br />    understand product marketing and product development, but I can't say that I <br />    ever managed those activities in the environment you have in which several <br />    large projects co-exist with lingering dependencies and even 'cultures' as <br />    diverse as you have with the various acquisitions that come together in the <br />    suite of products you have today.<BR><BR>So, I will simply state that I <br />    think no one seems to have recognized that your paradigm for 'desktop' <br />    versus 'web-based' software -- the essential distinction which seems to <br />    describe Adobe's description of an AIR versus a Flex application -- does not <br />    always hold.  I understand the general dichotomy, but it does not hold <br />    for my user base.<BR><BR>You have lots of design papers and lots of software <br />    devoted to 'reducing the burden' of ever-growing executables in the Flex <br />    framework by caching of your or our rsls.  That's a good idea. <br />     Why do you think it is not just as good an idea for an AIR <br />    application?  Probably because you think that an AIR application will <br />    either be shipped on a CD, or sent over the Internet, but relatively <br />    infrequently, so who cares if you have to ship out 10MBs or 2MBs? My user <br />    cares.<BR><BR>My user will get frequent updates to an ever-growing body of <br />    software called an application, and he will get them over those same slow <br />    bandwidth network links that the Flex user sees.  What's "good for the <br />    goose is good for the gander".  There is simply no reason not to <br />    architect the library of code that we use to cobble together the application <br />    and use the same intelligent caching mechanism in both environments.  I <br />    looked for a month for a white paper or discussion of how to 'modularize' an <br />    AIR app but all that you wanted to publish were white papers on how to <br />    'modularize' a Flex app.<BR><BR>I'm sure that you guys have a bunch of <br />    object diagrams and product architecture blueprints that you have memorized <br />    -- but that is not what we see 'outside the black box'.  What we see is <br />    a confusing distinction between the AIR efforts and the Flex efforts <br />    although the code base and efforts are substantially the same.  And if <br />    that is true from an internals point of view, put on your end-user hat and <br />    look at how we view a AIR/Flex app -- it is all one.<BR><BR>So, I develop <br />    the worlds greatest Juke Box and get it all going in Flex, then I move that <br />    into one Tab on one Screen in the AIR 'shell'.  Then some guys go off <br />    and mostly use AIR-unique code to add a Tab that allows Drag and Drop <br />    creation of Slide Shows accompanied by voice overs, and another set of my <br />    guys go off to add the 'Sudoku' module in just plain old Flex.  At some <br />    point in time in some ant task, we've got 10MB of code and X MBs of that is <br />    in one of our present [or future] swz files.  Where is the distinction <br />    that says I should just ask my users to download the whole shooting match, <br />    when what he really wants to do is just download whatever updated or new <br />    application modules [including any upgrades to your frameworks] when <br />    required.<BR><BR>So, it took some time, but today, my application is <br />    compiled with dynamic linking to the framework.swz, and when the user <br />    launches his AIR application on the desktop, the Flash Player, embedded in <br />    the AIR environment, is smart enough to find that it already has the <br />    necessary framework code and does not need to go back to the network to get <br />    it refreshed.  Actually, since I could never figure out how to use <br />    Module and ModuleManager, the method for solving the framework caching <br />    problem ended up just being an extension of what I developed for version <br />    management 'with continuous update' of my own swf files.  So, when the <br />    AIR shell starts up, it needs to test to see whether there is any updating <br />    to be done, or whether it already has locally available the 'latest and <br />    greatest' and that works the same for MyCute3DWizBang.swf or <br />    framework_3.1.0.2710.swz or framework_4.0.0.3988.swf.<BR><BR>If you take the <br />    point of view that a 'desktop application' doesn't need to do anything <br />    special to solve the problem of 'large file downloads', you end up thinking <br />    that there is no reason for an AIR application to take advantage of the <br />    frameworked cache when, in fact, almost all of that code is needed whether <br />    the execution thread starts in a 'WindowApplication' or just a plain old <br />    'Application'.  At least thats the cockamaymee point of view that I <br />    came to in the absence of any 'best practice' discussion of these key topics <br />    --  so far, it seems to be working pretty well, but as you can guess, <br />    testing across a network to a remote host that may or may not have the right <br />    version of AIR, or the right version of framework, or the right version of <br />    MyCute3DWizBang  is really more important than just testing against <br />    ADL. <BR><BR><BR>----- Original Message ----- From: "Matt Chotin" &lt;<A <br />    href="mailto:[email protected]" <br />    target=_blank>[email protected]</A>&gt;<BR>To: &lt;<A <br />    href="mailto:[email protected]" <br />    target=_blank>[email protected]</A>&gt;<BR>Sent: Monday, November <br />    03, 2008 8:39 PM<BR>Subject: Re: How to Test AIR 1.5<BR><BR><BR><br />    <BLOCKQUOTE class=gmail_quote <br />    style="PADDING-LEFT: 1ex; MARGIN: 0pt 0pt 0pt 0.8ex; BORDER-LEFT: rgb(204,204,204) 1px solid">A <br />      new message was posted by Matt Chotin in<BR><BR>Developers --<BR> How <br />      to Test AIR 1.5<BR><BR>The badge install doesn't work with debug, you can <br />      only use adl.exe right now.  But this should show how the whole <br />      system would work and really allow you to evaluate.  You know how the <br />      AIR install works with Air 1.1 (if not, use Flex 3.1 to target 1.1), I <br />      don't think seeing it with AIR 1.5 is critical to evaluate the features of <br />      the runtime at this point.<BR><BR>Air and the Flash Player are runtimes, <br />      and we've made it clear that AIR 1.5 would include FP10 features.  So <br />      when we say Flex will enable FP10, it should be obvious that when AIR 1.5 <br />      comes out Flex will support it in the same way.<BR><BR>I don't really <br />      understand what you're doing with the SWZ and AIR, there's no real need to <br />      use a cached framework when the whole app is going to be <br />      installed.<BR><BR>In any case, Air 1.5 should be out in 2 weeks hopefully <br />      so you'll be set then.<BR><BR>Matt<BR><BR>On 11/3/08 8:07 PM, "Terry <br />      Corbet" &lt;<A href="mailto:[email protected]" <br />      target=_blank>[email protected]</A>&gt; wrote:<BR><BR>A new message <br />      was posted by Terry Corbet in<BR><BR>Developers --<BR> How to Test <br />      AIR 1.5<BR><BR>Thanks for the quick turnaround.  Pardon my ignorance, <br />      but exactly what .exe<BR>file will install Air 1.5 on a system?  I <br />      don't find it anywhere.  I guess I<BR>can try to tear the ADL source <br />      apart to see how it mimics that behavior, but<BR>that is, at best, just a <br />      local test.  I think testing the whole Badge<BR>install sequence is <br />      essential, and would like to give it a try.  The longer<BR>we put <br />      this off, the longer we all just sit here trying to decide whether <br />      to<BR>stay with Papervision, Away, Sandy, or to use the graphics support <br />      in the<BR>Player.<BR><BR>I am busy making the dynamic link to the <br />      framework.swz work for Flex modules<BR>running under an AIR shell, and I <br />      doubt that I am alone.  There must be many<BR>of us who really see no <br />      distinction between AIR and Flex -- they just<BR>provide us two different <br />      ways to slice a problem, that's why it is so<BR>disconcerting to try to <br />      follow the threads on rapid Flex advancement with FP<BR>10, but almost <br />      nothing pertaining the doing the very same things with the<BR>AIR <br />      toolkit.<BR><BR>I hope you can tell me where to get the standalone AIR 1.5 <br />      installer that<BR>will me keep making progress with the debugging output <br />      reasonably well<BR>handled by Allesandros' FireFox tracer.  Many <br />      thanks.<BR><BR><BR>----- Original Message -----<BR>From: "Matt Chotin" <br />      &lt;<A href="mailto:[email protected]" <br />      target=_blank>[email protected]</A>&gt;<BR>To: &lt;<A <br />      href="mailto:[email protected]" <br />      target=_blank>[email protected]</A>&gt;<BR>Sent: Monday, <br />      November 03, 2008 7:55 PM<BR>Subject: Re: How to Test AIR 1.5<BR><BR><BR><br />      <BLOCKQUOTE class=gmail_quote <br />      style="PADDING-LEFT: 1ex; MARGIN: 0pt 0pt 0pt 0.8ex; BORDER-LEFT: rgb(204,204,204) 1px solid">A <br />        new message was posted by Matt Chotin in<BR><BR>Developers <br />        --<BR> How to Test AIR 1.5<BR><BR>Hi,<BR><BR>We're not doing a <br />        public beta of the release runtime for AIR 1.5.  You can<BR>use the <br />        debug runtimes that are part of the Flex nightly builds though<BR>(check <br />        the Flex 3 nightlies) to validate that AIR 1.5 will be right for<BR>you <br />        though.<BR><BR>Matt<BR><BR>On 11/3/08 7:38 PM, "Terry Corbet" &lt;<A <br />        href="mailto:[email protected]" <br />        target=_blank>[email protected]</A>&gt; wrote:<BR><BR>A new <br />        discussion was started by Terry Corbet in<BR><BR>Developers <br />        --<BR> How to Test AIR 1.5<BR><BR>Sorry if this seems slightly off <br />        center, but I blame Adobe, not myself.<BR>Trying to determine the true <br />        status and positioning of AIR amongst the<BR>various Flex forums and <br />        projects for an outsider is practically<BR>impossible.  So, I will <br />        be brief.  In September Mr. Chambers sent opened<BR>the flow by <br />        telling us that we could find FP10 integrated with Flex SDK <br />        in<BR>something you call 1.5 or Cosmo, or both.  He was properly <br />        circumspect, so<BR>I didn't rush into it -- there was not even an ADL <br />        binary when I checked.<BR>Now it is November, the Trunk is at 4005, and <br />        ostensibly, everything we<BR>need to start trying to take advantage of <br />        FP support of 3D operations is<BR>out there.  But where? <br />         Where do we get a version of AIR 1.5 that can be<BR>installed on a <br />        target desktop, so that we can try to run the ADT <br />        test<BR>cycle?<BR><BR>Call it Gumbo, call it Flex4, call it whatever, <br />        but can someone tell us<BR>how to start testing it for AIR application <br />        deployment?<BR><BR>Thank <br />        you.<BR><BR>________________________________<BR>View/reply at How to <br />        Test AIR 1.5<BR>&lt;<A <br />        href="http://www.adobeforums.com/webx?13@@.59b6ed86" <br />        target=_blank>http://www.adobeforums.com/webx?13@@.59b6ed86</A>&gt;<BR>Replies <br />        by email are OK.<BR>Use the unsubscribe<BR>&lt;<A <br />        href="http://www.adobeforums.com/webx?280@@.59b6ed86%21folder=.3c060fa3" <br />        target=_blank>http://www.adobeforums.com/webx?280@@.59b6ed86!folder=.3c060fa3</A>&gt; <br />         form to<BR>cancel your email <br />        subscription.<BR><BR><BR><BR><BR>------------------------------------------------------<B R>View/reply <br />        at &lt;<A href="http://www.adobeforums.com/webx?13@@.59b6ed86/0" <br />        target=_blank>http://www.adobeforums.com/webx?13@@.59b6ed86/0</A>&gt;<BR>Replies <br />        by email are OK.<BR>Use the unsubscribe form at<BR>&lt;<A <br />        href="http://www.adobeforums.com/webx?280@@.59b6ed86%21folder=.3c060fa3" <br />        target=_blank>http://www.adobeforums.com/webx?280@@.59b6ed86!folder=.3c060fa3</A>&gt; <br />        to<BR>cancel your email <br />      subscription.<BR></BLOCKQUOTE><BR><BR><BR>----------------------------------------------- -------<BR>View/reply <br />      at &lt;<A href="http://www.adobeforums.com/webx?13@@.59b6ed86/1" <br />      target=_blank>http://www.adobeforums.com/webx?13@@.59b6ed86/1</A>&gt;<BR>Replies <br />      by email are OK.<BR>Use the unsubscribe form at &lt;<A <br />      href="http://www.adobeforums.com/webx?280@@.59b6ed86%21folder=.3c060fa3" <br />      target=_blank>http://www.adobeforums.com/webx?280@@.59b6ed86!folder=.3c060fa3</A>&gt; <br />      to cancel your email <br />      subscription.<BR><BR><BR><BR>------------------------------------------------------<BR>Vi ew/reply <br />      at &lt;<A href="http://www.adobeforums.com/webx?13@@.59b6ed86/2" <br />      target=_blank>http://www.adobeforums.com/webx?13@@.59b6ed86/2</A>&gt;<BR>Replies <br />      by email are OK.<BR>Use the unsubscribe form at &lt;<A <br />      href="http://www.adobeforums.com/webx?280@@.59b6ed86%21folder=.3c060fa3" <br />      target=_blank>http://www.adobeforums.com/webx?280@@.59b6ed86!folder=.3c060fa3</A>&gt; <br />      to cancel your email subscription. <br />    <BR></BLOCKQUOTE><BR><BR><BR>------------------------------------------------------<BR>Vi ew/reply <br />    at &lt;<A href="http://www.adobeforums.com/webx?13@@.59b6ed86/3" <br />    target=_blank>http://www.adobeforums.com/webx?13@@.59b6ed86/3</A>&gt;<BR>Replies <br />    by email are OK.<BR>Use the unsubscribe form at &lt;<A <br />    href="http://www.adobeforums.com/webx?280@@.59b6ed86%21folder=.3c060fa3" <br />    target=_blank>http://www.adobeforums.com/webx?280@@.59b6ed86!folder=.3c060fa3</A>&gt; <br />    to cancel your email subscription.<BR></BLOCKQUOTE><BR><BR clear=all><BR>-- <br />  <BR>"Therefore, send not to know For whom the bell tolls. It tolls for <br />  thee."<BR><BR>Like the cut of my jib? Check out my Flex blog!<BR><BR>:: Josh <br />  'G-Funk' McDonald<BR>:: 0437 221 380 :: <A <br />  href="mailto:[email protected]">[email protected]</A><BR>:: <A <br />  href="http://flex.joshmcdonald.info/">http://flex.joshmcdonald.info/</A><BR>:: <br />  <A <br />  href="http://twitter.com/sophistifunk">http://twitter.com/sophistifunk</A><BR><BR><BR><br />  <HR align=left width=200><br />  View/reply at <A href="http://www.adobeforums.com/webx?13@@.59b6ed86/4">How to <br />  Test AIR 1.5</A><BR>Replies by email are OK.<BR>Use the <A <br />  href="http://www.adobeforums.com/webx?280@@.59b6ed86!folder=.3c060fa3">unsubscribe</A> <br />  form to cancel your email subscription.<BR><BR></BLOCKQUOTE>

  • Sudoko Test 3

    From VS 2013 VB.Net form app:
    Public Class SudokuGame
    Public Property cellHeight As Integer = 20
    Public Property cellWidth As Integer = 20
    Public Property canvas As Control
    Private center As New Point(200, 200)
    Private mouseisDown As Boolean = False
    Private numbers As New List(Of SudokuGame.NumberCell)
    Private numberCells As New List(Of SudokuGame.NumberCell)
    Private currentPT As Point = New Point(0, 0)
    Private dFont As New Font("segoe script", 12)
    Private mousex As Integer
    Private mousey As Integer
    Friend WithEvents EditTB As New RichTextBox With {.Parent = canvas, .BorderStyle = BorderStyle.None, .Visible = False, .Font = New Font("Consolas", 16), .MaxLength = 1, .Multiline = False, .ForeColor = Color.Red, .BackColor = Color.DarkGoldenrod}
    Private editingIndex As Integer = 0
    Public Function CanCommitChange(ByRef numbercells As List(Of NumberCell), ByRef numberCell As NumberCell) As Boolean
    Dim cellRegionEnum As SudokuRegion = GetCellRegionEnum(numberCell)
    Dim cellRegion As List(Of NumberCell) = Me.GetRegion(numbercells, cellRegionEnum)
    Dim cellColumn As List(Of NumberCell) = Me.GetColumn(numbercells, numberCell.X)
    Dim cellRow As List(Of NumberCell) = Me.GetRow(numbercells, numberCell.Y)
    For Each nC As NumberCell In cellRegion
    If nC.Value = numberCell.Value Then
    If numberCell.Value = 0 Then Continue For
    Return False
    End If
    Next
    For Each nC As NumberCell In cellColumn
    If nC.Value = numberCell.Value Then
    If numberCell.Value = 0 Then Continue For
    Return False
    End If
    Next
    For Each nC As NumberCell In cellRow
    If nC.Value = numberCell.Value Then
    If numberCell.Value = 0 Then Continue For
    Return False
    End If
    Next
    Return True
    End Function
    Function colString(col As List(Of NumberCell)) As String
    Dim s As String = String.Empty
    For Each n As NumberCell In col
    s = s & n.Value
    Next
    Return s
    End Function
    Public Function GetCellRegionEnum(numberCell As NumberCell) As SudokuRegion
    Dim result As String = String.Empty
    Dim tLregion As New List(Of Integer) From {0, 1, 2, 9, 10, 11, 18, 19, 20}
    Dim tCregion As New List(Of Integer) From {3, 4, 5, 12, 13, 14, 21, 22, 23}
    Dim tRregion As New List(Of Integer) From {6, 7, 8, 15, 16, 17, 24, 25, 26}
    Dim cLregion As New List(Of Integer) From {27, 28, 29, 36, 37, 38, 45, 46, 47}
    Dim cCregion As New List(Of Integer) From {30, 31, 32, 39, 40, 41, 48, 49, 50}
    Dim cRregion As New List(Of Integer) From {33, 34, 35, 42, 43, 44, 51, 52, 53}
    Dim bLregion As New List(Of Integer) From {54, 55, 56, 63, 64, 65, 72, 73, 74}
    Dim bCregion As New List(Of Integer) From {57, 58, 59, 66, 67, 68, 75, 76, 77}
    Dim bRregion As New List(Of Integer) From {60, 61, 62, 69, 70, 71, 78, 79, 80}
    Select Case True
    Case tLregion.IndexOf(numberCell.ArrayIndex) > -1 : Return SudokuRegion.TopLeft
    Case tCregion.IndexOf(numberCell.ArrayIndex) > -1 : Return SudokuRegion.TopCenter
    Case tRregion.IndexOf(numberCell.ArrayIndex) > -1 : Return SudokuRegion.TopRight
    Case cLregion.IndexOf(numberCell.ArrayIndex) > -1 : Return SudokuRegion.CenterLeft
    Case cCregion.IndexOf(numberCell.ArrayIndex) > -1 : Return SudokuRegion.CenterCenter
    Case cRregion.IndexOf(numberCell.ArrayIndex) > -1 : Return SudokuRegion.CenterRight
    Case bLregion.IndexOf(numberCell.ArrayIndex) > -1 : Return SudokuRegion.BottomLeft
    Case bCregion.IndexOf(numberCell.ArrayIndex) > -1 : Return SudokuRegion.BottomCenter
    Case bRregion.IndexOf(numberCell.ArrayIndex) > -1 : Return SudokuRegion.BottomRight
    End Select
    Return Nothing
    End Function
    Public Function GetColumn(numbercells As List(Of NumberCell), colNumber As Integer) As List(Of NumberCell)
    Dim results As New List(Of NumberCell)
    For i As Integer = colNumber To 80 Step 9
    results.Add(numbercells(i))
    Next
    Return results
    End Function
    Public Function GetRow(numbercells As List(Of NumberCell), rowNumber As Integer) As List(Of NumberCell)
    Dim start As Integer = rowNumber * 9
    Dim results As New List(Of NumberCell)
    For I As Integer = start To start + 8
    results.Add(numbercells(I))
    Next
    Return results
    End Function
    Public Function RegionToString(numbercells As List(Of NumberCell), sRegion As SudokuRegion) As String
    Dim region As List(Of NumberCell) = Me.GetRegion(numbercells, sRegion)
    Dim sb As New System.Text.StringBuilder
    For i As Integer = 1 To region.Count
    sb.Append(region(i - 1).Value.ToString)
    If i Mod 3 = 0 Then sb.Append(vbCrLf)
    Next
    Return sb.ToString
    End Function
    Private Function ZeroCount(s As String) As Integer
    Dim result As Integer
    For Each c As Char In s
    If c = "0"c Then result += 1
    Next
    Return result
    End Function
    Public Function GetRegion(numbercells As List(Of NumberCell), region As SudokuRegion) As List(Of NumberCell)
    Dim c As List(Of NumberCell) = numbercells
    Select Case region
    Case SudokuRegion.TopLeft : Return {c(0), c(1), c(2), c(9), c(10), c(11), c(18), c(19), c(20)}.ToList
    Case SudokuRegion.TopCenter : Return {c(3), c(4), c(5), c(12), c(13), c(14), c(21), c(22), c(23)}.ToList
    Case SudokuRegion.TopRight : Return {c(6), c(7), c(8), c(15), c(16), c(17), c(24), c(25), c(26)}.ToList
    Case SudokuRegion.CenterLeft : Return {c(27), c(28), c(29), c(36), c(37), c(38), c(45), c(46), c(47)}.ToList
    Case SudokuRegion.CenterCenter : Return {c(30), c(31), c(32), c(39), c(40), c(41), c(48), c(49), c(50)}.ToList
    Case SudokuRegion.CenterRight : Return {c(33), c(34), c(35), c(42), c(43), c(44), c(51), c(52), c(53)}.ToList
    Case SudokuRegion.BottomLeft : Return {c(54), c(55), c(56), c(63), c(64), c(65), c(72), c(73), c(74)}.ToList
    Case SudokuRegion.BottomCenter : Return {c(57), c(58), c(59), c(66), c(67), c(68), c(75), c(76), c(77)}.ToList
    Case SudokuRegion.BottomRight : Return {c(60), c(61), c(62), c(69), c(70), c(71), c(78), c(79), c(80)}.ToList
    End Select
    Return New List(Of NumberCell)
    End Function
    Public Enum SudokuRegion
    TopLeft
    TopCenter
    TopRight
    CenterLeft
    CenterCenter
    CenterRight
    BottomLeft
    BottomCenter
    BottomRight
    End Enum
    Public Function renderSudakoCard(g As Graphics, center As Point, frameSize As Size, backColor As Color, numbers As List(Of NumberCell), font As Font) As List(Of NumberCell)
    Dim results As New List(Of NumberCell)
    Dim boldEveryNLines As Integer = 3
    Dim BoldLines As Boolean = True
    Dim rowCount As Integer = 9
    Dim columnCount As Integer = 9
    g.Clear(backColor)
    Dim combo As String = "000000"
    If rowCount Mod 2 = 1 Then combo = combo & "1" Else combo = combo & "0"
    If columnCount Mod 2 = 1 Then combo = combo & "1" Else combo = combo & "0"
    If cellHeight Mod 2 = 1 Then cellHeight += 1
    If cellWidth Mod 2 = 1 Then cellWidth += 1
    Select Case Convert.ToInt32(combo, 2)
    Case 0
    Dim centerX As Integer = center.X
    Dim centerY As Integer = center.Y
    Dim topY As Integer = centerY - ((rowCount \ 2) * cellHeight)
    Dim bottomY As Integer = centerY + ((rowCount \ 2) * cellHeight)
    Dim leftX As Integer = centerX - ((columnCount \ 2) * cellWidth)
    Dim rightX As Integer = centerX + ((columnCount \ 2) * cellWidth)
    RenderBackGround(g, topY, bottomY, leftX, rightX)
    DrawLines(g, leftX, rightX, topY, bottomY, boldEveryNLines, BoldLines)
    results.AddRange(DrawNumbers(g, numbers, topY, leftX, font))
    Case 1
    Dim centerX As Integer = center.X
    Dim centerY As Integer = center.Y
    Dim topY As Integer = centerY - ((rowCount \ 2) * cellHeight)
    Dim bottomY As Integer = centerY + ((rowCount \ 2) * cellHeight)
    Dim remainderColumns As Integer = (columnCount - 1) \ 2
    Dim leftX As Integer = (centerX - (cellWidth \ 2)) - (remainderColumns * cellWidth)
    Dim rightX As Integer = (centerX + (cellWidth \ 2)) + (remainderColumns * cellWidth)
    RenderBackGround(g, topY, bottomY, leftX, rightX)
    DrawLines(g, leftX, rightX, topY, bottomY, boldEveryNLines, BoldLines)
    results.AddRange(DrawNumbers(g, numbers, topY, leftX, font))
    Case 2
    Dim centerX As Integer = center.X
    Dim centerY As Integer = center.Y
    Dim remainderRows As Integer = (rowCount - 1) \ 2
    Dim topY As Integer = (centerY - (cellHeight \ 2)) - (remainderRows * cellHeight)
    Dim bottomY As Integer = (centerY + (cellHeight \ 2)) + (remainderRows * cellHeight)
    Dim leftX As Integer = centerX - ((columnCount \ 2) * cellWidth)
    Dim rightX As Integer = centerX + ((columnCount \ 2) * cellWidth)
    RenderBackGround(g, topY, bottomY, leftX, rightX)
    DrawLines(g, leftX, rightX, topY, bottomY, boldEveryNLines, BoldLines)
    results.AddRange(DrawNumbers(g, numbers, topY, leftX, font))
    Case 3
    Dim centerX As Integer = center.X
    Dim centerY As Integer = center.Y
    Dim remainderRows As Integer = (rowCount - 1) \ 2
    Dim topY As Integer = (centerY - (cellHeight \ 2)) - (remainderRows * cellHeight)
    Dim bottomY As Integer = (centerY + (cellHeight \ 2)) + (remainderRows * cellHeight)
    Dim remainderColumns As Integer = (columnCount - 1) \ 2
    Dim leftX As Integer = (centerX - (cellWidth \ 2)) - (remainderColumns * cellWidth)
    Dim rightX As Integer = (centerX + (cellWidth \ 2)) + (remainderColumns * cellWidth)
    RenderBackGround(g, topY, bottomY, leftX, rightX)
    DrawLines(g, leftX, rightX, topY, bottomY, boldEveryNLines, BoldLines)
    results.AddRange(DrawNumbers(g, numbers, topY, leftX, font))
    End Select
    Return results
    End Function
    Private Sub RenderBackGround(g As Graphics, topY As Integer, bottomY As Integer, LeftX As Integer, RightX As Integer)
    Dim left As Integer = LeftX - 5
    Dim top As Integer = topY - 5
    Dim width As Integer = (RightX - left) + 5
    Dim height As Integer = (bottomY - top) + 5
    Dim backGround As New Rectangle(left, top, width, height)
    g.FillRectangle(Brushes.White, backGround)
    End Sub
    Public Function GetCellAt(arr As List(Of NumberCell), location As Point) As NumberCell
    Dim index As Integer = (location.Y * 9) + location.X
    Return arr(index)
    End Function
    Private Sub DrawLines(g As Graphics, leftX As Integer, rightX As Integer, topY As Integer, bottomY As Integer, boldEveryNLines As Integer, boldLines As Boolean)
    Dim cnt As Integer = 0
    Dim sudPen As New Pen(Brushes.OliveDrab, 2)
    For x As Integer = leftX To rightX Step cellWidth
    Dim p1 As New Point(x, topY)
    Dim p2 As New Point(x, bottomY)
    If cnt Mod boldEveryNLines = 0 AndAlso boldLines = True Then
    g.DrawLine(sudPen, p1, p2)
    Else
    g.DrawLine(Pens.Black, p1, p2)
    End If
    cnt += 1
    Next
    cnt = 0
    For y As Integer = topY To bottomY Step cellHeight
    Dim p1 As New Point(leftX, y)
    Dim p2 As New Point(rightX, y)
    If cnt Mod boldEveryNLines = 0 AndAlso boldLines = True Then
    g.DrawLine(sudPen, p1, p2)
    Else
    g.DrawLine(Pens.Black, p1, p2)
    End If
    cnt += 1
    Next
    End Sub
    Private Function DrawNumbers(g As Graphics, numbers As List(Of NumberCell), topY As Integer, leftX As Integer, font As Font) As List(Of NumberCell)
    Dim results As New List(Of NumberCell)
    Dim counter As Integer = 1
    Dim txtY As Integer = topY + (cellHeight \ 2)
    Dim locX As Integer = 0
    Dim locY As Integer = 0
    For I As Integer = 0 To numbers.Count - 1
    Dim n As Integer = numbers(I).Value
    Dim x As Integer = (leftX - (cellWidth \ 2)) + (cellWidth * counter)
    Dim nString As String = n.ToString
    Dim textSizeF As SizeF = g.MeasureString(nString, font)
    Dim textSize As Size = New Size(CInt(textSizeF.Width), CInt(textSizeF.Height))
    Dim nX As Integer = x - (textSize.Width \ 2)
    Dim nY As Integer = txtY - (textSize.Height \ 2)
    Dim cX As Integer = leftX + (cellWidth * counter) - cellWidth
    Dim cy As Integer = txtY - (cellHeight \ 2)
    Dim cR As New Rectangle(cX, cy, cellWidth, cellHeight)
    Dim nCell As New NumberCell(n, I)
    nCell.Locked = numbers(I).Locked
    nCell.Bounds = cR
    nCell.X = locX
    nCell.Y = locY
    results.Add(nCell)
    locX += 1
    counter += 1
    If counter Mod 10 = 0 Then
    txtY += cellHeight
    locY += 1
    locX = 0
    counter = 1
    End If
    If n = Nothing OrElse n = 0 Then Continue For
    If nCell.Locked = True Then
    g.DrawString(nString, font, Brushes.Black, New Point(nX, nY))
    Else
    g.DrawString(nString, New Font(font.FontFamily, font.Size, FontStyle.Bold), Brushes.Green, New Point(nX, nY))
    End If
    Next
    Return results
    End Function
    Public Class NumberCell
    Public Property Bounds As New Rectangle
    Public Property ArrayIndex As Integer
    Public Property Value As Integer
    Public Property Locked As Boolean = False
    Public Property X As Integer
    Public Property Y As Integer
    Sub New(value As Integer, ArrayIndex As Integer)
    Me.Value = value
    Me.ArrayIndex = ArrayIndex
    If value = 0 Then
    Me.Locked = False
    Else
    Me.Locked = True
    End If
    End Sub
    Public Function IntersectsWith(pt As Point) As Boolean
    Return Bounds.IntersectsWith(New Rectangle(pt, New Size(1, 1)))
    End Function
    Public Shadows Function ToString() As String
    Return String.Format("Value={0} ArrayIndex={1} {2} X={3} Y={4}", Me.Value, Me.ArrayIndex, Me.Bounds.ToString, Me.X, Me.Y)
    End Function
    End Class
    Sub AddHandlers()
    AddHandler canvas.MouseClick, AddressOf canvas_MouseClick
    AddHandler canvas.Paint, AddressOf canvas_Paint
    AddHandler canvas.MouseMove, AddressOf canvas_MouseMove
    AddHandler canvas.MouseUp, AddressOf canvas_MouseUp
    AddHandler canvas.MouseDown, AddressOf canvas_MouseDown
    End Sub
    Private Sub canvas_MouseClick(sender As Object, e As MouseEventArgs)
    If e.Button = Windows.Forms.MouseButtons.Right Then Exit Sub
    For Each n As SudokuGame.NumberCell In numberCells
    If n.IntersectsWith(currentPT) Then
    If Not n.Locked Then
    If n.Value > 0 Then
    EditTB.Text = n.Value.ToString
    Else
    EditTB.Text = ""
    End If
    EditTB.Visible = True
    EditTB.Width = n.Bounds.Width - 1
    EditTB.Height = n.Bounds.Height - 1
    EditTB.Left = n.Bounds.X + 1
    EditTB.Top = n.Bounds.Y + 1
    EditTB.Focus()
    EditTB.SelectionStart = 0
    EditTB.SelectionLength = EditTB.Text.Length
    editingIndex = n.ArrayIndex
    Else
    EditTB.Visible = False
    End If
    canvas.Invalidate()
    Exit For
    Else
    End If
    Next
    End Sub
    Private Sub canvas_Paint(sender As Object, e As PaintEventArgs)
    canvas.Text = "Sudoku v0.1 by Paul Ishak"
    numberCells = Me.renderSudakoCard(e.Graphics, center, canvas.ClientRectangle.Size, canvas.BackColor, numbers, dFont)
    e.Graphics.DrawString("Use the RIGHT mouse button to drag the sudoku grid.", New Font("segoe script", 12), Brushes.Black, New Point(5, 5))
    End Sub
    Sub CommitChange()
    If Not EditTB.Text = "" Then
    Try
    Dim tmp As SudokuGame.NumberCell = numberCells(editingIndex)
    Dim intValue As Integer = 0
    Integer.TryParse(EditTB.Text, intValue)
    If intValue > 9 Then intValue = 9
    Dim newCell As New SudokuGame.NumberCell(intValue, tmp.ArrayIndex)
    newCell.Bounds = tmp.Bounds
    newCell.Locked = tmp.Locked
    newCell.X = tmp.X
    newCell.Y = tmp.Y
    If Me.CanCommitChange(numberCells, newCell) Then
    numbers(editingIndex) = newCell
    numberCells(editingIndex) = newCell
    EditTB.Text = ""
    EditTB.Visible = False
    canvas.Invalidate()
    Else
    EditTB.Text = ""
    EditTB.Visible = False
    Beep()
    canvas.Invalidate()
    End If
    Catch ex As Exception
    MsgBox(ex.Message)
    End Try
    End If
    End Sub
    Public Function configureGame(gameNumbers As List(Of Integer)) As List(Of SudokuGame.NumberCell)
    Dim result As New List(Of SudokuGame.NumberCell)
    For I As Integer = 1 To 81
    result.Add(New SudokuGame.NumberCell(gameNumbers(I - 1), I - 1))
    Next
    Return result
    End Function
    Private Sub canvas_MouseMove(sender As Object, e As MouseEventArgs)
    Dim pt As Point = canvas.PointToClient(Control.MousePosition)
    currentPT = pt
    If mouseisDown Then
    center = pt
    canvas.Invalidate()
    Else
    End If
    End Sub
    Private Sub canvas_MouseUp(sender As Object, e As MouseEventArgs)
    mouseisDown = False
    End Sub
    Private Sub canvas_MouseDown(sender As Object, e As MouseEventArgs)
    If e.Button = Windows.Forms.MouseButtons.Right Then
    EditTB.Visible = False
    mouseisDown = True
    ElseIf e.Button = Windows.Forms.MouseButtons.Left Then
    End If
    End Sub
    Private Sub EditTB_KeyDown(sender As Object, e As KeyEventArgs) Handles EditTB.KeyDown
    Select Case True
    Case e.KeyCode = Keys.Enter
    End Select
    End Sub
    Private Sub EditTB_KeyUp(sender As Object, e As KeyEventArgs) Handles EditTB.KeyUp
    CommitChange()
    End Sub
    Sub New(canvas As Control, gameNumbers As List(Of Integer))
    Me.canvas = canvas
    EditTB.Parent = canvas
    AddHandlers()
    numbers = configureGame(gameNumbers)
    End Sub
    End Class
    Karl
    When you see answers and helpful posts, please click Vote As Helpful, Propose As Answer, and/or Mark As Answer.
    My Blog: Unlock PowerShell
    My Book:
    Windows PowerShell 2.0 Bible
    My E-mail: -join ('6F6C646B61726C406F75746C6F6F6B2E636F6D'-split'(?<=\G.{2})'|%{if($_){[char][int]"0x$_"}})

    Your test looks right.... 
    “If you want something you've never had, you need to do something you've never done.”
    Don't forget to mark
    helpful posts and answers
    ! Answer an interesting question? Write a
    new article
    about it! My Articles
    *This post does not reflect the opinion of Microsoft, or its employees.

  • Unit Testing, Null, and Warnings

    I have a Unit Test that includes the following lines:
    Dim nullarray As Integer()()
    Assert.AreEqual(nullarray.ToString(False), "Nothing")
    The variable "nullarray" will obviously be null when ToString is called (ToString is an extension method, which is the one I am testing). This is by design, because the purpose of this specific unit test is to make sure that my ToString extension
    method handles null values the way I expect. The test runs fine, but Visual Studio 2013 gives includes the following warning:
    Variable 'nullarray' is used before it has been assigned a value. A null reference exception could result at runtime.
    This warning is to be expected, and I don't want to stop Visual Studio 2013 from showing this warning or any other warnings, just this specific case (and several others that involve similar scenarios). Is there any way to mark a line or segment
    of code so that it is not checked for warnings? Otherwise, I will end up with lots of warnings for things that I am perfectly aware of and don't plan on changing.
    Nathan Sokalski [email protected] http://www.nathansokalski.com/

    Hi Nathan Sokalski,
    Variable 'nullarray' is used before it has been assigned a value. A null reference exception could result at runtime.
    Whether the warning above was thrown when you built the test project but the test run successfully? I assume Yes.
    Is there any way to mark a line or segment of code so that it is not checked for warnings?
    There is no built-in way to make some code snippet or a code line not be checked during compiling, but we can configure some specific warnings not to be warned during compiling in Visual Basic through project Properties->Compile
    tab->warning configurations box.
    For detailed information, please see: Configuring Warnings in Visual Basic
    Another way is to correct your code logic and make sure the code will not generate warning at runtime.
    If I misunderstood you, please tell us what code you want it not to be checked for warnings with a sample so that we can further look at your issue.
    Thanks,
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • Previewing on local testing server

    When previewing a file in the Dreamweaver development
    environment, Dreamweaver loads the file, say testfile.html, in the
    browser with its file system address, eg
    file://Applications/MAMP/htdocs/jsMath/test/testfile.html. However,
    the local website address of this file is
    http://localhost:8888/jsMath/test/testfile.html.
    This leads to a security error
    Security Error: Content at
    file:///Applications/MAMP/htdocs/jsMath/test/testfile.html may not
    load data from
    http://localhost:8888/jsMath/plugins/autoload.js.
    The problem can be circumvented by avoiding the Dreamweaver
    preview and hand-loading the file directly as
    http://localhost:8888/jsMath/test/testfile.html
    Surely the preview feature must not be bound by this
    restriction. What might be done to get preview to work properly
    with this local testing server?
    -dao

    daoliver wrote:
    > Surely the preview feature must not be bound by this
    restriction. What might
    > be done to get preview to work properly with this local
    testing server?
    You need to define the testing server correctly in your site
    definition.
    In your case, the Testing server folder field should be set
    to
    Applications/MAMP/htdocs/jsMath/test/ and the URL prefix to
    http://localhost:8888/jsMath/test/.
    David Powers
    Adobe Community Expert, Dreamweaver
    http://foundationphp.com

  • SSL TEST IN R12

    Hi,
    we are about to implement SSL in ebs r12.0.4 to ensure that the user name and password get passed over the browser as encrypted(by default which is passed as simple text).
    Now i am following metalink document Enabling SSL in Release 12 [ID 376700.1]
    Initially i was testing with the demo certifcatest at the $INST_TOP/certs/Apache.
    All the middle tier setups has been done.Then when i restarted the Application and tried to connect my url that get redirected to the SSL port correctly but then failed with following:--
    500 Internal Server Error
    java.lang.NoClassDefFoundError     at oracle.apps.fnd.sso.AppsLoginRedirect.AppsSetting(AppsLoginRedirect.java:120)     
    at oracle.apps.fnd.sso.AppsLoginRedirect.init(AppsLoginRedirect.java:161)     
    at com.evermind[Oracle Containers for J2EE 10g (10.1.3.0.0) ].server.http.HttpApplication.loadServlet(HttpApplication.java:2231)     
    at com.evermind[Oracle Containers for J2EE 10g (10.1.3.0.0) ].server.http.HttpApplication.findServlet(HttpApplication.java:4617)     
    at com.evermind[Oracle Containers for J2EE 10g (10.1.3.0.0) ].server.http.HttpApplication.findServlet(HttpApplication.java:4541)     
    at com.evermind[Oracle Containers for J2EE 10g (10.1.3.0.0) ].server.http.HttpApplication.getRequestDispatcher(HttpApplication.java:2821)     
    at com.evermind[Oracle Containers for J2EE 10g (10.1.3.0.0) ].server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:740)     
    at com.evermind[Oracle Containers for J2EE 10g (10.1.3.0.0) ].server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:451)     
    at com.evermind[Oracle Containers for J2EE 10g (10.1.3.0.0) ].server.http.AJPRequestHandler.run(AJPRequestHandler.java:299)     
    at com.evermind[Oracle Containers for J2EE 10g (10.1.3.0.0) ].server.http.AJPRequestHandler.run(AJPRequestHandler.java:187)     
    at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260)     
    at oracle.oc4j.network.ServerSocketAcceptHandler.procClientSocket(ServerSocketAcceptHandler.java:230)     
    at oracle.oc4j.network.ServerSocketAcceptHandler.access$800(ServerSocketAcceptHandler.java:33)     
    at oracle.oc4j.network.ServerSocketAcceptHandler$AcceptHandlerHorse.run(ServerSocketAcceptHandler.java:831)     
    at com.evermind[Oracle Containers for J2EE 10g (10.1.3.0.0) ].util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)     
    at java.lang.Thread.run(Thread.java:595)Please help.
    Edited by: Susmit on Dec 24, 2010 4:24 PM

    Hi;
    please check below notes:
    "500 Internal Server Error - java.lang.NoClassDefFoundError: oracle.apps.fnd.profiles.Profiles" on 10G [ID 567554.1]
    R12: Troubleshooting 500 Internal Server Error in Oracle E-Business suite [ID 813523.1]
    Regard
    Helios

  • Open and close posting periods on test system

    Hello together,
    to open and close posting periods is only allowed on the develepment und the production client, but not on the test client.
    It is an customizing object, but the flag "current settings" is set, so you also can change the settings on the production system.
    In the test system, it only can be changed by opening the system for customizing using SCC4 und change to "Changes without automatic recording".
    Is there a way to allow open and close posting periods on the test system without opening the client for customizing?
    Regards,
    Michael

    Hi Michael,
    Please, refer to the note 356483. Proceed as following:
    Call transaction SE54
    Enter the Customizing object (view or table)
    Select "Generated objects"
    Choose "Create/change"
    Select "no, or user, recording routine" in the bottom part of the screen
    Save the change
    The view in your case is V_T001B.
    Regards,
    Eli

  • Dunning report difference in dev,testing and prod server in sap

    Hi all..
    we are facing a problem while executing the tcode f150 in dev,tsting and production server.
    while giving the same run on and identification,the different parameters are coming and the status is geting changed.
    in ker,the process is getting compelted,in testing the process is getting sceduled,complete but getting the status as"process completed but job deleted".
    and in production,the status like testing server is coming but some tabs(from the too bar where delete,etc lies)are not getting to see,its not showing up.
    please tell me if we can check it through some tcodes,or eliminate the eorr.
    we are not able to locate the cause behind.thanks in adv.

    Hi chandu,
    In my previous Organisation we got exactly the same landscape for BW as you described.BCS(BAYER COPSCIENCE LTD) operates a BW System Landscape with one centralized  Global Development System and three regional Quality Assurance and Production Systems located in Europe, Asia Pacific and Americas. This Landscape is to ensure consistent data models to be available in all regional systems as well as to minimize development efforts and make use of respective synergies.
    This is perfectly working  for BCS ,and I think, this is the most approriate way of handling of resources.
    Regards
    CSM Reddy

  • GT70 2PC – Software testing and performance report.

    It is so excited here again. Currently, my first/only object after work is playing Titanfall.
    I intended to share another performance testing today. But I didn’t. I found there are too many great open box posts on different forums. Therefore, I decide to dig the MSI software compatibility and do a touring. What can I say? I’m Mr.Curiosity who really desires to know every built-in application in system. That is why I share this article with you, my friends. I would like to discuss with everybody who is interested in MSI software. Of course, I have some performance reports for you, too. Please also remind me if you find any typo/wrong in this post. Thanks in advance.  
    1. MSI Boot Configure
        This is the first software which pops up immediately. It is thoughtful design because we can choose enter the [Windows 8.1 metro] or [desktop] by ourselves now. I give it two thumbs up!!!
    Select your favorite boot configuration and press [OK]. If we want it work immdiately, we can logout the system and re-login again.
    2.   MSI Remind Manager
    Honestly, I didn’t know what it is in the beginning. The cute robot shows every time when I login the system. I found this is a reminder for product registration. Good, I would like to have best MSI support and warranty for my lovely GT70 2PC. But don’t worry, if you don’t want to get this message again, you just need to select the right option and close it.
    3.   Synaptics TouchPad
    This is a driver for mouse. [Mouse property] will show if we do the double clicks on TouchPad icon in tray. You can choose enable/disable internal pointing device when external pointing device is attached. This is brilliant. A tough guy (like me…HA! HA!) didn’t like to play game with touchpad. Because the character in game will be weak and slow if I control it by touchpad. Of course, I need the external mouse all the time and don’t want the interference from touchpad.
    4.   System Control Manager (SCM)
    We can enable/disable the WLAN/BT/camera devices by SCM. Besides, it can control the display brightness, volume, screen on/off and ECO. ECO is special mode for gaming watching movie.  
    5.   Sound Blaster CINEMA
    Sound Blaster CINEMA is come from an old school audio company – CREATIVE. The software can adjust the surround sound easily. We also can adjust 5.1/7.1 surround sound for the internal speakers and external headphone. That is great, isn’t it?
    Besides, we can also adjust CRYSTALIZER/BASS/SMART VOLUME/digital output by ourselves.
    6.   Killer Network Manager
    This is a major feature of MSI NB.
    In Killer Network Manager, we can set the network priority for each of applications and we also can abandon the connection from malicious software.
    [Performance] shows current status of network. We can find out which application occupied the most greedy resources by it.
    [Network -> Test Network Speed] will detect the network environment automatically. Furthermore, it will adjust the priority for applications.
    [Killer Ethernet] show the LAN connection info.
    [Killer Wireless] show the router info.
    7.   SteelSeries Engine
    This is another major feature of MSI NB
    If we do the right click on icon in tray, the menu will show following list. We can select [Launch SteelSeries Firmware Update Tool], [Updates]…and so on.
    If we select the [Settings]. It can help us change default language and set application auto running when system power on.
    I.   Buttons
    Double click to open the SteelSeries Engine. I think it can set 4 different keyboard settings for each of profiles. And it can switch by FN+1~4.
    [Keypress Marc] can record what you input. And [Record Delays ] can modify the delay time. HA! No game can block us anymore. Please remember to press the [SAVE] for your setting
    [Launch Application] can launch any application immediately. I suggest to set the cold key for this function.
    Here is example. I use [PgUp] to quick start the 3D Mark11. See, it will pop up when I pressed [PgUp].
    It is simple to use [TextMarco] set our own phrase. Now I become a quick speaker in my team. One key, only one key can help me to type a lot of words.
    Are you tired to press some keys that you never want to touch in game (Like WIN KEY)? It is not the problem now.  [Disable Key] will do the favor and disable any key which you hate.
    II.   [Colors] can change the color of backlight keyboard. Also, you can set different modes (Gaming/Audio…etc) on it.
    We can change the color zone. There is not only 4 or 5 colors. The engine provides thousands of colors for us. [Audio mode] is the coolest. It will change colors by itself when we play music by speakers. I like to dance with my keyboard.
    III.   We can select different languages by [Settings].
    IV.   [Properties] can save our hard works of settings reliably.
    V.   If you want to defeat your competitors, it is important to know your enemy. However, It is more important to know yourself. [Statistics] can help us observe which keys are most popular by our fingers.
    Right click on [Profile]. It can modify/export/import/delete the profiles.
    Mouse can use the same kind of settings as keyboard.
    DPI setting for mouse.
    Save files.
    We can record the mouse, too.
    8.   Norton
    Norton Internet Security: Anti-Virus software, MSI provides 60 days for free.
    Norton Online Backup: Online data backup software, MSI provides 30 days for free.
    Norton Anti-Theft: Anti-Theft software, MSI provides 30 days for free.
    If you like Norton’s products, you can buy it online.
    If you don’t, I believe we can uninstall it directly.
    So, the decision is ours.
    Introduction from Norton official website
    9.   Dragon Gaming Center
    I.   System Monitor:
    It can monitor CPU/GPU loading and temperature. We also can find the network speed and fan speed in it.  
    II.   Utility:
    You can set your favorite apps in [Add new Utility].
    E.g. I added a [MSI Afterburner]. Click [Open] to build the link. Do you feel familiar with something? Exactly, [Launch Application] of [SteelSeries Engine] can do this, too.
    III.   Instant Play:
    We can define [Fn+F4] to enable the quick start. But there is more secret.
    We can also use [Browse] to assign the game which we want.  
    Click the icon of game and [Fn+F4] will be ready. We can only use 1 program at once.  
    I usually change the brightness, volume and mouse sensitive before the game. As you know, every games are different. It is sweet because we can use  [Apply Setting] to do this.
    I can’t believe it. We also can find the clock feature in it. How convenient it is!
    IV.   Hybrid Power is another MSI feature.
    It can provide the power by AC adapter and battery in the same time. We can monitor the status in here.
    10. BurnRecovery
    It can create the recovery CD/DVD/USB for MSI NB.
    Here can select Recovery disc/USB/ISO.
    I will make a ISO file first.
    We can select where to put the ISO.
    Creating the recovery file...
    Finish!
    Open the folder and we can find 4 ISO files in it.
    Well…[BurnRecovery Help] provide the details spec.
    In my opinion, everyone should create their own recovery image. You will need it in one day.
    11. Battery Calibration
    This is software for battery calibration. In order to keep our battery good, we should do the calibration every three months. Don’t forget to plug-in the AC adapter and battery during the process..
    Press [Start] to begin the process. It will make the battery fully charged first.
    Then, it will empty the battery like this.
    System will shut down after the empty process. At last, fully charged again. It will take 4~5 hrs to complete the process.
    12. MSI Dragoon Army /MSI Facebook /Web site /YouTube
    Those are MSI forums/Facebook/official website/YouTube and links.
    [MSI Dragoon Army] is the official forum for MSI. We can find NB, MB and AIO info in it.
    Facebook Quick Link for many countries of world.
    MSI official website
    YouTube channel of MSI.
    13. Super-Charger
    There is no message when I click this app at the first time. But when I attached my IPAD, it pops up the [Super-Charger]. It is amazing because IPAD can’t be charge by this USB port. As far as I know, the USB 3.0 only provides maximum 900mA for its device. IPAD will need 2.1A for charge process. I have no idea how MSI NB make IPAD charging okay.
    14. XSplit GameCaster
    This is one of important features. I saw many different first class gaming machines this year. All of them have the broadcast software. (Like PS4, Xbos ONE)
    It can switch the default language after we login.
    Twitch/YouTube / Facebook/ Twitter/Google+ can be used by [Accounts]. It is easy to start the live show.
    We can modify the resolution and use twitch by [Setting]
    We can configure FPS/CPU loading/where to show on display by [Status label].
    Hotkey configuration.
    Videos storage.
    Press [Ctrl+Tab] to call Gamecaster in game. And we can twitch or modify setting. I will provide my gaming video for you later.
    15. Power DVD
    This is a famous video player. Also, it can support BD format.
    We can use the [Setting] to change our language.
    We can change 5 times for default country .
    It is glad that I’ve finished the introduction of GT70 software.
    Performance report:
    Um…Now is late at night. I should go to my lovely bed.  Following is the testing report for the reference.
    1.   FurMark
    1920*1080, 15 minutes.
    2.   AIDA 64
    CPU and GPU stress testing, 30 minutes.
    3. 3D Mark 11
    4. 3DMark Vantage
    5.   3DMark 2013
    6.   Heaven Benchmark 4.0
    7.   CINBENCH 11.5
    8.   FINAL FANTASY XIV Benchmark
    9.   PCMARK 7
    10.   HD Tune Pro  5.50
    11.   AS SSD Benchmark
    12.   Crystal Disk Mark
    I didn’t forget my promise. Here is my gaming videos
    http://youtu.be/tCd5Lnj2U0I

    Editors' Choice Award. Good job MSI !!
    http://www.computershopper.com/laptops/reviews/msi-gt70-dominator-893#review-body

  • How to open a popup win within a PDF file (c:\test.pdf) as Column Link

    I have a interactive report based on a Table (EMP). I need to create a column link that opens a pdf file within the employee curricula
    All the curriculum are stored in a windows folder, and in the EMP table there is a field named PATH containing the full path name.
    Thxs,
    Giuseppe.

    Hello, Sebastian
    I've tested your suggestion and in effect it works.
    I think is good solution if the files are readonly (pdf, images, etc).
    In my case the files are updatable by the end user.
    Consider that I'm using the following configuration:
    APEX 4.0, DB 11.2.0.1 and EPG
    This means that:
    a. All the files need to be loaded in the XML_DB via PL/SQL or via WebDAV (let's say in... /i/mydocs)
    b. When the end user opens the file via the "Column link" this is read-only in the browser, to modify it, the end user need to save updated version in (/i/mydocs), replacing the existing ones, .. and this is a bit complicated .
    Any other suggestion will be appreciate.
    Regards,
    Giuseppe.

  • I "upgraded" to FF4, now it doesnt work properly, wont open pages, will open blank tabs when i click on a link, tried to go back to the older one but that doesnt work now either, have tested it with Safari and it opens everything fine. Any ideas?

    After upgrading to firefox 4 im now having a lot of problems using the browser.
    if i try an open a link in a new tab it will just open up a blank tab, if i click on links or even type in the google search bar at the top it doesnt do anything, it just says "done" and the circle thing stops as if im on the page already, have tested it with Safari doing the same things and Safari works fine. I'd swap but all my bookmarks and passwords are in Firefox so id rather stay with that.
    I tried going back to the older version of firefox (3.5 or something) but seems the bugs are here to stay now.......so.......any ideas? because its really annoying, shouldn't have "upgraded".
    Is there a new patch coming out anytime soon or should i start getting used to Safari?
    Thanks for your help.
    Mark Lavery (Melbourne)

    I would copy over the entire thing if you have room.  With iTunes 10.4 though, you can download any previous iTunes purchases you have made in the past with your current iTunes account.  While in iTunes, look at the left hand side of your screen and select "Purchases" and look at the bottom right corner of the screen and select "Download Previous Purchases".  If you have an iPhone, iPod and/or iPad...you can do the same thing from each device.  Nice new feature...just remember that those ripped CDs need a back-up!!!  Enjoy...

  • How can I add/change e-mail account password? How can I test the account?

    For several days I have been unable to send or receive messages using Thunderbird. Works OK with another mail client. This problem started right after installing a security update 24.4.0 (20140316131045). I went to Options/Security/Passwords and deleted all the saved passwords. When I try to download messages, however, the system is not asking me to enter a new password. Thunderbird regrettably lacks a "Test" button to test access to the accounts.
    Any suggestions?

    If you're not being prompted for the password Thunderbird is unable to reach the server.
    Verify your firewall settings and make sure Thunderbird isn't blocked.
    You can easily verify your password using webmail.

  • Is there a way to create a database with Test Stand?

    Anyone know of a way to have Test Stand create a database? My company standard MS Office suite is Microsoft Access 2010, and TestStand does not support the .accmdb extension type(format), so I have to create new databases using old formats. I'm worried about backwards compatability down the road since good ole Microsoft doesn't seem to care about legacy formats.
    I'm still a beginner with databasing, so any suggestions would be greatly appreciated.

    TestStand 2012 SP1, and  we are using a modified Generic Recordset (NI). The problem we are having right now is that the Build SQL instructions are not creating the database tables the way we are configuring them from the "Statements" and "Column/Parameters" tabs under Database Options.
    What is happening is when we validate the schema, and drop all schema tables, it empties all the database tables, but then when you build using the TestStand generated sql file, we get errors(shown below) we are not understanding, and we can no longer write to the database and LabVIEW throws a "Data type mismatch in criteria expression" error like this
    "Possible reason(s):
    ADO Error: 0x80040E07
    Exception occured in Microsoft JET Database Engine: Data type mismatch in criteria expression. in NI_Database_API.lvlib:Conn Execute.vi->TSData - Query Actions.vi->Retrieve Test Data.vi->ARA-63 Data Miner.vi->ARA-63 Data Miner.vi.ProxyCaller"
    ==================================================================================================== > CREATE TABLE UUT_RESULT ( ID COUNTER CONSTRAINT TABLE_CONSTRAINT PRIMARY KEY, STATION_ID VarChar(255), BATCH_SERIAL_NUMBER VarChar(255), TEST_SOCKET_INDEX Long, UUT_SERIAL_NUMBER VarChar(255), USER_LOGIN_NAME VarChar(255), START_DATE_TIME DateTime, EXECUTION_TIME Double, UUT_STATUS VarChar(32), UUT_ERROR_CODE Long, UUT_ERROR_MESSAGE VarChar(255), PART_NUMBER VarChar(255), TSR_FILE_NAME VarChar(255), TSR_FILE_ID VarChar(64), TSR_FILE_CLOSED Bit, PART_NAME VarChar(255), PRG VarChar(255), Comment VarChar(255), Operator VarChar(255)) Command issued.
    > CREATE TABLE STEP_RESULT ( ID COUNTER CONSTRAINT TABLE_CONSTRAINT PRIMARY KEY, UUT_RESULT Long, STEP_PARENT Long, ORDER_NUMBER Long, STEP_NAME VarChar(255), STEP_TYPE VarChar(255), STEP_GROUP VarChar(32), STEP_INDEX Long, STEP_ID VarChar(32), STATUS VarChar(255), REPORT_TEXT VarChar(255), ERROR_CODE Long, ERROR_MESSAGE VarChar(255), CAUSED_SEQFAIL Bit, MODULE_TIME Double, TOTAL_TIME Double, NUM_LOOPS Long, NUM_PASSED Long, NUM_FAILED Long, ENDING_LOOP_INDEX Long, LOOP_INDEX Long, INTERACTIVE_EXENUM Long, CONSTRAINT STEP_RESULT_FK FOREIGN KEY (UUT_RESULT) REFERENCES UUT_RESULT (ID)) Command issued.
    > CREATE TABLE STEP_SEQCALL ( ID COUNTER CONSTRAINT TABLE_CONSTRAINT PRIMARY KEY, STEP_RESULT Long, SEQUENCE_NAME VarChar(255), SEQUENCE_FILE_PATH LongText, CONSTRAINT STEP_SEQCALL_FK FOREIGN KEY (STEP_RESULT) REFERENCES STEP_RESULT (ID)) Command issued.
    > CREATE TABLE PROP_RESULT ( ID COUNTER CONSTRAINT TABLE_CONSTRAINT PRIMARY KEY, STEP_RESULT Long, PROP_PARENT Long, ORDER_NUMBER Long, NAME VarChar(255), PATH LongText, CATEGORY Long, TYPE_VALUE Long, TYPE_NAME VarChar(255), DISPLAY_FORMAT VarChar(32), DATA Double, FORMATTED_DATA VarChar(255), CONSTRAINT STEP_NUMERICLIMIT1_FK FOREIGN KEY (STEP_RESULT) REFERENCES STEP_RESULT (ID)) Command issued.
    > CREATE TABLE PROP_NUMERICLIMIT ( ID COUNTER CONSTRAINT TABLE_CONSTRAINT PRIMARY KEY, PROP_RESULT Long, COMP_OPERATOR VarChar(32), HIGH_LIMIT Double, LOW_LIMIT Double, UNITS VarChar(255), STATUS VarChar(255), HIGH_LIMIT_FORMATTED VarChar(255), LOW_LIMIT_FORMATTED VarChar(255), CONSTRAINT STEP_NUMERICLIMIT2_FK FOREIGN KEY (PROP_RESULT) REFERENCES PROP_RESULT (ID)) Command issued.
    > CREATE TABLE PROP_RESULT ( ID COUNTER CONSTRAINT TABLE_CONSTRAINT PRIMARY KEY, STEP_RESULT Long, PROP_PARENT Long, ORDER_NUMBER Long, NAME VarChar(255), PATH VarChar(255), CATEGORY Long, TYPE_VALUE Long, TYPE_NAME VarChar(255), DISPLAY_FORMAT VarChar(32), DATA VarChar(255), FORMATTED_DATA VarChar(255), CONSTRAINT PROP_MULTINUMERICLIMIT1_FK FOREIGN KEY (STEP_RESULT) REFERENCES STEP_RESULT (ID), CONSTRAINT PROP_MULTINUMERICLIMIT1_FK FOREIGN KEY (PROP_PARENT) REFERENCES PROP_RESULT (ID)) Command failed with the following error...: Table 'PROP_RESULT' already exists. (-2147217900)
    > CREATE TABLE PROP_NUMERICLIMIT ( ID COUNTER CONSTRAINT TABLE_CONSTRAINT PRIMARY KEY, PROP_RESULT Long, COMP_OPERATOR VarChar(32), HIGH_LIMIT Double, LOW_LIMIT Double, UNITS VarChar(255), STATUS VarChar(255), HIGH_LIMIT_FORMATTED VarChar(255), LOW_LIMIT_FORMATTED VarChar(255), CONSTRAINT PROP_MULTINUMERICLIMIT2_FK FOREIGN KEY (PROP_RESULT) REFERENCES PROP_RESULT (ID)) Command failed with the following error...: Table 'PROP_NUMERICLIMIT' already exists. (-2147217900)
    > CREATE TABLE PROP_RESULT ( ID COUNTER CONSTRAINT TABLE_CONSTRAINT PRIMARY KEY, STEP_RESULT Long, PROP_PARENT Long, ORDER_NUMBER Long, NAME VarChar(255), PATH VarChar(255), CATEGORY Long, TYPE_VALUE Long, TYPE_NAME VarChar(255), DISPLAY_FORMAT VarChar(32), DATA VarChar(255), FORMATTED_DATA VarChar(255), CONSTRAINT PROP_RESULT_FK FOREIGN KEY (STEP_RESULT) REFERENCES STEP_RESULT (ID)) Command failed with the following error...: Table 'PROP_RESULT' already exists. (-2147217900)
    > CREATE TABLE PROP_ANALOGWAVEFORM ( ID COUNTER CONSTRAINT TABLE_CONSTRAINT PRIMARY KEY, PROP_RESULT Long, INITIAL_T DateTime, DELTA_T Double, INITIAL_X Double, DELTA_X Double, UPPER_BOUNDS VarChar(32), LOWER_BOUNDS VarChar(32), DATA_FORMAT VarChar(32), DATA LongBinary, ATTRIBUTES LongText, CONSTRAINT PROP_ANALOGWAVEFORM_FK FOREIGN KEY (PROP_RESULT) REFERENCES PROP_RESULT (ID)) Command issued.
    > CREATE TABLE PROP_DIGITALWAVEFORM ( ID COUNTER CONSTRAINT TABLE_CONSTRAINT PRIMARY KEY, PROP_RESULT Long, INITIAL_T DateTime, DELTA_T Double, UPPER_BOUNDS VarChar(32), LOWER_BOUNDS VarChar(32), TRANSITIONS LongBinary, DATA LongBinary, ATTRIBUTES LongText, CONSTRAINT PROP_DIGITALWAVEFORM_FK FOREIGN KEY (PROP_RESULT) REFERENCES PROP_RESULT (ID)) Command issued.
    > CREATE TABLE PROP_ANALOGWAVEFORM ( ID COUNTER CONSTRAINT TABLE_CONSTRAINT PRIMARY KEY, PROP_RESULT Long, INITIAL_X Double, DELTA_X Double, UPPER_BOUNDS VarChar(32), LOWER_BOUNDS VarChar(32), DATA_FORMAT VarChar(32), DATA LongBinary, ATTRIBUTES LongText, CONSTRAINT PROP_IVIWAVE_FK FOREIGN KEY (PROP_RESULT) REFERENCES PROP_RESULT (ID)) Command failed with the following error...: Table 'PROP_ANALOGWAVEFORM' already exists. (-2147217900)
    > CREATE TABLE PROP_ANALOGWAVEFORM ( ID COUNTER CONSTRAINT TABLE_CONSTRAINT PRIMARY KEY, PROP_RESULT Long, INITIAL_X Double, DELTA_X Double, UPPER_BOUNDS VarChar(32), LOWER_BOUNDS VarChar(32), DATA_FORMAT VarChar(32), DATA LongBinary, ATTRIBUTES LongText, CONSTRAINT PROP_IVIWAVEPAIR_FK FOREIGN KEY (PROP_RESULT) REFERENCES PROP_RESULT (ID)) Command failed with the following error...: Table 'PROP_ANALOGWAVEFORM' already exists. (-2147217900)
    > CREATE TABLE PROP_BINARY ( ID COUNTER CONSTRAINT TABLE_CONSTRAINT PRIMARY KEY, PROP_RESULT Long, UPPER_BOUNDS VarChar(32), LOWER_BOUNDS VarChar(32), DATA_FORMAT VarChar(32), DATA LongBinary, CONSTRAINT PROP_BINARY_FK FOREIGN KEY (PROP_RESULT) REFERENCES PROP_RESULT (ID)) Command issued.

  • Write a progarm to test two parts at the same time

    Hi:
    I need to write a program in LabView that is capable of testing two parts at the same time.
    Explanation:
    I star the test on a unit, once all the electrical test is done move that unit to the pressure test without loosing the current test information and continue the test of the unit thewn generate a serial number only if it passes all the test. Then while the previous unit is going thru the pressure test star testing another unit for the elecrical test and so on.
    I am using LabView 2012

    From what you have described, I agree with what has been answered above. TestStand is specifically designed for. If you would like to provide more information about your application we could give you a more detailed response. For more information about TestStand follow this link
    www.ni.com/teststand
    Ryan
    Ryan
    Applications Engineer
    National Instruments

Maybe you are looking for

  • HP Z3200 PS printer will not print from Photoshop CC

    HP Z3200 PS printer is configured with latest drivers for Mac OSX 10.10.  Computer reads/sees the Z3200,  but will not display print settings dialogue box n Photoshop CC and goes straight to printing a blank sheet. Computer prints successfully to Z32

  • How can i get input from user in Workflows

    Hello professionals, I'm new to SAP B1 Workflow, i have created some workflows and they all worked fine. But, I am wondering, How can i get input from user?. For example, i want to display list of options to choose between them and route the workflow

  • Itunes 12.1.1.4 crashes in windows 7 since itunes update.

    Since the latest iTunes for PC update 12.1.1.4, my iTunes is broken (again) - seems to happen every few updates. Windows 7 (64 bit) I may have a rather large library which might not help (aprox.. 2200 albums).  The trouble shooting options posted to

  • Importing via network connection

    I have hundreds of albums that were saved to DVDs many years ago using iTunes version 4 or 5. These files were saved as mp4a files. My new iMac seems to have difficulty reading these DVD's so I've begun loading them onto my son's ext. HDD (via Window

  • Accessing interface components from a seperate class

    Hi there, I've just been given a Java project to build, that involves writing an applet to allow text based communication between pairs of people. I've always thought the best way to go about it was to divide code into functional units, i.e. put the