20 กันยายน 2559

Unity : 2D Game with Unity Part # 5




// โค้ดคำสั่ง Main_Controller.cs

using UnityEngine;
using System.Collections;

public class Man_Controller : MonoBehaviour {
public float speed;
float x, sx;
bool ks;
Animator am;
Rigidbody2D rb;

// Use this for initialization
void Start () {
am = GetComponent<Animator> ();
rb = GetComponent<Rigidbody2D> ();
sx = transform.localScale.x;
}

// Update is called once per frame
void Update () {
x = Input.GetAxis ("Horizontal");
am.SetFloat ("speed", Abs (x));


if (Input.GetButtonDown ("Jump")) {
am.SetBool ("jump", true);
rb.velocity = new Vector2 (rb.velocity.x, 5f);
}

rb.velocity = new Vector2 (x * speed, rb.velocity.y);

if (x > 0) {
transform.localScale = new Vector3 (sx, transform.localScale.y, transform.localScale.z);
}

if (x < 0) {
transform.localScale = new Vector3 (-sx, transform.localScale.y, transform.localScale.z);
}
}

void OnCollisionEnter2D(Collision2D coll) {
am.SetBool ("jump", false);
}
float Abs(float x) {
return x >= 0f ? x : -x;
}
}



// โค้ดคำสั่ง CameraFollow.cs
using UnityEngine;
using System.Collections;

public class CameraFollow : MonoBehaviour {
public Transform obj;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
transform.position = new Vector3 (obj.position.x, transform.position.y, transform.position.z);
}
}

10 กันยายน 2559

Unity : 2D Game with Unity Part # 3



// โค้ดคำสั่งของ volt_controler.cs

using UnityEngine;
using System.Collections;

public class volt_controler : MonoBehaviour {
    public float jumpSpeed;
    Rigidbody2D rb;
    // Use this for initialization
    void Start () {
        rb = GetComponent ();
    }
   
    // Update is called once per frame
    void Update () {
        if (Input.GetButtonDown ("Jump")) {
            rb.velocity = new Vector2 (rb.velocity.x, jumpSpeed);
        }
    }
}

09 กันยายน 2559

Unity : 2D Game with Unity Part # 2




โค้ดคำสั่งของ  background.cs

using UnityEngine;
using System.Collections;

public class background : MonoBehaviour {

public float bgSpeed;
float bgPositionX;
float bg1PositionX;
// Use this for initialization

void Start () {
bgPositionX = transform.position.x;
bg1PositionX = GameObject.Find ("background_1").transform.position.x;
}

// Update is called once per frame
void Update () {
transform.position = new Vector3 (transform.position.x + bgSpeed, transform.position.y, transform.position.z);
if (transform.position.x < (bg1PositionX * -1f)) {
transform.position = new Vector3 (bg1PositionX, transform.position.y, transform.position.z);
}
}
}
โค้ดคำสั่งของ floor.cs

using UnityEngine;
using System.Collections;

public class floor : MonoBehaviour {
public float bgSpeed;
float bgPositionX;
float bg1PositionX;
// Use this for initialization
void Start () {
bgPositionX = transform.position.x;
bg1PositionX = GameObject.Find ("floor_1").transform.position.x;
}

// Update is called once per frame
void Update () {
transform.position = new Vector3 (transform.position.x + bgSpeed, transform.position.y, transform.position.z);
if (transform.position.x < (bg1PositionX * -1f)) {
transform.position = new Vector3 (bg1PositionX, transform.position.y, transform.position.z);
}
}
}

01 กันยายน 2559

Ubuntu : การติดตั้ง Software และการแก้ปัญหาต่างๆ บน Ubuntu

ติดตั้ง LAMPP (Apache, MariaDB and PHP)
ให้ทำการดาวน์โหลดโปรแกรมที่เว็บ
https://www.apachefriends.org/download.html
วิธีติดตั้ง
https://www.apachefriends.org/faq_linux.html

