วันพฤหัสบดีที่ 17 กรกฎาคม พ.ศ. 2557

กำหนดสีTextใน DevC++



กำหนดสีTextใน DevC
โดยปกติแล้วหากคุณใช้โปรแกรม Turbo C หรือ EditPlus แล้วเชื่อม Complie ไป Turbo C การใช้่ฟังก์ชั่น textcolor,cprint เป็นเรื่องง่ายและปกติเพียงแต่ส่วน Header file เรียกว่าไลบรารี conio.h ก็เป็นอันเรียบร้อยแต่ในDevCมิอาจทำเช่นนั้นได้ DevC รันบนวินโดว์ ดังนั้นหากใช้ฟังก์ชัน cprint หรือ textcolor คุณจะ  compile ไม่ผ่านครับ แต่อย่างไรก็ตามเราสามารถสั่งการแสดงผลอักขระ(text)และพิ้นหลังสีใน DevC ได้

การสั่งแสดงอักขระสีและพื้นหลังสีใน DevC มี 2 แนวทางครับ คือ
1.สร้าง Header file เพื่อกำหนดสีและการเรียกใช้
2.เขียนคำสั่งเรียกใช้สีไว้ในโปรแกรมที่เขียนเลยครับ



เริ่มกันเลยครับสำหรับ วิธีแรก ที่สร้าง Header file มีหลักการคือสร้าง Header file ที่มีการกำหนดสีและการใช้และบันทึกเป็นHeader file (นามสกุล .h) แล้วสร้าง/เขียนโปรแกรมโดยเรียกใช้ Header file ที่ได้สร้างขึ้นทั้งนี้เงื่อนไขสำคัญทั้งHeader file และsource code ที่เขียนโปรแกรมอยู่ใน โฟลเดอร์เดียวกัน(เดี๋ยวโปรแกรมมองHeader file ไม่เห็นครับ มาลองทำดูตามตัวอย่างครับ
1.สร้าง Header file ครับ โดยในส่วนHeader file นี้มีคำสั่งตามนี้

#include <windows.h>

#define BLACK            0
#define DARKBLUE      1
#define DARKGREEN    2
#define AQUA             3
#define DARKRED        4
#define DARKVOILET    5
#define DARKYELLOW    6
#define GRAY            7
#define DARKGRAY      8
#define BLUE              9
#define GREEN          10
#define CYAN            11
#define RED              12
#define VIOLET          13
#define YELLOW       14
#define WHITE         15

#define textcolor(txt,back) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), back*16+txt)
#define resetcolor() SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 15)

หลังจากนั้นบันทึก Header file ครับในที่นี้ผมบันทึกชื่อว่า color.h
เสร็จแล้วก็ลองเรียกใช้ครับโดยเขียนโปรแกรมดังตัวอย่างดังนี้

#include <stdio.h>
#include "color.h"

int main() {
textcolor(VIOLET,DARKYELLOW );
printf("Chayrug Kaniknant\n");
resetcolor();
printf("Normal\n");
textcolor(BLACK,YELLOW );
printf("Chayrug Kaniknant\n");   
resetcolor();
return 0;
}
บันทึก source code จะเป็น .c หรือ .cpp ก็ได้ครับเงื่อนไขสำคัญให้อยู่ในโฟลเดอร์เดียวกับ Header file หลังจากนั้น compile และ run ได้เลย
หลักการทำทำงาน โปรแกรมจะเรียกใช้ ฟังก์ชัน textcolor และ resetcolor ที่ได้ทำไว้ในHeader file ส่วนรูปแบบการใช้ textcolor คือ textcolor(สีอักษร,สีพื้น) โดยสีพื้นและสีอักษรจะใช้ตัวแปรที่กำหนดไว้ในHeader file หรือจะใช้ค่าตัวเลขก็ได้ครับ





วิธีที่ ครับ คือการแทรกคำสั่งในโปรแกรมที่เขียนเลย
วิธีนี้ไม่ต้องทำ Header file ครับ ลองดูกันเลยครับ



#include <windows.h>  
#include <stdio.h>
#define textcolor(txt,back) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), back*16+txt)
#define resetcolor() SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 15)
int main() {

textcolor(12,10 );
printf("Chayrug Kaniknant\n");
resetcolor();
printf("Normal\n");
textcolor(0,14 );
printf("Chayrug Kaniknant\n");   
resetcolor();
return 0;
}

คราวนี้เราไม่ได้สร้าง Header file เมื่อใช้ textcolor เลยต้องอ้างค่าสีครับ (ในกรณีอา้งวเป็นตัวเลขคุณอาจเทียบกับตัวอย่างสี ใน Header file   ก็ได้ว่าสีอะไร ในส่วนตัวผมแล้วผมชอบแบบหลังซึ่่งเราสามารถแทนค่าสี(ตัวเลข)ด้วยตัวแปรได้ ซึ่งก็หมายความว่าเราก็จะ control ได้อย่างหลากหลายเช่นกัน



แหล่งที่มาข้อมูล

ไม่มีความคิดเห็น: