Welcome, Guest
You have to register before you can post on our site.

Username
  

Password
  





Search Forums

(Advanced Search)

Forum Statistics
» Members: 93,057
» Latest member: xoillac2com
» Forum threads: 2,419
» Forum posts: 11,357

Full Statistics

Online Users
There are currently 1043 online users.
» 6 Member(s) | 1034 Guest(s)
Applebot, Bing, Google, 55clubgbnet, cm88name1, kuwinnyc, luckywinhay88com, StephanM, sunwinm7zacom

Latest Threads
Change Language DataTable
Forum: IntraWeb General Discussion
Last Post: Rigoberto Mercedes
Yesterday, 03:21 PM
» Replies: 1
» Views: 46
How to terminate HTTP Thr...
Forum: Indy
Last Post: rlebeau
08-14-2026, 08:01 AM
» Replies: 5
» Views: 445
Looking for UI Design Tip...
Forum: Delphi General Discussion
Last Post: chrisjordon232
08-06-2026, 05:17 AM
» Replies: 0
» Views: 128
TIWjQDBGrid DateFormat
Forum: IntraWeb General Discussion
Last Post: brushbuny
08-05-2026, 03:31 AM
» Replies: 2
» Views: 1,504
Simply convert PeerIp to ...
Forum: Indy
Last Post: DidierMenant
08-04-2026, 03:50 PM
» Replies: 2
» Views: 292
New CGDevTools build is a...
Forum: CGDevTools
Last Post: lfeliz
08-04-2026, 12:03 AM
» Replies: 2
» Views: 1,448
IW 16.2.0 Missing librari...
Forum: IntraWeb General Discussion
Last Post: JuergenS
07-31-2026, 09:44 AM
» Replies: 6
» Views: 1,406
CSS file not reloading af...
Forum: IntraWeb General Discussion
Last Post: CharlieDunn
07-29-2026, 10:02 AM
» Replies: 3
» Views: 545
Datatables question
Forum: IntraWeb General Discussion
Last Post: Alexandre Machado
07-28-2026, 04:34 AM
» Replies: 2
» Views: 357
Intraweb components missi...
Forum: IntraWeb General Discussion
Last Post: valmeras
07-27-2026, 03:18 PM
» Replies: 3
» Views: 476

 
  jqDbGrid edit fails when TIWServerController.RewriteURL is set (reverse proxy)
Posted by: oystein.jakobsen@sas.no - 09-02-2023, 08:33 PM - Forum: IntraWeb General Discussion - No Replies

IWjqDbGrid edit fails when used in a reverse proxy configuration, that is when TIWServerController.RewriteURL property is set.



Attached Files Thumbnail(s)
   
Print this item

  (Re)start session on QueryStatus from TIWMonitor
Posted by: jeroen.rottink - 09-01-2023, 05:27 PM - Forum: IntraWeb General Discussion - Replies (4)

Hi,

Scenario:

In a project I am working on, we use hardware devices running a webbrowser as a display but no touchscreen, mouse or keyboard attached.
They are configured to load a webpage https://webserver.local/externaldisplay
The page https://webserver.local/externaldisplay is handled by a TContentForm in a IntraWeb application.
That page contains a TIWMonitor to poll the server and act based on the response.
When there is a network error or the server is stopped, the client should display a message informing the user of the device.
When the server is restarted the communication has to be restored. No user intervention should be necessary.

Part of this is working.

* After starting up the device, a session is created and the page is loaded via the content handler
* The page is refreshed based on the TIWMonitor response
* When I close the server, a message is displayed in the browser
  TIWMonitor.jsCallbackName gets called with value as a parameter. value == -1 when the server is gone.

But when I restart the server, the value keeps being -1. Reason is the old session does not exists anymore.
What should I do to create a new session on a $/QueryStatus call?
Or in what other way can I get the client to keep working after a server restart?

Print this item

  Set Response 403 from TContentForm.OnBeforeExecute
Posted by: jeroen.rottink - 08-31-2023, 12:25 PM - Forum: IntraWeb General Discussion - Replies (4)

I have to check the IP from the client before allowing access to a page.
I test this in TContentForm.OnBeforeExecute and would like to return 403 Forbidden

Result is the exception 'Reply type already set.'


Code:
procedure TIWServerController.IWServerControllerBaseConfig(Sender: TObject);
var ContentHandler: TContentBase;
begin
  ContentHandler := TContentForm.Create('TDlgExternDisplay');
  ContentHandler.FileMustExist := False;
  ContentHandler.CanStartSession := True;
  ContentHandler.OnBeforeExecute := CheckAccessProfile;
  THandlers.Add('/externdisplay', ContentHandler);
end;

procedure TIWServerController.CheckAccessProfile(Sender: TObject; var AContinue: Boolean);
var RemoteAddr: string;
begin
  RemoteAddr := WebApplication.Request.RemoteAddr;
  if True
  then begin
    AContinue := False;
    // mark session for cleanup
    TerminateSession(WebApplication, 403, 'Forbidden');
  end;
end;

