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

Вниз

Вопрос про кривые OCX   Найти похожие ветки 

 
Elen ©   (2007-02-28 12:11) [0]

(Колеги попросили)
Проблема такая. Имеется программа на VisualFoxPro, в котрой надо отобразить два набора данных в графическом виде.
Для этого сделали на Делфях ActiveX компонент на базе TChart Было это года 3 назад.
Компонент вставили в программу Фокса, предварительно зарегавши его через Regsvr32.
Теперь понадобилось перенести эту прогу на другую машину. Фокспро поставили, и тут проблема с ActiveX - При регистрации RegSvr32 выдает "DllRegisterServer в uDBChart2proj3 завершился успешно", но затем MessageBox с ошибкой "Программа обратилась по адресу ХХХХХХХХ память не может быть read", а затем мессиджбокс "Runtime error 216 at 007E389A". Соответственно прога фоксовская не запускается. Пробовали регистрировать на другой машине - выдает "Ошибка при вызове LoadLibrary("uDBChart3Proj3.ocx") - Не найден указанный модуль"

Вопрос что это может быть? Криво написанный OCX? или что-то с оськой (WinXP)?


 
tesseract ©   (2007-02-28 12:21) [1]

Криво написан компонент вроде. Версии винды не указаны, права под которыми регистрируется ocx тоже.


 
alex_*** ©   (2007-02-28 12:23) [2]

Надо исходники смотреть. На предмет что вы там пользовали постороннего. Посмотрите зависимости самого .ocx


 
Elen ©   (2007-02-28 12:25) [3]


> tesseract ©   (28.02.07 12:21) [1]

Да я вот тоже так думаю, но ведь на моей машине заработал... Да была ошибка 216, но заработал.
Права при регистрации конечно админские, ось WinXP.


 
alex_*** ©   (2007-02-28 12:31) [4]


> Да я вот тоже так думаю, но ведь на моей машине заработал.
> .. Да была ошибка 216, но заработал.

:) не пофик где он работал, если на рабочей машине не работает? Чего-то не доставили.


 
Elen ©   (2007-02-28 12:59) [5]


> alex_*** ©

Так значит одну ошибку нашли - в uses присутствовал Qdialogs (откуда он там взялся?). Теперь значит вопрос про вторую ошибку "Ошибка при вызове LoadLibrary("uDBChart3Proj3.ocx") - Не найден указанный модуль"

Что это может быть? кроме Tchart на форме больше ничего нет.

uses
 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
 ActiveX, AxCtrls, uDBChart3Proj3_TLB, StdVcl, TeEngine, Series,
 ExtCtrls, TeeProcs, Chart;

type
 TuDBChart = class(TActiveForm, IActiveFormX3)
   Chart: TChart;
   Series1: TLineSeries;
   Series2: TLineSeries;
   Series3: TLineSeries;
   Series4: TLineSeries;
   procedure ChartMouseMove(Sender: TObject; Shift: TShiftState; X,
     Y: Integer);
 private

.........................
// Это процедуры через которые идет взаимодействие с Фоксом.
 procedure SetTitle(const Title: WideString); safecall;
   procedure ClearSeriesAll; safecall;
   procedure AddToSeries(x, y: Double; Series: SYSINT); safecall;
   procedure ClearSeries(Series: SYSINT); safecall;

 public
........................
/////////////////////////////////////////////
procedure TuDBChart.SetTitle(const Title: WideString);
begin
 Chart.Title.Text.Append(title);
end;

procedure TuDBChart.ClearSeriesAll;
var t:integer;
begin
for t:=0 to chart.SeriesCount-1 do
begin
  chart.Series[t].Clear;
  //Chart.series[t].Clear;
End;
end;

procedure TuDBChart.ClearSeries(Series: SYSINT);
begin
  chart.Series[Series].Clear;
end;

procedure TuDBChart.AddToSeries(x, y: Double; Series: SYSINT);
begin
//if x=0 then chart.Series[series].Addy(y) else
//if y=0 then chart.Series[series].Addx(x) else
     chart.Series[series].Addxy(x,y)
end;

procedure TuDBChart.ChartMouseMove(Sender: TObject; Shift: TShiftState; X,
 Y: Integer);
var XF,XT,YF,YT:Double;
   tmpFX,tmpFY,tmpTX,tmpTY,tmpDY:Variant;
   st:String;
   ChartRect:TRect;
