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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> указатель на строку 
:(
    Опции темы
bagos
Дата 2.2.2009, 23:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



MetalFan, пример некрасивый потому что не выделяется память под указатель?

Добавлено через 11 минут и 6 секунд
чем тогда заменить Dispose, и почему он не подходит?
PM MAIL   Вверх
bagos
Дата 3.2.2009, 05:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Код

procedure TForm1.btn2Click(Sender: TObject);
var
  msg: PMyRecord;
begin
  New(msg);
  msg.name := 'prapapa';
  SendMessage(Handle, WM_MYMESSAGE, 0, Integer(msg));

end;


procedure TForm1.MessageHandler(var Msg: TMessage);
var msg_: PMyRecord;
begin
  try
    msg_ := PMyRecord(Msg.LParam);
   edt1.Text := msg_.name;
  finally
    Dispose(msg_);
  end;
end;


Вот что получилось))
PM MAIL   Вверх
MetalFan
Дата 3.2.2009, 13:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



bagos, в твоем примере тоже есть недочет. неправильно используется конструкция try..finally.
кстати, в случае использования SendMessage память можно выделять и освобождать в одном месте.


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


Опытный
**


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

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



В чем заключается неверность использования try ...finally?
SendMessage посылается из рабочего треда, а messagehandler принимает в мэйнтреде
PM MAIL   Вверх
MetalFan
Дата 3.2.2009, 22:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(bagos @  3.2.2009,  20:46 Найти цитируемый пост)
В чем заключается неверность использования try ...finally?

неясно, от чего она должна "защитить". если ошибка произойдет в первой строке после try, то в finally получишь исключение.

Цитата(bagos @  3.2.2009,  20:46 Найти цитируемый пост)
SendMessage посылается из рабочего треда, а messagehandler принимает в мэйнтреде 

а это вообще к чему?


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


Опытный
**


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

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



Сейчас делаю по другому:
Мэйн тред:
Код

type
  PRecord = ^TRecord;
  TRecord = record
    name: string[50];
    tema: string[150];
  end;


procedure TForm1.handleonterminate(sender: TObject);
var mess: PRecord;
  i: integer;
begin
  try
    for i := 0 to potok.List.Count - 1 do
    begin
      mess := PRecord(potok.List.Items[i]);
      mmo1.Lines.Add('Имя: ' + mess.name + ', Тема: ' + mess.tema);
    end;
  finally
  end;
end;


раб. тред:
Код

execute:
var
  mess: TRecord;
begin
...
     List.Add(@mess);
...

почему то возвращает пустые строчки? что делаю не так?
PM MAIL   Вверх
THandle
Дата 4.2.2009, 10:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хранитель Клуба
Group Icon
Награды: 1



Профиль
Группа: Админ
Сообщений: 3639
Регистрация: 31.7.2007
Где: Moscow, Dubai

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



bagos, что за List то хоть? И выложи что ли полный пример. Мне лично из этих огрызков не все понятно)
PM   Вверх
bagos
Дата 4.2.2009, 11:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



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

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

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

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

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


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

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


 




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


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

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