BCS Delphi XE8 Programmers Workbench


There are a certain set of tools programmers utilize to accomplish programming tasks.  Capabilities to position the database (master and detail) to a desired location exists.  To view this option press the popup chord and the popup menu will appear.
pwb

This task is primarily accomplished by using a master detail scenario that established categories.  Then the details for each category are established.

The detail view appears below.
pwbdet

When the programmer double clicks on the item in the grid the associated application is launched.  The Shell API is leveraged to all the Windows associations are in play at this point.  As an example if the file specification ends in a “.pdf” the associated PDF Application is invoked with the file name  as input.

A full File Manager is included on the final tab on the main view.
pwb02
Many handy features such as directory level and file level functions to create, rename, copy, move and delete respective folders and file specifications.  The 7 Zip interface has been pressed into place when compression extraction needs to be performed.

When a file is selected and the popup menu is activated the following dialog is viewed.
pwb03
When the user selects the file statistics option the following menu will appear.
pwb04
The user has some information about the file’s specification.

A web browser is included for documenting web content using the same scenario.
pwb01
The Web Browser tab reveals the active Web Browser.  The last control below the menu copies the url and the web page title and inserts it into the database.  That way the programmer has no requirement to cut and paste anything.

The master table SQL is below.

-- phpMyAdmin SQL Dump
-- version 4.3.7
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generation Time: Jun 21, 2015 at 03:32 AM
-- Server version: 5.6.17
-- PHP Version: 5.5.12
 
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
 
 
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
 
--
-- Database: `bcswebtools`
--
 
-- --------------------------------------------------------
 
--
-- Table structure for table `lk1`
--
 
