view pdf winform c# : Add hyperlinks to pdf online SDK Library API .net wpf asp.net sharepoint TMS%20TAdvStringGrid%20Developers%20Guide2-part150

TMS SOFTWARE  
TADVSTRINGGRID  
DEVELOPERS GUIDE 
21 | Page 
ssRaw 
Use raw compare method (explained later) 
ssShortDateEU 
Use fixed date format dd/mm/yyyy compare 
ssShortDateUS 
Use fixed date format mm/dd/yyyy compare 
ssTime 
Use time compare 
ssUnicode 
Use Unicode string compare (pre Delphi 2009 only) 
The last parameters aPrefix and aSuffix, are use to instruct the grid to ignore fixed prefix or suffix 
text for cell data for the compare. As such, the sort format can be ssNumeric while a cell contains 
numeric data with some characters before or after the number as in the following example: 
1234 USD 
5678 USD 
Setting aSuffix to ‘ USD’ will let the compare ignore this suffix and perform a compare only on  
1234 
5678 
Example: setting sort formats with OnGetFormat 
Supposing a grid contains following data: 
Abc 
123 
1/1/1980 
$ 1.025,36 
Def 
456 
12/10/1990 
$ 958,14 
Ghi 
789 
15/4/200 
$ 2.175,00  
The OnGetFormat event is used to instruct the grid to use an alphabetic compare for the first 
column, a numeric compare for the second column, a date compare (based on regional settings for 
date format) for the third column and finally the fourth column to ignore the ’$ ‘ prefix and sort on 
floating point data with optional thousand separator. 
procedure TForm1.AdvStringGrid1GetFormat(Sender: TObject; ACol: Integer; 
var AStyle: TSortStyle; var aPrefix, aSuffix: String); 
begin 
case ACol of 
0: AStyle := ssAlphabetic; 
1: AStyle := ssNumeric; 
2: AStyle := ssDate; 
3: begin 
AStyle := ssFinancial; 
APrefix := '$ '; 
end; 
end; 
end; 
Add hyperlinks to pdf online - insert, remove PDF links in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Free C# example code is offered for users to edit PDF document hyperlink (url), like inserting and deleting
pdf reader link; pdf edit hyperlink
Add hyperlinks to pdf online - VB.NET PDF url edit library: insert, remove PDF links in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Help to Insert a Hyperlink to Specified PDF Document Page
add email link to pdf; clickable links in pdf
TMS SOFTWARE  
TADVSTRINGGRID  
DEVELOPERS GUIDE 
22 | Page 
Sort events 
Two events are triggered when sorting is started by a click on a column header. Before the sort 
starts, the OnCanSort event is triggered. By setting the parameter DoSort to false, a sort after a 
column header click can be disabled. After the sort is completed, the OnClickSort event is 
triggered, informing the completion of the sort for a given column. As OnCanSort is triggered before 
the sort and OnClickSort after the sort, these two events are often used to specify an hourglass 
cursor during lengthy sort processes: 
procedure TForm1.AdvStringGrid1CanSort(Sender: TObject; ACol: Integer; 
var DoSort: Boolean); 
begin 
Cursor := crHourGlass; 
end
procedure TForm1.AdvStringGrid1ClickSort(Sender: TObject; ACol: Integer); 
begin 
Cursor := crDefault; 
end; 
Custom sorts 
Two events, OnCustomCompare and OnRawCompare are used to allow implementing custom 
compare routines when the sort format style is specified as ssCustom or ssRaw. The 
OnCustomCompare is triggered for each compare of two string values and expects the result to be 
set through the Res parameter with values : 
-1 
Str1 < Str2 
Str1 = Str2 
Str1 > Str2 
The OnRawCompare event is defined as: 
TRawCompareEvent = procedure(Sender:TObject; ACol,Row1,Row2: Integer; 
var Res: Integer) of object; 
It allows comparing grid cells [ACol,ARow1] and [ACol,ARow2] in any custom way and returning the 
result in the Res parameter in the same way as for the OnCustomCompare event. 
Example: comparing cell objects instead of cell text with OnRawCompare 
As for each cell, an object can be assigned with the grid.Objects[Col,Row]: TObject property, it is 
easy to associate a number with each cell through: 
Grid.Cells[Col,Row] := ‘I am text’;  // cell text 
Grid.Objects[Col,Row] := TObject(1234);  // associated number 
Through the OnRawCompare event, a sort can be done on this associated number instead of the cell 
text. 
procedure TForm1.AdvStringGrid1RawCompare(Sender: TObject; ACol, Row1
VB.NET PDF Convert to HTML SDK: Convert PDF to html files in vb.
Turn PDF images to HTML images in VB.NET. Embed PDF hyperlinks to HTML links in VB.NET. Convert PDF to HTML in VB.NET Demo Code. Add necessary references:
adding a link to a pdf in preview; add a link to a pdf in preview
C# PDF Convert to HTML SDK: Convert PDF to html files in C#.net
Embed PDF hyperlinks to HTML links. How to Use C#.NET Demo Code to Convert PDF Document to HTML5 Files in C#.NET Class. Add necessary references:
convert a word document to pdf with hyperlinks; pdf link to email
TMS SOFTWARE  
TADVSTRINGGRID  
DEVELOPERS GUIDE 
23 | Page 
Row2: Integer; var Res: Integer); 
var 
c1,c2: Integer; 
Begin 
c1 := integer(AdvStringGrid1.Objects[ACol,Row1]); 
c2 := integer(AdvStringGrid1.Objects[ACol,Row2]); 
if (c1 = c2) then 
Res := 0 
else 
if (c1 > c2) then 
Res := 1 
 else 
