سلام دوستان
از ابتدا بابت مطرح کردن بحثی که مربوط به انجمن C++ و در اینجا مطرح کردم معذرت میخوام ولی من این سوال در اون انجمن پرسیدم و کسی جواب نداده حالا یا سوال من پیش پا افتاده بوده و اونا اومدن فقط نگاه کردن و جواب ندادن یا بلد نبودن از شما میخوام اگر کسی میدونه کمکم کنه از مدیران انجمن هم میخوام که لطفا این تاپیک رو پاک نکنند چون در مکان مناسب مطرح شده و کسی جواب نداد و به نظرم افراد داخل این انجمن فعالترن اینجا مطرح کردم تا جواب سوالم پیدا کنم :
من یه پروژه نوت پد دارم که تقریبا کامل اما چند تا ایراد داره اگر کسی می تونه کمکم کنه. مشکلاتش به ترتیب در زیر هست:
وقتی Find می کنم فقط اولین کلمه رو مشخص می کنه که نوشته شده
void __fastcall TForm2::Find1Click(TObject *Sender)
{
LongInt foundat;
int StartPos, ToEnd;
TSearchTypes mySearchTypes;
if (FindDialog1->Execute()) {
if (RichEdit1->SelLength!=0) {
StartPos= RichEdit1->SelStart + RichEdit1->SelLength ;
}
else{
StartPos =0;
}
ToEnd=Text.Length()- StartPos;
//foundat=RichEdit1->FindTextA(RichEdit1->Lines->Text,StartPos,ToEnd,mySearchTypes);
if (foundat!=-1) {
SetFocus();
RichEdit1->SelStart=foundat;
RichEdit1->SelLength=Text.Length();
}
}
}
وقتی replace می کنم هم اول فقط کلمه درخواستی رو چاپ می کرد بدون اینکه پیداش کنه
یعنی آخر خط پیدا می کنه و کلمه ای رو که کاربر خواسته جایگزین کنه رو پشت سر هم چاپ می کنه
void __fastcall TForm2::replace1Click(TObject *Sender)
{
ReplaceDialog1->Execute();
}
//---------------------------------------------------------------------------
void __fastcall TForm2::ReplaceDialog1Find(TObject *Sender)
{
if (FindDialog1->Execute()) {
if (RichEdit1->SelLength!=0) {
StartPos= RichEdit1->SelStart + RichEdit1->SelLength ;
}
else{
StartPos =0;
}
ToEnd=Text.Length()- StartPos;
//foundat=RichEdit1->FindTextA(RichEdit1->Lines->Text,StartPos,ToEnd,mySearchTypes);
if (foundat!=-1) {
SetFocus();
RichEdit1->SelStart=foundat;
RichEdit1->SelLength=Text.Length();
}
}
}
//---------------------------------------------------------------------------
void __fastcall TForm2::ReplaceDialog1Replace(TObject *Sender)
{
if (RichEdit1->SelLength!=0) {
StartPos=RichEdit1->SelStart+ RichEdit1->SelLength;
}
else {
StartPos=0;
}
ToEnd=Text.Length()- StartPos;
if (foundat!=-1) {
SetFocus();
RichEdit1->SelLength=RichEdit1->Text.Length();
RichEdit1->SelText=ReplaceDialog1->ReplaceTextA;
}
}
وقتی کلا Save میکنم می بندمش و با نوت پد ویندوز بازش می کنم یه سریکلمات بی مفهوم بالاش نوشته سده اگر کسی میتونه لطفا کمکم کنه
پیشا پیش ممنونم