view pdf winform c# : Adding links to pdf SDK application service wpf azure asp.net dnn TMS%20TAdvStringGrid%20Developers%20Guide18-part149

TMS SOFTWARE  
TADVSTRINGGRID  
DEVELOPERS GUIDE 
181 | Page 
TAdvStringGrid tips and FAQ 
Delphi can't find definition for TFlxFormat when using TAdvGridExcelIO 
This type is defined in the unit tmsUFlxFormats. Add the unit tmsUFlxFormats to the uses clause and 
the problem should be solved. 
Using TAdvStringGrid printer settings dialog combined with printer selection. 
This code snippet shows how you can show the print setup dialog for users after which the printer 
selection is done. 
procedure TForm1.PrintGrid;   
begin   
AdvGridPrintSettings.Form.Caption := 'Print overview';   
AdvStringGrid.PrintSettings.FitToPage := fpAlways;   
AdvStringGrid.PrintSettings.Orientation := poLandscape; // initialize to 
default poLandscape   
 if AdvGridPrintSettings.Execute then   
begin   
Printer.Orientation := AdvStringGrid.PrintSettings.Orientation;   
if PrinterSetupDialog.Execute then   
begin   
AdvStringGrid.PrintSettings.Orientation := Printer.Orientation;   
AdvStringgrid.Print;   
end;   
end;   
end;   
Vertical bottom or center alignment in the grid 
Vertical alignment and wordwrap are mutually exclusive. This is due to a limitation in the Microsoft 
Windows text drawing API that does not allow to have wordwrapped text with other vertical 
alignment than top alignment. To enable vertically centered or bottom alignment, make sure to set 
grid.WordWrap to false. 
Using TAdvStringGrid with Multilizer 
In order to automatically translate applications that use TAdvStringGrid with Multilizer, exclude the 
class TAdvRichEdit in Multilizer. TAdvRichEdit is an internal class only used in TAdvStringGrid as 
inplace editor for rich text editing. 
Copying a grid as image on the clipboard 
Following code copies TAdvStringGrid as an image on the clipboard: 
Adding links to pdf - 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; adding hyperlinks to pdf files
Adding links to pdf - 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 links to pdf; add links to pdf file
TMS SOFTWARE  
TADVSTRINGGRID  
DEVELOPERS GUIDE 
182 | Page 
var   
bmp: TBitmap;   
clip: TClipboard;   
begin   
bmp := tbitmap.create;   
bmp.Width := advstringgrid1.Width;   
bmp.Height := advstringgrid1.Height;   
AdvStringGrid1.PaintTo(bmp.Canvas,0,0);   
clip := TClipboard.Create;   
clip.Assign(bmp);   
bmp.Free;   
clip.Free;   
end
Saving TAdvStringGrid to a JPEG file 
With code below, the output of TAdvStringGrid is sent to a JPEG file: 
var   
pBitmap: TBitmap;   
jp: TJPEGImage;   
R: TRect;   
begin   
pBitmap := TBitmap.Create; //create a new instance of a bitmap   
jp := TJPEGImage.Create;   //create new instance of a jpg file   
:= Rect(0,0,950,760);    //parameters for rectangle   
pBitmap.Height := 622;     //set bmp height   
pBitmap.Width := 812;      //set bmp width   
AdvStringGrid1.PrintPreview(pBitmap.Canvas,R); //call Preview to paint to 
BMP canvas   
jp.Assign(pBitmap); //get picture from bitmap for JPG Image   
jp.SaveToFile('c:\temp\Grid.jpg'); //save picture as JPG File   
pBitmap.Free;   
jp.Free;   
end;   
Setting different max. edit lengths for the inplace editor 
If the max. number of characters for editing should be limited, this can be done with then 
LengthLimit property of the inplace editor. When LengthLimit is 0, there is no limitation to the nr. 
of characters that can be typed in the editor. To set a different max. nr of characters per column, 
following code can be used in the OnGetCellEditor event : 
procedure TForm1.AdvStringGrid1GetEditorType(Sender: TObject; ACol,   
ARow: Integer; var AEditor: TEditorType);   
begin   
if Assigned(AdvStringGrid1.NormalEdit) then   
begin   
case acol of   
1:AdvStringGrid1.NormalEdit.LengthLimit := 4;   
2:AdvStringGrid1.NormalEdit.LengthLimit := 8;   
else   
C# Create PDF Library SDK to convert PDF from other file formats
Create and save editable PDF with a blank page, bookmarks, links, signatures, etc. Besides, using this PDF document metadata adding control, you can
add hyperlink pdf file; chrome pdf from link
VB.NET PowerPoint: Add Image to PowerPoint Document Slide/Page
detail guides on these functions through left menu links. guide on C#.NET PPT image adding library. powerful & profession imaging controls, PDF document, tiff
adding hyperlinks to pdf; add link to pdf
TMS SOFTWARE  
TADVSTRINGGRID  
DEVELOPERS GUIDE 
183 | Page 
AdvStringGrid1.NormalEdit.LengthLimit := 0   
end;   
end;   
end;   
This sets the max. edit length for column 1 to 4 characters, for column 2 to 8 eight characters and 
unlimited for all other columns.  
Printing only selected rows in disjunct row select mode 
The disjunct row select mode is flexible to let the user select several non contiguous rows in a grid. 
When you want to print only the selected rows, the Print functions do not provide a possibility these 
rows. Thanks to the grid's row hiding capabilities this can be easily done by temporarily hide the 
non-selected rows, print the grid and then unhide these rows again. The code to hide only the not 
selected rows is : 
var 
i,j: Integer;   
begin 
 i := 1;   
with AdvStringGrid do   
begin   
:= RowCount;   
while (i < j) do   
if not RowSelect[DisplRowIndex(i)] then   
HideRow(i);  
Inc(i);   
end;   
end;   
To unhide the rows again after the print, the method UnHideRowsAll can be called. 
Setting an hourglass cursor during lengthy sort operations 
Before the sort starts, the OnCanSort event is called. In this event, the crHourGlass cursor can 
specified either for the grid or for your application. 
When sorting is completed, the OnClickSort event is called, where you can set the cursor back to 
normal. 
Forcing a visible cell editor when the form is displayed in the grid 
In the FormShow event, add these 2 methods : 
grid.SetFocus;   
grid.ShowInplaceEdit;   
Problems with FILECTRL.OBJ when installing in C++Builder 
View Images & Documents in Web Image Viewer | Online Tutorials
document or image file, like Word, PDF or TIFF other mature image viewing features, like adding or deleting page And you can find the links to these professional
add hyperlink pdf document; add links to pdf online
TMS SOFTWARE  
TADVSTRINGGRID  
DEVELOPERS GUIDE 
184 | Page 
In C++Builder 6 : Add following line to the package CPP file : USEPACKAGE("vclx.bpi"); 
In C++Builder 5 : Add following line to the package CPP file : USEPACKAGE("vclx50.bpi"); 
Also, never choose a package filename equal to any of the component filenames used. 
When using RowSelect, the first cell of the row is not highlighted as the other cells. 
This can be easily solved by setting the option goDrawFocusSelect to true in the Options property. 
Use a different inplace editor color than the cell color 
Normally, the inplace edit control gets the same color as the cell color. Sometimes this behaviour is 
not wanted, especially when the cell that is edited must be highlighted. This can be down in the 
following way : 
procedure TForm1.FormCreate(Sender: TObject);  
begin   
AdvStringGrid1.Color := clSilver;   
end;   
procedure TForm1.AdvStringGrid1GetCellColor(Sender: TObject; ARow,   
ACol: Integer; AState: TGridDrawState; ABrush: TBrush; AFont: TFont);   
begin   
if (acol = AdvStringGrid1.Col) and   
(arow = AdvStringGrid1.Row) then   
begin   
if Assigned(AdvStringGrid1.NormalEdit) then   
if (AdvStringGrid1.NormalEdit.Visible) then   
ABrush.Color := clWhite;   
end;   
end;  
Still using the 3D style inplace combobox editor 
Use following code in the OnGetCellEditor : 
grid.ComboBox.Flat := false
I use OnGetEditorType to specify a checkbox but it only displays when editing 
Use a permanently visible checkbox that can be added with the AddCheckBox method 
I use row selection, but the first column has a different color 
Set goDrawFocusSelected = true in the Options property 
TMS SOFTWARE  
TADVSTRINGGRID  
DEVELOPERS GUIDE 
185 | Page 
Why do rotated fonts do not print correct ? 
Toggle the value of the public property PrinterDriverFix: Boolean 
I want to use rotated font but the font does not show rotated 
Make sure to use a truetype font. Only truetype font can be rotated. 
Why do my printouts do not have colors or fonts set as displayed ? 
Assign the OnGetCellColor event to the OnGetCellPrintColor event as well. 
Copy and paste does not seem to work ? 
Make sure that Navigation.AllowClipboardShortCuts is true and the grid is either editable or 
Navigation.AllowClipboardAlways is true. 
I want to select multiple rows with Ctrl - mouseclick and Shift - mouse click 
In the Options property set goRowSelect = true and set MouseActions.DisjunctRowSelect = true. The 
desired selection capabilities are enabled now. 
How can the copyright notice be removed from the grid ? 
The registered version of TAdvStringGrid does not show this copyright notice. 
I am not sure if the latest version of TAdvStringGrid is installed. How can I check this ? 
At design time, right click on the grid and select About. At runtime, show the version with : 
ShowMessage(Grid.GetVersionString); 
When I try to install the trial version of TAdvStringGrid in a trial version of Delphi or C++Builder, 
it asks for ADVGRID.PAS ? 
The Delphi or C++Builder trial edition does not allow to install binary component distributions. The 
registered source version of TAdvStringGrid will work with the full Delphi or C++Builder versions. 
With the registered version of TAdvStringGrid, do we need to pay additional royalties for 
application distribution ? 
TMS SOFTWARE  
TADVSTRINGGRID  
DEVELOPERS GUIDE 
186 | Page 
With license for commercial use of the registered version, no additional royalties need to be paid. 
How can I set text in a cell ? How do I programmatically change a column width or row height ? 
Setting text in a cell is done with the grid.Cells[col,row]: string propert. Setting the column width is 
done with grid.ColWidths[col]: Integer and setting a row height with grid.RowHeights[row]: Integer. 
Note that TAdvStringGrid inherits ALL methods and properties of TStringGrid. As such, refer to the 
Borland documentation for TStringGrid for help on the basic grid functions. 
How can I get the state of a checkbox added with grid.AddCheckBox ? 
var   
state: Boolean;  
grid.GetCheckBoxState(col,row,state);   
if state then   
ShowMessage('CheckBox is checked')   
else   
ShowMessage('CheckBox is not checked');   
I get an exception 'invalid column' during export to Excel 
The maximum number of columns supported in Excel itself is 255. As such, it is not possible to 
export more columns than the Excel limit. 
I have added a button on the grid with AddButton but the OnButtonClick event is not triggered ? 
If you add a button to a non editable cell (or grid without editing enabled) the button is treated as 
disabled by default. To override this behaviour, set grid.ControlLook.NoDisabledButtonLook = true 
I try to set VAlignment to vtaCenter or vtaBottom but this is not working 
By default, wordwrap is enabled in the grid and it is a limitation of the Microsoft text drawing API's 
that wordwrapped text is always top aligned. To use the VAlignment capability, set WordWrap = 
false 
Can I load a gallery file programmatically at runtime ? 
Yes, call grid.LoadVisualProps(GalleryFileName); 
I am having problems with grid.SortByColumn, it is slow or behaves incorrect 
TMS SOFTWARE  
TADVSTRINGGRID  
DEVELOPERS GUIDE 
187 | Page 
SortByColumn is a deprecated method, use grid.QSort instead with settings as defined under 
grid.SortSettings 
Users of older operating systems have an error message on application startup related to a 
missing gdiplus.dll 
Either redistribute the Microsoft GDIPLUS.DLL (explained in README.TXT) or remove the gdiplus.dll 
dependency by commenting the line {$DEFINE TMSGDIPLUS} in TMSDEFS.INC 
All operating systems from Windows XP have GDIPLUS.DLL by default installed. 
When exporting to Excel file with the method grid.SaveToXLS() I get the error : "Excel OLE 
server not found" 
The method grid.SaveToXLS() uses OLE automation to export to Excel file and thus requires Excel to 
be installed on the machine. To avoid this requirement, you can use the component 
TAdvGridExcelIO to export to Excel. 
When try to install TAdvStringGrid, I get an error that TAdvStringGrid is compiled with a 
different version of PictureContainer 
Most likely another TMS component has been installed that is also using the PictureContainer. Due 
to strict binary compatibility checks of Delphi & C++Builder, it is causing problems to install 
multiple binary distributed components that share a unit. For using the binary versions, the only 
workaround is to install the packages alternatingly for evaluation. Registered versions that come 
with full source do not have this problem. 
When I run my application I get an error "property does not exist" 
An older version of ADVGRID.DCU might be in your library path. When upgrading from an older 
version, make sure to first open all forms in your application that use the grid, ignore property 
errors on opening, save form files and then rebuild your application. 
When I try to install the package, it asks for AdvGrid.pas 
Make sure the correct version of ADVGRID.DCU and other DCU files are in your library path, that 
your library path contains the directory where ADVGRID.DCU is installed and that no other versions 
of ADVGRID.DCU are in your library path. Note that the binary version of TAdvStringGrid cannot be 
used with Delphi or C++Builder trial versions. 
I want to override the popup menu of the default grid inplace editor 
You can assign a custom popup menu to the default grid inplace editor with following code: 
procedure TForm2.AdvStringGrid1GetEditText(Sender: TObject; ACol, ARow: 
Integer;   
var Value: string);   
TMS SOFTWARE  
TADVSTRINGGRID  
DEVELOPERS GUIDE 
188 | Page 
begin   
AdvStringGrid.NormalEdit.PopupMenu :=PopupMenu1;   
end;   
Exporting numbers as text with TAdvGridExcelIO 
By default, when a cell contains text like "000123" and exporting this to Excel, Excel will display this 
as "123". This is because by default, "000123" is recognized as a number and Excel will be default 
show numbers without any zero prefixes. If it is required that similar text is shown in the Excel as-
is, it should be specified that TAdvGridExcelIO should export the number as text. This can be done 
with: 1) global setting: AdvGridExcelIO.Options.ExportCellFormats = false 2) dynamically by using 
the OnExportColumnFormat event Example: 
procedure TForm1.AdvGridExcelIO1ExportColumnFormat(Sender: TObject; 
GridCol,   
GridRow, XlsCol, XlsRow: Integer; const Value: WideString;   
var ExportCellAsString: Boolean);   
begin   
if GridCol = 2 then   
ExportCellAsString := true;   
end;   
This will treat all cells in column 2 as text cells for the generated Excel sheet. 
How to change the size of the find next / previous / highlight buttons in the search bar 
The text of the buttons is exposed via grid.SearchFooter and the recommended way is to use the 
grid.SearchFooter.* properties. The button width is not exposed, therefore it should be set via 
grid.SearchPanel. 
You can access the buttons in code with: 
advstringgrid.SearchPanel.ForwardButton: TButton 
advstringgrid.SearchPanel.BackwardButton: Tbutton 
Make sure to set this after the searchfooter was created. 
Persisting grids with images to file 
The functions grid.SaveToBinFile / grid.LoadFromBinFile persist grid cell data including cell 
properties. This can also include objects created in cells. If you want to persist an image set in a 
cell, make sure to use grid.CreatePicture() as this creates the object managed by the grid. All 
objects managed by the grid will also be saved when calling grid.SaveToBinFile().  
Example: 
begin    
AdvStringGrid1.CreatePicture(1,1,false,noStretch,4,haLeft,vaTop).Assign(ima
ge1.Picture);   
AdvStringGrid1.SaveToBinFile('.\advgrid.bin');   
end;   
TMS SOFTWARE  
TADVSTRINGGRID  
DEVELOPERS GUIDE 
189 | Page 
This will save the image created in cell 1,1 to the file and this image will be reloaded when calling 
grid.LoadFromBinFile() 
How to use TAdvGridReplaceDialog 
Drop a TAdvGridReplaceDialog on the form and a TAdvStringGrid. 
Add the code: 
begin   
AdvGridReplaceDialog1.Grid := AdvStringGrid1;   
AdvGridReplaceDialog1.Execute;   
end;   
Fill in the dialog a value that can be found in a grid cell and a value it should replace and press 
"Replace All". 
TAdvGridReplaceDialog is not applicable for TDBAdvGrid, only for TAdvStringGrid. This is because, 
to change values in the TDBAdvGrid, values should be changed on dataset level, via DBField, not 
just with grid.Cells[]. 
Allowing multiline text & using the Enter key to start a new line 
To allow to enter multiline text in a cell, set grid.MultiLineCells := true.  
By default the key to start a new line in the inplace editor is Ctrl-Enter ('Enter' stops editing).  
If you want to use the Enter key to start a new line instead, set grid.Navigation.LineFeedOnEnter = 
true 
Importing data with AdvGridExcelIO in a grid that already contains data 
With AdvGridExcelIO.GridStartCol / AdvGridExcelIO.GridStartRow, you can set the top left corner 
from where the import starts. 
Show inplace editor in a special color 
By design, the background color of the inplace editor is shown in the same color as the cell 
background color. This way, the inplace editor looks transparent wrt the grid. If there is a need to 
show the inplace editor with a different background color, to draw attention for example, following 
code can be used: 
procedure TForm4.AdvStringGrid1GetCellColor(Sender: TObject; ARow,   
ACol: Integer; AState: TGridDrawState; ABrush: TBrush; AFont: TFont);   
begin   
if (AdvStringGrid1.EditMode) and (ARow = AdvStringGrid1.Row) and (ACol = 
AdvStringGrid1.Col) then   
ABrush.Color := clRed   
else   
ABrush.Color := clWhite;   
end;   
Customizing the TAdvStringGrid Find Dialog 
A customization of this dialog have to be done by opening & editing ASGREPLACE.PAS. 
TMS SOFTWARE  
TADVSTRINGGRID  
DEVELOPERS GUIDE 
190 | Page 
This is where the dialog is defined. 
Specifying a filter in C++ 
Follow code specifies a filter in C++ code: 
TFilterData *fd;   
AdvStringGrid->Filter->Clear();   
fd = AdvStringGrid->Filter->Items->Add();   
fd->Condition = “BMW”;   
fd->Column  = 1;   
AdvStringGrid->FilterActive = true;   
How to add a TAdvGlowButton in a grid 
Any TWinControl descendent can be hosted inside TAdvStringGrid. This is done by assigning the 
control to the grid.CellControls[col,row]: TWinControl property.  
Example: to have a TadvGlowButton displayed in cell 2,3 you can use: 
AdvStringGrid1.CellControls[2,3] := AdvGlowButton1;   
Result: 
If you want to move the control to another place on the form, destroy it, etc... that should happen 
from application code. 
To destroy the control, use following code: 
var   
ctrl: TControl;   
ctrl := grid.CellControls[x,y];   
if Assigned(ctrl) then   
begin   
FreeAndNil(ctrl);   
grid.CellControls[x,y] := nil;   
end;   
Documents you may be interested
Documents you may be interested