กำหนดให้ phpmyadmin สามารถเรียกได้จาก internet ภายนอก
ให้แก้ไขไฟล์ httpd-xampp.conf ซึ่งเก็บอยู่ที่ /opt/lampp/etc/extra โดยพิมพ์คำสั่ง
   sudo nano /opt/lampp/etc/extra/httpd-xampp.conf
จากนั้นแก้ไขตรงส่วนของ ตามตัวอย่างด้านล่าง

< Directory "/opt/lampp/phpmyadmin"   >

   AllowOverride AuthConfig Limit
    Order allow,deny
    Allow from all
    Require all granted
    ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
 
 <  Directory   > 
  
จากนั้นทำการ รีสตาร์ lampp ใหม่
    sudo /opt/lampp/lampp restart

    ให้ทดสอบเข้า  http://localhost/phpmyadmin
     *** หากเข้า phpmyadmin แล้วไม่ถาม user และ password แสดงว่ายังไม่ได้กำหนดรหัสผ่านที่ mySQL ให้กับ root ให้เข้าไปกำหนดใน phpmyadmin ในส่วนของ user accounts  กำหนดรหัสผ่านให้กับ root ทุกตัว
     จากนั้นเข้าไปแก้ไขไฟล์ config.inc.php ซึ่งเก็บอยู่ที่ /opt/lampp/phpmyadmin

     sudo nano /opt/lampp/phpmyadmin/config.inc.php

     ตรงส่วนของ Authentication type ให้ลบ ชื่อ user ออก และ password ออก ดังนี้

      /* Authentication type */
     $cfg['Servers'][$i]['auth_type'] = 'cookie';
     $cfg['Servers'][$i]['user'] = '';
     $cfg['Servers'][$i]['password'] = '';
     $cfg['Servers'][$i]['extension'] = 'mysqli';
     /* Server parameters */
     $cfg['Servers'][$i]['host'] = 'localhost';
     $cfg['Servers'][$i]['connect_type'] = 'tcp';
     $cfg['Servers'][$i]['compress'] = false;
     $cfg['Servers'][$i]['AllowNoPassword'] = false;


วิธีติดตั้ง เว็บไทย
http://www.amplysoft.com/knowledge/install-apache2-php5-mysql-phpmyadmin-ubuntu.html

การจัดการ Service
ก่อนอื่นเปิดสถานะไฟล์ให้เรียกใช้งานได้ ทำแค่ครั้งแรกครั้งเดียว
cd /opt/lampp
sudo chmod 755 manager-linux-x64.run    (manager-linux.run สำหรับ 32บิต)
เวลาเรียกใช้งานพิมพ์คำสั่ง
sudo /opt/lampp/manager-linux-x64.run

กรณีที่เปิดเครื่องมาแล้ว เซอร์วิสของ lampp ไม่สตาร์ท ให้แก้ไขโดยใช้คำสั่ง
    sudo ln -s /opt/lampp/lampp  /etc/init.d/lampp
    sudo update-rc.d lampp start 80 2 3 4 5 . stop 30 0 1 6 .

ติดตั้ง Flash Player
  sudo apt-get update
  sudo apt-get install flashplugin-installer

การกำหนด Virtual Host

  ให้ทำการเปิด Terminal (Ctrl + Alt + T)
  จากนั้น เข้าไปแก้ไขไฟล์ httpd.conf ที่เก็บอยู่ภายใต้ /opt/lampp/etc โดยพิมพ์คำสั่งเปิดไฟล์ดังนี้

        sudo nano /opt/lampp/etc/httpd.conf

        ให้นำเครื่องหมาย # ออกให้เหลือแต่คำสั่ง ดังนี้ 
        Include etc/extra/httpd-vhosts.conf

   จากนั้น เข้าไปแก้ไขไฟล์ httpd-vhosts.conf ที่เก็บอยู่ภายใต้ /opt/lampp/etc/extra
        sudo nano /opt/lampp/etc/extra/httpd-vhosts.conf

    หากต้องการกำหนดให้ virtual host ชื่อ myweb โดยเก็บไฟล์ไว้ที่ /opt/lampp/apps/myweb/htdocs ให้เพิ่มคำสั่งดังนี้
  
   < virtualhost >
       DocumentRoot "/opt/lampp/htdocs/"
       ServerName localhost
   &lt/ virtualhost >
   < virtualhost >
       DocumentRoot "/opt/lampp/apps/myweb/htdocs"
       ServerName myweb.localhost
   </ virtualhost >
 
