一道c++builder使用控件memo的题
如题如何在memo中实现下面的例子:输入若干行当按下button时删除奇数行并实现右对齐例如123123412345123456然后变成1234123456谢谢大家123...
如题如何在memo中实现下面的例子:
输入若干行 当按下button时
删除奇数行 并实现右对齐
例如
123
1234
12345
123456
然后变成
1234
123456
谢谢大家
123
1234
应该是这样
左对齐变右对齐
12345
123456
然后变成
1234
123456 展开
输入若干行 当按下button时
删除奇数行 并实现右对齐
例如
123
1234
12345
123456
然后变成
1234
123456
谢谢大家
123
1234
应该是这样
左对齐变右对齐
12345
123456
然后变成
1234
123456 展开
2个回答
展开全部
楼上的写法逻辑会混乱
说个简单的
由于Memo的delete函数会使传递的值下方的文字上移,所以建议用--的方法来删除文字行
unsigned int i;
for( i = this->Memo->Lines->Count - 1 ; i >= 1 ; i -= 2 )
{
this->Memo->Lines->Delete(i);
}
看看这段代码,发现什么问题了?
嗯,是的,如果上来的行数是双数行,那么我们不是删错了么?
所以再加一句判断
unsigned int i;
for( i = this->Memo->Lines->Count - 1 ; i >= 1 ; i -= 2 )
{
if( i % 2 == 0 )
{
this->Memo->Lines->Delete(i);
}
else
{
i = this->Memo->Lines->Count ;//这里不用担心,在执行完循环后会-2的
}
}
说个简单的
由于Memo的delete函数会使传递的值下方的文字上移,所以建议用--的方法来删除文字行
unsigned int i;
for( i = this->Memo->Lines->Count - 1 ; i >= 1 ; i -= 2 )
{
this->Memo->Lines->Delete(i);
}
看看这段代码,发现什么问题了?
嗯,是的,如果上来的行数是双数行,那么我们不是删错了么?
所以再加一句判断
unsigned int i;
for( i = this->Memo->Lines->Count - 1 ; i >= 1 ; i -= 2 )
{
if( i % 2 == 0 )
{
this->Memo->Lines->Delete(i);
}
else
{
i = this->Memo->Lines->Count ;//这里不用担心,在执行完循环后会-2的
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询