begin
If (chart.Series[0].Count>0) and
   (chart.Series[1].Count>0) Then
 Begin
  chart.Series[0].getcursorvalues(XF,YF);
  chart.Series[1].getcursorvalues(XT,YT);
  ChartRect:=Chart.ChartRect;
  If (Y>=ChartRect.Top) and (Y<=Chart.ChartRect.Bottom) and
     (X>ChartRect.Left) and (X<Chart.ChartRect.Right) then
    Begin
     tmpFX:=XF;
     NPP:=tmpFX*10;
     if npp<0 then npp:=Chart.Series[0].Count+NPP;
     tmpFY:=Chart.Series[0].YValue[NPP];
     tmpTX:=XT;
     tmpTY:=Chart.Series[1].YValue[NPP];
     tmpDY:=tmpFY-tmpTY;
     st:="&#209;&#229;&#247;&#229;&#237;&#232;&#229; &#239;&#240;&#238;&#244;&#232;&#235;&#255; X&#244;&#224;&#234;&#242;="+floattostrf(tmpFX,ffFixed,8,2)+"  "+
         " Y&#244;&#224;&#234;&#242;="+floattostrf(tmpFY,ffFixed,8,2)+
         " Y&#242;&#229;&#238;&#240;="+floattostrf(tmpTY,ffFixed,8,2)+
         "  &#207;&#240;&#232;&#239;&#243;&#241;&#234;="+floattostrf(tmpDY,ffFixed,8,2);
    End
    Else
     st:="&#209;&#229;&#247;&#229;&#237;&#232;&#229; &#239;&#240;&#238;&#244;&#232;&#235;&#255; ";
    chart.Title.Text.Clear;
    Chart.Title.Text.Append(st);
 End;
End;
{}
////////////////////////////////////////////////////
initialization
 TActiveFormFactory.Create(
   ComServer,
   TActiveFormControl,
   TuDBChart,
   CLASS_ActiveFormX3,
   1,
   "",
   OLEMISC_SIMPLEFRAME or OLEMISC_ACTSLIKELABEL,
   tmApartment);


Может здесь чего не так?


>  Посмотрите зависимости самого .ocx

Всмысле? Как?


 
Ketmar ©   (2007-02-28 13:17) [6]

а не собирали, часом, с пакетами?


 
alex_*** ©   (2007-02-28 13:22) [7]


> >  Посмотрите зависимости самого .ocx
>
> Всмысле? Как?

хотя бы через Depends.exe
и runtime пакеты посмотрите, действительно


 
Elen ©   (2007-02-28 13:22) [8]


> Ketmar ©   (28.02.07 13:17) [6]

Всмысле с bpl ? Не, вроде нет.


 
Elen ©   (2007-02-28 13:25) [9]


> alex_*** ©   (28.02.07 13:22) [7]

Требует : Kernel32, user32, advapi32, Oleaut32, gdi32, ole32, comctl32.
Не вроде стандарт. Build with runtime package отключено.


 
Elen ©   (2007-02-28 13:27) [10]

Такое впечатление что в оське че-то не то. Может это единичный случай, т.к. после того как убрали QDIalogs на двух других компах зарегалось.


 
Ketmar ©   (2007-02-28 13:40) [11]

антивирь-мониторы? прочая подобная ерунда?


 
Elen ©   (2007-02-28 13:51) [12]


> антивирь-мониторы? прочая подобная ерунда?

Да нет там ничего такого. Такая же конфигурация как и у меня. (Хотя может и есть какие различия). Антивирь Semantec - у меня пропускает.


 
Ketmar ©   (2007-02-28 14:34) [13]

ошибка в LoadLibrary -- это или нет ocx, или нет чего-то, чего ей надо. поставить filemon и посмотреть, чего ей надо. %-)


 
tesseract ©   (2007-02-28 14:36) [14]


>  QDIalogs на двух других компах зарегалось.


Ну так всё ясно - не хватает Qt-библиотеки :-)


 
Elen ©   (2007-02-28 14:51) [15]


> Ну так всё ясно - не хватает Qt-библиотеки :-)

Ну от этого мы уже несколько постов назад благополучно избавились :)


> Ketmar ©   (28.02.07 14:34) [13]

Хорошая идея! На моей тачке филимон показывает что regsvr32 при выполнении юзал только наш ocx (и его файловые потоки). Ща попробую на той тачке где не ставится...


 
Elen ©   (2007-02-28 15:00) [16]

Не, филемон кроме этого OCX ничего не ловит. :-/


 
Ketmar ©   (2007-02-28 15:45) [17]

тогда конфликтует с кем-то?

или солнечная радиация.


 
isasa ©   (2007-02-28 17:59) [18]

Если еще актуально. А под uDBChart3Proj3_TLB *.ocx где?
Это ж используемый внутри ActiveX, его и нет.


uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ActiveX, AxCtrls, uDBChart3Proj3_TLB, StdVcl, TeEngine, Series,
ExtCtrls, TeeProcs, Chart;


 
isasa ©   (2007-02-28 18:07) [19]

Торможу.
В смысле uDBChart3Proj3.ocx, может и есть, но ему тоже надо делать regsvr32.



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

Форум: "Прочее";
Текущий архив: 2007.03.25;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.5 MB
Время: 0.044 c
15-1172690258
Ломброзо
2007-02-28 22:17
2007.03.25
Ограничить скорость LAN-соединения


15-1172409457
Par
2007-02-25 16:17
2007.03.25
как скачивать фильмы чтобы провайдер не понял что это фильмы


6-1160476510
Zorro666
2006-10-10 14:35
2007.03.25
реализация сетевого протокола поверх tcp соединения


9-1145744242
Алгоритм
2006-04-23 02:17
2007.03.25
Кто из мастеров знает GLScnene?


15-1172546650
Slider007
2007-02-27 06:24
2007.03.25
С днем рождения ! 27 февраля





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский