3DCAD・3Dプリンター・3DCAMなら【SEIZONET】HOME  >  覚書:C++Builder Memoコンポーネントで文字列検索

Pocket

かずばん

勤続約37年、CAM関連の業務に携わりCAMデータ供給や、社内のNC工作機械新規設備の導入検討立上げなどにも携わる。
CAMは、昔の自動プロから始まり20年ほど前に3Dに移行後、GRADE、Space-E、HyperMILLを使用。
社内での立上げなどで携わったNC工作機械は、国内製では、マキノ、オークマ、OKK、安田、ソディック、ナガセ、ワイダなどで、海外製では、Hauser、Moore、Hermle など。

Fusion360
Fusion360
Fusion360

3D CAD

3D CAM

3Dプリンター

CNC

3次元測定器

IoT・AI(人工知能)

AI入門セミナー

更新日:2017.06.23

覚書:C++Builder Memoコンポーネントで文字列検索

 マシニングマスター「かずばん」のインダストリー4.0への挑戦

C++Builder のMemo コンポーネントで、文字列を検索し、その場所へ

カーソルを移動するには、どうしたらいいだろう?

EMBARCADERO や他のサイトにも情報があったけど、よくわからないな~

C++Builder Tips – メモコンポーネントとメッセージ

とりあえず、いろいろやってみたら、動いたの、残しておきます

//前方へ検索

int iMemoRow_ = Memo1->Perform(EM_LINEFROMCHAR,-1,0);
UnicodeString Key = Edit1->Text;
if(Key == “”) return;
int c = Memo1->Lines->Count;
UnicodeString Line;
int pos;
for(int i=iMemoRow_+1;iLines->Strings[i];
pos = Line.Pos(Key);
if(pos){
iMemoRow_ = i;
break;
}else{
iMemoRow_ = 0;
}
}
Memo1->SelStart = Memo1->Perform(EM_LINEINDEX,iMemoRow_,0);
Memo1->Perform(EM_SCROLLCARET,0,0);
Memo1->SetFocus();

//後方へ検索

int iMemoRow_ = Memo1->Perform(EM_LINEFROMCHAR,-1,0);
UnicodeString Key = Edit1->Text;
if(Key == “”) return;
int c = Memo1->Lines->Count;
UnicodeString Line;
int pos;
for(int i=iMemoRow_-1;i>0;i–){
Line = Memo1->Lines->Strings[i];
pos = Line.Pos(Key);
if(pos){
iMemoRow_ = i;
break;
}else{
iMemoRow_ = c;
}
}
Memo1->SelStart = Memo1->Perform(EM_LINEINDEX,iMemoRow_,0);
Memo1->Perform(EM_SCROLLCARET,0,0);
Memo1->SetFocus();

このエントリーをはてなブックマークに追加

高機能なCAD「Fusion 360」が学べるセミナー

top_bnr_11top_bnr_12



AI入門セミナー