19 มิถุนายน 2567

NET : Visual Studio Code กับการติดตั้ง Extension และการสร้าง Project .Net Blazor

ให้ทำการติดตั้ง Visual Code จากนั้นให้ทำการติดตั้ง Extension ชื่อ C# Dev Kit

เปิด Terminal โดยเลือกเมนู View -> Terminal 

ดู Version .net
   dotnet --version

ดู รายละเอียด Template
    dotnet new list

ดู Information ของ .net
    dotnet --info

การสร้าง Project 
    ให้ เปิด Explorer (เมนู View -> Explorer) 
    คลิกเมาส์ขวาที่ว่าง ๆ ของ Explorer เลือก New Floder... แล้วสร้างโฟลดเดอร์ตามต้องการ เช่น myAPP

จากนั้นไปที่เมนู View -> Command Pallette....
    ที่ช่อง Command Pallette ให้พิมพ์ .NET: จากนั้นเลือก New Project...
        เลือก Blazor Web App แล้วตั้งชื่อตามต้องการ เช่น myApp.Frontend


เปิด Solution Explorer แล้วใส่ project เข้าไป ทำการ build จะสร้างไฟล์ dll exe ... ภายใต้ โฟลดเดอร์ bin\debug\net8.0

เมื่อ build เสร็จ จะทดสอบ ให้กด F5 ที่ แล้วเลือก C# แล้วเลือกรายการที่เป็น [http]
ก็จะปรากฎเว็บไซต์ที่สร้างขึ้น



14 กุมภาพันธ์ 2567

Visual FoxPro : การใช้ BindEvent

ลาย ๆ ครั้งเราอยากจะตรวจสอบเหตุการณ์ (event) ที่เกิดขึ้นใน Visual FoxPro 9 แต่บางเหตุการณ์ดันไม่มี method ของเหตุการณ์นั้นมารองรับ เช่น VFP มีแต่ KeyPress Event เป็นเหตุการณ์สำหรับตรวจสอบการกดปุ่มบนคีย์บอรด์อย่างเดียวเลย แต่..ถ้าเราอยากจะตรวจสอบเฉพาะตอนกดปุ่ม (KeyDown) หรือเฉพาะตอนปล่อยปุ่ม (KeyUp) จะทำไงละ แต่...คนสร้าง VFP ก็ช่างคิดเสียนี่กระไร ในเมื่อฉันไม่ได้เตรียม event/method ไว้ให้ แต่ก็ทิ้งคำสั่ง BindEvent เอาไว้ให้แทน 

าดูตัวอย่างการทำฟอร์มให้สามารถใช้งาน การตรวจสอบการกดปุ่ม (KeyDown) และปล่อยปุ่ม (KeyUp) (ตัวอย่างนี้มาจากคำถามของสมาชิกชาว Fox จะป้องกัน user กดปุ่มค้างไม่ยอมปล่อย ดังนั้นถ้าไปเช็คใน KeyPress Event มันวิ่งตลอด ที่เขียนโปรแกรมทำอะไรไว้วิ่งเป็นพรวน....) ดังนั้น การตรวจสอบ KeyDown  KeyUp จะได้มันใจว่ากดยาว กดแช่ กดสั้น กดไว อย่างไรก็ทำครั้้งเดียวจนกว่าจะกดใหม่

 สำหรับตัวอย่างนี้สามารถใช้เป็นแนวทางในการทำ BindEvent กับเหตุการอื่น ๆ ได้อีกมากมาย นะจ๊ะ...

1. ให้สร้างฟอร์มขึ้นมาใหม่ จากนั้นไปที่เมนู Form -> New Method จะปรากฎหน้าต่าง New Method
        -  ที่ช่อง Name ป้อน KeyDown แล้วคลิกปุ่ม Add
        -  ที่ช่อง Name ป้อน KeyUp แล้วคลิกปุ่ม Add











2. ไปป้อนคำสั่งที่ฟอร์มในเมธอด ดังนี้

    -  เมธอด Init ป้อนคำสั่ง

        * สร้างตัวแปรฟอร์มสำหรับตรวจสอบการกดปุ่มค้าง
    =ADDPROPERTY(ThisForm, "nPreventKeyPress",0)
        * ทำการผูกการกดคีย์(keydown)(เลข 256) กับ object ฟอร์ม(This) เรียกเมธอด KeyDown
    =BINDEVENT(0, 256, This, "KeyDown")
    
* ทำการผูกการกดคีย์(keydown)(เลข 257) กับ object ฟอร์ม(This) เรียกเมธอด KeyUp
    =BINDEVENT(0, 257, This, "KeyUp")

ดูความหมายของค่าตัวเลข 256 257 หรืออื่น ๆ ของ Windows Message ที่ส่งมา   https://wiki.winehq.org/List_Of_Windows_Messages

26 มกราคม 2567

Vฺisual Studio 2022 C# Blazor - 01

// youtube : https://youtu.be/dY_AWdCzsCY?si=eQyqwMcRINbhvUYz
// index.razor

@page "/"
@rendermode InteractiveServer 

<h3>Hello, @userName</h3>
<h3>@GetUserName()</h3>
<p>Sum : @GetSum()</p>
<button @onclick = "ChgName">Change Name</button>

@if (testNum == 1)
{
    <p>Num is 1</p>
else {
    <p>Num is not 1</p>
}
@foreach(var name in names)
{
    <p>@((MarkupString)name)</p>
}

@code {
    private string userName = "John";
    private int testNum = 10;
    private List<string> names;

    private string GetUserName()
    {
        return userName + "ซำบายดีไหม?";
    }

    private int GetSum()
    {
        return 2 + 2 + 3;
    }

    private void ChgName()
    {
        userName = "เกษม";
    }

    protected override void OnInitialized()
    {
        base.OnInitialized();
        names = new List<string>
        {
            "<b>Value 01<b>",
            "Value 02",
            "Value 03",
            "Value 04",
            "Value 05",
            "<i>Value 06<i>",
            "Value 07",
            "Value 08",
            "Value 09",
            "Value 10"
        };
    }
}

"I Believe in You"

Copyright(c) 2007 - 2022 by Kasem Kamolchaipisit.