Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Изменяется шрифт у текста в ShowMessage(), начиная со второго раза 
:(
    Опции темы
malor
  Дата 21.10.2012, 16:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 632
Регистрация: 17.11.2006

Репутация: нет
Всего: нет



В коде есть вызов:

Код
ShowMessage('Ошибка выполнения NetQueryDisplayInformation():' + #13#10 + SysErrorMessage(GetLastError));


При нажатии баттона на форме как раз с таким мессиджем и сталкивается пользователь.
Так вот при первом появлении вид у сообщения:

user posted image

При втором (третьем, четвертом, ...):

user posted image

В честь чего разница ?

Delphi XE / Win7 SP1

Это сообщение отредактировал(а) malor - 21.10.2012, 16:57

Присоединённый файл ( Кол-во скачиваний: 3 )
Присоединённый файл  MSG_NetQueryDisplayInformation_All_Images.zip 30,55 Kb
PM MAIL   Вверх
MetalFan
Дата 21.10.2012, 21:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 22
Всего: 128



malor, хм, первый раз такое вижу... подождем других мнений.


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
БелАмор
Дата 21.10.2012, 22:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 209
Регистрация: 10.6.2010
Где: Россия

Репутация: 7
Всего: 17



Цитата
Изменяется шрифт у текста в ShowMessage(), начиная со второго раза

А то, что сам текст обрезан, вас не беспокоит?
Быстрее всего где-то происходит запись по случайным адресам, и происходит это между вызовами ShowMessage. Приведите этот код.

PM   Вверх
northener
Дата 22.10.2012, 01:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1361
Регистрация: 2.9.2010

Репутация: 12
Всего: 20



Цитата(malor @  21.10.2012,  16:56 Найти цитируемый пост)
В коде есть вызов:
ShowMessage('Ошибка выполнения NetQueryDisplayInformation():' + #13#10 + SysErrorMessage(GetLastError));


Логично предположить, что в коде есть неправильное или не совсем правильное использование блоков try...
Код, где вызывается данная строка в студию.



Это сообщение отредактировал(а) northener - 22.10.2012, 01:55


--------------------
Но только лошади летают вдохновенно.
Иначе лошади разбились бы мгновенно!
PM MAIL   Вверх
bems
Дата 15.11.2012, 01:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

Репутация: 18
Всего: 88



посмотри количество gdi-хендлов, хоть и таскманагером


--------------------
Обижено школьников: 8
PM MAIL   Вверх
malor
  Дата 20.11.2012, 12:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 632
Регистрация: 17.11.2006

Репутация: нет
Всего: нет



Первый раз нажимаем кнопку "Получить":

user posted image

Второй:

user posted image

Третий:

user posted image

В "Диспетчере задач" вывел столбик "Объекты GDI". 

Количество меняется так:
1) Если запустить программу то их 33.
2) Нажать кнопку, появится мессиджбокс, число хэндлов - 37.
3) Закрываем мессиджбокс - их становится 35.
3) Снова жмём кнопку, при появлении окна с сообщением их теперь не 37, а 36 штук.
4) Закрываем мессиджбокс - их 35.
5) ... - 37.
6) ... - 35.
..........etc ..........

Аналогичные показатели дала и утилита GDIView.

Код
type

  TThreadInfo = class(TThread)
  private
    procedure GetInfo;
  protected
    procedure Execute; override;
  public
  end;

function GetInformation(): boolean;

// *****************************************************************************
implementation

procedure TThreadInfo.Execute;
begin
  inherited;

  GetInfo();

end;

//******************************************************
procedure TThreadInfo.GetInfo;
begin
  ShowMessage('Это наше сообщение.');
end;

function GetInformation(): boolean;
begin

  with TThreadInfo.Create(False) do
  begin
    FreeOnTerminate := True;
    Resume;
  end;


end;


Delphi XE

Присоединённый файл ( Кол-во скачиваний: 1 )
Присоединённый файл  ThreadInfo_20_11_2012__1__and_screenshots.zip 118,09 Kb
PM MAIL   Вверх
bems
Дата 20.11.2012, 12:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

Репутация: 18
Всего: 88



аа, так ты в треде трогаешь VCL

и еще если CreateSuspended ты передаёшь False то уже нельзя делать FreeOnTerminate := True и не нужно Resume

Это сообщение отредактировал(а) bems - 20.11.2012, 12:21


--------------------
Обижено школьников: 8
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0517 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.