Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.05.2010, 12:53   #1
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,893
По умолчанию Удалить пустые строки перед добавлением

С помощью данной функции из RichView/RichViewEdit удаляются пустые строки
Код:
procedure DeleteBlankLines(RVData: TCustomRVData);
var
i, r, c: Integer;
table: TRVTableItemInfo;
begin
for i := RVData.ItemCount - 1 downto 0 do
  if RVData.IsParaStart(i) and (RVData.GetItemStyle(i) >= 0) and (RVData.GetItemTextR(i) = '') and (RVData.ItemCount > 1) then
    RVData.DeleteItems(i, 1)
      else
        if RVData.GetItemStyle(i) = rvsTable then
          begin
            table := TRVTableItemInfo(RVData.GetItem(i));
              for r := 0 to table.RowCount - 1 do
                for c := 0 to table.ColCount - 1 do
                  if table.Cells[r, c] <> nil then
                    DeleteBlankLines(table.Cells[r, c].GetRVData);
          end;
end;
Использование процедуры
Код:
DeleteBlankLines(RichViewEdit1.RVData);
Здесь в разных местах использовал процедуру, в результате чистки нет только ошибка.
Код:
      RichViewEdit1.SelectAll;
        Memo1.Lines.Add(RichViewEdit1.GetSelText);
          RichViewEdit1.Deselect;
            RichViewEdit1.Clear;
              RichViewEdit1.Reformat;

Последний раз редактировалось Shouldercannon; 25.05.2010 в 20:06.
Shouldercannon вне форума Ответить с цитированием
Старый 26.05.2010, 20:37   #2
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,893
По умолчанию

Может у кого-нибудь есть другие варианты?
Shouldercannon вне форума Ответить с цитированием
Старый 28.05.2010, 19:49   #3
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,893
По умолчанию

С процедурой DeleteBlankLines дохлый номер. Вот ещё вариан: перед передачей содержимого RichViewEdit в RichView, помещаем сначала в StringList и там уничтожаем пустые строки, после чего отправляем очищенный текст в RichView.
Код:
procedure TForm1.RichViewEdit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
var
i: Integer;
begin
if (not(ssCtrl in Shift)) and (Key = VK_RETURN) and (not IsEmpty(RichViewEdit1)) then
  begin
    Key := 0;
      RichViewEdit1.SelectAll;

B.Text := (RichViewEdit1.GetSelText);
  {Удаление пустот}
  for i := B.Count - 1 downto 0 do
    if '' = trim(B[i]) then
      B.Delete(i);

        RichView1.AddFromNewLine(TimeToStr(Now) + ': ', 0);
          RichView1.AddText(B.Text, 1);
            RichView1.Reformat;
              RichViewEdit1.Deselect;
                RichViewEdit1.Clear;
                  RichViewEdit1.Reformat;
                    B.Clear;
  end
    else
      if (not(ssCtrl in Shift)) and (Key = VK_RETURN) and (IsEmpty(RichViewEdit1))
        then
          Key := 0;
end;
Работает, но в конец StringList добавляется пустая строка, как её уничтожить?

Последний раз редактировалось Shouldercannon; 28.05.2010 в 20:17.
Shouldercannon вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удалить пустые строки из TStringList apromix Общие вопросы Delphi 5 14.09.2016 12:14
Удалить лишние пустые строки vfv Microsoft Office Excel 2 09.03.2010 11:05
Как удалить пустые строки с условиями? ru3000 Microsoft Office Excel 9 30.06.2009 00:13
Перенести символа с начала строки в место перед запятой этой же строки. Zhiltsov Microsoft Office Excel 4 05.06.2009 13:10
Как удалить пустые строки в WORD? KUNAR Microsoft Office Word 2 04.09.2007 20:56