view pdf winform c# : Add link to pdf file SDK software project winforms wpf .net UWP TMS%20TAdvStringGrid%20Developers%20Guide13-part144

TMS SOFTWARE  
TADVSTRINGGRID  
DEVELOPERS GUIDE 
131 | Page 
Calculates number of distinct values in a column 
Grid.ColumnStdDev(AColumn: Integer; FromRow, ToRow: integer default -1); 
Calculates standard deviation of values in column AColumn  
Grid.ColumnCustomCalc(AColumn: Integer; FromRow, ToRow: integer default -
1); 
Allows to perform a custom calculation on column values. Whenever the calculation needs to be 
performed again, the event OnColumnCalc will be triggered. 
AdvStringGrid search pane 
TAdvStringGrid has a built-in Firefox style search pane. The settings for this Search pane can be 
found under SearchFooter. This has properties for setting colors, button texts and hints. When the 
Search pane is set visible with setting SearchFooter.Visible = true, text to search for can be typed in 
the edit control and when a matching cell is found, the grid will automatically move the focus to 
the first matching cell. From there, other matching cells can be found with the Forward/Backward 
buttons. 
SearchFooter options: 
AlwaysHighlight 
When true, the search function will always perform 
highlighting of the matching text, irrespective of the 
highlight button state. 
AutoSearch: boolean 
When true, search starts while typing in the search edit 
control 
Color: TColor 
Sets the search panel background start gradient 
ColorTo: TColor 
Sets the search panel background end gradient 
FindNextCaption: string 
Sets the text for the forward search button 
Add link to pdf file - 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
add links to pdf in preview; clickable links in pdf from word
Add link to pdf file - 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
adding links to pdf in preview; add a link to a pdf
TMS SOFTWARE  
TADVSTRINGGRID  
DEVELOPERS GUIDE 
132 | Page 
FindPrevCaption: string 
Sets the text for the backward search button 
Font: TFont 
Sets the search panel font 
HighlightCaption: string 
Sets the text for the highlight button 
HintClose: string 
Sets the hint text for the close button 
HintFindNext: string 
Sets the hint text for the forward search button 
HintFindPrev: string 
Sets the hint text for the backward search button 
HintHighlight: string 
Sets the hint text for the highlight  
MatchCaseCaption: string 
Sets the text of the checkbox caption that selects case 
sensitivity 
SearchActiveColumnOnly: boolean  
When true, search is limited to the column that has the 
focused cell 
SearchColumn: integer 
Sets the column index where search should happen. When 
SearchColumn is -1, all columns are searched 
SearchFixedCells: boolean 
When true, a search is also performed in fixed cells of the 
grid. 
SearchMatchStart: boolean 
When true, match must start from beginning of the cell text 
ShowClose: boolean 
When true, the close button is shown 
ShowFindNext: boolean 
When true, the forward search button is shown 
ShowFindPrev: boolean 
When true, the backward search button is shown 
ShowHighlight: boolean 
When true, the highlight button is shown 
ShowMatchCase: boolean 
When true, the case sensitive selection checkbox is shown 
Visible: boolean 
Sets the SearchFooter visible or hidden 
Note that the highlighting feature is mutually exclusive with HTML formatted text cells. This is 
because the highlighting function also uses HTML tags to show the highlighted text and this can 
conflict with HTML tags already applied in the cell text. 
The grid exposes following search footer events: 
OnSearchEditChange: event is triggered when text changes in the search footer edit control. 
OnSearchFooterAction: event is triggered during the search, action indicates saFindFirst, 
saFindPrevious, saFindNext. 
OnSearchFooterClose: event is triggered when the search footer is closed by clicking the close 
button. 
C# PDF Library SDK to view, edit, convert, process PDF file for C#
and quick navigation link in PDF bookmark. C#.NET: Edit PDF Metadata. PDF SDK for .NET allows you to read, add, edit, update, and delete PDF file metadata, like
pdf reader link; add a link to a pdf file
VB.NET PDF Password Library: add, remove, edit PDF file password
This VB.NET example shows how to add PDF file password with access permission setting. passwordSetting.IsAssemble = True ' Add password to PDF file.
add hyperlink pdf file; adding hyperlinks to pdf files
TMS SOFTWARE  
TADVSTRINGGRID  
DEVELOPERS GUIDE 
133 | Page 
OnSearchFooterSearchEnd: event is triggered when the entire grid has been searched and no more 
matching items are found. 
OnCreatedSearchFooter: event is triggered after the search footer was internally created.  
The search footer in the grid can also be directly accessed, for example to preset the search edit 
control text or to directly change properties of the controls in the search footer. This can be done 
using: 
grid.SearchPanel.EditControl: TEdit; exposes the search edit control 
grid.SearchPanel.MatchCase: TCheckBox; exposes the case sensitivity checkbox 
grid.SearchPanel.HiliteButton: TAdvGridButton; exposes the highlight button 
grid.SearchPanel.ForwardButton: TAdvGridButton; exposes the forward search button 
grid.SearchPanel.BackwardButton: TAdvGridButton; exposes the backward search button 
grid.SearchPanel.ExitButton: TAdvGridButton; exposes the search footer close button 
In following sample code snippet, the search footer is programmatically made visible, the search 
edit control is preset with a value and focus is set on this edit control: 
AdvStringGrid1.SearchFooter.Visible := true; 
AdvStringGrid1.SearchPanel.EditControl.Text := 'Preset'; 
AdvStringGrid1.SearchPanel.EditControl.SetFocus; 
AdvStringGrid1.SearchPanel.EditControl.SelStart := 0; 
AdvStringGrid1.SearchPanel.EditControl.SelLength := 
Length(AdvStringGrid1.SearchPanel.EditControl.Text); 
C# PDF Password Library: add, remove, edit PDF file password in C#
This example shows how to add PDF file password with access permission setting. passwordSetting.IsAssemble = true; // Add password to PDF file.
add page number to pdf hyperlink; pdf links
C# PDF File & Page Process Library SDK for C#.net, ASP.NET, MVC
Insert Image to PDF. Image: Remove Image from PDF Page. Copy, Paste, Cut Image in Page. Link: Edit URL. Images. Redact Pages. Annotation & Drawing. Add Sticky Note
change link in pdf file; add hyperlink in pdf
TMS SOFTWARE  
TADVSTRINGGRID  
DEVELOPERS GUIDE 
134 | Page 
TAdvStringGrid cell merging 
TAdvStringGrid supports cell merging. This means that multiple cells can be merged and appear as if 
they are only one cell in the grid. The contents and properties of a merged cells are always 
controlled by the top left cell, ie. to set the text and properties such as cell color, cell font, set the 
text via grid.Cells[leftcell,topcell] or grid.Colors[leftcell, topcell].  An important note is that in the 
current version hidden cells cannot be combined with merged cells. If hidden cells are required, 
allocate these outside the merged cell area in the rightmost cells.  
Example: a grid with a merged cell 
Following methods are available to handle cell merging: 
function IsBaseCell(ACol,ARow: Integer): Boolean; 
Returns true if the cell is the topleft cell of a merged cell. For a cell that is not merged, IsBaseCell 
always returns true. 
function IsMergedCell(ACol,ARow: Integer): Boolean; 
Returns true if the cell is part of a merged cell 
function IsXMergedCell(ACol,ARow: Integer): Boolean; 
Returns true if the cell is part of a horizontally merged cell 
function IsYMergedCell(ACol,ARow: Integer): Boolean; 
Returns true if the cell is part of a vertically merged cell 
function BaseCell(ACol,ARow: Integer): TPoint; 
Returns the cell coordinates of the topleft cell of a merged cell 
function FullCell(c,r: Integer): TRect; 
Returns the rectangle a merged cell is using 
function CellSpan(ACol,ARow: Integer): TPoint; 
Returns the number of horizontal and vertical cells a merged cell is using 
procedure MergeCells(c,r,spanx,spany: Integer); 
C# PDF insert image Library: insert images into PDF in C#.net, ASP
using RasterEdge.Imaging.Basic; using RasterEdge.XDoc.PDF; Have a try with this sample C#.NET code to add an image to the first page of PDF file.
pdf link to attached file; add hyperlink to pdf
VB.NET PDF insert image library: insert images into PDF in vb.net
using RasterEdge.XDoc.PDF; Have a try with this sample VB.NET code to add an image to the first page of PDF file. ' Open a document.
convert doc to pdf with hyperlinks; add hyperlink pdf document
TMS SOFTWARE  
TADVSTRINGGRID  
DEVELOPERS GUIDE 
135 | Page 
Merges cell c,r with spanx number of horizontal cells and spany of vertical cells 
procedure SplitCells(c,r: Integer); 
Splits cells again merged with cell c,r 
procedure MergeColumnCells(ColIndex: Integer; MainMerge: Boolean); 
Automatically merges all cells with identical cell contents in the column ColIndex. If MainMerge is 
false, cells are not merged if cells on left of the ColIndex column are not merged. 
procedure SplitColumnCells(ColIndex: Integer); 
Splits all cells in column ColIndex 
procedure MergeRowCells(RowIndex: Integer; MainMerge: Boolean); 
Automatically merges all cells with identical cell contents in the row RowIndex. If MainMerge is 
false, cells are not merged if cells on top of the RowIndex row are not merged. 
procedure SplitRowCells(RowIndex: Integer); 
Splits all cells in row RowIndex 
procedure SplitAllCells; 
Splits all cells in the grid 
Example: cell merging and setting properties for merged cells 
To set a long text in 10 horizontally merged cells you can : 
AdvStringGrid1.MergeCells(1,6,10,1); 
AdvStringGrid1.Cells[1,6] := 'This another one that is long too'; 
The background color of this merged cell can be set by changing the background color of the base 
cell, ie : 
AdvStringGrid.Colors[1,6] := clLime; 
To reapply the default color, use :  
AdvStringGrid.Colors[1,6] := clNone; 
If you want to use the OnGetCellColor event to set colors, it is sufficient to handle the base cell 
color setting, for example in this way :
procedure AdvStringGrid1GetCellColor(Sender: TObject; ACol,ARow: Integer; 
AState: TGridDrawState; ABrush: TBrush; AFont: TFont); 
begin 
if ACol = 1 then  
begin 
AFont.Color := clBlue 
AFont.Style := [fsBold]; 
end; 
end; 
How to C#: Basic SDK Concept of XDoc.PDF for .NET
You may add PDF document protection functionality into your C# of PDF document, including editing PDF url links and quick navigation link in bookmark
pdf link to email; pdf link
C# PDF File Merge Library: Merge, append PDF files in C#.net, ASP.
Add necessary references: using RasterEdge.XDoc.PDF; Note: When you get the error "Could not load file or assembly 'RasterEdge.Imaging.Basic' or any other
add link to pdf acrobat; add hyperlink to pdf acrobat
TMS SOFTWARE  
TADVSTRINGGRID  
DEVELOPERS GUIDE 
136 | Page 
TAdvStringGrid OLE drag & drop 
Extensive support for automatic drag & drop is included in TAdvStringGrid. Because drag & drop 
conforms to OLE based drag & drop, this makes drag & drop possible not only within your 
application but also between applications that conform to this standard such as Excel, Word or even 
other applications with TAdvStringGrid.  
Making use of these capabilities is done through several properties and events :
Properties under grid.DragDropSettings: 
OleAcceptFiles: when true, files can be dropped on the grid. 
OleAcceptText: when true, text from an OLE drag & drop source (such as Microsoft Word, Microsoft 
Excel) can be dropped on the grid. 
OleAcceptURLs: when true, a hyperlink from an OLE drag & drop source can be dropped on the grid. 
OleColumnDragDrop: when true, the grid can drag & drop entire columns by dragging from the 
column header. 
OleColumnsOnly: when true, only columns can be dragged by means of the column header. 
OleColumnReorder: when true, OLE drag & drop of columns will be used to reorder columns. 
OleCopyAlways: when true, drag & drop always performs a copy as otherwise a Ctrl-drag performs a 
copy and a simple drag performs a move. 
OleDropRTF: when true, the grid can accept richt text formatted text. 
OleDropSource: make the grid act as a source for drag & drop. 
OleDropTarget : make the grid act as a target for drag & drop. 
OleEntireRows : make sure that entire row (including fixed row) is handled during drag & drop in 
RowSelect mode. 
OleInsertRows : perform automatic row insertion when rows are dropped on the grid. 
OleRemoveRows : perform automatic row removal if drag & drop move operation is done, otherwise 
the move will result in empty rows. 
ShowCells: when true, a semi transparent image of cells dragged is shown during drag & drop. 
Screenshot of drag & drop with image showing cells being dragged. The little green arrow indicates 
in what cell the drop will occur. 
Some other properties that are relevant for drag & drop are :  
In Navigation: 
Navigation.AllowClipboardAlways : will allow drop on a grid where editing is disabled. Otherwise, 
only editable cells could change through the drop operation. 
TMS SOFTWARE  
TADVSTRINGGRID  
DEVELOPERS GUIDE 
137 | Page 
Navigation.AllowClipboardRowGrow : will allow automatic adding of rows if more rows are dropped 
on the grid than present 
Navigation.AllowClipboardColGrow : will allow automatic adding of columns if more columns are 
dropped on the grid than present 
Public property: 
ExcelClipboardFormat:boolean : use clipboard format compatible with Excel 
Events: 
OnOleDrag : event triggered when drag starts. Through the Allow parameter, the drag can be 
enabled or not. 
OnOleDragOver : event triggered during the drag operation when the mouse is over the grid. 
Through the Allow parameter, the place where data can be dropped can be set. 
OnOleDragStart : event triggered when drag has started.  
OnOleDragStop : event triggered when drag has stopped. Indicates whether it was a move, copy or 
cancelled drag & drop operation. 
OnOleDrop : event triggered when succesfull drop of cells was performed on the grid. 
OnOleDropCol : event triggered when succesfull drop of a column was performed on the grid. 
Row drag & drop 
Enabling row drag and drop is simple. OleDropSource and OleDropTarget properties are set true. In 
addition OleEntireRows, OleRemoveRows and OleInsertRows are set true to enable full row drag & 
drop. The only event used further is OnOleDrag where Allow is set true whenever the origin row of 
the drag operation is not a fixed row. This is necessary, as drag & drop from a fixed row starts a 
column drag & drop. Notice that drag & drop between grids as well as in the grid itself (to allow row 
rearranging is possible) 
To allow only drag & drop between grids, use the OnOleDragStart event to set the source grid in a 
variable. In the OnOleDragOver event, set Allow to false if the Sender is equal to this source. Finally 
reset the source on the OnOleDragStop event. 
Example: row drag & drop
ddsource: TObject; 
procedure Form1.OnOleDragStart(Sender:TObject; Arow,Acol: integer); 
begin 
ddsource := Sender; 
end; 
procedure Form1.OnOleDragOver(Sender:TObject; Arow,Acol: integer;  
var Allow: boolean); 
begin 
Allow := ddsource <> Sender; 
end; 
procedure Form1.OnOleDragStop(Sender:TObject; Arow,Acol: integer; var 
Allow: boolean); 
begin 
ddsource := nil; 
end; 
Cell drag & drop 
Everything under row drag & drop applies to cell drag & drop, except that OleEntireRows, 
OleRemoveRows and OleInsertRows are set false here. 
TMS SOFTWARE  
TADVSTRINGGRID  
DEVELOPERS GUIDE 
138 | Page 
Column drag & drop 
Column drag & drop is a little more involved. This is because the interface allows for more than just 
inter grid column drag & drop but allows the implementation for something like a field chooser (see 
example project 29) as well.  
Where the previous examples disabled column drag & drop by setting Allow=false when the drag 
started from the fixed row, this example only enables drag & drop when the drag starts from the 
fixed row. (Nothing prevents enabling both in the same grid though)  
The OnOleDragOver event is used to allow a drop of a column only when the mouse cursor is over a 
fixed row. Except when the grid has no columns, a drop on the fixed column is not allowed: 
procedure TForm1.OnOleDragOver(Sender: TObject; Arow, Acol: integer; var 
Allow: boolean); 
begin 
with Sender as TAdvStringGrid do 
Allow := (Sender<>ColSource) and (Arow=0) and ((Acol>0) or 
(ColCount=1)); 
end; 
The event OnOleDropCol is triggered when a column is dropped. It indicates the index of the 
original column dropped as well as the index of the column where it is dropped. It is in this event 
that the column data of the source grid is inserted in the target grid:
procedure TForm1.AdvStringGrid5OleDropCol(Sender: TObject; Arow, Acol, 
DropCol: Integer); 
var 
sl: TStringList; 
begin 
coltarget := Sender as TAdvStringGrid; 
sl := TStringList.Create; 
sl.Assign(colsource.Cols[DropCol]); 
if (acol = 0) then inc(acol); 
coltarget.insertcols(acol,1); 
coltarget.Cols[acol].Assign(sl); 
sl.Free; 
end; 
Finally the OnOleDragStop event is used to remove the column from the source grid if the drag & 
drop was a move operation:
procedure TForm1.AdvStringGrid5OleDragStop(Sender: TObject; 
OLEEffect: Integer); 
begin 
 if OLEEffect = DROPEFFECT_MOVE then 
begin 
colsource.RemoveCols(colsourceidx,1); 
end; 
end; 
TMS SOFTWARE  
TADVSTRINGGRID  
DEVELOPERS GUIDE 
139 | Page 
TAdvStringGrid hidden columns and rows 
It can be convenient to put data in cells that are not visible for the user but accessible by the 
application. TAdvStringGrid therefore supports hidden columns or hidden rows. Great care must be 
taken into account when using both at the same time. The recommended way is to first apply all 
row hiding and then apply column hiding and unhide the columns again before unhiding the rows.  
Methods available for handling columns hiding are: 
procedure HideColumn(ColIndex: Integer); 
procedure UnHideColumn(ColIndex: Integer); 
procedure HideColumns(FromCol,ToCol: Integer); 
procedure UnHideColumns(FromCol,ToCol: Integer); 
procedure UnHideColumnsAll; 
function IsHiddenColumn(Colindex: Integer): Boolean; 
function NumHiddenColumns: Integer; 
function AllColCount: Integer; 
Methods available for handling row hiding are: 
procedure HideRow(Rowindex: Integer); 
procedure HideRows(FromRow,ToRow: Integer); 
procedure HideRowList(RowList: TIntList); 
procedure UnHideRow(Rowindex: Integer); 
procedure UnHideRows(FromRow,ToRow: Integer); 
procedure UnHideRowsAll; 
procedure UnHideRowsList; 
procedure HideSelectedRows; 
procedure HideUnSelectedRows; 
function IsHiddenRow(Rowindex: Integer): Boolean; 
function NumHiddenRows: Integer; 
function AllRowCount: Integer; 
The use of these methods is straightforward as the name of the method implies with the exception 
of HideRowList & UnHideRowList. With HideRowList, it is possible to hide multiple consecutive or 
non consecutive rows with one call. This will be much faster than calling HideRow multiple times. 
To use HideRowList, build a TIntList with the indexes of rows to hide (TIntList is defined in the 
AdvObj unit). Make sure to call UnHideRowList after calling HideRowList. 
Example: hiding multiple non consecutive rows with HideRowList 
var 
il: TIntList; 
begin 
il := TIntList.Create(-1,-1); 
il.Add(5); 
il.Add(6); 
il.Add(7); 
il.Add(15); 
il.Add(16); 
il.Add(17); 
AdvStringGrid.HideRowList(il);  // hides rows 5,6,7,15,16,17 
TMS SOFTWARE  
TADVSTRINGGRID  
DEVELOPERS GUIDE 
140 | Page 
end;  
When cells are hidden, it is still possible to access these hidden cells. Two cell addressing schemes 
are available: one with visible column and row indexes and one with real column and row indexes. 
With real column or row indexes, cells can be accessed as if these were not hidden. With visible 
column or row indexes cells are accessed with the index as appearing on the screen.  
The property grid.Cells[Col,Row]: string is using the visible column and row indexes while the 
property grid.AllCells[Col,Row]: string provides access to cells with real coordinates. 
Example: mixing visible and real column index access 
// initializing the grid 
Grid.Cells[1,1] := ‘Col 1’; 
Grid.Cells[2,1] := ‘Col 2’; 
Grid.Cells[3,1] := ‘Col 3’; 
// hiding column 2 
Grid.HideColumn(2); 
Grid.AllCells[2,1] := ‘A’; // updates cell “Col 2”; 
Grid.UnHideColumn(2); 
The result is : “Col 1”, “A”, “Col 3” 
TAdvStringGrid also provides a set of functions to allow performing the mapping of real cell indexes 
to visible cells indexes and vice versa. This is provided through: 
function RealRowIndex(ARow: Integer): Integer; 
function RealColIndex(ACol: Integer): Integer; 
Returns the real column or row index for a given visible column or row index 
function DisplRowIndex(ARow: Integer): Integer; 
function DisplColIndex(ACol: Integer): Integer; 
Returns the visible column  or row index for a given real column or row index 
In the example above, changing the code in: 
// initializing the grid 
Grid.Cells[1,1] := ‘Col 1’; 
Grid.Cells[2,1] := ‘Col 2’; 
Grid.Cells[3,1] := ‘Col 3’; 
// hiding column 2 
Grid.HideColumn(2); 
Grid.AllCells[2,1] := IntToStr(Grid.DisplColIndex(3));  
Grid.UnHideColumn(2); 
Results in : “Col 1”, “2”, “Col 3” 
as the visible column index of the real column index 3 is now 2. 
The same logic applies to hidden rows. 
Documents you may be interested
Documents you may be interested