CREATE TABLE IF NOT EXISTS `lk1` (
  `idlk1` int(11) NOT NULL,
  `cat` varchar(75) NOT NULL,
  `ddes` mediumtext NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=75 DEFAULT CHARSET=latin1;
 
--
-- Indexes for dumped tables
--
 
--
-- Indexes for table `lk1`
--
ALTER TABLE `lk1`
  ADD PRIMARY KEY (`idlk1`), ADD UNIQUE KEY `cat` (`cat`);
 
--
-- AUTO_INCREMENT for dumped tables
--
 
--
-- AUTO_INCREMENT for table `lk1`
--
ALTER TABLE `lk1`
  MODIFY `idlk1` int(11) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=75;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

The detail table SQL is below.

-- phpMyAdmin SQL Dump
-- version 4.3.7
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generation Time: Jun 21, 2015 at 03:32 AM
-- Server version: 5.6.17
-- PHP Version: 5.5.12
 
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
 
 
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
 
--
-- Database: `bcswebtools`
--
 
-- --------------------------------------------------------
 
--
-- Table structure for table `lk2`
--
 
CREATE TABLE IF NOT EXISTS `lk2` (
  `idlk2` int(11) NOT NULL,
  `idlk1` int(11) NOT NULL,
  `lkn` varchar(125) DEFAULT NULL,
  `lnk` varchar(125) DEFAULT NULL,
  `ddes` mediumtext NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=499 DEFAULT CHARSET=latin1;
 
--
-- Indexes for dumped tables
--
 
--
-- Indexes for table `lk2`
--
ALTER TABLE `lk2`
  ADD PRIMARY KEY (`idlk2`), ADD UNIQUE KEY `lkn` (`lkn`), ADD KEY `idlk1` (`idlk1`);
 
--
-- AUTO_INCREMENT for dumped tables
--
 
--
-- AUTO_INCREMENT for table `lk2`
--
ALTER TABLE `lk2`
  MODIFY `idlk2` int(11) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=499;
--
-- Constraints for dumped tables
--
 
--
-- Constraints for table `lk2`
--
ALTER TABLE `lk2`
ADD CONSTRAINT `idlk1` FOREIGN KEY (`idlk1`) REFERENCES `lk1` (`idlk1`);
 
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

The component documentation can be viewed by clicking here.

The source code for this application can be accessed by clicking here.

Mr. Arch Brooks, Software Engineer, Brooks Computing Systems, LLC authored this article.

BCS Executable Program Utility


There are those times when is is reasonable to invoke a stand alone executable file.  The BCS Executable Program Utility manages the idiosyncrasies of executable stand alone programs.

xqtres

To use this feature just place the source code subsequent to any existing application that desires to employ there executable functions.  Then add this form to your application and you are all set.

Use this form in show modal fashion to add or modify existing executable information.

A report is available that allows the user to quickly review what is in the repository.

xqtrep

The SQL for creating the table is listed below.

-- phpMyAdmin SQL Dump
-- version 4.6.0
-- http://www.phpmyadmin.net
--
-- Host: 127.0.0.1
-- Generation Time: Apr 22, 2016 at 04:29 AM
-- Server version: 5.6.17
-- PHP Version: 5.5.12
 
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
 
 
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
 
--
-- Database: `bcsra`
--
 
-- --------------------------------------------------------
 
--
-- Table structure for table `ext`
--
 
CREATE TABLE `ext` (
 `id` int(11) NOT NULL,
 `ext` varchar(75) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
 
-- --------------------------------------------------------
 
--
-- Table structure for table `lud`
--
 
CREATE TABLE `lud` (
 `id` int(11) NOT NULL,
 `rdate` datetime NOT NULL,
 `sdes` varchar(125) NOT NULL,
 `sdir` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
 
-- --------------------------------------------------------
 
--
-- Table structure for table `sdoc`
--
 
CREATE TABLE `sdoc` (
 `id` int(11) NOT NULL,
 `sdes` varchar(125) NOT NULL,
 `sdir` varchar(255) NOT NULL,
 `doc` mediumtext NOT NULL,
 `maint` mediumtext NOT NULL,
 `fut` mediumtext NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
 
--
-- Indexes for dumped tables
--
 
--
-- Indexes for table `ext`
--
ALTER TABLE `ext`
 ADD PRIMARY KEY (`id`),
 ADD UNIQUE KEY `ext` (`ext`);
 
--
-- Indexes for table `lud`
--
ALTER TABLE `lud`
 ADD PRIMARY KEY (`id`);
 
--
-- Indexes for table `sdoc`
--
ALTER TABLE `sdoc`
 ADD PRIMARY KEY (`id`),
 ADD UNIQUE KEY `sdir` (`sdir`);
 
--
-- AUTO_INCREMENT for dumped tables
--
 
--
-- AUTO_INCREMENT for table `ext`
--
ALTER TABLE `ext`
 MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
--
-- AUTO_INCREMENT for table `lud`
--
ALTER TABLE `lud`
 MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=243;
--
-- AUTO_INCREMENT for table `sdoc`
--
ALTER TABLE `sdoc`
 MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=42;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

The component documentation can be reviewed by clicking here.

The applications source code can be obtained by clicking here.

Please feel free to comment or make suggestions on this article in the comments section below.

Mr. Arch Brooks, Software Engineer, Brooks Computing Systems, LLC authored this article.

BCS Delphi Code To Doc Interface


This utility prepares the XML file used as input to the Delphi Source Code To Doc Utility.

dctd

The interface supplied with the product works just fine but this interface is easier to use and performs some functions automatically for you like adding the component driver program module in the included files list.

To view the component documentation click here.

To view the source code for this utility click here.

Mr. Arch Brooks, Software Engineer, Brooks Computing Systems, LLC authored this article.

BCS Delphi XE8 Program Listing MDI

Here is a multiple document interface (MDI) that facilitates using the Delphi XE8 Cross Reference Utility.

mdi
The Source Code tab houses the source code while the Cross Reference tab houses the cross reference. Simply click on the line number in the cross reference and you are automatically taken to that location in the source code listing. This utility allows the programmer to point and click their way through Delphi source code. Since it is a MDI application as many listing as required may be opened simultaneously.

A sample source listing was shipped with this product and it is the “prt.txt” file (minus quotes).   Select this file when you open the tool to see it in action.

The component documentation can be reviewed by clicking here.

The source code may be accessed by clicking here.

Mr. Arch Brooks, Software Engineer, Brooks Computing Systems, LLC authored this article.

BCS Delphi XE8 Maintenance Log Utility

For each application offered a maintenance log is require for future modifications.  This application provides all the necessary communications to create and maintain the update log.

mlog

When a new record is requested a select file dialog appears requesting the project file for the maintenance log.
Once the file is selected the maintenance log is dynamically created in the Modifications Log tab and is ready for subsequent updates.

A popup feature allow the user to update the maintenance log while another options copies the maintenance log to the clipboard for subsequent pasting in the blog article or Embarcadero Code Central.

This utility makes it fairly painless to maintain update logs for blogs and Code Central.

There are two types of reports for this utility.  The first report prints a single log.  The other report prints all the logs in the database.

logrep

The SQL to create the table can be viewed below.

-- phpMyAdmin SQL Dump
-- version 4.3.7
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generation Time: Jun 15, 2015 at 12:16 AM
-- Server version: 5.6.17
-- PHP Version: 5.5.12
 
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
 
 
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
 
--
-- Database: `delphi_mods`
--
 
-- --------------------------------------------------------
 
--
-- Table structure for table `dmods`
--
 
CREATE TABLE IF NOT EXISTS `dmods` (
  `id` int(11) NOT NULL,
  `fs` varchar(500) NOT NULL,
  `mods` mediumtext NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=latin1;
 
--
-- Indexes for dumped tables
--
 
--
-- Indexes for table `dmods`
--
ALTER TABLE `dmods`
  ADD PRIMARY KEY (`id`), ADD UNIQUE KEY `fs` (`fs`);
 
--
-- AUTO_INCREMENT for dumped tables
--
 
--
-- AUTO_INCREMENT for table `dmods`
--
ALTER TABLE `dmods`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=10;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

The component documentation for this utility can be viewed here.

The source code for this utility can be accessed by clicking here.

Mr. Arch Brooks, Software Engineer, Brooks Computing Systems, LLC authored this article.

BCS Delphi XE8 Application Launcher File Manager

This application launcher is powered with the windows shell API.  When you double click on any file windows takes over and launches the associated application.  Facilities are also available to rename or delete a file and a new file may be created.

fman

The component documentation for this application may be viewed by clicking here.

The source code for this application can be accessed by clicking here.

Modifications
————–     ————————————–
2015-06-14  –  Added Delete Directory Capability
2015-06-14  –  Added Create Directory
2015-06-14  –  Updated Delete File Message To Show File Being Deleted in Message
2015-06-14  –  Added Copy Sub Directory Functionality
2015-06-14  –  Added Move Sub Directory Functionality
2015-06-14  –  Updated Component Documentation

Mr. Arch Brooks, Software Engineer, Brooks Computing Systems, LLC authored this article.

BCS Delphi XE8 Source Code Geneator


There will be a new Delphi XE8 Source Code Generator.  Thank you for over 2,000 downloads of the last code generator I published for Delphi.  The new code generator has been updated to the new Delphi XE8 Delphi Code specification.

XE8CG
The code generator has been updated to utilize all Delphi styles available.

styles
Click on a style listed in the list box then click on the View Style menu item to see the style in action.

When you find the style you like double click it select and apply style.

Please feel free to join us at Delphi Innovators we would be honored to have you as our member.

The component documentation may be reviewed by clicking here.

You will be able to access the source code here.

Modifications
————– ————————————–
2015-07-28 – Position Alias List Box To Selected Ailias
2015-07-28 – Display Unique Alias
2015-07-28 – Modify MD Skeleton
2015-08-05 – Three new skeletons which support styles.

Mr. Arch Brooks, Software Engineer, Brooks Computing Systems, LLC authored this article.

BCS Delphi XE8 Source Code Snippet Manager


This utility allows the programmer to table often used code snippets.  When the code snippet is needed bring up this application.  Select the Code Snippet tab.  Right click the mouse so the popup appears.  Select the Copy To Clipboard option and that code snippet in now available on the clipboard for subsequent pasting where ever the programmer desires.

codesnip

No need to search for that code.  Place in this repository  and just use it when you need it.

There is also a handy report so you can quickly review code snippets.

snirep

The SQL for the database can be utilized below.

-- phpMyAdmin SQL Dump
-- version 4.3.7
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generation Time: Jun 12, 2015 at 09:13 PM
-- Server version: 5.6.17
-- PHP Version: 5.5.12
 
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
 
 
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
 
--
-- Database: `code_snips`
--
 
-- --------------------------------------------------------
 
--
-- Table structure for table `cst`
--
 
CREATE TABLE IF NOT EXISTS `cst` (
  `id` int(11) NOT NULL,
  `cat` varchar(255) NOT NULL,
  `cs` mediumtext NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1;
 
--
-- Indexes for dumped tables
--
 
--
-- Indexes for table `cst`
--
ALTER TABLE `cst`
  ADD PRIMARY KEY (`id`);
 
--
-- AUTO_INCREMENT for dumped tables
--
 
--
-- AUTO_INCREMENT for table `cst`
--
ALTER TABLE `cst`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=4;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

The component documentation can be reviewed by clicking here.

The source code can be retrieved by clicking here.

Mr. Arch Brooks, Software Engineer, Brooks Computing Systems, LLC authored this article.

BCS Delphi XE8 Source Code Cross Reference


There are those times when it would be helpful to view a sorted cross reference listing of a Delphi source code program  The BCS Source Code Cross Reference application does just that.

xref

How does this application accomplish this?

  • Reverse engineers the source code.
  • Number each line of source code.
  • Identifies all variables.
  • Sort all variables and object components.
  • Cross reference in ascending alphabetical order by variable.

Below is an example of the sorted cross reference output.

xrep

There is a companion multi document interface (MDI) application that load the source and the cross reference.  When you click on a number in the cross reference the application automatically positions you to the proper position in the source code.   This level of technology allow the end user to point and click their way through source code listings.

The documentation for the component can be viewed here.

The source code for this component can be viewed here.

Mr. Arch Brooks, Software Engineer, Brooks Computing Systems, LLC authored this article.

BCS Delphi XE8 Source Code Printer

I find it annoying that I can not print a specific page or range of pages with the Delphi XE8 IDE.  The only option is to print every page in the Delphi XE8 source code file.  That option is not satisfactory so I wrote this program to print Delphi XE8 source code to my specifications.

SrcPrt

Insert a new record into the database.  Go to the Source Code tab and left click the mouse to make the popup appear.  Click on the Load Memo menu item and a file open dialog box will appear.  Select the desired source code file.  Notice that by default this utility inserts number lines each line of source code dynamically.

Click on the Print Source main menu item and notice Fast Reports preview interface appears.  From here you can print any or all pages of the source code.

rep

The SQL to create the associated table can be reviewed below.

-- phpMyAdmin SQL Dump
-- version 4.3.7
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generation Time: Jun 11, 2015 at 05:03 PM
-- Server version: 5.6.17
-- PHP Version: 5.5.12
 
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
 
 
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
 
--
-- Database: `bcsi`
--
 
-- --------------------------------------------------------
 
--
-- Table structure for table `bdoc`
--
 
CREATE TABLE IF NOT EXISTS `bdoc` (
  `id` int(11) NOT NULL,
  `cat` varchar(75) NOT NULL,
  `note` mediumtext NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;
 
--
-- Indexes for dumped tables
--
 
--
-- Indexes for table `bdoc`
--
ALTER TABLE `bdoc`
  ADD PRIMARY KEY (`id`);
 
--
-- AUTO_INCREMENT for dumped tables
--
 
--
-- AUTO_INCREMENT for table `bdoc`
--
ALTER TABLE `bdoc`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=2;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

The component documentation can be viewed by clicking here.

The source code may be viewed by clicking here.

Mr. Arch Brooks, Software Engineer, Brooks Computing Systems, LLC authored this article.