ติดตั้ง SAMBA ทำ file sharing ดูที่
http://na5cent.blogspot.com/2012/04/samba-ubutntu-1110-server.html

https://help.ubuntu.com/community/How%20to%20Create%20a%20Network%20Share%20Via%20Samba%20Via%20CLI%20(Command-line%20interface/Linux%20Terminal)%20-%20Uncomplicated,%20Simple%20and%20Brief%20Way!

ติดตั้ง MonoDeveloper ทำให้ linux รัน asp.net c# ได้
sudo apt-get install monodevelop

ติดตั้ง xsp4  โดยเข้าไปดูวิธีติดตั้งได้ที่

https://zxtech.wordpress.com/2015/01/04/how-to-install-xsp4-onto-ubuntu/

จากนั้นเปิดโปรแกรม mono สร้าง project asp.net web form แล้วเขียนโปรแกรมตามต้องการ แล้ว run














หากต้องการใช้งาน vb.net ก็ติดตั้งโดยพิมพ์คำสั่ง

sudo apt-get install monodevelop mono-vbnc

การติดตั้ง SSH

sudo apt-get install openssh-server
.ให้ทำการตรวจสอบสถานะ ssh
sudo service ssh status

คำสั่งในการเปิดใช้งาน
sudo service ssh start
จากนั้นก็ติดต่อโดยใช้ putty จากเครื่องใดๆ ในเน็ทเวิร์ค

การติดตั่้ง OwnCloud
ให้เลือกติดตั้งตามรุ่นของ OS ที่ใช้ ตามลิงค์ด้านล่าง
https://download.owncloud.org/download/repositories/stable/owncloud/


ปัญหาเมื่อเปิดเครื่องแล้ว จอไม่ขึ้นอะไรเลย มีแต่ภาพพื้นหลัง
ให้เข้าโหมด เท็กซ์ โดยกดปุ่ม Ctrl + Alt + F1 จากนั้นก็ล็อกอิน เมื่อเข้าไปแล้ว มีวิแก้ 2 วิธี ลองดูถ้าวิธีแรกได้ก็ไม่ต้องทำวิธีที 2
วิธีแก้แบบที่ 1  (ลองแล้วไม่ได้ผล แต่เครื่องอื่นไม่รู้)
     sudo apt-get update
     sudo apt-get install --reinstall ubuntu-destop
     sudo apt-get install install unity
     sudo shutdown -r now

วิธีแก้แบบที่ 2 (ล้างค่าคอนฟิกของระบบ ซึ่งไม่มีอะไรก็แค่ไปกำหนดใหม่นิดหน่อย)
     sudo rm -rf ~/.config
     sudo reboot

** อ้างอิงจาก : https://itsfoss.com/how-to-fix-no-unity-no-launcher-no-dash-in-ubuntu-12-10-quick-tip/


... ไว้มาต่อ ... 
 

18 สิงหาคม 2559

Unity 3D - เขียนเกมด้วย Unity ตอนที่ 1

เขียนเกมด้วย Unity ตอนที่ 1
วีดิโอ สอนเขียนเกมด้วย Unity 3D ปูพื้นฐาน




เขียนเกมด้วย Unity ตอนที่ 2
ตรวจสอบการชนกันของวัตถุ
ใส่เอฟเฟ็กระเบิด



11 กรกฎาคม 2559

Raspberry Pi

การกำหนดค่าต่างๆ บน Raspberry Pi
- ติดตั้ง OS สำหรับ Raspberry Pi แบบไม่มีจอ LCD เลือกใช้ RASPBIAN JASSIE ตัวเต็ม ->  https://downloads.raspberrypi.org/raspbian_latest

