|
This page is updated very often, so click 'Reload' button in your browser to get fresh version! |
Here You can see list of available problems to solve named 'tasks'.
If problem is solved or it is solving now then name of member is appearing in right
column of table below. Any case name of task in left column is referred onto more
detailed description of this one in separate html (if such description is ready). You may
click it to read either project definition or final description if task finished. If You
feel that task list not full, feel free to e-mail me about it to suggest new necessary
task name and its brief and/or detailed definitions.
Choose one of not allocated problems to become a member or if You
consider that task list is not complete, add your own here. Feel Yourself free to use
source of any solved task similar given to get a template to solve any other. If You give
task be remember that Your code must satisfy to basic
principles of XCL project. E-mail
me, if You are ready to vote yourself as XCL developers team member.
Task name |
Task description |
Status |
XClass
and XChild in XClasses.pas |
Similar TComponent in VCL. But it is descending from TObject and differ from this last mainly by ability to have parent XClass object and list of child XClass objects. Parent is responsible for destroying of childs when it is destroyed. | finished by Mr.Bonanzas - 16-Jun-99; improved by GuX, 13-Oct-99 (type LongWord for Delphi3) |
XVisual in XVisuals.pas |
Ancestor of XWindow and XControl. Intended to provide XForm (->XWindow) and XControl with common virtual methods and properties (BoundsRect, ClientRect, Visible, Enabled and so on). | finished by Mr.Bonanzas - 16-Jun-99 |
XWindow in XWindows.pas |
Similar TWinControl and TForm in VCL. Provides registration of window in Windows environment and basic functionality of it (message handling, creating, destroying). | finished by Mr.Bonanzas - 16-Jun-99 |
XApplet in XApplets.pas |
Similar TApplication in VCL provides running of applet, interface with main window, loop of messages dispatching. | finished by Mr.Bonanzas - 16-Jun-99, modified by C.Kok, 5-Sep-99 |
XForm in XForms.pas |
Similar TForm in VCL but
without reading itself from executable. Just XWindow with ability to have XControl objects
as childs. Responsible for painting, focusing, mouse and keyboard events handling. In contrast to VCL TForm, is simplified by avoiding of support of printing form, responding for MDI, scaling, aligning of controls. And at least it can not read itself from executable. |
finished by Mr.Bonanzas - 18-Jun-99 |
XFormAutoSizer in XFormAutoSize.pas |
Add-on module for autosizing of XForm and its descenders and XControl descenders with child controls. It is adding by calling of UseAutoSizer increasing applet for several Kbytes. | finished by Mr.Bonanzas - 19-Jun-99 |
XAligner in XAlign.pas |
If used in applet (by calling
UseAligns), adds for all XForm(s) and its descenders support of Align property for all its
child controls, which are using this one. If this add-on is not used, executable become smaller for about 3Kbytes. |
finished by Mr.Bonanzas - 19-Jun-99 |
XResizeAntiFlicker in XResize.pas |
This add-on when used (by call
UseResizeAntiFlicker) eliminates flickering of controls aligned to opposite side to moving
with mouse border edge during x-form resizing. There are no similar solutions for VCL, and
I think this task can not have solution in Delphi VCL in common case at all. Even in XCL
ResizeAntiFlicker works better for forms without MFC-based controls (and in VCL the most
of controls are MFC-based). When used, increases size of executable by 4Kbytes. |
finished by Mr.Bonanzas - 05-Sep-99 |
XFormsStdMouseEvents in XMouseEvents.pas |
Add-on for XForm for handling mouse events. It is included into final executable only by calling UseStdMouse adding about 1Kb. | finished by Mr.Bonanzas - 02-Jul-99 |
XFormsStdKeyEvents in XKeyboardEvents.pas |
Add-on for XForm adding keyboard handling and tabulating between controls. It is added to executable only by calling UseKeyboard increasing size of applet onto about 1,5Kb. | finished by Mr.Bonanzas - 02-Jul-99 |
XControlAutoPlacer in XControlAutoPlace.pas |
If used, it adds for all XForm(s) support of autoplacing and autoresizing controls when size and / or position of its childs are changed. This allow to adjust size and position of controls and form itself so its never overlaps and form always is shown correctly independently of screen resolution, font sizes and so on. | finished by Mr.Bonanzas - 19-Jun-99 |
XControl in XForms.pas |
Similar TGraphicControl in VCL. In XCL it is a descendent of XVisual. Created as a child of XForm, which simulates focusing and provides device context for it while painting. | finished by Mr.Bonanzas - 18-Jun-99 |
COMMON UTILITIES | ||
ZList in XClasses.pas |
Similar TList in Delhi VCL, but more simple (does not not support sorting, has no Move or Swap methods). | finished by Mr.Bonanzas - 16-Jun-99 |
ZTimer,
XTimer in XTimers.pas |
Objects to encapsulate Windows timer. Similar to TTimer in VCL, but ZTimer and XTimer are using applet button window and handles messages directly. ZTimer is derived from TObject so You are responding for its freeing. XTimer can be child of any other XClass (in that case it is destroying when its parent is freeing). | finished by Mr.Bonanzas - 02-Jun-99, 27-Jul-99, 08-Sep-99 |
ZThread in XThreads.pas |
Similar to TThread in VCL, but easier. | by Tim
Slusher, finished Oct-99 |
XMenu,
XPopup in XMenus.pas |
Similar to TMainMenu and TPopupMenu in VCL. But very simple. These two classes allow to create easy statically designed (as a list of strings) menu with submenus. | finished by Mr.Bonanzas - 27-Jul-99 |
XOpenSaveDialog in XDialogs.pas |
Open/Save dialog implementation. | finished by Carlo Kok - 28-Oct-99 |
ZStrList,
ZStringList, ZStrings in XStrLists.pas |
Similar to TStringList in VCL. | finished by Tim Slusher 28-Sep-99 |
XWindowUtils.pas | Set of useful windows utility functions. FindWindowByThreadID, GetDesktopRect. | finished by Mr.Bonanzas 16-Nov-99 |
XStrUtils.pas | Set of necessary string utility functions. | finished by Mr.Bonanzas |
XDateUtils.pas | Set of functions to work with date and time. XDateTime in XCL made slightly another (days are counting from 30-Dec-0001 B.C., not from 30-Dec-1899 A.D. as it is made in VCL). | finished by Mr.Bonanzas - 25-Sep-99 |
XFileUtils.pas | Set of functions to work with files (XFileExists, XFileCreate, XFileSeek functions). | by Mr.Bonanzas, improved by Tim Slusher 28-Sep-99 |
ZFileChange in XFileChange.pas |
Class (derived from ZThread) to notify about changes in given folder or folders tree. | by Tim Slusher 21-Oct-99, finished |
XShellLinks.pas | Set of functions to work with Wondows shortcuts (shell links). Now function ResolveLink is ready to use. | finished by Mr.Bonanzas - 16-Nov-99 |
XStreams.pas | ZStream, ZFileStream and ZMemoryStream classes to work with streams. | by Tim Slusher 28-Sep-99 |
function JustOne( Id : String ) : Boolean in XJustOne.pas |
Very simple JustOne function to allow only one instance of given applet to execute. | finished by Mr.Bonanzas - 30-Sep-99 |
function JustOneNotify(...) : Boolean and
JustOneNotifier: ZJustOneNotifier in XJustOneNotify.pas |
Like above, but allows also get notifications about attempts to run other instances of applet and command line parameters string of correspondent 'execute' command. | finished by Mr.Bonanzas - 30-Sep-99 |
ZTrayIcon in XTrayIcons.pas |
Allows place icon on tray, remove it, change it or its tooltip text and get mouse messages from it. | finished by Mr.Bonanzas - 30-Sep-99 |
HIGH-LEVEL GRAPHICS SUPPORT | ||
XGraphicObject,
XPen, XBrush, XFont, XGraphicsManager in XGraphics.pas |
Basic graphics objects and other definition. Primarily these are used with XCanvas, but can be used separately. | finished by Mr.Bonanzas - 20-Jun-99 |
XCanvas,
XCanvasManager in XCanvases.pas |
Similar TCanvas in VCL but smaller and more simple. It does not avoid duplicating of resources but it is intended to paint mainly on WM_PAINT message and this ability is not necessary. At least, it is possible to use additional XCanvasObjectsManager to reuse resources at the expense of increasing code. | finished by Mr.Bonanzas - 20-Jun-99 |
XCanvasObjectManager in XCanvasObjects.pas |
Intended to expand XCanvas with ability to void of duplicating resources and reuse it from heap. If it is not used, executable can be smaller. It is recommended to use it if applet is performing a lot of painting or have big number of controls - to reduce needs in GDI resources. | finished by Mr.Bonanzas - 20-Jun-99 |
XFontRotator in XRotateFonts.pas |
This add-on is intended to allow painting of rotated text (in XLabel and other controls, using XLabel). Setting property Orientation of XFont object is not sufficient to paint rotated text correctly. FontRotator calculates correct size of area to place rotated text and origin point to pass it to Windows.TextOut function. | finished by Mr.Bonanzas - 20-Jun-99, 19-Jul-99 |
XImageList in XImgLists.pas |
API ImageList implementation for XCL (similar to TImageList in Delphi, but easier). | finished by Mr.Bonanzas - 10-Oct-99 |
ZPicture in XImages.pas |
Abstract class to derive different image storages from it (bitmaps, icons and so on). | finished by Mr.Bonanzas - 18-Oct-99 |
ZDDB in XImages.pas |
First bitmap class to store Device
Dependent Bitmaps. More useful than hBitmap handle because can have Canvas and allows
painting onto it. It is possible to free canvas at any time without loosing of the image. Format of image can not be changed and depends on Windows screen mode. |
finished by Mr.Bonanzas - 18-Oct-99 |
ZHiBmp in XImages.pas |
Extended DDB. Allows changing of format. Ambigous if You are going to use DIB bitmaps (below). | finished by Mr.Bonanzas - 18-Oct-99 |
ZDIBitmap in XImages.pas |
Intended to store Device
Independent Bitmap. Pixels of DIB can be directly accessed using property ScanLines[] and
function GetScanLine (faster). ZDIBitmap does not support pf4bit and pf8bit formats, which needs of palette handling. ZDIBitmap needs in Canvas only to paint onto its surface. To draw bitmap itself Canvas is not necessary. This last (and other GDI resources) can be safely free using FreeResources. |
finished by Mr.Bonanzas - 18-Oct-99 |
ZBitmap in XImages.pas |
Full featured DIB bitmap (supporting all formats and handling palette). As well as ZDIBitmap, can draw itself (onto another DC) without Canvas; and allows accessing of pixels fast with ScanLines[] property or GetScanLine function (even faster) | finished by Mr.Bonanzas - 18-Oct-99 |
ZIcon in XImages.pas |
Icon incapsulator. Similar to TIcon in VCL. | finished by Mr.Bonanzas - 18-Oct-99 |
ZGifDecoder, ZGif in XGifs.dcu |
Gif87a and Gif89a implementations for
XCL. Calculating exact transparency mask, allow correct showing of any gif clips. ZGifDecoder is similar to freeware TGifImage from RxLib, but calculates exact transparency mask for every frame. Just decodes gif into series of bitmaps. ZGif provides correct painting of resulting frames of animated gif (it already combined all the frames and it is only need to call its drawing methods to paint given frame). Also ZGif allows to economy resources using its method FreeResources after drawing every frame. |
finished by Mr.Bonanzas - 11-Nov-99 |
SELF-PAINTING CONTROLS These controls require XCanvas and perform painting and other controlling itself, using only API calls. So, size of applet using such controls, is greater then in case of using MFC-based controls only (see below). But is You want to get some effects (e.g. rotating font in labels) or to replace some standard controls with more efficient, this is your choice. All the more self-painting controls do not require window handle, so needs in user resources can be reduced using these ones.
|
||
XCustomControl in XControls.pas |
Prototype of self-painting controls, which use canvas of parent form. | finished by Mr.Bonanzas - 22-Jun-99 |
XLabel in XControls.pas |
Simple self-painting label similar to TLabel in Delphi (but can not WrapWords and to be transparent). | finished by Mr.Bonanzas - 22-Jun-99 |
XCustomBevel in XControls.pas |
Prototype of beveled controls (panels, buttons and so on). | finished by Mr.Bonanzas - 23-Jun-99 |
XBevel in XControls.pas |
Simple panel without caption, beveled as default with raised 3D-frame. | finished by Mr.Bonanzas - 23-Jun-99 |
XPanel in XControls.pas |
Panel very like to TPanel in Delphi. Uses internally XLabel to draw caption. | finished by Mr.Bonanzas - 24-Jun-99 |
XSplitPanel in XSplitPanels.pas |
Panel, divided onto several inner panels.
This control requires XAligns add-on and necessarily includes this last into executable.
Inner panels can be sized with mouse if add-on XSplitSizing is used (call UseSplitSizer). Inner panels ( which are derived from XPanel ) can be put vertically or horizontally, from left/top to right/bottom or from right/bottom to left/top (the last of inner panels is client-aligned, so Side property determines which panel will resizing with form - first or last). |
finished by Mr.Bonanzas - 31-Jul-99 |
XStatus in XSplitPanels.pas |
Status bar similar to VCL TStatusBar but even more power if add-on XSplitSizing is used (in that case inner panels can be sized with mouse). | finished by Mr.Bonanzas - 31-Jul-99 |
XSplitSizer in XSplitSizing.pas |
Add-on, allowing splitting of XSplitPanel and its descendents (i.e., XStatus). | finished by Mr.Bonanzas - 31-Jul-99 |
XGrep in XControls.pas |
Special control to draw grep in bottom-right corner of parent control (usually panel, status inner panel or any other XCustomBevel descendant). Also provides response to WM_NCHITTEST message, growing area where cursor becomes NW-SE and sizing of form is possible. | finished by Mr.Bonanzas 31-Jul-99 |
XGroup in XControls.pas |
Similar TGroupBox in Delphi. Can have title on any part of border. | finished by Mr.Bonanzas - 25-Jun-99 |
XPaint in XControls.pas |
Simple self-painting control with OnPaint message (similar to TPaint in Delphi VCL). | finished by Mr.Bonanzas - 25-Jun-99 |
XCustomCheckBox in XControls.pas |
Prototype for checkboxes and radioboxes. | finished by Mr.Bonanzas - 26-Jun-99 |
XCheckBox in XControls.pas |
Simple checkbox without caption. | finished by Mr.Bonanzas - 26-Jun-99 |
XRadioBox in XControls.pas |
Simple radiobox without caption. | finished by Mr.Bonanzas - 27-Jun-99 |
XCustomCheck in XControls.pas |
Prototype for XCheck and XRadio (look below). | finished by Mr.Bonanzas - 27-Jun-99 |
XCheck in XControls.pas |
Checkbox with caption similar to VCL TCheckBox. | finished by Mr.Bonanzas - 27-Jun-99 |
XRadio in XControls.pas |
RadioBox with caption similar to VCL TRadioBox. | finished by Mr.Bonanzas - 28-Jun-99 |
XCustomButton in XControls.pas |
Simple button without caption or picture. It is intended mainly as prototype of button but therefore can be used itself. | finished by Mr.Bonanzas - 29-Jun-99 |
XButton in XControls.pas |
Simple button with caption. Can be fixed, focusable or speed button, autosizable, aligned, ... | finished by Mr.Bonanzas - 30-Jun-99 |
XDropButton in XControls.pas |
Simple button to represent drop (up, down, right, left) triangle arrow. | finished by Mr.Bonanzas - 01-Aug-99 |
XImgButton in XImgButtons.pas |
Button with image and caption (similar to TBitBtn component in VCL). Uses image from XImageList. | finished by Mr.Bonanzas - 10-Oct-99 |
XScroller in XControls.pas |
Similar to TScrollbar in VCL and even more power. | finished by Mr.Bonanzas - 28-Aug-99 |
XScrollBar in XControls.pas |
Similar XScroller, but more specialized to work in pare with another scrollbar on the same parent control. | finished by Mr.Bonanzas - 28-Aug-99 |
XScrollBox in XControls.pas |
Similar TScrollBox in VCL. It allows place into and scroll other controls. | finished by Mr.Bonanzas - 30-Aug-99 |
XEdit in XEdits.pas |
Similar TEdit in VCL. | finished by Mr.Bonanzas - 08-Sep-99 |
XCaretShower in XCarets.pas |
Add-on providing the painting of
blinking caret in edit controls which are derived from XCustomControl (like XEdit) and has
no window handle. It does not use Windows' caret APIs, instead it paints caret itself what
requires about 1Kbytes of code, but is looking more correctly when controls are overlapped
and requires nothing when not used. Activated by call UseCaret( True ). Can be deactivated at run time. |
finished by Mr.Bonanzas - 08-Sep-99 |
XEditMouseSelect in XEditMouseSel.pas |
Add-on to provide selecting of portions of text in XEdit control with mouse and to scroll its content with mouse. | finished by Mr.Bonanzas - 08-Sep-99 |
XEditClipboard in XEditClipbrd.pas |
Add-on to provide copying/cutting selected part of XEdit text to clipboard and pasting from clipboard to XEdit. | finished by Mr.Bonanzas - 08-Sep-99 |
XEditUndo in XEditUndoExt.pas |
Add-on to provide undo/redo operations for XEdit on pressing CTRL-Z, CTRL-SHIFT-Z or by calling appropriate methods. | finished by Mr.Bonanzas - 10-Sep-99 |
XCustomGrid in XGrids.pas |
Similar to TCustomGrid in VCL but lighter. | finished by Mr.Bonanzas - 12-Sep-99 |
XGrid in XGrids.pas |
Similar to TDrawGrid in VCL but lighter (no fixed rows and columns). | finished by Mr.Bonanzas - 12-Sep-99 |
XListView in XLists.pas |
Similar to TListBox in VCL (without editing). | finished by Mr.Bonanzas - 14-Sep-99 |
XListMouseSelect in XListMouseSel.pas |
Add-on which allows mouse positioning, selecting and scrolling for XListView. | finished by Mr.Bonanzas - 14-Sep-99 |
XListKeySelect in XListKeySel.pas |
Add-on which will allow positioning, selecting and scrolling of lines in XListView with keyboard. | finished by Mr.Bonanzas - 15-Sep-99 |
XListEdit in XListEditExt.pas |
Add-on to provide editing lines of XListView using temporarily created XEdit control. | finished by Mr.Bonanzas - 16-Sep-99 |
XNotebook in XControls.pas |
Similar to TNotebook in VCL. Allows to place children controls on several Pages[], only one of which last (ActivePage) is visible at the time. | finished by Mr.Bonanzas - 20-Sep-99 |
XTabs in XControls.pas |
It seems to be like as TTabControl but slightly different in appearance and behaviour, especially in case than a lot tabs are needed to be shown. I think, my solve of this task more complient then in VCL. | finished by Mr.Bonanzas - 20-Sep-99 |
XTabbedNotebook in XControls.pas |
It is the union of XTabs and XNotebook, where XTabs is controlling ActivePage of Notebook and can be placed at one of four sides of the last. | finished by Mr.Bonanzas - 20-Sep-99 |
XCalendar in XCalendars.pas |
Similar TCalendar in VCL. Can be horizontal or vertical - oriented, first day of week can be changed from Sunday to other (e.g., Monday), and some other features make it even more power (then TCalendar). | finished by Mr.Bonanzas - 26-Sep-99 |
XGauge in XControls.pas |
Similar TGauge. | finished by Mr.Bonanzas - ??-Sep-99 |
XHysto in XHystogramms.pas |
![]() Allows to store and graphically represent mesure values. Has very big set of adjustments. |
finished by Mr.Bonanzas - 24-Nov-99 |
MFC-BASED CONTROLS
These controls are very important, because it is
very easy to create it just constructing interface with existing (globally in Windows)
control classes. These classes are located in standard DLL's, which are supplied by
Windows itself. And these are painting and controlling itself, so code of Mfc-based
controls is very small, and applet can use large set of those without great growing of
size of executable.
|
||
XMfcControl in XMfcControls.pas |
The prototype for all Mfc-based controls below. Derive new Mfc-based controls from it. | finished by Mr.Bonanzas - 19-Jul-99 |
XWCustomStatic in XMfcControls.pas |
The implementation of 'STATIC' control. Needs in further detailization. Potentially can be ancestor of static text label, static bitmap/icon image or event play role of panel with bevels. | finished by Mr.Bonanzas - 19-Jul-99 |
CLabel in XMfcControls.pas |
Derived from XWCustomStatic, is presenting natural Windows label (similar TStaticText in Delphi VCL). If You plan change it often, use anti-flickering add-on below. | finished by Mr.Bonanzas - 19-Jul-99 |
XWCustomPaint in XMfcControls.pas |
Prototype of owner-painting controls. Implemented next after XWlabel to derive XMfcCover (local in XMfcAntiFlick.pas). This last was required to cover XWLabel temporarily and prevent flicks in WM_SETTEXT message. | finished by Mr.Bonanzas - 19-Jul-99 |
CPaint in XMfcControls.pas |
Derived from XWCustomPaint. Similar to TPaintBox in VCL. | finished by Mr.Bonanzas - 19-Jul-99 |
XMfcAntiFlicker in XMfcAntiFlick.pas |
Add-on to avoid flicks in Mfc-based
controls: (1st) by painting through memory bitmap buffer; (2nd) by preventing changing of
caption during assignment new one. Just call procedure UseMfcAntiFlicker before creating the first form in dpr-file (as well as for other add-ons). Size of code added there is about 2 Kbytes. |
finished by Mr.Bonanzas - 19-Jul-99 |
CButton in XMFCControls.pas |
Standard Windows button. | by Tim Slusher (& Vladimir Kladov), finished 27-Oct-99 |
CEdit | Standard Windows edit control. | by Tim Slusher finished 5-Nov-99 |
CMemo | Similar to TMemo in VCL. | by Tim Slusher finished 5-Nov-99 |
XCL TOOLS
This part contains definition of possible external tools which (could be) made using standard VCL. Such utility applications could be used to simplify programming in XCL which is not now "visual" process and seems to be harder then working in IDE. As it is said in introduction, we have to refuse from such IDE beauties as visual form designing using Components Palette and Object Inspector. But this does not mean that it is impossible to create wizard, which could play role of these great tools. Such wizard could allow to design XCL forms and adjust its controls properties and events making XCL-plogramming visual and convenient again. |
||
XCL Wizard | Tool, which allow to preview
XCL form, drop controls onto it, inspect and change its properties and events similar to
how IDE shell does for standard VCL form. Designer takes definitions of controls from its source (may be, taking some of those from comments). In result designer has to generate source for dpr-file and project units. It would be pleasure if the Designer could work interactively generating source code immediately in correspondance with performed commands similar that IDE does. |
??? |
XCL Help This set of documents can be used as help. Well, but creating of help in hlp-format could be very useful to get context help when coding under XCL. If anybody has sufficient experience in creating such format of help and installing it into IDE help, I would be appritiate to accept your assistance. |
||
XCL.hlp | Translation of this documents set
into standard Windows .hlp-file (or set of such files). It is desirable to provide files, needed to traslate its into "hlp" using hhw.exe, because documentation about XCL is always under construction. |
??? |
Here You can see part of hierarchy tree of ready to use XCL controls.
![]() |
Idea of XCL Copyright (C) Kladov Vladimir, 1999 |