|
TEdit에 입력된 값은 TEdit->Text에 보관되며,
TEdit->Text는 property로써 AnsiString형을 반환합니다.
두 값을 더하려면 일단 숫자로 변환해야 겠죠?(문자열 "1234" + "5678"은 "2345678"이 됩니다.)
AnsiString의 Method중 ToInt()가 이 일을 합니다.
doradori이 작성한 코드중
void __fastcall TForm1::Button1Click(TObject *Sender)
{
return (Edit1+Edit2);
}
를
try {
Label1->Caption = Edit1->Text.Trim().ToInt() + Edit2->Text.Trim().ToInt();
}
catch( const EConvertError &err ) {
Label1->Caption = err.Message;
}
로 바꿔 보세요.
숫자 변환중 오류가 발생되면 EConvertError 예외가 발생되는데,
예외를 발생시키지 않으려면 ToIntDef()를 사용하시면 됩니다.
보다 자세한 내용은 도움말을 참조하시길...
행복하세요.
doradori 님이 쓰신 글 :
: 다름이 아니라 계산기비슷한 것을 짜보려고 합니다.그림은 다음과 같습니다.
: edit 창 1와2에 수치를 넣고 옆에 +버튼을 누르면 값이 산출되는 것을 하려 합니다 ..
: 소스는 다음과 같이 했습니다...솔직히 아직 개념도 잘 정리가 안되서 ...여기저기 책에서 비슷한것으로 붙였습니다.
: 조언좀 부탁드립니다.
: #include <vcl.h>
: #pragma hdrstop
:
: #include "edical.h"
: //---------------------------------------------------------------------------
: #pragma package(smart_init)
: #pragma resource "*.dfm"
: TForm1 *Form1;
: //---------------------------------------------------------------------------
: __fastcall TForm1::TForm1(TComponent* Owner)
: : TForm(Owner)
: {
: }
: //---------------------------------------------------------------------------
:
:
:
: void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key)
: {
: if((Key >=48&&Key<=57)||(Key==8)){
: }
: else{
: Key=0;
: }
: }
: //---------------------------------------------------------------------------
:
: void __fastcall TForm1::Edit2KeyPress(TObject *Sender, char &Key)
: {
: if((Key >=48&&Key<=57)||(Key==8)){
: }
: else{
: Key=0;
: }
: }
: //---------------------------------------------------------------------------
:
: void __fastcall TForm1::Button1Click(TObject *Sender)
: {
: return (Edit1+Edit2);
: }
: //---------------------------------------------------------------------------
|