- กรณีซื้อจอ LCD มาติดตั้งเพิ่ม ต้องดูว่าซื้อยี่ห้อ รุ่น ขนาดใด แล้วไปหาดาวน์โหลด OS หรือ Driver ให้ถูกรุ่น เช่น ซื้อจอ LCD ยี่ห้อ OSOYOO ก็ไปดาวน์ที่เว็บไซต์ผู้ผลิต -> http://osoyoo.com/2016/05/26/osoyoo-lcd-touch-screen-for-raspberry-pi-installation-guide/

- ไปดาวน์โหลดโปรแกรม Win32 Disk Imager เพื่อเอาไว้สร้าง disk image สำหรับ OS บน sd card -> https://sourceforge.net/projects/win32diskimager/

- ติดตั้งภาษาไทย กำหนดค่าต่างๆ -> http://dtv.mcot.net/data/up_show.php?id=1453644382&web=epost

- กำหนดให้เครื่องอื่นมองเห็น เปิดหน้าต่าง Terminal ที่ Raspberry แล้วพิมพ์
ssh หมายเลขไอพี เช่น ssh 192.168.1.132
จากนั้นจะมีให้ใส่รหัสผ่าน ถ้าไม่ได้เปลี่ยนรหัสผ่านก็ใช้ raspberry

- ifconfig คล้ายกับ ipconfig ใน windows pc

- ถ้าต้องการ Telnet จาก pc ไปยัง raspberry pi ก็ให้ไป d/l โปรแกรม Putty มาติดตั้ง -> http://software.thaiware.com/download.php?id=10912

- ติดตั้ง Apache, PHP , mySQL -> https://www.raspberrypi.org/learning/lamp-web-server-with-wordpress/worksheet/

หรือ https://www.stewright.me/2015/08/tutorial-install-apache-php-and-mysql-on-a-raspberry-pi-2/

หากต้องการติดตั้ง php 7 ให้ใช้คำสั่ง
sudo apt-get install php7.1

- กำหนดให้ mySQL สามารถ Remote จากเครื่องอื่นได้
   เข้าไปแก้ไขไฟล์ my.cnf ->  sudo nano /etc/mysql/my.cnf
   ให้เพิ่มหมายเลขไอพีของเครื่องโดยเพิ่มคำสั่ง ( ตัวอย่างหมายเลขไอพี 192.168.1.132) 
                  bind-address  = 192.168.1.132
   จากนั้นให้ทำการ รีสตาร์ทเครื่อง raspberry pi ใหม่ หรือ สั่งรีสตาร์ทเซอร์วิส mysql ใหม่ด้วย
                  sudo service mysql restart    

   เปิด web browser เข้า  http://192.168.1.132/phpmyadmin
   ใส่ user : root  , password : รหัสผ่าน ของ mysql
                  แล้วป้อนคำสั่ง SQL เพื่อกำหนดสิทธิ ดังนี้
                  GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.%'
            IDENTIFIED
BY 'ใส่รหัสผ่าน' 

           
WITH GRANT OPTION;

         FLUSH PRIVILEGES
;

      * หากต้องการให้สิทธิกับ user อื่น ก็แก้ไขตามต้องการ


- ติดตั้ง PhpMyAdmin -> https://www.stewright.me/2012/09/tutorial-install-phpmyadmin-on-your-raspberry-pi/

- ติดตั้ง ftp -> https://pimylifeup.com/raspberry-pi-ftp/

- ติดตั้ง samba สำหรับ share folder เพื่อให้ windows มองเห็น \\192.168.1.32\sharefolder
   -> http://www.htpcguides.com/create-samba-share-raspberry-pi/