procedure TIWServerController.TerminateSession(ASession: TIWApplication; AHttpCode: integer; AHttpCodeText: string);
begin
  ASession.Response.Code := AHttpCode;
  ASession.Response.CodeText := AHttpCodeText;
  ASession.Terminate(AHttpCode.ToString + #32 + AHttpCodeText);
end;

Using IW 15.3.12

Print this item

  IWCombobox drop down
Posted by: CH_Matt - 08-30-2023, 07:47 AM - Forum: IntraWeb General Discussion - Replies (3)

Delphi component tcombobox has a property "droppeddown" which  
indicates whether the drop-down list is currently displayed.
Does Intraweb have a corresponding property?

Print this item

  TIWMonitor.OnAsyncEvent is triggered on every Interval
Posted by: jeroen.rottink - 08-29-2023, 07:57 PM - Forum: IntraWeb General Discussion - Replies (1)

Hi,

Last time I used TIWMonitor was with IW15.2. 69. The behaviour back then was that TIWMonitor.OnAsyncEvent would be called when WebApplication.Status.Value == TIWMonitor.TargetValue. Now in IW15.3.12 it is called on every TIWMonitor.Interval. See it by running demo IWMonitor2.

BUT Demo IWMonitorProgress is working correct...

It seems to go wrong when no ProgressIndicator is used and using TargetComparison = tcEqual like in demo IWMonitor2.
Changing IWMonitor2 demo so TargetComparison = tcEqualOrGreater then it works again.

Update JR20230901:

It's in the IW Javascript library _isTarget(aValue)

Print this item

  Is there max "complexity" on a web page?
Posted by: Lenfors - 08-22-2023, 02:06 PM - Forum: IntraWeb General Discussion - Replies (1)

Hello!

I'm creating a very complex webpage in Intraweb 15.3.10. It creates houndreds of images och positions them on absolute positions on the web page. All this is mixed with a lot of component that are created runtime. 

My problem is the response is very unreliable. On a very fast computer it sometimes manages to display a proper webpage, but mostly it fails. Colours are wrong, components are missing, events on components dos not fire among other things. The result may vary depending on webbrowser and computer speed on client.

When checking the log I can see that the when the rendering is completed in the WebServer the client keeps on doing small updates on the screen for a long time.

When resizing the webpage i update the positions and sizes on all components to match the new webpage size, this operation often fails too. Positions are changed but does not get updated on screen for example.

Is there some "max limit" of the complexity that a webpage can handle? Can this be increased?

Best regards, Mikael

Print this item

  AppFormAsynchResize not triggered
Posted by: Lenfors - 08-22-2023, 08:05 AM - Forum: IntraWeb General Discussion - Replies (6)

Hello!

Just came back from my holiday and updated Intraweb from 15.3.7 to 15.3.12 and now the IWAppFormAsyncResize event is not called anymore!?
The IWAppFormResize is still called.

Any ideas?

Best regards, Mikael

Print this item

  IntraWeb 15.3.12 is out!
Posted by: Alexandre Machado - 08-21-2023, 09:47 PM - Forum: IntraWeb General Discussion - No Replies

Hi guys,

here's a maintenance update for IW 15, version 15.3.12 with some important fixes and especially a more solid WinHttpClient layer which is used for requests that IntraWeb applications make when communicating with external services, such as Google/Azure/Facebook server (OAuth authentication), Google API (ReCaptcha), IP Geolocation services (IWIPGeolocation classes) Telegram and Discord (notification via IWTelegram and IWDiscord), etc. 

https://www.atozed.com/2023/08/intraweb-15-3-12/

Enjoy!  Big Grin

Print this item

  How to get started? Documentation?
Posted by: JonRobertson - 08-20-2023, 01:18 AM - Forum: CrossTalk General Discussion - Replies (3)

I just installed the demo version for Delphi 11. Every demo project on GitHub throws errors about missing assemblies, some on drives/paths that are obviously from the development/build system, such as Assembly not found: D:\Source\CrossTalk\Source\CrossTalkWPF\bin\Debug\CrossTalkWPF.dll

I figured out how to add an assembly to a test project. Outside of that, I do not know how to get started using CrossTalk. I have an important project that I would prefer to build in Delphi. But I can't do that, let alone make a decision about purchasing CrossTalk, if no information is provided on how to use it.

Jon

Print this item

  Creating a Discord channel to receive IWServerMonitor notifications
Posted by: Alexandre Machado - 08-13-2023, 03:49 AM - Forum: IntraWeb General Discussion - No Replies

Hi all,

Here is a small guide on how to create a Discord channel to receive notifications from your IntraWeb applications via IWServerMonitor.

First of all, you must register a Discord account. The process is simple and straightforward. You just need to chose a display name/user name and use your email: https://discord.com/register

After creating your user, you will receive an activating email. After that you can start using your account.

Here's how you create a new server/channel that can receive notifications from your server:

Create a Discord Server:

If you don't have a server yet, you'll need to create one. If you already have a server, you can skip this step. To create a server:

  • Click the "+" icon on the left sidebar of Discord.
  • Choose "Create a Server."
  • Follow the prompts to set up your server, giving it a name, selecting a region, and choosing an icon.
Create a Text Channel:

Inside your server, you'll need to create a text channel where your applications can send notifications. To create a text channel:
  • Right-click the server's name in the left sidebar.
  • Select "Create Channel."
  • Choose "Text Channel."
  • Give your channel a name and customize its settings as needed.
Create a Webhook:

Create a webhook for your text channel. A webhook is a URL that allows external applications to send messages to your Discord channel. Here's how to create a webhook:
  • Go to the text channel you created.
  • Click on the gear icon to the right of the channel name to access channel settings.
  • In the settings, select "Integrations."
  • Click the "Create Webhook" button.
  • Give your webhook a name and optionally choose an avatar for it.

After creating the webhook, you'll see a unique URL under the "Webhook URL" section. Click "Copy" to copy this URL.

The URL will look like this:

https : //discord.com/api/webhooks/1234567890123456789/AbCdEfGhIjKlMnOpQrStUvWxYz1234567890AbCdEfGhIjKlMnOpQrStUvWxYz

Inside the IWServerMonitor.ini file, you must provide the Discord Token, which is the part after "https://discord.com/api/webhooks/", i.e. the token will be:

1234567890123456789/AbCdEfGhIjKlMnOpQrStUvWxYz1234567890AbCdEfGhIjKlMnOpQrStUvWxYz

That's it.

Print this item