Res := -1; 
end; 
Sort independent cell access 
TAdvStringGrid has the capability to access cell contents with a row index irrespective of sort order.  
In order to use this functionality, three methods are available: 
procedure InitSortXRef; 
function SortedRowIndex(Row: Integer): Integer; 
function UnsortedRowIndex(Row: Integer): Integer; 
The InitSortXRef method initializes the current row indexing as reference. This means that if value 
“ABC” is on row 10, after sorting the grid in whatever sort sequence, you can access the cell with 
contents “ABC” on reference row 10. After calling grid.InitSortXRef, sorting can be applied 
programmatically or from user interface and conversion between displayed row index an reference 
row index can be done by the methods: SortedRowIndex and UnsortedRowIndex.  
SortedRowIndex converts the reference row index to the displayed row index. 
UnsortedRowIndex converts the displayed row index to the reference row index. 
In addition, the following property also provide direct access to the reference row indexed cells: 
Grid.UnSortedCells[Col,Row]: string; 
Example: using SortedRowIndex and UnsortedRowIndex 
// loading, initializing & sorting 
Grid.SaveFixedCells := False; 
Grid.LoadFromCSV(‘sample.csv’); 
Grid.InitSortXRef; 
Grid.SortSettings.Column := 1; 
Grid.QSort; 
// shows the contents of cell 1,1 before sorting 
ShowMessage(Grid.UnsortedCells[1,1]); 
// shows the display index for the reference row indexed cell 1,1 
ShowMessage(IntToStr(Grid.SortedRowIndex(1)); 
VB.NET PDF Page Replace Library: replace PDF pages in C#.net, ASP.
all PDF page contents in VB.NET, including text, image, hyperlinks, etc. Replace a Page (in a PDFDocument Object) by a PDF Page Object. Add necessary references:
active links in pdf; add links to pdf in preview
VB.NET PDF Thumbnail Create SDK: Draw thumbnail images for PDF in
PDF document is an easy work and gives quick access to PDF page and file, or even hyperlinks. How to VB.NET: Create Thumbnail for PDF. Add necessary references:
add a link to a pdf file; pdf email link
TMS SOFTWARE  
TADVSTRINGGRID  
DEVELOPERS GUIDE 
24 | Page 
Programmatic sorting control 
Programmatically invoking a sort is possible with the method grid.QSort. First set the properties for 
the sort through the property SortSettings and call grid.QSort. Calling grid.QSort performs the sort 
on column set by grid.SortSettings.Column for all normal rows in the grid. Note there is a method 
grid.SortSettings.ToggleDirection that makes it easy to automatically change the sort direction 
before calling grid.QSort. In addition TAdvStringGrid also supports grouped sorting. Grouped sorting 
will sort only rows that belong to the same group. It is invoked by first setting the column in 
SortSettings.Column and calling grid.QSortGroup. More information on grouping can be found in the 
paragraph for grouping specifically. Finally, it is also possible to programmatically undo a sort. This 
is done with the method grid.QUnSort.  
Programmatic control of custom sort column sequences 
With TAdvStringGrid, it is possible to apply programmatic sorts in any column order.  This is 
achieved through the property grid.SortIndexes (which is a list of column indexes to be sorted) and 
the method grid.QSortIndexed. SortIndexes is a list of column indexes. Column indexes can be 
added with methods: grid.SortIndexes.Add(ColIndex: Integer) or 
grid.SortIndexes.AddIndex(ColIndex: Integer; Ascending: Boolean);  It is important that when 
applying a new column sort order, to clear the previous list of indexes (if assigned) with 
grid.SortIndexes.Clear; 
Example: using QSortIndexed 
Grid.SortIndexes.Clear; 
// first column to sort is column 5 in ascending order 
Grid.SortIndexes.AddIndex(5,true);  
// second column to sort is column 2 in descending order 
Grid.SortIndexes.AddIndex(2,false); 
// third column to sort is column 4 in ascending order  
Grid.SortIndexes.Add(4,true);  
Grid.QSortIndexed
Note: when grouping is enabled in the grid, use the methods QSortGroup and QSortGroupIndexed 
which are further explained under grouping. 
Ignoring columns during sorting 
By default, when grid.SortSettings.Full = true, all columns are possibly taken in account to perform 
the sort, ie. when two values in a column are equal, the values in the next column are compared to 
determine the order. It is possible to define one or more columns that should be ignored for 
comparing during a sort. This is simply done by setting column indexes in the list 
grid.IgnoreColumns.  
Example: 
grid.IgnoreColumns.Clear; // clear any previous set ignored columns 
grid.IgnoreColumns.Add(2); // ignore column 2 during sort 
grid.IgnoreColumns.Add(5); // ignore column 5 during sort 
Persisting sort settings 
Often it is desirable to persist the sorting a user has applied during execution of the application to 
be able restore this last sort setting when the application restarts. TAdvStringGrid provides a 
.NET PDF SDK | Read & Processing PDF files
by this .NET Imaging PDF Reader Add-on. Include extraction of text, hyperlinks, bookmarks and metadata; Annotate and redact in PDF documents; Fully support all
add url pdf; adding a link to a pdf
PDF Image Viewer| What is PDF
advanced capabilities, such as text extraction, hyperlinks, bookmarks and Note: PDF processing and conversion is excluded in NET Imaging SDK, you may add it on
add hyperlink to pdf; clickable links in pdf files
TMS SOFTWARE  
TADVSTRINGGRID  
DEVELOPERS GUIDE 
25 | Page 
convenient way to handle this. The TSortSettings class features for this the methods: 
TSortSettings.SaveToString: string; 
TSortSettings.LoadFromString(const Value: string); 
This way, when the application closes, the result of grid.SortSettings.SaveToString can stored in the 
registry, an INI file, XML file or other storage and when the application starts, the last sort sequence 
is restored by loading this value and applying it with: 
var 
s: string; 
begin 
:= IniFile.ReadString(‘GRID’,’SORT’,’’); 
Grid.SortSettings.LoadFromString(s); 
end; 
TMS SOFTWARE  
TADVSTRINGGRID  
DEVELOPERS GUIDE 
26 | Page 
TAdvStringGrid inplace editing 
TAdvStringGrid not only offers a huge range of built-in inplace editor types but can be extended to 
use any TWinControl based component as inplace editor. 
By default, when setting goEditing = true in grid.Options, the editing is enabled and the default 
inplace editor is used (Note that the event OnCanEditCell can override this setting).  In code, 
editing can be enabled with: 
Delphi: 
advstringgrid1.Options  := advstringgrid1.Options + [goEditing]; 
C++ 
advstringgrid1->Options << goEditing; 
The normally used editor is set by grid.DefaultEditor and is by default a normal TEdit like inplace 
edit with no special features. Additional inplace editors are specified through the OnGetEditorType 
event. If goEditing is set true, all non fixed cells in the grid can be edited. To set some cells as 
read-only in this case, the OnCanEditCell event is used. The OnCanEditCell event is triggered before 
editing should start and editing can be stopped by setting the CanEdit parameter to false. 
Example: setting a column to read-only 
This event handler sets column 2 and 4 as read-only: 
procedure TForm1.AdvStringGrid1CanEditCell(Sender: TObject; ARow, 
ACol: Integer; var CanEdit: Boolean); 
begin 
CanEdit := not (ACol in [2,4]); 
end; 
Alternatively, a cell can also be set as readonly with properties. To do this, following code can be 
used: 
Delphi: 
advstringgrid1.ReadOnly[col,row] := true; 
C++ 
advstringgrid1->ReadOnly[col][row] = true; 
Example: using the OnGetEditorType event 
This event specifies which inplace editor to use for columns 1-4. 
procedure TForm1.AdvStringGrid1GetEditorType(Sender: TObject; ACol, 
ARow: Integer; var AEditor: TEditorType); 
begin 
case ACol of 
1: AEditor := edNumeric; 
2: AEditor := edComboEdit; 
3: AEditor := edSpinEdit; 
TMS SOFTWARE  
TADVSTRINGGRID  
DEVELOPERS GUIDE 
27 | Page 
4: AEditor := edRichEdit; 
 end; 
end; 
TEditorType is defined as : 
TEditorType = (edNormal, edSpinEdit, edComboEdit, edComboList, edEditBtn, edMaskEditBtn, 
edCheckBox,    edDateEdit, edDateTimeEdit, edDateEditUpDown, edTimeEdit,edButton, 
edDataCheckBox, edNumeric, edPositiveNumeric, edFloat, edCapital, edMixedCase, edPassword, 
edUnitEditBtn, edLowerCase, edUpperCase, edFloatSpinEdit, edTimeSpinEdit, edDateSpinEdit, 
edNumericEditBtn, edFloatEditBtn, edCustom, edRichEdit, edUniEdit, edUniEditBtn, 
edUniComboEdit, edUniComboList, edUniMemo,edValidChars,edCalculatorDropDown, 
edTrackBarDropDown, edColorPickerDropDown, edImagePickerDropDown, edMemoDropDown, 
edDetailDropDown, edGridDropDown, edTimePickerDropDown, edControlDropDown, 
edNumericUnitEditBtn, edFloatUnitEditBtn); 
With: 
edButton 
Button 
edCapital 
Edit with all capitalized text only 
edCheckBox 
Checkbox 
edComboEdit 
Editable combobox 
edComboList 
Non-editable combobox 
edCustom 
Custom edit control (see advanced topics for editing) 
edDataCheckBox 
Checkbox with check value dependent on cell text 
edDateEdit 
Datepicker 
edDateEditUpDown 
Date edit with up/down buttons 
edDateSpinEdit 
Date spin edit control 
edDateTimeEdit 
Date + time edit 
edEditBtn 
Edit control with button attached 
edMaskEditBtn 
Edit control with mask and button attached 
edFloat 
Edit allowing floating point data only 
edFloatEditBtn 
Floating point only edit control with button attached 
edFloatSpinEdit 
Floating point spin edit control 
edLowerCase 
Edit with all lowercase entry 
edMixedCase 
Edit with automatic first capital letter 
edNormal 
Normal inplace edit 
TMS SOFTWARE  
TADVSTRINGGRID  
DEVELOPERS GUIDE 
28 | Page 
edNumeric 
Edit allowing signed numeric data only 
edNumericEditBtn 
Numeric only edit control with button attached 
edPassword 
Edit in password style 
edPositiveNumeric 
Edit allowing unsigned numeric data only 
edRichEdit 
Rich text editor 
edSpinEdit 
Spin edit control 
edTimeEdit 
Time edit 
edTimeSpinEdit 
Time spin edit control 
edUniComboEdit 
Unicode editable combobox  
edUniComboList 
Unicode non editable combobox 
edUniEdit 
Unicode edit 
edUniEditBtn 
Unicode edit with button attached 
edUniMemo 
Unicode multiline edit  
edUnitEditBtn 
Edit control with unit selection and button attached 
edNumericUnitEditBtn 
Edit control that only allows numeric input with unit selection and 
button attached 
edFloatUnitEditBtn 
Edit control that only allows floating point input with unit selection and 
button attached 
edPositiveFloat 
Edit allowing positive floating point data only 
edUpperCase 
Edit with all uppercase entry 
edValidChars 
Accept only keys that are part of the value set with property 
grid.ValidChars:string or also grid.ValidCharSet: TCharSet 
edColorPickerDropDown  Color picker with 3 color selection methods: dropdown list of colors, 
colorcube or color spectrum 
edImagePickerDropDown  Image picker inplace edit control 
edTimePickerDropDown  Inplace editor with watch in dropdown to select a time value 
edTrackbarDropDown 
Numeric only edit control with dropdown trackbar to select an integer 
value 
edDetailDropDown 
Combobox style inplace editor where each item in the dropdown can 
have an image and combination of a caption text and notes. 
edGridDropDown 
Edit control with grid as dropdown. Value is selected from the grid from 
TMS SOFTWARE  
TADVSTRINGGRID  
DEVELOPERS GUIDE 
29 | Page 
the lookup column 
edMemoDropDown 
Edit control with dropdown memo 
edCalculatorDropDown 
Edit control with dropdown calculator 
edAdvGridDropDown 
Edit control with TAdvStringGrid as dropdown control 
Normal editor 
With a normal cell edit control, any characters can be entered. If grid.MaxEditLength > 0, then the 
length of the characters to enter in a cell is limited to grid.MaxEditLength. With 
grid.MaxEditLength, the string length of a cell is limited only by the length of a string type. The 
maximum input length can be set different from different columns using the OnGetEditorType event 
that is triggered before editing starts, ie: 
procedure TForm1.AdvStringGrid1GetEditorType(Sender: TObject; ACol, 
ARow: Integer; var AEditor: TEditorType); 
begin 
case ACol of 
1: AdvStringGrid1.MaxEditLength := 8; 
2: AdvStringGrid1.MaxEditLength := 16; 
else 
AdvStringGrid1.MaxEditLength := 0; 
end; 
end; 
For column 1, max. length of input is 8 characters, for column 2 it is 16 characters and other 
columns do not have length limitations. 
Masked editors 
TAdvStringGrid inherits the behaviour to be able to work with masked inplace editors from 
TStringGrid. The edit mask is set through the OnGetEditMask event triggered before editing starts. 
This allows to set the edit mask for a given cell through the Value parameter. 
Example: setting an edit mask for time editing in column 1  
procedure TForm1.AdvStringGrid1GetEditMask(Sender: TObject; ACol, 
ARow: Integer; var Value: String); 
begin 
if (ACol = 1) then 
Value := '!90:00;1;_'; 
end; 
Spin editors 
The inplace spin edit control is exposed through the property grid.SpinEdit. This allows access to 
additional spin edit properties that control its behaviour.  The most useful properties are: 
property EditorEnabled: Boolean;  
TMS SOFTWARE  
TADVSTRINGGRID  
DEVELOPERS GUIDE 
30 | Page 
When false, the value is only editable by using the spin up & down buttons. 
property Increment: LongInt; 
Sets the increment step for integer values. 
property IncrementFloat: Double; 
Sets the increment step for floating point values. 
property MaxLength; 
Sets the maximum length (in characters) of the value that can be entered. 
property MaxValue: LongInt; 
property MinValue: LongInt; 
property MinFloatValue: Double; 
property MaxFloatValue: Double; 
property MinDateValue: TDateTime; 
property MaxDateValue: TDateTime; 
Sets the minimum & maximum values that can be entered in the various modes. 
Example: setting spin editors with two different ranges in two different columns 
procedure TForm1.AdvStringGrid1GetEditorType(Sender: TObject; ACol, 
ARow: Integer; var AEditor: TEditorType); 
begin 
case ACol of 
1:begin 
AEditor := edSpinEdit; 
AdvStringGrid1.SpinEdit.MinValue := 1; 
AdvStringGrid1.SpinEdit.MaxValue := 100; 
AdvStringGrid1.SpinEdit.Increment := 2; 
end; 
2:begin 
AEditor := edSpinEdit; 
AdvStringGrid1.SpinEdit.MinValue := 1; 
AdvStringGrid1.SpinEdit.MaxValue := 1000; 
AdvStringGrid1.SpinEdit.Increment := 10; 
 end; 
end; 
end; 
The spin edit controls trigger following events when the up/down buttons are clicked: 
OnSpinClick: TSpinClickEvent; 
OnFloatSpinClick: TFloatSpinClickEvent; 
OnTimeSpinClick: TDateTimeSpinClickEvent; 
OnDateSpinClick: TDateTimeSpinClickEvent; 
The spin click events return the current value of the spin edit control and whether the up or down 
Documents you may be interested
Documents you may be interested