- ติดตั้ง dosbox เพื่อจำลองให้ใช้งาน DOS ได้
    sudo apt-get install dosbox
   หลังจากติดตั้งเสร็จให้เรียกใช้งานได้พิมพ์
   dosbox
   เมื่อเข้าหน้าจอ dosbox แล้ว เราต้องไปทำการสร้างโฟลเดอร์ที่ต้องการภายใต้ Raspberry Pi เช่น สร้างไว้ภายใต้ /pi โดยตั้งชื่อ เช่น dos_c
   จากนั้น กลับมาที่หน้าต่าง dosbox ให้ทำการ mount  เพื่ออ้างอิงชื่อไดร์ฟ กับ โฟลเดอร์ โดยป้อนคำสั่ง
   mount c dos_c
   จากนั้นทดสอบโดยเปลี่ยน ไดรฟ์ เป็น c:
   ที่เหลือก็ลองนำโปรแกรม สมัยดอส มาใส่ไว้ในโฟลดเดอร์ dos_c ตัว dosbox ไดร์ฟ c ก็จะเห็นเอง
========================================


11 พฤษภาคม 2559

VB.Net : Export DataGridView to Excel

คำถามหากเรามีความจำเป็นต้องโอนข้อมูลที่แสดงผลบน VB.Net เข้าสู่ Excel จะทำอย่างไร
คำตอบ อยู่ที่นี่แล้ว
อิๆๆ สั้นๆ ได้ใจความ
1. ให้สร้างโปรเจกต์ขึ้นมาใหม่ จากนั้น ไปที่เมนู PROJECT เลือกรายการ Add Reference...

ที่หน้าต่าง Reference Manager ให้เลือก Extensions แล้วไปคลิกเลือก Microsoft.Office.Interop.Excel

2. จากนั้น สร้าง DataGrideView ชื่อ DataGridView1  แล้วทำอย่างไรก็ได้ตามสะดวกเพื่อนำข้อมูลมาใส่ (อันนี้เขียนโปรแกรมเองน่ะครับ ไม่ขออธิบาย เดี๋ยวจะยาว)

3. ทำการเพิ่มปุ่ม Button สำหรับคลิกเพื่อให้ทำการ Export โดยตั้งชื่อเป็น Button1 ที่เหลือกำหนด Property เอาเอง ดังภาพ

ดับเบิ้ลคลิกที่ปุ่ม แล้วทำการเขียนคำสั่ง ดังนี้

บรรทัดบนสุดก่อน Public Class ของฟอร์ม ให้ Imports ก่อน อย่าลืม โดยพิมพ์คำสั่ง

Imports Excel = Microsoft.Office.Interop.Excel

จากนั้น ที่ Sub Button1 ป้อนคำสั่ง ดังนี้

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim excelLocation As String = "d:\test.xlsx"
        Dim xlApp As Excel.Application = New Microsoft.Office.Interop.Excel.Application()
        If xlApp Is Nothing Then
            MessageBox.Show("Excel is not Install.")
            Return
        End If

        Dim xlWorkBook As Excel.Workbook
        Dim xlWorkSheet As Excel.Worksheet
        Dim misValue As Object = System.Reflection.Missing.Value
        xlWorkBook = xlApp.Workbooks.Add(misValue)
        xlWorkSheet = xlWorkBook.Sheets("sheet1")
        'Header Names
        Dim columnsCount As Integer = DataGridView1.Columns.Count
        For Each column In DataGridView1.Columns
            xlWorkSheet.Cells(1, column.Index + 1).Value = column.Name
        Next
        'Data
        For i As Integer = 0 To DataGridView1.Rows.Count - 1
            Dim columnIndex As Integer = 0
            Do Until columnIndex = columnsCount     
                xlWorkSheet.Cells(i + 2, columnIndex + 1).Value = DataGridView1.Item(columnIndex, i).Value
                columnIndex += 1
            Loop
        Next

        xlWorkBook.SaveAs(excelLocation)
        xlWorkBook.Close()
        xlApp.Quit()
        MessageBox.Show("Export to Excel Complete")
    End Sub


จากนั้นก็สั่งรันโปรแกรมทดสอบ ก็จะได้ไฟล์ชื่อ "d:\test.xlsx" อยู่ที่ไดร์ฟ D:
อยากเก็บไว้ที่ไหนไฟล์อะไรก็แก้เอาน่ะ

