Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 25.09.2010, 08:44
Аватар для Sky.NET
Sky.NET Sky.NET вне форума
Прохожий
 
Регистрация: 22.09.2010
Сообщения: 49
Версия Delphi: XE
Репутация: 12
Вопрос Странное поведение компонента TMemo

Вот часть кода:
PHP код:
...
              if 
FileExists(Dir.Text FLinks[j].JSthen
                Memo1
.Lines.LoadFromFile(Dir.Text FLinks[j].JS)
              else
                
LQuestion.Caption := 'Файл "' Dir.Text FLinks[j].HTM '" не найден';
              
begin
                Memo1
.Text := UrlDecode(Memo1.Text);
                
Memo1.Text := ReplaceStr(Memo1.Text'7c''');
                
Memo1.Text := ReplaceStr(Memo1.Text'|'#13#10);
                
for := 0 to Memo1.Lines.Count do
                  if 
Length(Memo1.Lines.Strings[a]) = 12 then
                    
if (Pos('split'Memo1.Lines.Strings[a]) = 0then
                    begin
                      s2 
:= Memo1.Lines.Strings[a];
... 
Выполняется всё отлично. Значение свойства Height = 17 (Как раз видна 1 строка), переменная s2 содержит то, что нужно.
Устанавливаю значение свойства Height < 17 (Строки не видно), переменная s2 пустая.
Устанавливаю значение свойства Height = 0, в переменной s2 вообще бред какой-то.
Почему так происходит?

P.S.
Delphi 2010 + Update 4/5 + Hotfix 2 + HelpUpdate 3
Ответить с цитированием
  #2  
Старый 25.09.2010, 11:11
Аватар для Bars1992
Bars1992 Bars1992 вне форума
Активный
 
Регистрация: 24.04.2010
Адрес: Украина, Кременчуг
Сообщения: 249
Репутация: 22
По умолчанию

Действительно странно... Возможно надо перерисовать компонент? послать ему сообщение на перерисовку?
__________________
Не твори зла, и жизнь повернется к тебе передом
Ответить с цитированием
  #3  
Старый 25.09.2010, 11:58
Аватар для Sky.NET
Sky.NET Sky.NET вне форума
Прохожий
 
Регистрация: 22.09.2010
Сообщения: 49
Версия Delphi: XE
Репутация: 12
По умолчанию

Перерисовка не помогает.
Я так понял, что если не видно хотябы одой строки в TMemo, то нарушается структура текста.
Скорее всего это такой баг...
Ответить с цитированием
  #4  
Старый 25.09.2010, 21:50
Аватар для Bars1992
Bars1992 Bars1992 вне форума
Активный
 
Регистрация: 24.04.2010
Адрес: Украина, Кременчуг
Сообщения: 249
Репутация: 22
По умолчанию

Цитата:
Сообщение от Sky.NET
Перерисовка не помогает.
Я так понял, что если не видно хотябы одой строки в TMemo, то нарушается структура текста.
Скорее всего это такой баг...

Скорей всего да. Я в 2009 тоже баги находил (при работе с ресурсами). Есть вариан данные сохранять в TstringList а потом просто Memo1.Lines.Assign(твой обйект)
__________________
Не твори зла, и жизнь повернется к тебе передом
Ответить с цитированием
  #5  
Старый 25.09.2010, 22:40
Kapitoshka438 Kapitoshka438 вне форума
Начинающий
 
Регистрация: 09.11.2009
Сообщения: 145
Репутация: 238
По умолчанию

Код:
TMemo = class(TCustomMemo)
...
end;

...

constructor TCustomMemo.Create(AOwner: TComponent);
begin
...
  FLines := TMemoStrings.Create;
  TMemoStrings(FLines).Memo := Self;
...
end;

...

TMemoStrings = class(TStrings)
  private
    Memo: TCustomMemo;
protected
    function Get(Index: Integer): string; override; // Это функция, которая достает значение свойства Strings[i]
...
end;

function TMemoStrings.Get(Index: Integer): string;
var
  Text: array[0..4095] of Char;
begin
  Word((@Text)^) := SizeOf(Text);
  SetString(Result, Text, SendMessage(Memo.Handle, EM_GETLINE, Index,
    Longint(@Text)));
end;
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 00:06.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025