Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];

Вниз

Использование 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.039 c
3-1081989338
Смертник
2004-04-15 04:35
2004.04.11
Проблема с БД.


6-1079458114
mbgmz
2004-03-16 20:28
2004.04.11
Есть ди способы подключиться к MySQL базе напрямую.


1-1082700391
Rant
2004-04-23 10:06
2004.04.11
WebBrowser


3-1081758841
Alex2004
2004-04-12 12:34
2004.04.11
Как уменьшить размер кэша


7-1075725608
Falendysh
2004-02-02 15:40
2004.04.11
Работа с посторонними окнами





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский