2010年12月16日 星期四

Life (Garry Schyman - Praan)

我很喜歡的一支Video,尤其他的配樂~~

2010年12月14日 星期二

程式碼貼文

關於文章貼程式碼的排版問題解決了,這是要用到CSS技巧,雖然我不曉得它的原理,反正照著網路上文章的SOP流程作完就OK了。

相關聯結:
  1. 在blog中顯示程式碼區(code block)
  2. [CSS] A Cool blockquote for "Code style" and some blogging tips
  3. 用CSS顯示程式碼
  4. 如何在Blog中顯示程式碼
  5. 如何在 blog 張貼程式碼

測試:

Private Sub SayHello()
Messbox ("Hello World")
End Sub


目前用的CSS樣版:
code {
display:block;
overflow:auto;
font-family:"Courier New";
white-space:pre;
background:#0F0F0F;
border:3px solid #CCC;
margin:5px 15px 0;
padding:5px 5px 5px 20px;
line-height:1.2em;
max-height:500px;
width:90%;
}

但還有一個問題,要如何修改文字前景顏色? 不過這不急,有空再研究~

2010年12月13日 星期一

"A物件的Event"內 引用 "B物件方法" 之技巧

在VB6時代,在簡單不過的事情,跑到.NET就變得麻煩,主要是programmer必須更注意執行緒之間相互引用介面的問題,反正就是A執行許要引用B執行續的服務,要透過一些技巧,Delegate是其中之一

留個記錄:
物件_reader的 event - TagRead 不能直接引用lstl.Items.Add方法,須透過Delegate技巧





Delegate Sub ShowTagCode(ByVal msg As String)

Private Sub ShowTagCodeOnLst(ByVal msg As String)
lst.Items.Add(msg)
End Sub

Private Sub _reader_TagRead(ByVal tags() As GAORFID.Tag) Handles _reader.TagRead
Dim i As Integer

For i = 0 To tags.Length - 1
If lst.InvokeRequired Then
Dim d As New ShowTagCode(AddressOf ShowTagCodeOnLst)
Try
Me.Invoke(d, New Object() {tags(i).ID})
Catch ex As Exception
MsgBox(ex.Message)
End Try
Else
lst.Items.Add(tags(i).ID)
End If
Next
End Sub

JNI (Java Native Interface) 注意事項

當移動 JNI class後,必須重新編譯一次表頭檔(.h)宣告,否則將來載入dll時,執行階段會出現找不到相對用的function名稱的錯誤訊息。

留個記錄:
注意package路徑




package com.jpos.MSR250SO;

public class KeyboardHookdll
{
static
{
System.loadLibrary("JposKeyHook");
}

public native boolean installhook();
public native boolean unhook();
public native void ClearKeyboardHookData();
public native byte[] getKeyboardHookData();
}


表頭檔function 名稱要能相對



/* DO NOT EDIT THIS FILE - it is machine generated */
#include
/* Header for class com_jpos_MSR250SO_KeyboardHookdll */

#ifndef _Included_com_jpos_MSR250SO_KeyboardHookdll
#define _Included_com_jpos_MSR250SO_KeyboardHookdll
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: com_jpos_MSR250SO_KeyboardHookdll
* Method: installhook
* Signature: ()Z
*/
JNIEXPORT jboolean JNICALL Java_com_jpos_MSR250SO_KeyboardHookdll_installhook
(JNIEnv *, jobject);

/*
* Class: com_jpos_MSR250SO_KeyboardHookdll
* Method: unhook
* Signature: ()Z
*/
JNIEXPORT jboolean JNICALL Java_com_jpos_MSR250SO_KeyboardHookdll_unhook
(JNIEnv *, jobject);