Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Clear В Memo


Автор: XAHbl4 26.8.2006, 05:55
Такая проблема либо у меня что то неправильно написано либо ошибка в Builder 
Я пишу код на отчищения Memo так 
Код

if(Memo1->Lines=="")
Memo1->Lines->Clear();

Правильно ли так ??
Если нет то где моя ошибка?

Автор: Link90 26.8.2006, 07:46
XAHbl4, Расшифровываю твою запиь:

если (мемо1->текст == "")
Мемо1->Линии->Очистить;

То есть если текст в мемо 1 равен "" (пустоте)
Тогда Очистить Мемо!

Навеное ты хотел так:
Код

if(Memo1->Lines!="")
Memo1->Lines->Clear();

Автор: Bima 26.8.2006, 07:49
ошибка в какой строке?
во второй?

если есть ошибка, то напиши какая, что BCB выдает при компиляции, или отладке.

Автор: Link90 26.8.2006, 09:40
Bima, Я ж написал!!! Нет никаких ошибок!!! Просто он не правильно построил условие!!!

Автор: stmamont 26.8.2006, 09:42
Memo1->Lines возвращает объект типа TStrings и оба условия выглядят криво.

Попробуй

Код

// случай когда хочешь очистить Мемо1
if(Memo1->Count)
Memo1->Lines->Clear();



Автор: Bima 26.8.2006, 09:52
Цитата

Bima, Я ж написал!!! Нет никаких ошибок!!! Просто он не правильно построил условие!!!

Мы не знаем, чего он хочет этим условием, может условие очистки Мемо по отсутствию в нем данных (хотя не знаю, для чего ему это).

XAHbl4 ставь почетче вопрос! Чего ты хочешь от этого кода? Или даже так, что он должен выполнять?

Автор: Link90 26.8.2006, 12:09
Bima, Я не думаю, что он хочет очищять пустой мемо  smile 
stmamont, ещё есть такой вариант, можно проверять свойство Text
Вот таким кодом:
Код

if(Memo1->Text!="")
Memo1->Lines->Clear();

Автор: XAHbl4 26.8.2006, 14:19
Link90,  да именно так как я и хотел большое спасибо  smile 
Мне надобыло отчистить поле если в нем что то есть  smile 
Малость не так написал код  smile 
Еще раз спасибо!!!

smile


Автор: stmamont 26.8.2006, 20:49
Link90, да.
но 
Memo1->Lines!=""

Выглядит странно. и причем не работает. smile 

Автор: Gordon 26.8.2006, 21:11
Цитата(stmamont @  26.8.2006,  20:49 Найти цитируемый пост)

Link90, да.
но 
Memo1->Lines!=""

Выглядит странно. и причем не работает. 


А что у тебя не работает?

Автор: Romikgy 26.8.2006, 22:23
stmamont, ты ниче не напутал?
Цитата(Link90 @  26.8.2006,  11:09 Найти цитируемый пост)
    
if(Memo1->Text!="")
Memo1->Lines->Clear();


Цитата(stmamont @  26.8.2006,  19:49 Найти цитируемый пост)
Memo1->Lines!=""

имхо записи не идентичны !

Автор: stmamont 27.8.2006, 08:16
Код

if(Memo1->Lines!="")
Memo1->Lines->Clear();

срабатывает всегда, даже когда пустой memo
Romikgy, извиняюсь, я просто выписал отдельно условие))

Автор: Romikgy 27.8.2006, 10:17
stmamont, это неправильная запись
Цитата(stmamont @  27.8.2006,  07:16 Найти цитируемый пост)
if(Memo1->Lines!="")

вот это !!! не правильно 
А правильно будет так
Код

if(Memo1->Lines->Text!="")    
Memo1->Lines->Clear();


Добавлено @ 10:18 
и еще так будет правильно 
Код

if(Memo1->Lines->Count==0)     
Memo1->Lines->Clear();

Автор: stmamont 27.8.2006, 10:34
Romikgy, мы друг друга никак не поймем ))) я именно про это и говорю, что эта запись неправильно

Код

// и не так
if(Memo1->Lines->Count==0)     
Memo1->Lines->Clear();
// а так
if(Memo1->Lines->Count)
Memo1->Lines->Clear();
// зачем очищать уже чистое?
// а то что ниже то бред
// то что ниже
if(Memo1->Lines!="")
Memo1->Lines->Clear();

надеюсь все встало на свои места))

Автор: Gordon 27.8.2006, 10:34
Цитата(Link90 @  26.8.2006,  12:09 Найти цитируемый пост)

if(Memo1->Text!="")    
Memo1->Lines->Clear();


А чем это не правильно?

Автор: Romikgy 27.8.2006, 10:40
Цитата(stmamont @  27.8.2006,  09:34 Найти цитируемый пост)
// и не такif(Memo1->Lines->Count==0)     Memo1->Lines->Clear();// а такif(Memo1->Lines->Count)Memo1->Lines->Clear();

да прально надо так
Код

if(Memo1->Lines->Count!=0)

Gordon, 
Цитата(Gordon @  27.8.2006,  09:34 Найти цитируемый пост)
if(Memo1->Text!="")    Memo1->Lines->Clear();А чем это не правильно?

нету у мемо не ни проперти , ни метода текст!

Автор: Gordon 27.8.2006, 10:42
Тогда я бы так написал:
Код

if(Memo1->Lines->Count!=0)
 Memo1->Lines->Clear();


Хотя и это работает:
Код

if(Memo1->Lines->Count)    
Memo1->Lines->Clear();

Автор: Link90 27.8.2006, 13:19
Цитата

нету у мемо не ни проперти , ни метода текст!

Romikgy, Как это нету??? Почему у меня есть?

Автор: Romikgy 27.8.2006, 13:27
Цитата(Link90 @  27.8.2006,  12:19 Найти цитируемый пост)
Как это нету??? Почему у меня есть?

да билдер дает это свойство , а терь ради проверки , нажми на названии Memo1 кнопочку F1 и посмотри в хелпе есть ли у класса TMemo в пропертях Text?

Автор: stmamont 27.8.2006, 13:50
Gordon, это одно и то же.

Автор: Gordon 27.8.2006, 14:43
Согласен...

Автор: Link90 27.8.2006, 15:28
Romikgy, Зашёл в бильдеровскую справку! В пропертях 14 позиция это Text
TCustomMemo::Text
Specifies the entire text that is displayed in the memo field.

__property TCaption Text = {read = GetText, write = SetText};

Description

Use the Text property to read the entire text of the memo field or specify a new string for the Text value. When the memo control is first created, Text is the string specified in the Name property.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)