Announcement

Collapse
No announcement yet.

SDK Definition

Collapse
This is a sticky topic.
X
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • SDK Definition

    The purpose of the SDK forum is to discuss topics which explain, promote or otherwise utilize SDK programming concepts and techniques.

    For the purposes of this forum SDK Programming is simply defined as code which does not contain DDT statements (see list below).

    On a secondary level, the pervasive use of API to replace, or supplement, many PowerBASIC intrinsic statements is also hallmark of SDK programming. In some cases, PowerBASIC statements are essentially wrappers for API - such as the PowerBASIC OPEN/CLOSE statements, which can be implemented directly with API. Pure SDK would make use of the API and for this forum use of the API is preferred but an absolute requirement.

    In summary, the use of non-DDT code that emphasizes the use of API over intrinsic PowerBASIC statements should be the basis for code and discussions in the SDK forum. It is totally acceptable to discuss aspects of DDT and ASM where those discussions are consistent with the goal of explaining/promoting SDK or in discussions where the content can be considered as supplemental to SDK.

    More than anything else, programming in SDK is most often considered synonymous with the exclusive use of the CreateWindow(EX) API to create windows. That specifically excludes the PowerBASIC Dialog New and Control New statements, which are the foundation on which PowerBASIC DDT is built. It also excludes those PowerBASIC statements which are derivatives of those two statements.

    In summary, Help explicitly defines DDT as statements which begin with these words:
    Accel, CB, Callback Function, Clipboard, Desktop, Display.., Font, Graphic, InputBox, IsMissing, IsWin, MousePTR, Window
    Dialog, Control, ComboBox, Header, ImageList, ListBox, ListView, ProgressBar, Menu, Scrollbar, StatusBar, TAB, Toolbar, TreeView
    But more exactly, here is the exact list of DDT statements which are considered to be DDT - and thus generally inappropriate for these forums:
    Code:
    ACCEL ATTACH - Attach a table of keyboard accelerators to a DDT dialog.
    CALLBACK FUNCTION - Define a Dialog/Control Callback Function block.
    CB.CTL - Return the numeric ID of the control sending a callback message.
    CB.CTLMSG - Return the numeric notification message parameter.
    CB.HNDL - Return the window handle of the parent dialog receiving the message.
    CB.LPARAM - Return the numeric value of the lParam& parameter of the message.
    CB.MSG - Return the numeric value of the message sent by the caller.
    CB.WPARAM - Return the numeric value of the wParam& parameter of the message.
    CB.NMCODE - Return the numeric value of the notification message describing the event which occurred.
    CB.NMHDR - Returns the address (a pointers) to the NMHDR UDT for this notification message.
    CB.NMHDR$ - Returns the contents of the NMHDR UDT as a dynamic string.
    CB.NMHWND - Returns the handle of the control which sent this message.
    CB.NMID - Returns the ID number assigned to the control.
    CLIPBOARD GET BITMAP - A bitmap is copied from the CLIPBOARD and stored in a newly created GRAPHIC BITMAP.
    CLIPBOARD GET OEMTEXT - A text string is retrieved from the CLIPBOARD. If necessary, it is converted to OEM Text format.
    CLIPBOARD GET TEXT - A text string is retrieved from the CLIPBOARD. If necessary, it is converted to ASCII Text format.
    CLIPBOARD GET UNICODE - A text string is retrieved from the CLIPBOARD. If necessary, it is converted to Unicode Text format.
    CLIPBOARD RESET - The contents of the CLIPBOARD are deleted.
    CLIPBOARD SET BITMAP - Copies a GRAPHIC BITMAP to the CLIPBOARD.
    CLIPBOARD SET OEMTEXT - Copies a OEM text string to the CLIPBOARD.
    CLIPBOARD SET TEXT - Copies a ASCII text string to the CLIPBOARD. - 
    CLIPBOARD SET UNICODE - Copies a Unicode text string to the CLIPBOARD. - 
    COMBOBOX ADD - Add a string value to a combo box control. - 
    COMBOBOX DELETE - Remove a string from a combo box control. - 
    COMBOBOX FIND - Strings in the COMBOBOX are searched to find the first string which begins with the specified characters. - 
    COMBOBOX FIND EXACT - Strings in the COMBOBOX are searched to find the first string which exactly matches the specified characters. COMBOBOX GET COUNT - The number of items in the list box of the COMBOBOX is retrieved. - 
    COMBOBOX GET SELCOUNT - The number of selected items in the list box of the COMBOBOX is retrieved. - 
    COMBOBOX GET SELECT - The index of the currently selected item in the list box of the COMBOBOX is retrieved. - 
    COMBOBOX GET STATE - A data item is checked to see if it is currently selected. - 
    COMBOBOX GET TEXT - Retrieve the default text from a combo box. - 
    COMBOBOX GET USER - Retrieve the value in the user data area of the COMBOBOX. - 
    COMBOBOX INSERT - Insert a new data item at a specified location. - 
    COMBOBOX RESET - Remove all strings from a combo box. - 
    COMBOBOX SELECT - Select a string in a combo box and make it the default selection. - 
    COMBOBOX SET TEXT - Replace the string for a specific data item with a new string. - 
    COMBOBOX SET USER - Set a value in the user data area of the COMBOBOX. - 
    COMBOBOX UNSELECT - All items in a COMBOBOX control are set to an unselected state. - 
    CONTROL ADD - Add a custom control to a DDT dialog. - 
    CONTROL ADD BUTTON - Add a command button to a dialog. - 
    CONTROL ADD CHECK3STATE - Add an auto 3-state checkbox to a dialog. - 
    CONTROL ADD CHECKBOX - Add an checkbox to a dialog. - 
    CONTROL ADD COMBOBOX - Add a combo box to a dialog. - 
    CONTROL ADD FRAME - Add a frame control to a dialog. - 
    CONTROL ADD GRAPHIC - Add a graphic control to a dialog. - 
    CONTROL ADD HEADER - Add a header control to a dialog. - 
    CONTROL ADD IMAGE - Add a non-resizing image control to a dialog. - 
    CONTROL ADD IMAGEX - Add an image control to a dialog. - 
    CONTROL ADD IMGBUTTON - Add a non-resizing image button to a dialog. - 
    CONTROL ADD IMGBUTTONX - Add an image button to a dialog. - 
    CONTROL ADD LABEL - Add a text label to a dialog. - 
    CONTROL ADD LINE - Add a line control to a dialog. - 
    CONTROL ADD LISTBOX - Add a list box control to a dialog. - 
    CONTROL ADD LISTVIEW - Add a ListView control to a dialog. - 
    CONTROL ADD OPTION - Add an option button to a dialog. - 
    CONTROL ADD PROGRESSBAR - Add a ProgressBar control to a dialog. - 
    CONTROL ADD SCROLLBAR - Add a scroll bar control to a dialog. - 
    CONTROL ADD STATUSBAR - Add a StatusBar control to a dialog. - 
    CONTROL ADD TAB - Add a Tab Control to a dialog. - 
    CONTROL ADD TEXTBOX - Add a text box control to a dialog. - 
    CONTROL ADD TOOLBAR - Add a ToolBar control to a dialog. - 
    CONTROL ADD TREEVIEW - Add a TreeView control to a dialog. - 
    CONTROL DISABLE - Disable a control so that it no longer accepts user interaction. - 
    CONTROL ENABLE - Enable a control so that it can receive user interaction. - 
    CONTROL GET CHECK - Get the Check State of a 3-state, checkbox, or option button. - 
    CONTROL GET CLIENT - Get the client area dimensions of a control. - 
    CONTROL GET LOC - Get the location of the specified control in a dialog. - 
    CONTROL GET SIZE - Get the size of a control in the specified dialog. - 
    CONTROL GET TEXT - Get the text from a control. - 
    CONTROL GET USER - Retrieve a value from the user data area of a DDT control. - 
    CONTROL HANDLE - Return a window handle for a given control ID. - 
    CONTROL HIDE - Make a Control invisible. - 
    CONTROL KILL - Remove a control from a dialog. - 
    CONTROL NORMALIZE - Make a Control visible. - 
    CONTROL POST - Place a message into the message queue of a control (non-blocking). - 
    CONTROL REDRAW - Schedule a control to be redrawn. - 
    CONTROL SEND - Send a message to a control and wait for it to be processed. - 
    CONTROL SET CHECK - Set the Check State for a 3-state or checkbox control. - 
    CONTROL SET CLIENT - Change the size of a control to a specific client area size. - 
    CONTROL SET COLOR - Set the foreground and background color of a control. - 
    CONTROL SET FOCUS - Set the keyboard focus to the specified control. - 
    CONTROL SET FONT - Select a font to be used for a particular Windows Control. - 
    CONTROL SET IMAGE - Change the icon or bitmap displayed in an IMAGE control. - 
    CONTROL SET IMAGEX - Change the icon or bitmap displayed in an IMAGEX control. - 
    CONTROL SET IMGBUTTON - Change the icon or bitmap displayed in an IMGBUTTON control. - 
    CONTROL SET IMGBUTTONX - Change the icon or bitmap displayed in an IMGBUTTONX control. - 
    CONTROL SET LOC - Move the control to a new location in the dialog. - 
    CONTROL SET OPTION - Set the Check State for an option (radio) control. - 
    CONTROL SET SIZE - Change the size of a control. - 
    CONTROL SET TEXT - Change the text in a control. - 
    CONTROL SET USER - Set a value in the user data area of a DDT control. - 
    CONTROL SHOW STATE - Change the visible state of a control. - 
    DESKTOP GET CLIENT - Retrieve the size of the client area of the desktop, in pixels. - 
    DESKTOP GET LOC - Retrieve the location of the top, left corner of the client area of the desktop, in pixels. - 
    DESKTOP GET SIZE - Return the size of the specified dialog. - 
    DIALOG DISABLE - Disable a dialog so that it no longer responds to user interaction. - 
    DIALOG DOEVENTS - Process pending window or dialog messages for modeless dialogs. - 
    DIALOG ENABLE - Enable a dialog so that it responds to user interaction. - 
    DIALOG END - Close and destroy the specified dialog. - 
    DIALOG DEFAULT FONT - Specify the default DDT font and point size. - 
    DIALOG GET CLIENT - Return the client size of the specified dialog. - 
    DIALOG GET LOC - Return the location of the specified dialog. - 
    DIALOG GET SIZE - Return the size of the specified dialog. - 
    DIALOG GET TEXT - Retrieve the text in a dialog or window caption. - 
    DIALOG GET USER - Retrieve a value from the user data area of a DDT dialog. - 
    DIALOG HIDE - Make a Dialog invisible. - 
    DIALOG MAXIMIZE - Maximize a Dialog. - 
    DIALOG MINIMIZE - Minimize a Dialog. - 
    DIALOG NEW - Create a new dialog in memory, ready for display. - 
    DIALOG NONSTABLE - Make a Dialog non-stable (closeable). - 
    DIALOG NORMALIZE - Make a Dialog visible. - 
    DIALOG PIXELS - Convert pixels (device units) into dialog units. - 
    DIALOG POST - Place a message in the dialog message queue (non-blocking). - 
    DIALOG REDRAW - Force a dialog and all child controls to be redrawn immediately. - 
    DIALOG SEND - Send a message to a dialog and wait for it to be processed. - 
    DIALOG SET CLIENT - Change the size of a dialog to a specific client area size. - 
    DIALOG SET COLOR - Set the background color of a dialog to a specific RGB color. - 
    DIALOG SET ICON - Change both the dialog icon in the caption, and the icon shown in the ALT+TAB task list. - 
    DIALOG SET LOC - Change the position of a dialog. - 
    DIALOG SET SIZE - Change the size of a dialog. - 
    DIALOG SET TEXT - Set the text in a dialog or window caption. - 
    DIALOG SET USER - Set a value in the user data area of a DDT dialog. - 
    DIALOG SHOW MODAL - Display and activate a modal dialog. - 
    DIALOG SHOW MODELESS - Display and activate a modeless dialog. - 
    DIALOG SHOW STATE - Change the visible state of a dialog. - 
    DIALOG STABILIZE - Make a Dialog stabilized (non-closeable). - 
    DIALOG UNITS - Convert dialog units into pixels. - 
    DISPLAY BROWSE - Display a folder selection dialog to return the user's choice. - 
    DISPLAY COLOR - Display a color selection dialog to return the user's choice. - 
    DISPLAY FONT - Display a  selection dialog to return user choices. - 
    DISPLAY OPENFILE - Display an OpenFile selection dialog to return user choices. - 
    DISPLAY SAVEFILE - Display a SaveFile selection dialog to return user choices. - 
    FONT END - Destroy a font when it is no longer needed. - 
    FONT NEW - Create a new font for use with GRAPHIC PRINT, XPRINT, etc. - 
    GRAPHIC STATEMENTS - All
    HEADER GET COUNT - Retrieves the count of the items in a Header control. - 
    HEADER GET ITEM - Retrieves an HD_Item structure which describes an item in a Header control. - 
    HEADER SEND - Sends a message to a Header control. - 
    HEADER SET ITEM - Sets the attributes of the specified item in a Header Control. - 
    IMAGELIST ADD BITMAP - An bitmap image is added to the IMAGELIST. - 
    IMAGELIST ADD ICON - An icon image is added to the IMAGELIST. - 
    IMAGELIST ADD MASKED - A bitmap is added to the icon IMAGELIST. - 
    IMAGELIST GET COUNT - The number of images in the IMAGELIST is retrieved. - 
    IMAGELIST KILL - The specified IMAGELIST is destroyed. - 
    IMAGELIST NEW BITMAP - A new bitmap IMAGELIST structure is created. - 
    IMAGELIST NEW ICON - A new icon IMAGELIST structure is created. - 
    IMAGELIST SET OVERLAY - Specify an image to be used as an overlay. - 
    INPUTBOX$ - Displays a dialog box containing a prompt. - 
    ISMISSING - Determine whether an argument was passed by the calling code. - 
    ISWIN - Determine whether a Control/Dialog/Window currently exists. - 
    LISTBOX ADD - Add a string value to a LISTBOX control. - 
    LISTBOX DELETE - Remove a string from a LISTBOX control. - 
    LISTBOX FIND - Strings in the LISTBOX are searched to find the first string which begins with the specified characters. - 
    LISTBOX FIND EXACT - Strings in the LISTBOX are searched to find the first string which exactly matches the specified characters. - 
    LISTBOX GET COUNT - The number of items in the LISTBOX is retrieved. - 
    LISTBOX GET SELCOUNT - The number of selected items in the LISTBOX is retrieved. - 
    LISTBOX GET SELECT - The LISTBOX is searched to find the first selected item. - 
    LISTBOX GET STATE - A data item is checked to see if it is currently selected. - 
    LISTBOX GET TEXT - Retrieve the default text from a LISTBOX control. - 
    LISTBOX GET USER - Retrieve the value in the user data area of the LISTBOX. - 
    LISTBOX INSERT - Insert a new data item at a specified location. - 
    LISTBOX RESET - Remove all strings from a list box. - 
    LISTBOX SELECT - Select a string in a list box and make it the default selection. - 
    LISTBOX SET TEXT - Replace the string for a specific data item with a new string. - 
    LISTBOX SET USER - Set a value in the user data area of the LISTBOX. - 
    LISTBOX UNSELECT - A specified data item in the LISTBOX control is set to an unselected state. - 
    LISTVIEW DELETE COLUMN - Delete a column, including its associated header text (if any) from the LISTVIEW control. - 
    LISTVIEW DELETE ITEM - The specified data item is deleted from the LISTVIEW control. - 
    LISTVIEW FIND - Strings in the LISTVIEW are searched to find the first string which begins with the specified characters. - 
    LISTVIEW FIND EXACT - Strings in the LISTVIEW are searched to find the first string which exactly matches the specified characters. - 
    LISTVIEW FIT CONTENT - The width of the specified column is adjusted to fit the width of the data items displayed in that column. - 
    LISTVIEW FIT HEADER - The width of the specified column is adjusted to fit the width of the data items displayed in that column, and the header text at the top of that column. - 
    LISTVIEW GET COLUMN - The width of the designated column is retrieved from the LISTVIEW. - 
    LISTVIEW GET COUNT - The number of data items in the LISTVIEW is retrieved. - 
    LISTVIEW GET HEADER - Column header text is retrieved from the LISTVIEW. - 
    LISTVIEW GET HEADERID - Retrieves the Listview handle and header control id. - 
    LISTVIEW GET MODE - The display mode of the specified LISTVIEW control is retrieved. - 
    LISTVIEW GET SELCOUNT - The number of selected items in the LISTVIEW is retrieved. - 
    LISTVIEW GET STATE - A data item is tested to see if it is currently selected. - 
    LISTVIEW GET STYLEXX - Retrieves the current setting of the LISTVIEW controls extended style. - 
    LISTVIEW GET TEXT - A string data item is retrieved from the LISTVIEW control. - 
    LISTVIEW GET USER - Retrieve the value in the user data area of the LISTVIEW. - 
    LISTVIEW INSERT COLUMN - A new vertical column is defined for Report Mode of the LISTVIEW. - 
    LISTVIEW INSERT ITEM - A new data item is added to this LISTVIEW control. - 
    LISTVIEW RESET - All data items are deleted from the specified LISTVIEW control. - 
    LISTVIEW SELECT - The specified string data item is chosen as selected text for the LISTVIEW. - 
    LISTVIEW SET COLUMN - Change the width of a LISTVIEW column. - 
    LISTVIEW SET HEADER - New column header text is displayed above the specified column on the LISTVIEW control. - 
    LISTVIEW SET IMAGE - The specified image is displayed next to the item specified. - 
    LISTVIEW SET IMAGE2 - The specified image is displayed as a secondary "status" image next to the primary image. - 
    LISTVIEW SET IMAGELIST - Attach an IMAGELIST to the LISTVIEW control. - 
    LISTVIEW SET MODE - Change the display mode of the specified LISTVIEW control. - 
    LISTVIEW SET OVERLAY - The specified overlay image is displayed on top of the image specified. - 
    LISTVIEW SET STYLE - Alter the current settings of the LISTVIEW controls extended style. - 
    LISTVIEW SET TEXT - The text, if any, for the specified data item is replaced with new text. - 
    LISTVIEW SET USER - Set a value in the user data area of the LISTVIEW. - 
    LISTVIEW SORT - All of the items in a LISTVIEW are sorted. - 
    LISTVIEW UNSELECT - The specified data item is set to an unselected state. - 
    LISTVIEW VISIBLE - The specified data item is scrolled, if necessary, to ensure that the data item is visible. - 
    PROGRESSBAR GET POS - The current position of the PROGRESSBAR is retrieved. - 
    PROGRESSBAR GET RANGE - The current range of the PROGRESSBAR is retrieved. - 
    PROGRESSBAR SET POS - Set the current position of the PROGRESSBAR . - 
    PROGRESSBAR SET RANGE - Set the minimum and maximum ranges of the PROGRESSBAR . - 
    PROGRESSBAR SET STEP - Specify the default increment value to be used by PROGRESSBAR STEP. - 
    PROGRESSBAR STEP - Advance the current position of the PROGRESSBAR by the default increment value. - 
    MENU ADD POPUP - Add a popup child menu to an existing menu. - 
    MENU ADD STRING - Add a string or separator to an existing menu. - 
    MENU ATTACH - Attach a menu to a given dialog. - 
    MENU CONTEXT - Create a floating context menu. - 
    MENU DELETE - Delete a menu item from an existing menu. - 
    MENU DRAW BAR - Redraw the menu bar for a given dialog. - 
    MENU GET STATE - Return the state of a specified menu item. - 
    MENU GET TEXT - Return the text associated with a given menu item. - 
    MENU NEW BAR - Create a new menu bar. - 
    MENU NEW POPUP - Create a new popup menu. - 
    MENU SET STATE - Set the state of a specified menu item. - 
    MENU SET TEXT - Set the text of a given menu item. - 
    MOUSEPTR - Change the mouse pointer (cursor) to a new shape. - 
    SCROLLBAR GET PAGESIZE - Retrieve the current page size. - 
    SCROLLBAR GET POS - Returns the current position of the SCROLLBAR. - 
    SCROLLBAR GET RANGE - Returns the current range of the SCROLLBAR. - 
    SCROLLBAR GET TRACKPOS - Retrieve the current position of the scroll box. - 
    SCROLLBAR SET PAGESIZE - Set the current page size. - 
    SCROLLBAR SET POS - Set the current position of the SCROLLBAR. - 
    SCROLLBAR SET RANGE - Set the range of the SCROLLBAR. - 
    STATUSBAR SET PARTS - Set the number of parts to be displayed in the STATUSBAR. - 
    STATUSBAR SET TEXT - Assign the text to be displayed in the specified part of the STATUSBAR. - 
    TAB DELETE - Delete a page from the TAB control. - 
    TAB GET COUNT - Return the number of pages in a TAB control. - 
    TAB GET DIALOG - Retrieve the handle of the dialog for a specific page in a TAB control. - 
    TAB GET IMAGE - Retrieves the index of the image displayed on the specified TAB page. - 
    TAB GET PAGE - Retrieves the page number of the specified TAB page dialog handle. - 
    TAB GET SELECT - Returns the currently selected page in a TAB control. - 
    TAB GET TEXT - The text displayed on the specified page tab is retrieved. - 
    TAB INSERT PAGE - Add a new page to a TAB control. - 
    TAB RESET - Delete all pages in a TAB control. - 
    TAB SELECT - Select a specific page in a TAB control to be the active page. - 
    TAB SET IMAGE - The specified image is displayed on the specified page tab. - 
    TAB SET IMAGELIST - Assign an IMAGELIST to be used in a TAB control. - 
    TAB SET TEXT - Displays the specified text on the tab of the page. - 
    TOOLBAR ADD BUTTON - Add a button to a TOOLBAR control. - 
    TOOLBAR ADD SEPARATOR - Add a separator to a TOOLBAR control. - 
    TOOLBAR DELETE BUTTON - Delete a button from a TOOLBAR control. - 
    TOOLBAR GET STATE - Get the state of a button on a TOOLBAR control. - 
    TOOLBAR GET COUNT - Retrieve the number of buttons on a TOOLBAR control. - 
    TOOLBAR SET IMAGELIST - Attach an IMAGELIST to a TOOLBAR control. - 
    TOOLBAR SET STATE - Set the state of a button on a TOOLBAR control. - 
    TREEVIEW DELETE - Delete a data item from a TREEVIEW control. - 
    TREEVIEW GET BOLD - The bold attribute for a data item is retrieved. - 
    TREEVIEW GET CHECK - The checkmark attribute for a data item is retrieved. - 
    TREEVIEW GET CHILD - Return the handle of the first child item of a specified data item. - 
    TREEVIEW GET COUNT - The number of data items in the TREEVIEW is retrieved. - 
    TREEVIEW GET EXPANDED - The expanded attribute for the data item is retrieved. - 
    TREEVIEW GET NEXT - Return the handle of the next sibling data item. - 
    TREEVIEW GET PARENT - The handle of the parent for a specified data item is returned. - 
    TREEVIEW GET PREVIOUS - Return the handle of the previous sibling data item. - 
    TREEVIEW GET ROOT - The handle of the very first data item (topmost) in the TREEVIEW is retrieved. - 
    TREEVIEW GET SELECT - The handle of the currently selected data item is retrieved. - 
    TREEVIEW GET TEXT - The text of a specific data item is retrieved. - 
    TREEVIEW GET USER - Retrieve the value in the user data area for a specific data item of the TREEVIEW. - 
    TREEVIEW INSERT ITEM - Add a new data item to a TREEVIEW control. - 
    TREEVIEW RESET - All data items are deleted from the specified TREEVIEW control. - 
    TREEVIEW SELECT - Select a specific data item in the TREEVIEW control. - 
    TREEVIEW SET BOLD - Set the bold attribute for specific data item. - 
    TREEVIEW SET CHECK - Set the checkmark attribute for a specific data item. - 
    TREEVIEW SET EXPANDED - Set the expanded attribute for a specific data item. - 
    TREEVIEW SET IMAGELIST - Attach an IMAGELIST to a TREEVIEW control. - 
    TREEVIEW SET TEXT - The text, if any, for the specified data item is replaced with new text. - 
    TREEVIEW SET USER - Set the value in the user data area for a specific data item in the TREEVIEW control. - 
    TREEVIEW UNSELECT - All items in the TREEVIEW control are set to an unselected state. - 
    WINDOW GET HANDLE - Retrieves the handle of a Window. - 
    WINDOW GET ID - The integral ID of the window is retrieved. - 
    WINDOW GET PARENT - The handle of the parent is retrieved. - 
    WINDOW GET STYLE - Retrieves the style of the Window. - 
    WINDOW GET STYLEX - Retrieves the extended-style of the Window. - 
    WINDOW GET USER - Retrieves the 32-bit user data value associated with the window. - 
    WINDOW SET ID - Changes the integral ID of the window. - 
    WINDOW SET STYLE - Changes the style of the Window. - 
    WINDOW SET STYLEX - Changes the extended-style of the Window. - 
    WINDOW SET USER - Changes the 32-bit user data value associated with the window.
    Comments and suggestion to this post are welcome!
    Last edited by Gary Beene; 23 Oct 2014, 02:17 PM. Reason: added Graphic Commands

  • #2
    This thread is unlocked and open for comments.

    Comment


    • #3
      Some of the statements, such DISPLAY xxx are not really DDT, although they use the same syntax. They are temporary input dialogs that you can use in a sdk application. If I don't use DISPLAY OPEN/SAVE FILE it is mainly because because you can't get the Windows 7 look with them. ISMISSING is not DDT, and the IMAGE LIST statements can be used both by SDKers and DDTers.
      Forum: http://www.jose.it-berater.org/smfforum/index.php

      Comment


      • #4
        But more exactly, here is the exact list of DDT statements which are considered to be DDT - and thus generally inappropriate for these forums:
        There goes the whole point of me using these SDK fora! No need to bother lurkin' now.
        Rod
        I want not 'not', not Knot, not Knott, not Nott, not knot, not naught, not nought, but aught.

        Comment


        • #5
          >There goes the whole point of me using these SDK fora! No need to bother lurkin' now.

          Really?

          If the purpose of this forum includes (as it does, see post #1) "the pervasive use of API to replace, or supplement, many PowerBASIC intrinsic statements is also hallmark of SDK programming" then I have to wonder:

          How are you going to supplement your DDT statements? If there is no DDT statement to something (eg pass a parameter to a sort routine which will sort the contents of a listview control - not available using the LISTVIEW SORT statement), you're just going to forget about the possibility of using some advanced features available to Windows' programmers?
          Michael Mattias
          Tal Systems Inc. (retired)
          Racine WI USA
          [email protected]
          http://www.talsystems.com

          Comment


          • #6
            Hey Rodney,
            There goes the whole point of me using these SDK fora! No need to bother lurkin' now.
            Sorry, but I'm not sure what you meant here. Could you clarify?

            Comment


            • #7
              Simple, I only want to enhance DDT. The SDK is not the be all, end all that is being implied by some posters.

              That some have issues with DDT because it doesn't do all they want is the same reason that I have issues with the SDK, it doesn't do all I want.

              There's no point in me learning only half of what I want to learn, and if we can't investigate how the use of some element of SDK affects, enhances, or alters DDT then there's not much point. IMO.

              Why should users of DDT, Bob's pride and joy, have to be submerged? Using outdated arguments of speed and size does not justify using SDK only. Other factors have come into play in the twenty years that have elapsed since those two were significant.

              Nor am I interested in migrating my code to SDK, I only want what might make my DDT better. Ergo, there's no point in me lurking.
              Rod
              I want not 'not', not Knot, not Knott, not Nott, not knot, not naught, not nought, but aught.

              Comment


              • #8
                It is not reasonable to expect from programmers that don't use/like DDT to make efforts to improve it. The appropriate forum for that is the DDT-only forum, in which "comments about SDK programming are allowed only for functionality which enhances DDT." If you have comments about DDT programming that could enhance SDK programming, please post them.
                Last edited by José Roca; 23 Oct 2014, 09:22 PM.
                Forum: http://www.jose.it-berater.org/smfforum/index.php

                Comment


                • #9
                  Any DDT that uses a little SDK enhances the SDK.
                  Rod
                  I want not 'not', not Knot, not Knott, not Nott, not knot, not naught, not nought, but aught.

                  Comment


                  • #10
                    Hey Rodney,
                    I guess I'm with Jose on his comment. There's a DDT forum with a charter that allows SDK to be used for the improvement of DDT code. But that doesn't seem to be what you're asking for.

                    So, if you had exactly what you want, what would that be?

                    Comment


                    • #11
                      So, if you had exactly what you want, what would that be?
                      It wouldn't be a forum that allows C or C++ or COBOL code but doesn't allow DDT.

                      That there are some very good SDK coders participating the the fora has been one of the blessings of the fora. However, some of those very good coders have completely missed the concept and the power of DDT, quite likely because their activities were on the leading edge of some part of the programming world that DDT was not addressing yet because of limited need for that part.

                      As well, there's already an SDK/API forum, and has been for a number of years, that the SDKers haven't bothered to use, why should there be two of them? This is seeming more and more like an effort to ruin DDT than it is to enhance knowledge of the SDK.
                      Rod
                      I want not 'not', not Knot, not Knott, not Nott, not knot, not naught, not nought, but aught.

                      Comment


                      • #12
                        Rod,

                        I fail to see what you are after, the DDT forum is there for you, the normal PBWIN forum is there to help you where this forum for SDK style API programming is to isolate it from DDT code so that high powered SDK style applications, design and techniques are available to PB programmers. The last thing it needs is to be flooded with garbage.

                        There are a number of people who float around here with 20 or more years experience at writing API style code and to be a little blunt, the DDT folks don't have anything to teach them. If you want to spend the time with the learning curve to write API based applications, this place will be here for you.

                        Among the tasks this forum is supposed to serve is to attract back the many excellent programmers who faded away with the flooding of DDT code and this allows the language to be seen in its real light, a flexible powerful language that is capable of competing with the big boys. Reduce the language down to the "Mickey Mouse Club" and people will laugh at it as they have done with BASIC for years.
                        hutch at movsd dot com
                        The MASM Forum

                        www.masm32.com

                        Comment


                        • #13
                          Hey Rodney,

                          >>>...coders have completely missed the concept and the power of DDT
                          Even if that were true, I'm still missing why you feel that's something you have to complain about. Doesn't live and let live apply here?

                          Re: this ...
                          >>>As well, there's already an SDK/API forum
                          What forum is that? For sure, I've not viewed something the same way as you seem to be doing.

                          >>>effort to ruin DDT than it is to enhance knowledge of the SDK.
                          I don't see it that way at all - any more than the DDT forum was intended as a way to ruin SDK. I plan to use both technologies and if having an SDK forum encourages the SDK proponents to more actively participate online, then I think that is a good thing.

                          Sorry, but I'm at a loss to understand what your concern is. The PBWin and DDT forums both allow the use of API or other technologies to enhance DDT. Is that not the forum opportunity that you are promoting?

                          This ...
                          >>>It wouldn't be a forum that allows C or C++ or COBOL code but doesn't allow DDT.
                          But that's still not the answer of what you want. Bluntly, what action would you want the Admin to take, and why?

                          Comment


                          • #14
                            And Steve,
                            Could you have been any more patronizing? These are exactly the kinds of comments which will push folks away from this SDK forum - the opposite of what we intend.
                            ... high powered SDK style applications
                            ...flooded with garbage.
                            ... the DDT folks don't have anything to teach them.
                            ... spend the time with the learning curve to write API based applications, this place will be here for you.
                            ...this allows the language to be seen in its real light
                            ... of competing with the big boys.
                            ...Reduce the language down to the "Mickey Mouse Club"
                            As I think most of those comments are vague and based on opinion, not fact, it's tempting to get into a debate about what you say.

                            But the point of this forum is to promote SDK and provide a place for it's practice, not to attack DDT. Let's stick to discussing the merits of SDK and let the DDT folks draw their own conclusions. Please keep the attitude to a minimum.

                            Comment


                            • #15
                              > It wouldn't be a forum that allows C or C++ or COBOL code but doesn't allow DDT.

                              It is not our purpose to forbid DDT. What happens is that DDT can't be used with SDK windows. At most, it can be used to build temporary input dialogs, that is for what the Dialog Window Enfine was designed for. Try to use DDT statements with a SDK window and see what happens.
                              Forum: http://www.jose.it-berater.org/smfforum/index.php

                              Comment


                              • #16
                                Gary,

                                Probably a little terse but it seems unusual that anyone using a limited wrapper system is in a position to tell other folks who have been at it for over 20 years what they should be learning.

                                DDT is well catered for in the PB forum where API code has been in the decline for years due to the flooding of DDT code. Technical issues are not a popularity contest in the form of clicking "Like" in Facebook, its based on hard work and complexity that is entailed with API based code.

                                I regularly deal with people who not only don't write basic but laugh at it calling it crayon scribblings and it is for a simple reason, a vast amount of basic code in junk with lousy architecture and a lack of decent technique.

                                PowerBASIC is capable of being a lot better than this and it can compete with most others but keep selling it as "Mickey Mouse Club" scribblings and the numbers will keep dropping off.
                                hutch at movsd dot com
                                The MASM Forum

                                www.masm32.com

                                Comment


                                • #17
                                  Originally posted by Steve Hutchesson View Post

                                  I regularly deal with people who not only don't write basic but laugh at it calling it crayon scribblings and it is for a simple reason, a vast amount of basic code in junk with lousy architecture and a lack of decent technique.
                                  PowerBASIC is capable of being a lot better than this and it can compete with most others but keep selling it as "Mickey Mouse Club" scribblings and the numbers will keep dropping off.
                                  Steve,
                                  There are also those that jeer at your use of MASM as some kiddie assembler with all its highfalutin MACROS .IF .WHILE INVOKE. etc..
                                  Be a real man and dump all them there new thingies....


                                  James

                                  Comment


                                  • #18
                                    Guys,
                                    Please put a cap on the trolling comments. Extoll the benefits of you coding choice all you want, but keep the comments professional.

                                    Comment


                                    • #19
                                      Gary, there are actually two fora that SDKer's have, now obviously, been ignoring for years. One is the "My Favorite API" and the other is the "Programming" forum which has the guideline "User to user discussions of general programming topics such as algorithms, APIs, etc."

                                      And for years, those interested in SDK could gain access to José's forum with his permission. He has been able to keep out the riff-raff like me.

                                      What the SDKers don't seem to understand is that the SDK, from the Basic point of view, is backwards, and while recognizing the necessity of supporting its use, PowerBASIC, under it's founder, tried to keep these fora for Basic.

                                      I do considerable coding that most of you never see and I so rarely have to use SDK to complete my tasks that I feel sorry for those that think they have to deal with it on a regular basis.

                                      By making it a non DDT forum, you've inadvertently created a place where PowerBASIC's core materials are ignored and this is decidedly negative to PowerBASIC and Bob's hard work.
                                      Rod
                                      I want not 'not', not Knot, not Knott, not Nott, not knot, not naught, not nought, but aught.

                                      Comment


                                      • #20
                                        Hi Rodney!
                                        We are definitely looking that the same forest and seeing different trees.

                                        ...two fora that SDKer's have, now obviously, been ignoring for years. One is the "My Favorite API" and the other is the "Programming" forum which has the ...algorithms, APIs, etc."
                                        Heck, as I recall, Bob created the My Favorite API forum at my request. And I can assure you that SDK was not part of the story. As best I know, there's not one single SDK entry that's ever been put in that forum.

                                        I'm working hard to debunk the concept that using API is exclusively associated with SDK. I use API every day with my DDT apps because there are features I want to add to my apps that require the use of API.

                                        My minimal definition of SDK is simply whether or not you are using the CreateWindowEX API to create windows. If you're not using CreateWindowEX, then you're not using SDK. Just because there are other API (and no DDT) in your code doesn't make it SDK.

                                        He has been able to keep out the riff-raff like me.
                                        Actually, Jose gave me a DDT section on his forum back when we thought the PowerBASIC forums might disappear. I'll admit it's very inactive, but only because these forums have stayed in place. But it's still there and open to posts.

                                        ...it's founder, tried to keep these fora for Basic.
                                        I've only been here 5 years, so I can't speak to anything beyond that. But what I saw from Bob was that he tried to keep the SDK folks from bad-mouthing DDT. He wasn't against SDK (heck, Poffs can find you lots of that in these forums). What he was against were folks whose refused to accept/embrace the direction he decided to take with the PowerBASIC product. That's not at all the same as attempting to keep the forums free of SDK content.

                                        ...so rarely have to use SDK to complete my tasks
                                        That's my experience as well - not a single app of mine uses CreateWindowEX.

                                        ... you've inadvertently created a place where PowerBASIC's core materials are ignored and this is decidedly negative to PowerBASIC and Bob's hard work.
                                        As you can see from my comments above, I don't think for a second that allowing SDK to flourish is in any way negative to PowerBASIC nor to Bob's hard work.

                                        And if you've been watching my posts here, you'll see that I have been following exactly in his footsteps by refuting posts which express an unjustified bias against DDT.

                                        The only thing new with me is that I allow the discussion to take place - definitely something Bob put a tighter thumb on. I'm more concerned about people getting the most of the product they bought than I am about pigeon-holing anyone into a specific use of the PowerBASIC products.
                                        Last edited by Gary Beene; 24 Oct 2014, 03:09 PM.

                                        Comment

                                        Working...
                                        X