Search


關於工作室

Newton 牛頓
Web Developer
PHP+MYSQL, Flash, Javascript, .NET Framework, Web Application.

找尋網頁設計專家?

牛頓工作室提供客製化網頁設計服務,想知道更多,歡迎來信洽詢。 E-mail Us!

近期文章

Sponsors

Plurk

Plurk.com

行事曆

主題

彙整

Sponsors

Blogroll

Archive for 7月, 2008

« Previous Entries

Wordpress 2.6更新了甚麼?

星期四, 7月 24th, 2008

Wordpress開發部更新了哪些酷炫的功能呢? 給自己3分多鐘的時間, 你將會發現很多意想不到的功能喔~

十分讚的GD教學網站

星期二, 7月 22nd, 2008

想要自己用PHP動態做出美麗的圖? 卻又不想花大錢去買別人寫好的套件?
不用慌張, 因為這個網站會教你怎麼一步一步學GD, 趕快用你的PHP中內建的GD function來畫圖吧!
動一動腦筋可以做出意想不到的效果呢.
http://www.nyphp.org/content/presentations/GDintro/

PHP MYSQL 亂碼問題

星期六, 7月 19th, 2008

有時候我們用中文存取MYSQL資料庫資料的時候會出現亂碼,
又也許你在PHPMYADMIN看到的時候是明碼, 但用echo抓出來後卻是” ??? ” 的亂碼.
又或是在儲存的時候就已經是亂碼了, 要怎麼解決呢?
可以試試看以下的方法:

mysql_query(”SET NAMEs ‘utf8′ “);
$sql = mysql_query(”SELECT * FROM wp_posts where ID = 2″);

不管INSERT 或是SELECT出來, 都在mysql_query前加入
“SET NAMES ‘utf8′ ”
就可以確保資料庫存取時是以UTF-8的編碼儲存, 那在做資料轉換的過程應該就可以把編碼問題解決了~

第一屆台灣系統管理者日

星期三, 7月 16th, 2008

台灣 IT 人的心聲,我們聽到了。微軟將於 2008 年 7 月 26 日,在京華城 B3 地心引力廣場,舉辦第一屆台灣系統管理者日。除慶祝活動外,微軟也將與您面對面對談;這天,是屬於你們的日子!

[SilverLight 2.0] 事件 Declaring Event Handlers

星期二, 7月 15th, 2008

在Silverlight宣告事件的方式有兩種:

直接在XAML內部宣告 (優點:簡單明瞭, 缺點: 只能使用預設的參數, 不能再加參數)
在.cs裡面作宣告 (優點: 彈性大, 可以做變化; 缺點: 比較困難(吧~) )

第一種方式:
在XAML直接作宣告(eg. 在Page.xaml):

<Canvas Loaded=”Canvas_Loaded”>
<Button x:Name=”myButton” Content=”Hello”
Canvas.Left=”10″ Canvas.Top=”10″ />
</Canvas>

在Page.xaml.cs作處理:

private void Canvas_Loaded(object sender, RoutedEventArgs e)
{
theButton.Content = “Please Click Me”;
}

第二種方式
不需在XAML裡面宣告事件

<!– <Canvas  Loaded=”Canvas_Loaded”> –>
<Canvas >
<Button x:Name=”theButton” Content=”I’m Indented!”
Canvas.Left=”150″ Canvas.Top=”20″ />

<CheckBox x:Name=”RushOrder” Content=”Rush”
Canvas.Left=”50″ Canvas.Top=”20″ FontSize=”18″ />
</Canvas>

而是直接在Page.xaml.cs的Page( ) Constructor動手腳~

public Page()
{
InitializeComponent();
Loaded += new RoutedEventHandler(Page_Loaded);

}