สวัสดี มีความสุขทุกวัน

28 เมษายน 2559

VFP : Display Base64 image

Base64 คือรูปแบบการเข้ารหัสวิธีหนึ่ง แต่ที่นิยมกันในปัจจุบันโดยการนำไปใช้เพื่อทำให้ข้อมูลที่เก็บอยู่ในรูปของไบนารี เช่น ภาพ JPG PNG หรือ Bitmap  กลายมาเป็นรูปแบบของตัวอักษร

นิยมนำไปใช้ภายใต้ HTML ตัวอย่างการใช้ ผ่านทางแท็ก img

<img src="data:image/jpg;base64,As10AAQSkZJRg........................Ed0/E//9k=" />

ถ้าหากต้องการเข้ารหัสภาพทางเว็บบราวเซอร์ สามารถเข้าไปที่เว็บ

https://www.base64-image.de/


สำหรับบทความนี้จะนำเสนอวิธีการใช้ด้วยโปรแกรม Visual FoxPro ดังนี้

การเข้ารหัสรูปแบบของภาพไปเป็น Base64

lcPictureFile = GETPICT( "jpg" )
lcPictBase64  = STRCONV( FILETOSTR( lcPictureFile ) , 13 )

การแปลงข้อมูล Base64 กลับไปเป็นแฟ้มภาพ

=STRTOFILE(STRCONV( lcPictBase64 , 14) , lcPictureFile)

การนำข้อมูล Base64 แสดงภายใต้คอนโทรล Image 

ThisForm.Image1.Picture = ""
ThisForm.Image1.PictureVal = STRCONV( lcPictBase64 , 14)

การนำเอาข้อมูล Base64 ไปออกรายงาน

ข้อมูล Base64 เป็นข้อมูลตัวอักษรธรรมดา ซึ่งเราสามารถนำไปบันทึกลงในฟิลด์ได้ทันที โดยเก็บไว้ในฟิลด์ประเภท memo หากต้องการนำข้อมูลมาแสดงผลเป็นรูปภาพในรายงาน สามารถทำได้หลายวิธีดังนี้

* สมมุติขอมูล Base64 ถูกเก็บไว้ที่ตาราง TableBase ภายใต้ฟิลด์ชื่อ Pict

วิธีที่ 1 

1. สร้างรายงาน CREATE REPORT myReport
2. ทำการสร้างตัวแปร โดยคลิกที่เมนู Report -> Variables...
    ที่แท็ป Variables ให้กำหนด
          Value to store:  BlobImage
          Initial value: CREATEOBJECT("Image")

3  นำคอนโทรล Picture/OLE มาใส่ในรายงาน
    double click จะเข้าสู่หน้าต่าง Picture/OLE Bound Properties
         ที่ แท็ป General คลิกเลือก Expression or variable name
         จากนั้นป้อนตัวแปรที่ช่อง Control source: BlobImage
         คลิกปุ่ม OK

4. double click ที่ Detail จะเข้าสู่หน้าต่าง Detail Band Properties
    คลิกที่แท็บ General
       ทีช่อง On entry: ใส่คำสั่ง
         
              EXECSCRIPT("Blobimage.PictureVal=STRCONV(TableBase.Pict , 14)")

              *** TableBase.Pict คือชื่อตารางและฟิลด์ที่เก็บข้อมูล Base64


ทำการบันทึกรายงาน เป็นอันเสร็จเรียบร้อย


วิธีที่ 2

1. สร้างรายงาน จากนั้นนำคอนโทรล Picture/OLE มาใส่
    double click กำหนดค่าในแท็บ General โดยคลิกเลือก Expression or variable name
    ที่ช่อง Control Source:  loRL.oBlobImage
    
    ** loRL คือชื่อ object  และ oBlobImage คือชื่อ property


2.  ทำการเขียนคำสั่ง เพื่อแสดงภาพในรายงาน ดังนี้

USE TableBase    && ตารางที่มีข้อมูล Base64

SET REPORTBEHAVIOR 90

