Главная страница
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.034 c
3-1079080838
T{}r(l-l
2004-03-12 11:40
2004.04.11
Проблема с output-параметрами в ADO


3-1079183465
lena
2004-03-13 16:11
2004.04.11
вопрос по SQL !!!


1-1082476978
jiuraf
2004-04-20 20:02
2004.04.11
Как скопироватьсодержимое RichEdit1 В RichEdit2?


14-1074854685
Knight
2004-01-23 13:44
2004.04.11
Готика 2... где там брать ключи?


3-1081539621
Mishenka
2004-04-09 23:40
2004.04.11
Как удалить поле из таблицы?