void Page_Loaded(object sender, RoutedEventArgs e)
{
/*throw new [...]

[SilverLight2] Layout Control介紹

星期二, 7月 15th, 2008

在SilverLight中用來規劃整個版面Layout的Control主要有三種:

Grid: 就像Table一樣, 將物件以行列的方式對齊
StackPanel: 讓物件之間相對對齊, 如相鄰對齊或向上對齊
Canvas: 用絕對對齊(absolute positioning) 的方式放置物件(與SilverLight 1.0相符)

Grid
Grid 在使用VS2008開啟新檔案的時候就已經存在XAML裡面了, 格式會長這個樣子:

<UserControl x:Class=”EasyGrid.Page”
xmlns=”http://schemas.microsoft.com/winfx/2006/xaml/presentation”
xmlns:x=”http://schemas.microsoft.com/winfx/2006/xaml”
Width=”400″ Height=”300″>
<Grid x:Name=”LayoutRoot” Background=”White”>
</Grid>

你可以先規劃整個SilverLight App的框線, 以便之後的對齊作業, 定義的方式如下:

<Grid x:Name=”LayoutRoot” Background=”White”>
<Grid.RowDefinitions>
<RowDefinition Height=”50″ />
<RowDefinition Height=”30*” MaxHeight=”70″ />
<RowDefinition Height=”40*” MaxHeight=”70″ />
<RowDefinition Height=”*” MinHeight=”30″ MaxHeight=”50″ />
<RowDefinition Height=”Auto” MinHeight=”5″ MaxHeight=”30″ />
</Grid.RowDefinitions>
</Grid>

Height: 每一列的高度
MaxHeight: 能夠拉伸的最大高度 (* 表示以比例的方式定義高度, 兩倍高就是 2*)
MinHeight: 能夠拉伸的最小高度

StackPanel
Stack就是堆疊的意思, 使用StackPanel你可以將你的物件以左右堆疊或者上下堆疊的方式排列, 就像書本在書架上一樣. 它也是在SilverLight2.0經常使用的對齊工具. 下面以放置TextBlock, TextBox, CheckBox及Button 為例:

<StackPanel Background=”Beige” Orientation=”Vertical” >
<TextBlock [...]

[SilverLight2] TextBlock的屬性

星期二, 7月 15th, 2008

SilverLight的Control有很多, 以後會逐一介紹其用法, 首先介紹TextBlock的屬性:
<TextBlock x:Name=”TestName” Grid.Row=”0″ Grid.Column=”0″ Text=”Testing Name: “  Margin=”5″ />
應用: TextBlock的使用方法跟.NET的Label Control很像, 就是專門顯示文字用的.
屬性:
Grid.Row, Grid.Column叫做Extended Properties, 功能是對齊週邊的Grid格線, 讓App看起來較整齊.
Text 功能就是顯示內部的文字.
Margin很有趣, 輸入不同數目的值就有不同的Margin效果.
Margin=”5″ : 表示 左, 右, 上, 下 都是空出5px.
Margin=”5,6″ : 表示 左右空出5px, 上下空出6px.
Margin=”5,6,7,8″: 表示 左5px, 上6px, 右7px, 下8px.

安裝SilverLight 2 BETA 2 Tools for Visual Studio 2008 的錯誤

星期五, 7月 11th, 2008

如果您的安裝順序是:
1. Visual Studio 2008
2. SilverLight 2 BETA 2 Tools for Visual Studio 2008
應該可以安裝成功,
但如果安裝的順序是:
1. Visual Studio 2008
2. SilverLight 1.0 Runtime
3. SilverLight 2.0 Runtime
4. SilverLight 2 BETA 2 Tools for Visual Studio 2008
則會在安裝的時候出現ERROR. 經過測試, 要解決這個問題方法如下:
1. 控制台 > 新增與移除程式 > 將SilverLight 1.0, 2.0 的RUNTIME都徹底移除
2. 將Program Files 的 SilverLight, SilverLight SDK都移除乾淨.
3. 再安裝SilverLight 2 BETA 2 Tools for Visual Studio [...]

[Visual C#]Params的應用: Method傳入參數同時可以是陣列與Integer?

星期三, 7月 9th, 2008

當我們在撰寫物件導向程式的時候, 難免會需要將參數傳入Method裡面, 若傳入的參數是陣列, 格式如下:
static void Main(string[] args)
{
int[] a = new int[2]{5,7};
Util util = new Util();
Console.WriteLine(util.Min(a));
}
class Util
{
public int Min(int[] param)
{
if (param == null || param.Length == 0)
{
throw new ArgumentException(”Util.Min: not enough arguments”);
}
int currentmin = param[0];
foreach (int i in param)
{
if (i < currentmin)
{
currentmin = i;
}
}
return currentmin;
}
}
這種寫法應該很直觀吧, 但如果傳入的參數是Integer豈不是出現Error? 要怎麼解決呢? 其實要解決這個問題非常簡單, 就是在Method的參數部分加入 “params”這個關鍵字, 寫法如下:
class Util
{
public int Min(params int[] param)
{
if [...]

Javascript的navigator.userAgent判斷使用者的瀏覽器版本是好方法嗎?

星期四, 7月 3rd, 2008

我們先把話說在前頭, Javascript的所有函數並不適用在所有的瀏覽器, 這個大家都贊同吧?
所以你一定會跟我一樣想先擷取使用者的瀏覽器版本, 看看它是用IE, MOZILLA還是Opera等等的, 但這樣的方法真的好用嗎? 老實說這是相當難維護的, 因為瀏覽器會一直更新, 如果你都用IF ELSE來判斷它的版本應該會要一直更新吧, 而且你又要怎麼判斷你的使用者會不會比你更快更新它的瀏覽器呢?
舊的方法如下:
javascript:alert(navigator.userAgent);
如果你使用IE7, 它會回傳給你: Mozilla 4.0/ …..
這樣的方法真的不是很好, 在這裡有個不錯的方式來判斷:
if (typeof featureName != “undefined”) {
// 程式碼
}
舉例如下:
if (typeof document.getElementById != “undefined”) {
alert(”getelembyid is supported”);
} else {
alert(”no getelembyid support”);
}
我們要判斷瀏覽器是否支援getElementById 就可以直接用typeof document.xx != “undefined” 來判斷 如果使用者不支援這個函數你就可以再另外想辦法. 另外一種寫法如下:
var getElem = (typeof document.getElementById == “function”) ? true : false;
if (getElem) {
// 我們知道GetElementbyId是支援的,
// 所以我們就可以用它.
}

這樣是不是比較實際且容易維護呢?

« Previous Entries