Hi guys,
There is a new IntraWeb version available, 15.1.0
This version introduces several new features and enhancements.
Download link here:
https://www.atozed.com/2019/07/intraweb-15-1-0/
See what's new here:
https://www.atozed.com/2019/07/15-1-0-h/
Soon we are going to publish new blog posts and demos showing new features of IW 15.1
Notes:
- TMS library should be compatible, but the user must rebuild all TMS packages from source code
- CG Dev Tools users will need a new version from CG, once some changes in source code will be necessary
Howdy Alexandre!
I guess I will be one (if not the first) Ginnie Pig!
Any warnings for C++ Builder users?
Since I have removed all my dependencies on third party libraries other than the IWBootstrap, these updates should be easier / faster for me to integrate.
Well, I will report my findings back here shortly!
All the best,
Shane
Alexandre!
I am having to move back to IW 15.0.24.
My application starts up in 15.1, the IWLock keeps spinning after the screen is rendered....
When I close my application, I get all kinds of eaccesserrors that don't happen in 15.0.24.
Not really sure where to start trying to help you with this....
All the best,
Shane
(07-14-2019, 03:51 PM)ShaneStump Wrote: [ -> ]Howdy Alexandre!
I guess I will be one (if not the first) Ginnie Pig!
Any warnings for C++ Builder users?
Since I have removed all my dependencies on third party libraries other than the IWBootstrap, these updates should be easier / faster for me to integrate.
Well, I will report my findings back here shortly!
All the best,
Shane
Alexandre!
I am having to move back to IW 15.0.24.
My application starts up in 15.1, the IWLock keeps spinning after the screen is rendered....
When I close my application, I get all kinds of eaccesserrors that don't happen in 15.0.24.
Not really sure where to start trying to help you with this....
All the best,
Shane
Install 15.1.0 -> error ... 15.0.23 - > work:
[dcc32 Error] ServerController.pas(83): E2003 Undeclared identifier: 'LockList'
[dcc32 Error] ServerController.pas(106): E2003 Undeclared identifier: 'UnLockList'
It has been tested in all C++ Builder versions.
LockList() and UnLockList() don't exist anymore. I'm about to publish a new demo showing how to deal with this.
If you are using these functions how were you able to build your application?
(07-15-2019, 08:53 AM)Alexandre Machado Wrote: [ -> ]It has been tested in all C++ Builder versions.
LockList() and UnLockList() don't exist anymore. I'm about to publish a new demo showing how to deal with this.
If you are using these functions how were you able to build your application?
My function in ServerController:
procedure TIWServerController.KillDoubleSession(Username

tring);
var LSessions : TList;
LSession : TIWApplication;
i:Integer;
cAppID

tring;
begin
cAppID:='';
LSessions := GSessions.LockList;
try
for i := 0 to Pred(LSessions.Count) do
begin
LSession := LSessions[i];
LSession.Lock;
try
if (LSession.Data as TIWUserSession).WebUser.Username = Username then
begin
cAppID:= LSession.AppID;
break;
end;
finally
LSession.Unlock;
LSession := nil;
end;
end;
finally
GSessions.UnLockList(LSessions);
end;
if cAppID <>'' then
begin
GSessions.Terminate(cAppID);
end;
end;
How now by new?
(07-15-2019, 09:00 AM)matija Wrote: [ -> ]My function in ServerController:
Try this code instead. Session list doesn't use any locking mechanism. Have in mind that GSessions.Terminate() might fail to terminate the desired session if it is currently locked by the user. It is not possible to remove a session being used by another thread.
Code:
procedure TIWServerController.KillDoubleSession(const Username: string);
var
LSessions: TStringList;
i:Integer;
cAppID: string;
LFound: Boolean;
begin
cAppID:='';
LSessions := TStringList.Create;
try
gSessions.GetList(LSessions);
LFound := False;
for i := 0 to Pred(LSessions.Count) do
begin
gSessions.Execute(LSessions[i],
procedure(aSession: TObject)
var
LSession: TIWApplication absolute aSession;
begin
LFound := (LSession.Data as TIWUserSession).WebUser.Username = Username;
if LFound then
cAppID := LSessions[i];
end
);
if LFound then
Break;
end;
finally
LSessions.Free;
end;
if cAppID <>'' then
begin
GSessions.Terminate(cAppID);
end;
end;
Quote:I use in my ServerController property Auther component TIWAutherEvent. Now not work!
I use OnCheck for check my windows username? Not come in this event function.
https://github.com/Atozed/IntraWeb/tree/...entication
On your ServerController.OnConfig() event, please write this:
procedure TIWServerController.IWServerControllerBaseConfig(Sender: TObject);
begin
Self.Auther := IWAutherEvent1;
end;
Note: Replace IWAutherEvent1 with the name of the component you are using for authentication. It should work. We are investigating why it is not loading from DFM.