Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.11;
Скачать: CL | DM;

Вниз

Использование TChart в DLL - ругается на Parent или ParentWindow   Найти похожие ветки 

 
TALLA ©   (2004-03-23 18:42) [0]

Parent присвоить нечего, поэтому юзаю ParentWindow:

ругается, что Canvas not allowed drawing (???)
Var Chart:TChart;

Chart:=TChart.Create(nil);
Chart.Name:="Chart";
Chart.ParentWindow:=Canvas.handle;

Как использовать Chart в таком случае???


 
Юрий Зотов ©   (2004-03-23 19:25) [1]

Canvas.Handle - это дескриптор контекста устройства (DC).
ParentWindow - это дескриптор ОКНА. Совсем другая вещь.

Что значит - "Parent присвоить нечего"? Есть же окно, на котором Chart должен быть дочерним? Видимо, есть. А у этого окна есть тот самый Handle, который и нужен.


 
TALLA ©   (2004-03-23 22:09) [2]

То и значит, что в DLL(или CGI) вроде бы нечего присвоить для Parent.
подсовывал TBitmap.handle: System Error. Code: 1400. Invalid window handle.
создавал TWinControl: Control "" has no parent window.

Какой объект нужно создать с типом handle - HWND?


 
Юрий Зотов ©   (2004-03-23 22:18) [3]

> TALLA ©   (23.03.04 22:09) [2]

Форму Delphi или окно Windows.

На чем Ваш Chart лежать будет? Не в воздухе же болтаться? Вот это и есть его родительское окно.


 
TALLA ©   (2004-03-23 22:52) [4]

Ну не будет он ни на чем лежать, в первых же строчках видно:

Var Chart:TChart;

Chart:=TChart.Create(nil);

Смысл в том, чтобы сохранить картинку с Chart в файл. Отображать ни на чем не надо.


 
Юрий Зотов ©   (2004-03-23 23:19) [5]

> TALLA ©   (23.03.04 22:52) [4]

1. В первых строчках видно, что Owner=nil. Из этого вовсе не следует, что и лежать он ни на чем не будет. Owner и Parent - вещи совершенно разные.

2. Попробуйте
Chart.ParentWindow := GetDesktopWindow;


 
TALLA ©   (2004-03-23 23:56) [6]

Работает, но только если место на десктопе свободно:) если занята часть, то и график частичный:)
CreateWindow мне поможет?


 
Юрий Зотов ©   (2004-03-24 00:19) [7]

Поможет (только делать надо как положено, с RegisterClass и оконной процедурой).

Но Вы же хотите ничего не показывать? А уж если показывать, то гораздо проще будет создать форму и на нее водрузить Chart (все в коде, естественно).


 
TALLA ©   (2004-03-24 06:05) [8]

Форму создал Form:=TForm.Create(nil); ... Form.Release;
Задал Left,Top,Width,Height у Chart,  Width,Heigth у формы.
Изображение не создается - размеры задаются, но без содержимого.

Решил пойти путем WinExec(,SW_HIDE), FindWindow(,), SendMessage(,WM_CLOSE);
Т.е. запускать свою прогу с пустой формой, ее задавать ParentWindow, потом закрывать.


 
TUser ©   (2004-03-24 06:41) [9]

Как вариант - создать в DesignTime эту форму и кидать на нее график, но не показывать.

> Изображение не создается - размеры задаются, но без содержимого.

Что это значит? Чего там нет - чарта, точек на чарте или чего-то еще. Или точнее - что есть? Графику надо еще присваивать Parent:=Form1;


 
TALLA ©   (2004-03-24 13:11) [10]

>TUser
У меня нет формы.
Только пустое изображение с заданными размерами
>Юрий Зотов
Вариант с WinExec не пошел, если заставка запущена, или часть формы перекрыта, то график отсутствует.


 
Юрий Зотов ©   (2004-03-24 13:47) [11]

> TALLA ©   (24.03.04 13:11) [10]

Давайте так - обрисуйте задачу. Простыми русскими словами. Вот тогда и увидим, как ее лучше решать.


 
TALLA ©   (2004-03-25 12:59) [12]

Обрисовываю:
Пишу cgi приложение, которое выдает ContentType:="image/jpeg" браузеру клиента. Следовательно, я его должен сформировать. Для рисования выбрал TChart, пока тестировал на exe файле, все было ок.
При переходе на cgi, TChart потребовал себе Parent, который мне негде взять. Десктоп (да и другие пустые приложения) в качестве ParentWindow работает только если та область, на которой рисуешь, не закрыта (частично/полностью). Иначе изображение не формируется, хотя ошибок нет.



Страницы: 1 вся ветка

Текущий архив: 2004.04.11;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.042 c
14-1079798543
Тимур
2004-03-20 19:02
2004.04.11
Half life боты


1-1080293941
ashnurov
2004-03-26 12:39
2004.04.11
ссылка


7-1076167977
Ландграф Павел
2004-02-07 18:32
2004.04.11
Как добавить кнопочку в системное меню программы


6-1079332218
pave
2004-03-15 09:30
2004.04.11
TClientSocket в консольном приложении


1-1082730201
Bohdan
2004-04-23 18:23
2004.04.11
TShellListView - Где находится свойство FileName?