char chrBuf[1024];
AnsiString asBuf;

strcpy(chrBuf,"123456");
asBuf = chrBuf;
asBuf.Delete(3,3);
Label1->Caption = asBuf;

とやりたいの?

Caption は AnsiString だから、AnsiString → char * → AnsiString っていう
キャストが行われると思うんだけど、これはわざと?

c_str() で確保されたメモリ空間の寿命は未確定。
コピー先として使うべきではない。