loRL = NEWOBJECT( 'PreviewListener' )
loRL.InitBLOBImage( )  
loRL.LISTENERTYPE = 1  && Preview

REPORT FORM ชื่อรายงาน OBJECT loRL      

RETURN

DEFINE CLASS PreviewListener AS REPORTLISTENER
oBlobImage = NULL

PROCEDURE InitBLOBImage(lpcBlobField AS STRING)
THIS.oBlobImage = NEWOBJECT( 'IMAGE' )
THIS.oBlobImage.PICTUREVAL = STRCONV(Tablebase.pict , 14)
ENDPROC

PROCEDURE BEFOREBAND( nBandObjCode, nFRXRecNo )
IF nBandObjCode = 4 && Detail band
THIS.oBlobImage.PICTUREVAL = STRCONV(Tablebase.pict , 14)
ENDIF
ENDPROC
ENDDEFINE


เสร็จสำหรับการจัดการแสดงผลภาพจาก Base64 ในรายงาน


สำหรับการนำเสนอวิธีการจัดการกับการเข้ารหัสด้วย Base64 ก็จบเพียงเท่านี้

สวัสดี ปีที่มีอากาศร้อนที่สุดๆๆๆๆ

22 เมษายน 2559

VFP : ActiveVFP สร้างสรรค์เว็บด้วย VFP

ActiveVFP เป็นภาษาคลิปต์ที่ออกแบบมาสำหรับนักพัฒนาเว็บ โดยอาศัยพื้นฐานภาษา Visual FoxPro ในการพัฒนา (เหมือนกับการพัฒนาเว็บด้วยภาษา PHP, ASP) ActiveVFP ถูกสร้างขึ้นมาเป็นลักษณะของซอฟต์แวร์โอเพ่นซอรส์ เพื่อให้นักพัฒนาที่มีความถนัดในการเขียนโปรแกรม VFP สามารถนำไปใช้งานและต่อยอดความสามารถต่างๆ ได้อย่างสะดวกและรวดเร็ย โดยไม่จำเป็นต้องเรียนรู้ภาษาใหม่

จะหาโปรแกรม ActiveVFP ได้จากที่ไหน ?
ดาวน์โหลดโปรแกรมคลิกที่นี่

เตรียมการก่อนติดตั้งโปรแกรม ActiveVFP

การใช้งาน ActiveVFP จำเป็นต้องติดตั้ง IIS ก่อน เพื่อจำลองเครื่องคอมพิวเตอร์ของเราให้เป็น Web Server ดังนี้
1. คลิกที่เมนู Start ของ Windows เพื่อเปิด Control Panel -> Programs -> Programs and Features จะเข้าสู่หน้าต่าง Unstall or change a program ให้คลิกเลือก Turn Windows features on or off

2. ที่หน้าต่าง Windows Features ให้เลือกติดตั้ง Insternet Information Service และเลือก รายการ Application Development Features ตามต้องการ ดังภาพตัวอย่าง

คลิกปุ่ม OK
ระบบจะทำการติดตั้ง IIS จนแล้วเสร็จ

3. ทำการทดสอบว่าสามารถใช้งาน IIS ได้หรือยัง โดยเปิดโปรแกรมเว็บบราวเซอร์ แล้วพิมพ์ url
http://localhost
หากติดตั้งสำเร็จ จะขึ้นเว็บ ดังภาพ (ขึ้นอยู่กับรุ่นของ IIS)

วิธีการติดตั้งโปรแกรม ActiveVFP

1. ให้เรียกไฟล์ติดตั้งที่ทำการดาวน์โหลดมา (ActiveVFP603,exe) ขณะที่โปรแกรมทำการติดตั้งจะปรากฏหน้าจอให้กำหนดไดเรคทอรีสำหรับเว็บไซต์
ให้กำหนดชื่อตามต้องการ ดังภาพ

