Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Работа с потоками в delphi
#21
G1ta0, ок, спасибо.
Ответ
#22
Пожалуй апну темку. Сейчас тема немного другая:
есть TChart. У него есть метод Chart.SaveToBitmap. Но я хочу сохранять не на диск, а в стрим, для преобразования в jpg или прямую передачу на другой компьютер. Вопрос: как это сделать?
Ответ
#23
Zubastic Написал:Пожалуй апну темку. Сейчас тема немного другая:
есть TChart. У него есть метод Chart.SaveToBitmap. Но я хочу сохранять не на диск, а в стрим, для преобразования в jpg или прямую передачу на другой компьютер. Вопрос: как это сделать?

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  bmp: TBitmap;
begin
  bmp := TBitmap.Create;
  try
    bmp.Width := Chart1.Width;
    bmp.Height := Chart1.Height;
    Chart1.Draw(bmp.Canvas, Rect(0, 0, bmp.Width, bmp.Height));
    bmp.SaveToFile('chart.bmp');
  finally
    bmp.Free;
  end;
end;
Вместо SaveToFile делаешь что-то свое.
hLaPEx, Evermore, hAuthD, L2on, ...
Ответ
#24
удалено расрасрас
Ответ
#25
Такой вопрос: есть поток, внутри потока есть есть выбор какую процедуру запускать (передается при создании процедуры), однако нельзя запустить несколько потоков с разными параметрами (выдается ошибка). Как лучше сделать?

Добавлено через 5 часов 47 минут
Сделать несколько разных потоков состоящих из идентичных параметров или как?
Ответ
#26
лучше приложить к сообщению свой код и текст ошибки , чтобы не гадать на кофейной гуще
Ответ
#27
У меня идет запуск одного и того же потока 3 раза. Внутри запуск процедуры в зависимости от числа, передаваемого в поток.
[Изображение: 3392032.jpg]

Добавлено через 10 минут
Сделал 3 потока разных, но ихмо это изврат, можно как-то красивее сделать.

Добавлено через 10 часов 0 минут
В 3 потока такая же борода...

Добавлено через 21 час 58 минут
Вообщем от чего это зависит - хз. Как делать много много потоков?
Ответ
#28
еще раз повторюсь без вашего кода тут трудно о чем-то говорить, такие ошибки обычно когда вы из потока обращаетесь к потоконезащищенным обьектам , VCL визуальным компонентам например .

хотите понять работу с потоками в delphi почитайте этот перевод http://forum.vingrad.ru/topic-60076.html
Ответ
#29
Видел. Честно прочитал 2 главы и бросил, я больше по примерам.
Вообщем разобрался в чем дело: 2 процедуры одновременно обращались к объекту соответственно вызывая ошибку.
Ответ
#30
Zubastic Написал:Видел. Честно прочитал 2 главы и бросил, я больше по примерам.
Вообщем разобрался в чем дело: 2 процедуры одновременно обращались к объекту соответственно вызывая ошибку.

Из потоков нельзя просто так вызывать функции VCL. И нельзя просто так обращаться ко внешним данным (или вызывать функции, которые используют внешние данные). Все должно быть синхронизировано: или с использованием блокировок, или с посылкой сообщений в основной поток (который в свою очередь уже будет работать с общими данными).
hLaPEx, Evermore, hAuthD, L2on, ...
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  c# работа с бд Boris2105 4 1,929 05-26-2017, 05:35 PM
Последний пост: kpNemo
  Delphi 10.1 Berlin FREE Agares 2 2,189 01-12-2017, 09:58 PM
Последний пост: HiredKiller
  Delphi двунаправленный список Blacksoul 10 3,677 10-12-2016, 11:23 PM
Последний пост: flopix
  WinSocket delphi 7 HiredKiller 1 1,782 09-18-2015, 01:11 PM
Последний пост: flopix
  Delphi - XTreme Remote Controller Source OPPAIN 6 3,209 11-09-2012, 07:51 PM
Последний пост: OPPAIN
  работа с input SmokeeLow 1 1,838 11-24-2011, 07:19 PM
Последний пост: PROGRAMMATOR
  Delphi weTr1k 0 1,961 03-13-2011, 05:18 AM
Последний пост: weTr1k

Перейти к форуму:


Пользователи, просматривающие эту тему: 1 Гость(ей)