|
각 Edit 변경시 상호 변경되므로 상대방 Edit 변경전 OnChange
부분을 NULL로 바꾸면 OK!!!
행복하세요
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Edit3Change(TObject *Sender)
{
Classes::TNotifyEvent pChange = Edit4->OnChange;
Edit4->OnChange = NULL;
int nStart = Edit4->SelStart;
Edit4->Text = Edit3->Text.SubString( 5, Edit3->Text.Length() );
Edit4->SelStart = nStart;
Edit4->OnChange = pChange;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Edit4Change(TObject *Sender)
{
Classes::TNotifyEvent pChange = Edit3->OnChange;
Edit3->OnChange = NULL;
int nStart = Edit3->SelStart;
Edit3->Text = "mmmm" + Edit4->Text;
Edit3->SelStart = nStart;
Edit3->OnChange = pChange;
}
---------------------------------
yoggy 님이 쓰신 글 :
: 두 개 이상의 EditBox1, EditBox2 에 각각 OnChange 이벤트 처리루틴을 만들었습니다.
:
: 아래와 같이.........각 루틴은 서로의 Text를 수정하는 작업을 수행할 경우...
:
: 서로 값을 바꾸려고 하기 때문에 생각대로 문제를 해결할 수가 없는데...
:
: 동기화해서 이 문제를 해결할 방법은 없을까요?????
:
:
:
: EditBox1Change(TObject *Sender)
: {
: char buff[100];
: .
: .
: strcpy(buff,EditBox1->Text.c_str());
: .
: .
: EditBox2->Text = buff+4; // 상호 Text 값 변경 시도
: }
:
: EditBox2Change(TObject *Sender)
: {
: char buff[100];
: .
: .
: strcpy(buff,EditBox2->Text.c_str());
: .
: .
: EditBox1->Text = "mmmmm" +buff; // 상호 Text 값 변경 시도
: }
:
:
|