Page 1 of 1

Apache Server 2.0 TsiLang Components

Posted: Thu Apr 24, 2003 3:40 pm
by Hur Akdulger
Hi all,

Development: Delphi 7, Kylix 3, TsiLang 5.2.2, Windows XP
Production (current): Windows NT 4.0, Apache Server 2.x
Production (In the future): Linux Red Hat 9.0

I have got an Web Services server application.
It runs on Apache Server.
It was running before language modifications.

But after modifications, I cannot load shared DLL's to Apache server.

I have found the reason of the problem.
I think it is depended to "QForms.Application" variable.
On Apache Shared Module applications (DLLs),
"QForms.Application" variable is uninitialized.
Because shared module DLLs uses different application variable.
I have inspected to CLX based source of siLang,
and I have seen a lot of QForms.Application variable like this:

//constructor TRegistry.Create(Sender: TObject);
//begin
// inherited Create(ExtractFilePath(Application.ExeName) +
// Sender.ClassName + '.ini');
//end;


I don't want to replace all of them.

But, I want to return different error, exception or information messages to web services client.

How can I do this?

Thanx for advance.

Hür Akdülger

Posted: Fri Apr 25, 2003 7:09 am
by gaivans
Hello,

What type of TsiLang do you use?

Posted: Fri Apr 25, 2003 8:36 am
by Hur Akdulger
I have got some runtime packages, pkgA, pkgB, pkgC, etc.
All of packages have some warning, information, error, exception or information messages.
These packages use TsiLangLinked on TDataModule descendant for multi-language.

And there is a common dispatcher unit.

TsiLangLinked components connect to dispatcher on OnCreate event of their DataModules at runtime. Like below:

(*
procedure TlngLibDatCli.DatamoduleCreate(Sender: TObject);
begin
LangLinked.LangDispatcher:= CommonLng.lngCommon.LangDispatcher;
UpdateStrings;
end;
*)

And I have created all DataModules at startup in initilization section of unit.

(*
initialization
lngLibDatCli:= TlngLibDatCli.Create(NIL);
*)

This is necessary for me, because these packages are using in different projects. And I don't want to write a line of code for creation of my language datamodule in project source.

My CLX based WAD (web application debugger) applications are run very well. Because, they are Windows EXE, and they use right "Application" variable.

But I would like to use Apache Server for cross platform (Windows/Linux) web services applications.

In fact, my problem is more complex than these descriptions.
Because there are two applications written in Delphi/Kylix.
One of them for web services client, other one for web services server.
Usually these applications use same runtime packages.
I cannot see the problems of this way.
I will learn...

Thanx for advance.

Bye.

Hür

Posted: Fri Apr 25, 2003 10:17 am
by gaivans
Hello,

The matter is that the variable QForm.Application: TApplication is used in the following situations:
1) In the MessageDlg and MessageDlgPos methods of TsiCustomLang;
2) In the TsiFormStorage component;
3) In the design-time editors of TsiCustomLang components (through QRegistry);
4) In the run-time Translation Editor of TsiLangRT component;

Do not you use MessageDlg or MessageDlgPos functions?

Posted: Mon May 05, 2003 7:03 am
by Hur Akdulger
I have developed a program. It is using TsiLang language features.
But I can't run (or load) shared DLLs to Apache Server.
I can't solve this problem.
I think it depends to QForms.Application variable.


How can I run my shared DLLs on Linux or Windows Apache Server 2.x?

Thanx for all.

Hür Akdülger