หลังจากทำการตั้งชื่อแล้วกดปุ่ม Enter โปรแกรมจะทำการติดตั้งไฟล์ต่างๆ ลงในไดเรคทอรีที่กำหนด จากนั้น โปรแกรมจะให้เรากำหนดชื่อของ Virtual Directory Name ให้กำหนดชื่อตามต้องการ ดังภาพ
เมื่อกำหนดชื่อเรียบร้อยให้กดปุ่ม Enter โปรแกรมจะทำการเพิ่ม Web Site ที่เรากำหนดให้กับ IIS
เมื่อติดตั้งเรียบร้อย กด Enter แล้วจะปรากฎหน้าต่างเว็บบราวเซอร์ แสดงรายละเอียดของ ActiveVFP ดังภาพ

เสร็จสิ้นสำหรับการติดตั้ง ActiveVFP

การปรับแต่ง ActiveVFP ให้สนับสนุนภาษาไทย และภาษาอื่นๆ 

1. ให้ทำการเปิดโฟลเดอร์ที่ทำการติดตั้ง ActiveVFP  จากนั้นเข้าไปที่โฟลเดอร์ย่อย ชื่อ prg ดังภาพ

ทำการเปิดโปรแกรม VisualFoxPro แล้วเข้าไปแก้ไขโปรแกรม .prg ที่อยู่ในโฟล์เดอร์เหล่านี้ โดยทำการค้นหา คำสั่ง

oHTML.mergescript(lcHTMLout)

เมื่อพบแล้ว ให้เพิ่มคำสั่ง

 lcHTMLout=STRCONV(lcHTMLout,11)           && for support thai language

โดยนำคำสั่งข้างต้นไว้ก่อนหน้าบรรทัดที่ค้นหาพบ ดังภาพ

ให้ค้นหาทุกไฟล์ .prg และเพิ่มตามตัวอย่าง ก็จะทำให้การแสดงผลและการใช้ภาษาไทยบนหน้าเว็บเป็นไปอย่างถูกต้อง

การกำหนดให้สามารถพิมพ์รายงานของ VisualFoxPro

ขั้นตอนนี้เป็นการกำหนดให้ ActiveVFP สามารถเรียกใช้รายงานของ VisualFoxPro (.frx) ที่ได้ทำการสร้างไว้
1. ให้ทำการดาวน์โหลโปรแกรม Ghostscript จากเว็บไซต์

http://ghostscript.com/download/gsdnld.html

แล้วทำการติดตั้งลงในคอมพิวเตอร์

2. ทำการเปิด Windows Command Prompt ในโหมด Run As Administrator

3. ไปที่โฟล์เดอร์ที่เราได้ติดตั้ง ActiveVFP แล้วเข้าไปที่โฟลเดอร์ reports ทำการ Register ไฟล์  PDFRun.exe โดยอ้างโฟลเดอร์แบบเต็ม ตามตัวอย่างดังภาพ

4. ทำการกำหนดสิทธิ์ให้กับ PDFrun.Print2PDF  โดยการเรียกใช้คำสั่ง mmc comexp.msc /32 ในโหมด Run as Administrator (สำหรับ Windows 7 หรือรุ่นที่สูงกว่า) หรือ DCOMCNFG (สำหรับรุ่นที่ต่ำกว่า Windows 7)
5. ที่หน้าต่าง Component Serveice ให้เข้าไปกำหนดสิทธิให้กับรายการ PDFrun.Print2PDF
โดยให้สิทธิกับผู้ใช้
IIS_IUSRS
IUSR

เป็นอันเสร็จเรียบร้อย

5. ให้ทำการเพิ่มเครื่องพิมพ์ให้กับ Windows โดยทำการเพิ่มเครื่องพิม์
Xerox Phaser 6120 PS  (สำหรับ Windows7 หรือสูงกว่า)
Xerox Phaser 1235 PS  (สำหรับ Windows Vista)
Apple Color LW 12/660 PS (สำหรับ Windows 2003 Server)

สำหรับบทความนี้ก็ขอจบเพียงเท่านี้

สวัสดีมีเว็บใช้งาน

"I Believe in You"

Copyright(c) 2007 - 2022 by Kasem Kamolchaipisit.