Skip to main content
Version: Next

ST GET URL

ST GET URL ( {* ;} object ; urlText ; urlAddress {; startSel {; endSel}} )

ParameterTypeDescription
*OperatorIf specified, object is an object name (string)
If omitted, object is a field or variable
objectanyObject name (if * is specified) or
Field or variable (if * is omitted)
urlTextTextVisible text of URL
urlAddressTextURL address
startSelIntegerStart of selection
endSelIntegerEnd of selection

This command is not thread-safe, it cannot be used in preemptive code.

Description

The ST GET URL command returns the text label and address of the first URL detected in the styled text field or variable designated by the object parameter.

The text label and address are returned in the urlText and urlAddress parameters. If the selection does not contain a URL, empty strings are returned in these parameters.

Passing the optional * parameter indicates that the object parameter is an object name (string). During execution, if the object has the focus, the command returns the information of the object being edited; if the object does not have the focus, the command returns the information of the object’s data source (variable or field).
If you omit the * parameter, it indicates that the object parameter is a field or variable. In this case, you pass a field or variable reference instead of a string. During execution, the command returns the information of the variable or field.

The optional startSel and endSel parameters designate a selection of text in object. The startSel and endSel values express a plain text selection, without taking into account any style tags that may be present.

  • If you pass startSel and endSel, ST GET URL looks for the URL within this selection.
  • If you only pass startSel or if the value of endSel is greater than the total number of characters in object, the command looks for the URL between startSel and the end of the text.
  • If you omit startSel and endSel, the command looks for the URL within the current text selection.

4D provides predefined constants so that you can designate the selection limits automatically in the startSel and endSel parameters. These constants are found in the "Multistyle Text" theme:

ConstantTypeValueComment
ST End highlightInteger-1001Designates last character of current text selection in object (*)
ST End textInteger0Designates last character of text contained in object
ST Start highlightInteger-1000Designates first character of current text selection in object (*)
ST Start textInteger1Designates first character of text contained in object

(*) You must pass an object name in object to be able to use this constant. If you pass a reference to a field or variable, the command is applied to all the text of the object.

Note: If startSel is greater than endSel (except when endSel is 0), the command does nothing and the OK variable is set to 0.

Example

When there is a double-click event, you check that there is in fact an URL, and if so, you display a dialog where you have retrieved its values so that the user can modify them:

 Case of
    :(Form event code=On Double Clicked)
       GET HIGHLIGHT(*;"StyledText_t";startSel;endSel)
       If(ST Get content type(*;"StyledText_t";startSel;endSel)=ST URL type) //URL
          ST GET URL(*;"StyledText_t";vTitle;vURL;startSel;endSel)
          $winRef:=Open form window("Dial_InsertURL";Movable form dialog box;Horizontally centered;Vertically centered;*)
          SET WINDOW TITLE("URL settings")
          DIALOG("Dial_InsertURL")
          If(OK=1)
             ST INSERT URL(*;"StyledText_t";vTitle;vURL;startSel;endSel)
             HIGHLIGHT TEXT(*;"StyledText_t";startSel;startSel+1)
          End if
       End if
 End case

See also

ST INSERT URL