"Unit1.cpp" Dosyası
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Herhangi bir kontrolün üzerinde cursor görüntüleyebilir ve yazı yazabilirsiniz.
Bu daha çok Form elemanı olabilir. Eğer C++ Builder tarafından sunulan hazır yazı
kontrollerini istemiyorum, ben kendim basit bir text editörü yapacağım diyorsanız
Aşağıdaki kodlar işinize yarayabilir.
Program bir örnek olduğu için Enter tuşu, Geri silme tuşu ve bunun gibi tuşlar
programlanmadığından çalışmamaktadır. Sadece büyük harfle yazı yazabilirsiniz.
Türkçe karakterleri kullanamazsınız ve rakamları yazamazsınız. Çok az kod ekleyerek
hepsi yapilabilir.Form elemanının fontunu Arial ve boyutunu 10 olarak seçtim.
-----------------------------------------------------------------------------------------
Kullanılan Api Fonksiyonları Aşağıda Gösterilmiştir.
-----------------------------------------------------------------------------------------
CreateCaret;
SetCaretPos;
ShowCaret;
SetBkMode;
-----------------------------------------------------------------------------------------
Program  : Taner Kocaova Mak. Müh.
e-mail : tanerkocaova@tekniktesisat.org
Tarih : Ocak 2003
-----------------------------------------------------------------------------------------
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
//---------------------------------------------------------------------------
#include <vcl\vcl.h>
#pragma hdrstop
#include "Unit1.h"
#include &shellapi.h>
#pragma resource "*.dfm"
TForm1 *Form1;
//Cursorun bulunduğu yatay koordinat.
int x = 20;
//Cursorun bulunduğu dikey koordinat.
int y = 20;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner): TForm(Owner)
{
}
//-------------------------------------------------------------------------
//-------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
//Cursorü göstermek istediğiniz kontrolün
//Handle numarası. Burada form kullanıldı.
HWND Hwnd;
//Cursoran genişliği.
int Genislik = 1;
//Cursorün yüksekliği. Harf büyüklüğüne göre ayarlanıyor.
int Yukseklik = 15;
//FormCreate olayı bitmeden form ekranda görünmeyeceğinden
//başlangıçta formun görüntülenmesini sağlıyoruz...
Form1->Show();
Hwnd = Form1->Handle;
//Siyah bir cursor yarat. "1" değeri gri bir cursor yaratır.
//Eğer söz konusu parametre bir Bitmap Handle ise cursor
//bitmap olarak görüntülenir. Bu takdirde Bitmap "CreateBitmap"
//Api fonksiyonu ile oluşturulmuş ve "LoadBitmap" Api fonksiyonu
//ile yüklenmiş olmalıdır.
::CreateCaret(Hwnd, (HBITMAP)0, Genislik, Yukseklik);
//Cursoru göstereceğiniz kontrol üzerindeki koordinatlar.
::SetCaretPos(x, y);
//Cursoru görüntüle.
::ShowCaret(Hwnd);
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key,
TShiftState Shift)
{
//Cursor sağa hareket eder.
if (Key == VK_RIGHT)
{
if (x >= (Form1->ClientWidth-20))
return;
x += 9;
::SetCaretPos(x, y);
}
//Cursor sola hareket eder.
if (Key == VK_LEFT)
{
if (x <= (20))
return;
x -= 9;
::SetCaretPos(x, y);
}
//Cursor aşağı hareket eder.
if (Key == VK_DOWN)
{
if (y >= (Form1->ClientHeight-40))
return;
y += 15;
::SetCaretPos(x, y);
}
//Cursor yukarı hareket eder.
if (Key == VK_UP)
{
if (y <= (20))
return;
y -= 15;
::SetCaretPos(x, y);
}
//Cursor yukarı hareket eder.
if (Key == VK_SPACE)
{
::SetBkMode(Form1->Canvas->Handle, TRANSPARENT);
x += 9;
::SetCaretPos(x, y);
}
//Cursor yazı yazar
if (Key >= 'A' && Key <= 'Z')
{
::SetBkMode(Form1->Canvas->Handle, TRANSPARENT);
Form1->Canvas->TextOut(x+1, y, (char)Key);
x += 9;
::SetCaretPos(x, y);
}
}
//---------------------------------------------------------------------------
//////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////
"Unit1.h" Dosyası
//---------------------------------------------------------------------------
#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <vcl\Classes.hpp>
#include <vcl\Controls.hpp>
#include <vcl\StdCtrls.hpp>
#include <vcl\Forms.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published: // IDE-managed Components
void __fastcall FormCreate(TObject *Sender);
void __fastcall FormKeyDown(TObject *Sender, WORD &Key, TShiftState Shift);
private: // User declarations
public: // User declarations
__fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
//////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////
PROGRAMIN EKRAN GÖRÜNTÜSÜ
<<< Geri Dön