WO1999061977A1 - System for visualizing items in user-provided environment - Google Patents

System for visualizing items in user-provided environment Download PDF

Info

Publication number
WO1999061977A1
WO1999061977A1 PCT/US1999/011624 US9911624W WO9961977A1 WO 1999061977 A1 WO1999061977 A1 WO 1999061977A1 US 9911624 W US9911624 W US 9911624W WO 9961977 A1 WO9961977 A1 WO 9961977A1
Authority
WO
WIPO (PCT)
Prior art keywords
image
screen
vapιcture
sub
item
Prior art date
Application number
PCT/US1999/011624
Other languages
French (fr)
Inventor
Richardo Salas
Roberta L. Dreis
Original Assignee
Visual Applications, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Visual Applications, Inc. filed Critical Visual Applications, Inc.
Priority to AU42071/99A priority Critical patent/AU4207199A/en
Publication of WO1999061977A1 publication Critical patent/WO1999061977A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2370/00Aspects of data communication
    • G09G2370/02Networking aspects
    • G09G2370/027Arrangements and methods specific for the display of internet documents

Definitions

  • the invention generally relates to digital image processing and, more particularly without limitation, to a method and apparatus for producing a computer generated display that permits visualization of changes to the exterior or interior of any building structure
  • Photoshop and similar programs allow users to "cut and paste” images onto a composite background image and to fill a particular area with a pattern Some of these graphics and drawing programs also allow the pasted images to remain as objects over the composite background image Programs have been proposed which allow a user to preview a few selected images of certain home improvement products agamst a predefined digitized background image of an interior room or other portion of a house that is not a background unique to each user
  • U S Patent No 4,970,666, to Welsh, et al teaches a system for producing video images which depict the appearance of a simulated structure in a video-derived image of an actual environment
  • the system disclosed in the '666 patent does not provide access to information about the image elements from a database by means of linking particular information related to each of the products of the images being manipulated relative to the background image of the user's individually desired environment
  • the '666 patent does not provide mternet-type access to information related to the image elements placed over or merged with a background image by means of an interface associated with a computer generated screen display
  • the system in the '666 patent lacks the ability to manipulate — such as object resizmg, distorting, edge smoothing, etc , for example ⁇ digital images of available products over the background image
  • What is needed is a visualization system that enables displaying of mampulatable images of items on a background image wherein the images are obtainable from internet-type sources as well as
  • a computer system having a screen structured to display a computer- generated display, at least one source mechanism structured to enable generation of at least one background image, the at least one source mechanism including at least one internet-type source containmg ingredients structured to enable generation of at least one item image of an item and to enable generation of a trigger image associated with the at least one item image, and a connection mechanism structured to operably connect the computer system to the at least one source mechanism wherein the connection mechanism includes at least one internet-type connection structured to operably connect the computer system to the at least one internet-type source, and wherein the computer system and the connection mechanism are cooperatively structured to selectively retrieve and display the at least one background image on a first screen portion of the screen, display the trigger image associated with the at least one item image on a second screen portion of the screen, and enable the at least one item image associated with the trigger image to be displayed on the at least one background image on the first screen portion by selectively performing a
  • the computer system is also structured to display the thumbnail image associated with the another of the at least one item image on a third screen portion of the screen, and enable the another of the at least one item image associated with the thumbnail image to be displayed on the background image on the first screen portion by selectively performing the drag and drop operation on the thumbnail image on the third screen portion, to simultaneously display two of the at least one item images on the background image on the screen, wherem any of the two of the at least one item images may be generated from ingredients contamed in either of the at least one internet-type source and the second source mechanism, to selectively display, at least partially, either of the two of the at least one item images on the other of the two of the at least one item images displayed on the background image on the screen, to simultaneously enable "see through” characteristics of either of the two of the at least one item images relative to the other of the two of the at least one item images and the background image apparently positioned there behind to the extent that features of the background image are not foreclosed by the other of the two of the at least one item images apparently positioned between the
  • At least one source mechanism containing ingredients structured to enable generation by the computer system of at least one background image, an item image of an item portrayed by at least one image object, and an icon image associated with the at least one image object
  • a computer system having a screen structured to display a computer-generated display, and an object area creating mechanism structured to permit automatic creation of a user-selected object area of the computer-generated display on the screen including an automatic creation of an image object containmg a sprite image and a mask image associated with the object area wherem the object area is structured to receive and display the item image of the at least one image object therein, and a connection mechanism connecting the computer system to the at least one source mechanism, and wherein the computer system and the connection mechanism are cooperatively structured to selectively retrieve and display the at least one background image on a first screen portion of the screen, create the object area comprising a user-selected area of the at least one background image displayed on the first
  • the at least one item image may comprise a set of sub-item images of an item from different perspectives, and wherein the computer system and the connection mechanism are cooperatively structured to enable the sub-item images of the at least one item image to be selectively and separately displayed in association with the object area on the background image by performing a drag and drop operation on the icon image on the second screen portion
  • the ingredients of the at least one source mechanism are further structured to enable generation of a sprite image and a mask image associated with each of the sub-item images of the set, with the computer system structured to, m conjunction with the mgredients, enable "see through" characteristics of each of the sub-item images of the set as displayed in association with the object area on the screen
  • the system is structured to display a control slider image on the screen, for use in conjunction with a pointing device of the computer system, to enable the selective and separate viewing of the sub-item images of the set
  • the different perspectives of the item portrayed by the sub-item images of the set may have substantially equi-ang
  • the at least one source mechanism contains ingredients structured to enable generation by the computer system of at least one pattern image and an icon image associated with the at least one pattern image, with the computer system including an outlining mechanism structured to permit outlining of a user-selected area of the computer-generated display on the screen, and a pattern autoscalmg mechanism structured to automatically resize the computer-generated display within the user-selected area pursuant to a user-determined scale defined relative to the at least one background image displayed on the screen, wherem the computer system and the connection mechanism are cooperatively structured to define a user-determined scale relative to the at least one background image displayed on the first screen portion, and enable the at least one pattern image associated with the icon image to be automatically resized pursuant to the user-determined scale and displayed in the user-selected area on the background image displayed on the screen by performing a drag and drop operation on the icon image on the second screen portion
  • the system is structured to cause the pattern image to be displayed m association with the object area while adopting the mask image of the object area and thereby enable "see through"
  • a computer system havmg a screen structured to display a computer-generated display, at least one source mechanism contammg ingredients structured to enable generation of at least one background image, at least one item image comprising a mam image of an item and a plurality of sub-comp images, where each of the sub-comp images is linked to a pre-determmed location relative to the mam image, and an icon image associated with the at least one item image, and a connection mechanism connecting the computer system to the at least one source mechanism, and wherein the computer system and the connection mechanism are cooperatively structured to selectively retrieve and display the at least one background image on a first screen portion of the screen, display the icon image associated with the at least one item image on a second screen portion of the screen, selectively retrieve and display the mam image, together with a first one of the plurality of sub-comp images, on a third screen portion of the screen, enable removal and replacement of the first
  • Principal objects and advantages of the present invention mclude providmg an system for producing a computer generated display that permits visualization of one or more items on a user-provided background image wherem manipulatable item images are obtainable from internet-type sources through internet-type connections, providmg such a system wherein an item image obtamed from an internet-type source is displayed by the system by performing a drag and drop operation on a trigger image associated with the item image, providmg such a system wherem an item image for display by the system is automatically resized relative to a user-designated vertical dimension defined relative to a vertical feature of the background image, providmg such a system wherem vertical dimensions of an item image for display by the system are automatically resized substantially identically to vertical dimensions of an object area of the background image defined by the user and horizontal dimensions of the item image for display by the system are automatically resized proportionately to vertical dimensions thereof, providmg such a system wherein horizontal dimensions of an item image for display by the system are automatically resized substantially identically
  • FIG. 1 is a schematic representation of a system for visualizing items in a user-provided environment, according to the present invention
  • Fig 2 is a schematic representation of a system for visualizing items m a user-provided environment, illustrating features for utilizing various improvements thereof
  • Fig 3 is a schematic representation of the system for visualizing items in a user-provided environment, illustrating features for providing "see through” characteristics
  • Fig 4 is a schematic representation of the system for visualizing items m a user-provided environment, illustrating features for updating a display as an image is bemg moved
  • Fig 5 is a schematic representation of the system for visualizing items m a user-provided environment, illustrating features for autoscalmg an image using a tape measure tool of the system
  • Fig 6 is a schematic representation of the system for visualizing items in a user-provided environment, illustrating features for autoscalmg an image dropped into an object area of the system
  • Fig 7 is a schematic representation of the system for visualizing items in a user-provided environment, illustrating features for viewing item images of an item from various perspectives
  • Fig 8 is a schematic representation of the system for visualizing items m a user-provided environment, illustrating features for autoscalmg a pattern image m an outlined area
  • Fig 9 is a schematic representation of the system for visualizing items in a user-provided environment, illustrating features for viewing a mam item image with selected sub-comp images related thereto
  • Fig 10 is a schematic representation of the system for visualizing items m a user-provided environment, illustrating features for displaying a grid image over a background image and items images displayed on the background image, according to the present invention
  • the improved system 1 of the present invention is structured to operate in a 32-bit Microsoft Windows operating system, such as Windows 95, Wmdows 98, Windows NT, or other suitable operatmg system A printout of the computer program shown below contammg the various features and enhancements described herein, which is an integral part of this specification and is incorporated herein by reference
  • the improved system 1 includes the following improvements (i) a drag and drop download improvement 3 wherein item images 4 displayed on a screen 5 of a computer system 7 of the improved system 1 may not only be obtained from a local source 13 but also from internet-type sources 15 connected to the computer system 7 through internet-type connections 17, ⁇ u) an object autoscalmg improvement 23 wherein item images 4 of image objects 25 are automatically resized for display on the screen 5, (in) an image substitution improvement 27 for automatically and successively displaying and manipulating alternative item images 4 on the screen 5, (.v) a pseudo-translational improvement 33 which provides item images 4 of the image objects 25 being displayed on the screen
  • image object generally refers to an entire bundle of ingredients 65 that enable the enhanced system 1 to generate and display on the screen 5 of the enhanced system 1 the pattern image 37 or the item image 4 of an item 53 portrayed by the bundle of ingredients 65 regardless of the source of the mgredients 65, be it local or internet
  • image object may sometimes be used to refer to the item image 4 or the pattern image 37 provided by the bundle of ingredients 65 for display on the screen 7, such as in an object area 67 of the display as discussed herein, as a reminder that the various ingredients 65 associated therewith and properties thereof, such as textual information 73 regardmg the corresponding item 53 for example, remain available for further modification, manipulation and analysis of the pattern image 37 or the item image 4 then under scrutiny by a user of the enhanced system 1
  • EXTERIOR OF A BUILDING STRUCTURE SHOWN IN ITS ACTUAL ENVIRONMENT (heremafter sometimes referred to as the '"944 reference"), which reference is incorporated herein by reference
  • a user may desire to visualize an item 53 found on the Internet relative to the user's own selected environment, or background image 55
  • the user may wish to superimpose an image of a sofa found at a Web site on a digital image of his living room
  • the improved system 1 of the present invention essentially automates the entire visualization process by providing image objects 25 from internet-type sources 15, local sources 13, or both, ready for user-selected modifications and manipulations, which modifications and manipulations are more fully discussed in the incorporated '944 reference
  • the drag and drop download improvement 3 can be briefly described as providing a user with the ability to locate an image object 25 of a selected item 53 stored in an internet-type source 15 with a browser 75 through an internet-type connection 17 The user may then download the ingredients 65 of the image object 25, that enables displaying the item image 4 of the selected item 53, to the user's computer system 7 and display the item image 4 on the selected background image 55 displayed on the screen 5 of the computer system 7 to thereby permit visualizing the item 53 m the user's selected environment
  • the improved system 1 is caused to display a selected background image 55 on a first screen portion 77 of the user's monitor screen 5
  • the background image 55 is generally an environment provided by the user by any suitable means, such as a digital camera, a photograph scanned with a Twain-mterface scanner, a video camera used m conjunction with a frame-grabbing device, or other suitable arrangement
  • the background image 55 may also be generated from digital files provided locally, such as by a local source 13, such as a CD- ROM or HDD component, or from digital data previously scanned into and stored m the user's computer system 7 It is to be understood that the background image 55 may also be generated by downloading necessary ingredients 65 for generating the background image 55 from an internet-type source 15 through an internet-type connection 17
  • the background image 55 which may be a digitized picture of the user's living room for example, is held by the improved system 1 in a form object which can also hold a plurality of image objects 25 portraying selected items 53 such as a sofa and a wall paper pattern for example, which portrayed items 53 appear to be integrated with the background image 55 of the living room as hereinafter described
  • the portrayed items 53 may appear to be mtegrated with each other if various of the corresponding item images 4 should overlap
  • the user's computer system 7 is then connected via a browser 75 to an URL address of an internet source 15 that contains mgredients 65 for a desired image object 25, which ingredients 65 cause a trigger image 85 to be generated from an associated trigger image file 87 and to be displayed on a browser wmdow or second screen portion 89 of the user's monitor screen 5
  • the browser wmdow 89 is preferably resized, generally along one side of the monitor screen 5 as shown in Fig 2, such that a majority of the viewing area of the monitor screen 5 is reserved for viewing of the background image 55
  • the trigger image 85 may have any suitable format, but preferably has a JPEG format
  • the item image 4 associated with the trigger image 85 is then caused to be displayed on the background image 55 on the first screen portion 77 by performing a drag and drop operation 93 on the trigger image 85 on the second screen portion 89, as schematically indicated by the arrow designated by the numeral 93 in Fig 1
  • the drag and drop operation 93 triggers an OLE drop event 95, symbolized by the hub on the arrow 93 designated by the numeral 95, whereupon information associated with the trigger image file 87 that generated that OLE drop event 95 is provided to the improved system 1
  • the improved system 1 parses the name of the trigger image file 87 to determine the names of files that are to be downloaded and used for displaying images associated therewith, namely the "floating" image objects 25 for displaying item images 4 on the background image 55 It should be understood that similar procedures, in whole or in part, may be utilized for downloading the background image 55 if needed, depending on the characteristics of the background image 55 bemg downloaded
  • the bundle of downloadable ingredients 65 may include a sprite image file 103, such as S0000012 jpg, for generating a sprite image 105 of the item 53 portrayed by the associated image object 25, a mask image file 113, such as M0000012 jpg, for generating a mask image 115 associated with the sprite image 105, and a text file 123, such as X0000012 txt, for displaying the textual information 73 mcludmg URL addresses 124 of associated internet sources 15 including selectively accessible auxiliary sources 125 that contain other pertinent information regarding the item 53 portrayed by the associated item image 4
  • the corresponding sprite image 105 and mask image 115 generally are precisely the same size and operably occupy the same display space of the screen 5, but are shown slightly offset in Fig 3 for identification purposes
  • An exemplary name for the trigger image file 87 related to the various associated files 103, 113, 123 of the preceding example could be TRIGGERT0000012 jpg
  • the improved system 1 is thus structured to download ingredients 65 for the item image 4 associated with the exemplary trigger image 85 as follows 1) Code executed upon execution of the OLE drop event 95 returns the name of the trigger image file 87 from a data object which contains that name
  • the first character is then removed and replaced with a selected character, such as "S”, and an extension is appended, such as " jpg", which identifies the name of the associated sprite image file 103, namely S0000012 jpg
  • the names of the sprite image file 103, the mask image file 113, and the text file 107 associated with the trigger image 85 are generally a composite of a fragment of the name of the trigger image file 87 combined with additional string characters recognized by the improved system 1
  • the improved system 1 After identifying the names of the various files containing the mgredients 65 for displaying the desired item image 4, the improved system 1 automatically downloads the associated sprite image file 103 from the appropriate internet source 15 to the user's computer system 7 As a result of the associated drag and drop operation 93 on the trigger image 85, the downloaded sprite image file 103 causes a sprite image 105 of the portrayed item 53 to be displayed on the background image 55 as directed by the user's positioning of a pointer 127 of a pointing device 128 of the computer system 7, such as at the center of the sprite image 105 as shown in Fig 1
  • the mask image file 113 associated with the sprite image file 103 and the corresponding text file 123 are concurrently downloaded with the sprite image file 103 Appropriate contents of those files 103, 113, 123 become properties of the object image 25 of the associated item image 4
  • a request is made on the appropriate server 15 for one of the identified files 103, 113, or 123 usmg the "http" protocol and issumg a GET request via the SENDDATA command of WinSock
  • Steps 1-3 are repeated for each image, namely the sprite image 105 and the counterpart mask image 115 5)
  • steps 1-3 are executed but the information is parsed out from the file "as-
  • the files 103, 113, 123, after downloading, are then available as properties for composing and displaying the associated item image 4 on the screen 5, mcludmg placing information 73 from the text file 123 in the properties of the "floating" image object 25 of the item image 4
  • Application of the mask image 115 of the mask image file 113 to the displayed sprite image 105 of the sprite image file 103 causes the item image 4 thereof to display "see through" attributes of the portrayed item 53 relative to other images 4, 55 shown at a lower level or rearwardly situated position as displayed by the monitor screen 5
  • appropriate parts of the background image 55 may be copied to the sprite image 105 giving the appearance of integration of the item image 4 with the background image 55
  • each item image 4 is custom controlled, such as by capabilities developed with Visual Basic, followed by compiling into an OCX that provides other controls, methods and properties
  • OCX provides other controls, methods and properties
  • a first picture control buffer 129 holds the downloaded sprite image 105 of the item 53 with see-through areas in black
  • a second picture control buffer 130 holds the corresponding downloaded mask image 115 of the item 53
  • a third picture control buffer 131 holds a generated image 132 which is a composite of (.) a captured area image 133 of the background image 55 corresponding to the selected location of the item image 4 and having the same dimensions, ⁇ n) the sprite image 105 of the portrayed item 53, and ⁇ in) the mask image 115 of the portrayed item 53 as schematically illustrated in Fig 3, which generated image 132 is the item image 4 that is visible to the user over the background image 55
  • Each image object 25 superimposed over the background image 55 is generally rectangularly shaped even though the portrayed item 53 may not necessarily have a rectangular shape, such as a sofa Parts of the background image 55, not foreclosed by "solid” aspects of the item image 4, are "painted" to the exemplary sofa image object 25 m order to achieve the visual effect of the sofa 53 appearmg m front and part of the living room 55
  • This effect is accomplished by usmg various functions, such as the MS Wmdows API call BITBLT, that allow combmation of images by applying certain selected operations, such as boolean AND and OR
  • the process of mtegration provided by the improved system 1 can be basically described as follows 1)
  • the rectangularly shaped captured area image 133 is sectioned from the background image 55, wherem the captured area image 133 is equal in size to that of the item image 4, and is copied to the picture control buffer 131
  • a boolean AND operator is then used to combine the mask image 115, held in the picture control buffer 130, with the captured area image 133 in the picture control buffer 131
  • a boolean OR operator is then used to combine the associated sprite image 105, held in the picture control buffer 129, with the composite image m the picture control buffer 131 resulting from the previous AND operation, hereinbefore referred to as the generated image 132 2)
  • the mtegration of the selected item images 4 with the background image 55 and with each of the other displayed item images 4 is accomplished by processing each item image 4 m reverse order, starting with a first item image 4 that is to appear closest to the background image 55 and contmumg in a Z order of levels
  • step 1) may be performed on that item image 4, and steps 1) and 2) may be performed on each of the other item images 4 While the steps 1) and 2) are being performed on the other item images 4, the item image 4 smgled out to receive special treatment is not shown with the background image 55
  • An example of provisions of the improved system 1 for utilizing the mask image 115 m conjunction with the sprite image 105 to enable "see through" attributes of the associated image object 25 is shown below
  • the improved system 1 is structured such that the subject item image 4 can be selectively moved about on the background image 55 by mouse-clicking and draggmg the item image 4 as desired
  • composition process as hereinbefore discussed is executed for all of the displayed item images 4 except for the subject item image 4
  • the sprite image 105 and the mask image 115 of the item image 4 is repeatedly re-processed with the background image 55 via the picture control buffers 129, 130, 131 of the other item images 4 as herembefore described, such as through the use of the BITBLT function, to thereby display the subject item image 4 as being smoothly moved over the background image 55
  • the improved system 1 is structured to accomplish this by a) hiding all other items images 51 but continuing to display the background image 55, b) forming a composite image 137 in a picture control buffer 138 as illustrated in Fig 4, wherein the composite image 137 is identical to the appropriate captured area image
  • an information access mechanism 155 such as a context-sensitive button, pull-down menu, or other suitable arrangement may be activated, whereupon the browser 75 is caused to automatically connect to the associated URL address(es) of the auxiliary source 125, which address(es) are generally derivable from parsmg the text of the downloaded text file 123 associated with the item image 4
  • the browser 75 then automatically accesses the respective information file(s) of one or more auxiliary sources 125
  • the mgredients 65 for the item images 4 may originate from various sources mcludmg a local database 13, an internet server 15 known to the improved system 1, a user database 13 generally contained as an integral part of the computer system 1, such as a CD-ROM or HDD, special application "clipboard" buffers of the improved system 1 , other databases developed to be compatible with the improved system 1 , a user selected area of a background image 55 displayed by the enhanced system 1 , or other suitable arrangement
  • a possible variation for accessing the mgredients 65 from a database 13 contained as an integral part of the computer system 7 is that a thumbnail image 157 is generated on the screen 5 as opposed to the described trigger image 85 for ingredients 65 from an internet-type source 15
  • An example of provisiohs of the improved system 1 for performing a drag and drop operation 93 on a thumbnail image 157 is shown below The term "icon image
  • the improved system 1 In the composing environment wherein one or more item images 4 is being displayed by the improved system 1, as the user moves the mouse pointer 127 over any of the item images 4, a mouse-move event is triggered whereupon the improved system 1 is structured to respond as follows
  • Code executed upon triggering of the mouse-move event causes the improved system 1 to examine the properties of the image object 25 of the item image 4 that triggered the mouse- move event, such as object or item name and manufacturer, for example
  • the improved system 1 is structured to display the button 155 on the screen 5 if the item image 4 was downloaded from an internet-type source 15, by clicking on the displayed button 155, appropriate selected additional pertinent information may be automatically downloaded from the auxiliary source 125, before actually downloadmg, the user is queried for confirmation of launching the browser 75 to access the URL address(es) of the auxiliary source 125 for the desired additional pertinent information, upon confirmation, the improved system 1 is structured to cause the browser 75, such as by a shell command, to connect to the appropriate URL and download the appropriate ingredients 65 for displaying the desired additional pertment information
  • Substantially all available processes for modifying and manipulating item images 4 from local databases 13, as disclosed in the incorporated '944 reference, are also supported for item images 4 downloaded to the computer system 7 from internet- type sources 15 through internet- type connections 17
  • Most changes performed on the content of an item image 4 are first conducted on images m buffers, wherem a sprite image buffer thereof may mclude a Lead control holdmg the image, an MS
  • Benefits provided by the download improvement 3 of the improved system 1 include enablmg a user to preview a product 53 in context before making a purchasing or design decision thereby reducing uncertainty of making a decision which might otherwise result without having a clear idea as to how the product 53 might look and fit in context, and enabling a manufacturer or vendor to provide the general public, professionals, distributors, product representatives and others with the opportunity to download and view their products 53 m context
  • the object autoscalmg improvement 23 of the improved system 1, schematically illustrated in Fig 5 and sometimes referred to herein as the "tape measure” improvement 23, allows the user to view an item image 4 having an autoscalmg property or height value 167, such as the height of cabinets or length of a dress, appropriately resized relative to a proposed environment, namely an associated feature portrayed m the background image 55, such as a kitchen wall or a front view of a person for whom the dress is bemg considered, for example Image objects 25 having the autoscalmg property 167, which permits the associated item image 4 to be used with the object autoscalmg improvement 23, contain the height value 167 m a field, if stored in a local database source 13, or m a text file 123, if stored m an internet source 15
  • the height value 167 represents the actual height, usually in mches, of the item 53 portrayed by the image object 25
  • an image object 25 designed to be used with the object autoscalmg improvement 23 and activated by the drag and drop operation 93 described herem generally has an autoscalmg indicator 175 associated therewith as mdicted m Fig 1, which allows the user to readily identify whether an image objects 25 being considered has the desired autoscalmg property 167 prior to loadmg the mgredients 65 thereof
  • the object autoscalmg improvement 23 m cludes a tape measure tool 176 structured to permit a user to select a vertical spacmg of a particular feature of the background image 55 as a scale 177, such as by dragging the pointer 127 from a lower extremity 178 of the feature to an upper extremity 179 of the feature to select the height of that feature, as indicated in Fig 5
  • the user is then prompted to enter a specified value 181, usually in inches, that the improved system 1 uses, until subsequently changed, as the height of that feature
  • the resulting actions executed by the improved system 1 include (.) from the local database 13, the field containmg the height value 167 is read and used to determine the appropriate resizing of the object image 25, or from the Internet source 15, the associated text file 123 retrieved with the ingredients 65 for generating the sprite image 105 and the mask image 115 of the item 53 generally contain a file lme indicating the height value 167 in inches
  • the enhanced system 1 parses this file line into a variable and uses the value thereof to calculate the resized vertical dimension for the height of the corresponding image object 25 in order to appropriately proportionately display the portrayed item 53 relative to the environment displayed as the background image 55
  • the improved system 1 resizes the image object 25 accordmgly
  • the user desiring to place a cabinet against the back wall of a room measures the height of the wall
  • the tape measure tool 176 is used on a background image 55 displaying that back wall by positioning the mouse pointer 127 at the ceiling line of the displayed back wall and dragging the mouse pointer 127 down to the floor lme of the displayed back wall
  • the user then appropriately enters the height 181 of the back wall, ninety-six mches for example, mdicatmg to the improved system 1 that the item image 4 is to be resized accordmg to a vertical scale 177 of ninety-six inches as defined by the displacement of the mouse pointer 127 when usmg the tape measure tool 176 and displayed relative to the background image 55 as if the item 53 of the item image 4 were standing against that back wall
  • the image object 25 of the desired cabinet is then located in a database, local 13 or internet 15, and appropriately dropped on the background image 55, whereupon the cabmet item image 4 is automatically resized and shown positioned as indicated by the
  • the height value 167 of an image object 25 retrieved from the local source 13 or downloaded from an internet source 15 is applied by the improved system 1 m the following manner
  • the resized item image 4 is then appropriately displayed and composed with (.) the background image 55, and (..) the other item images 4 displayed on the background image 55 as herem described
  • the object autoscalmg improvement 23 may be used in conjunction with the download improvement 3 — which allow a downloaded item image 4 to be brought in at the correct height relative to an adjacent wall such as furniture
  • Exemplary benefits provided by the object autoscalmg improvement 23 include allowing the user to view a product or item 53 realistically and m appropriate dimensions relative to those of a feature portrayed m the background image 55, allowing the user to preview whether the item 53 appropriately fits in a particular area or environment ⁇ such as a dress on a person, or a TV m an entertainment center, previewing items 53 to assist with the design or purchase decision, and reducing the uncertainty of buying without knowmg how a particular product
  • the image substitution improvement 27 of the improved system is structured to remove existmg bitmaps in existing image objects 25 and replace them with other selected bitmaps It is to be understood that the improved system 1 is also structured to create an object area 67 as a newly created image object 25, including a sprite image 105 and a mask image 115 pertinent thereto, for the purpose of holding bitmaps that are compatible with the remove and replace capability provided by the image substitution improvement 27 as described herem
  • An object area 67 may be created by using one of the area creation tools provided by the improved system 1, some of which tools automatically program the object area 67 as an image object 25 for convenience
  • any existing image object 25 bemg displayed on the screen 5, sometimes referred to herein as "floating" on the background image 55 can be converted to a programmed area by using a right mouse click on the displayed item image 4
  • the improved system 1 will then process that programmed area accordingly, as hereinafter described
  • Any item image 4 of an item 53 to be placed in an image object 25, mcludmg in an object area 67 preferably has the following components the sprite image 105 comprising a first bitmap for providing the visible portions of the item 53 to be displayed by the improved system 1, such as a tree, and the mask image 115 comprising a second bitmap for providing a corresponding black and white mask mdicatmg the visible areas of the item 53 in black and the see-through areas of the item 53 in white
  • the improved system 1 is structured to (.) "hold” the OLE drop event property 95 which was created when the image object 25 displayed m the associated object area 67 was retrieved or downloaded, which "holding” enables the improved system 1 to re-access the local source 13 or the internet source 15 of the respective image object 25, to obtam additional information from an associated auxiliary source 125 as described herein, and to (..) "hold” the type of selected operation, height proportional, etc , to be performed on any other item image 4 subsequently dropped mto the same object area 67 or under
  • the improved system 1 determines, from ingredients 65 associated with the OLE drop event 95, the address(es) or locations of the source 13, 15 whereat additional mgredients 65 of the selected image object 25 are stored The improved system 1 then retrieves or downloads certain of those additional ingredients 65 from the respective source 13, 15 and places them into an object area buffer 195 as a source image Once copied mto the object area buffer 195, the improved system 1 determines which scaling operation has been selected, such as through the activation of an appropriate context-sensitive button 188, 189, 190, 191 as schematically illustrated m Fig 6, for displaying the source image 187 m the destmation object area 67
  • the image substitution improvement 27 of the improved system 1 allows the user to experiment with various characteristics and modifications of different selected item images 4 before finally selecting a particular modified version of one of the item images 4 selected for display on the background image 55 on the screen 5
  • traditional metaphors provided by prior art systems typically require the user to discard an existing image before replacing it with another image
  • the improved system 1 allows the user to successively and separately drop a plurality of item images 4 in the object area 67 without havmg to delete or create a new object area 67
  • the image substitution improvement 27 of the improved system 1 allows almost thoughtless substitution of item images 4 to thereby encourage and support easy and rapid flow of creativity along with immediate recall of any of the item images 4 which have been previously removed from the object area 67 and replaced by another
  • the benefit of such a flow of creativity and rapid viewmg of proposed changes provided by the image substitution improvement 27 permits the user to concentrate on design and visualization issues rather than on system operational issues
  • the user creates a rectangularly shaped object area 67 on the displayed background image 55 and designates it "Height Proportional" 189, such as by activating a button 189 specifically designed for that purpose, m preparation for dropping an item image 4 of a tree therein
  • the user locates an image object 25 of a first tree, either locally or through the internet, drops the associated tree item image 4 mto the object area 67, and views it in context with the surroundings provided by the background image 55, with the height of the tree item image 4 resized to the height of the object area 67 mto which it was dropped and the width of the tree item image 4 resized proportionately to the height thereof
  • the user may successively drop as many other item images 4 of trees 53 or other items 53 mto the same programmed object area 67 as desired for automatic resizing and viewmg accordingly
  • pattern images 37 such as siding, wall paper, etc , as hereinafter described
  • An example of provisions of the improved system 1 for automatically resizing the horizontal dimensions of the item image 4 relative to a user-provided dimension 181 of the background image 55 and proportionately resizing the vertical dimensions of the item image 4 displayed on the background image 55 is shown below, and for force fitting the item image 4 into an object area 67 on the background image 55 displayed on the screen 5 is shown below
  • the pseudo-translational improvement 33 allows a user to view and modify a set 213 of image objects 25, sometimes referred to herein as sub-image objects 215 of the image object set 213, wherein a plurality of the sub-image objects 215 of the set 213 comprise a series of views of an item 53 portrayed by the sub-image objects 215 taken from different perspectives for use m conjunction with an image of a selected environment, namely in association with a selected background image 55
  • Prior art three-dimensional applications that allow an item to be viewed in a three-dimensional environment typically create a wire frame of the item and then "texture maps" a digital image of the item around the wire frame
  • the improved system 1 differs m that any angular view of the item 53 observed by the user of the improved system 1 is generally provided by a digital photograph of the item 53 and not by a texture mapped wire frame image generated by a computer
  • movable 3D improvement 33 of the improved system 1 is more like the former basic method in that a plurality of associated sub-image objects 215 are stored m a local database 13, such as a CD-ROM or other suitable storage mechanism, or kept on one or more internet-type servers 15 connected to the computer system 7 through internet-type connections 17 and appropriately accessed, such as by a browser- like mechanism 75 Each such sub-image object 215 contams a view of the portrayed item
  • the user locates a desired item 53 either in the local database 13, which causes a thumbnail image 157 to be displayed on the monitor screen 5 of the computer 7, or on an internet server 15, which causes a trigger image 85 to be displayed on the screen 5
  • a first or initial one of the plurality of sub-image objects 215 of the object image set 213 associated with the thumbnail image 157 or trigger image 85 is then caused to be displayed on the screen 5, such as the sub-image object 215 designated by the numeral 216 in Fig 7, by performing a drag and drop operation 93 on the respective thumbnail image 157 or trigger image 85
  • the displaying of the sub-image object 215 may comprise any of several available options, such as (z) simple drop on the background image 55, ⁇ automatically resize the sub-image object 215 and drop on the background image 55 as described elsewhere herem, ⁇ in) drop on previously dropped image object 25 wherein appropriate existmg programmed properties thereof and actions related thereto are automatically assumed by the newly dropped image object 25, such as existmg object
  • the first sub-image object 216 in the sequence of the plurality of sub-image objects 215 of the image object set 213 is displayed on the background image 55
  • the user may selectively move and position this sub-image object 215 on the background image 55 by performing a drag and drop operation 93 on the sub- image object 215 as herembefore described
  • the sub-image object 215 retains all relevant properties thereof, including "see-through" characteristics as described elsewhere herein
  • the improved system 1 is configured to operatively generate and display a control image 217 on the monitor screen 5, which is generally displayed below the sub-image object 215
  • a control image 217 displayed on the monitor screen 5
  • the sub-image object 215 displayed on the screen 5 can be removed and replaced with the next preceding or succeeding sub-image object 215 in the sequence of associated sub-image objects 215 by appropriately moving the slider portion 223 from side to side of the control image 217
  • the various available effects and other operations structured to provide image manipulation may be applied thereto
  • the user finds a sofa image object 25 having ingredients 65 on either the local database 13 or an internet source 15 that utilize the movable 3D improvement 33 creates an object area 67 where the image object 25 is to be "dropped", and performs a drag and drop operation 93 on the thumbnail image 157 or trigger image 85 associated with the sofa image object 25 by clicking on the thumbnail image 157 or the trigger image 85 and dragging the pointer 127 of the pointing device 128 to the object area 67 where the image object 25 is to be displayed
  • the improved system 1 downloads and displays the first sub-image object 216 m the active object area 67 of the background image 55 as hereinbefore described
  • the drag and drop operation 93 follows the same procedures as for non-3D-type object images 25 hereinbefore described but with an additional operation wherem the improved system 1 determines that the initially downloaded sub-image object 215 is associated with other sub-image objects 215 and automatically proceeds to download and store in an array of image buffers 225 the ingredients 65 needed to subsequently display the other sub-image objects 215 associated therewith, such as views of the same sofa 53 viewed from different angles
  • Also downloaded with each of the sub-image objects 25 and become properties thereof are the associated sprite image 105 and mask image 115 and, with the first sub-image object 125, the relevant information for the object image set 213, such as product name, supplier name, associated database location or URL address as appropriate, etc All available processes for an image object 25 displayed on the background image 55 are supported for any of the sub-image objects 215 displayed on the background image 55
  • the first sub-image object 216 of the set 213 is tagged as bemg associated with other sub-image objects 215 whereupon the improved system 1, being structured to accordingly respond to the association tag, generates and displays the control image 27 with the slider portion 223 which, as aforesaid, enables the user to select any desired one of the associated sub-image objects 215 by clickmg on the slider portion 223 with the pomter 127 of the pointing device 128 and dragging the slider portion 223 from side to side as appropriate
  • a slide value 227 serves as an mdex to locate, compose and display the selected sub-image object 215 of the 213 associated with that slide value 227 m context with the background image 55 displayed on the screen 5
  • An association mechanism that maintains the relationship between the sub-image objects 215 of the object image set 213 is retained withm the object image set 213 as a property thereof
  • the first sub-image object 216 of the image object set 213 may hold a string field containing (z) the record ID of the related sub-image objects 215, and ( ⁇ ) a selectable array 237 of different time lapses in milliseconds to be used in conjunction with the animation mechanism 233 and, for an object image set 213 stored in the internet 15, a text file 123 related to the object image set 213 may contam a string specifying the file name of each sub-image object 215 of the plurality of sub-image objects 215 forming the object image set 213
  • the improved system 1 will "play" all of the sub-image objects 215 in a contmuous loop by indexmg through the buffers 225 and displaying each sub-image object 215 after the specified time lapse, the available time lapses bemg kept in a lapse array 237 of number values indicating the milliseconds pause before displaying the next succeeding sub-image object 215
  • An example string "fanl,T10,fan2,T10,fan3,T10,fan4,T10,lHF,tl" in the text file 123 of a sub-image object set 213 sourced from the internet for use with the movable 3D improvement 33 can be described as follows
  • the string is further parsed to determine the identity of the sub-image objects 215 compnsmg the associated image object set 213
  • the parsing is performed as follows
  • the name of the sub-image object 215 is usually the value in the ID field for the record in the table contammg the sub-image object 215
  • Benefits provided by the "movable 3D" improvement 33 include allowing the user to view a product 53, such as a sofa, from various perspectives to more accurately visualize the product 53 relative to a selected background image 55, such as of the user's living room, and simultaneously visualizing the product 53 in conjunction with other available features provided by the improved system 1, such as accessmg selected pertment information 73 regardmg the product 53, which information 73 may be obtained from either the local database 13 or from one or more URL sites 15 on the internet
  • the pattern autoscalmg improvement 35 comprises tiling a bitmap of a pattern image 37 m a programmed object area 67 defined by the user
  • the tiling displayed m the programmed area 67 is resized pursuant to user-provided scaling information 181 while usmg the tape measure tool 176 wherein tiling of the pattern image 37 is scaled relative to a prescribed dimension for a selected vertical characteristic of the background image 55 displayed on the screen 5 of the improved system 1, as hereinbefore described
  • materials and products 53 such as wall-paper and sid g, can be applied as a pattern image 37 to a designated object area 67 of the background image 55 taking mto account the relative dimensions of a selected feature of the background image 55 and an actual vertical dimension 167 of the portrayed material or product 53 that is stored with the mgredients 65 for producmg the respective pattern image 37 as hereinbefore described for image objects 25
  • Procedures for applying the pattern autoscalmg improvement 35 generally include (;) outline a selected area 251 of an
  • An example of the outlining mechanism 253 of the improved system 1 for outlining a user-selected outlined area 251 of the computer generated display on the screen 5 is shown below, and for automatically resizing the computer-generated display within the user-selected outlined area 251 pursuant to a user-determined dimension 181 defined relative to the background image 55 displayed on the screen 5 usmg the tape measure tool 176 is shown below
  • the image object 25 of the pattern image 37 consists of a sprite image file 103 for providing an associated sprite image 105 but with the pattern image 37 adopting the mask image associated with the outlined area 251 into which the pattern image 37 is being dropped
  • the mask image 115 generally comprising a bitmap containing a black polygon with white surroundings with the polygon having the shape of the outline created with the outlining mechanism 253
  • the white portion of the mask image 115 is used to copy overlapping parts of the background image 55 onto the image object 25 in order to simulate "see- through” areas
  • the mask image 115 is applied to show any "see-through” areas to thereby display the content of the image object 25 realistically agamst the environment portrayed by the background image 55
  • the improved system 1 may be structured such that durmg the drag and drop operation 93 and as the pointer 127 of the pomtmg device 128 is moved over the programmed area 251, a compatibility indicator 255 may be activated to indicate whether the programmed area 251 will accept the pattern image 37 desired to be tiled in the programmed area 251 Further, the improved system 1 may be further structured to optionally "tint" the programmed area 251 in order to make that defined area 251 more readily identifiable
  • the pattern autoscalmg improvement 35 may be used to indicate that the front door is eighty inches in height This designation is accomplished by clicking and dragging the tape measure tool 176 along one vertical side of the door in the background image 55 and entering the height 181 of the door 176 in inches
  • the outlining mechanism 253 is then used to delineate an area 251 for sidmg, for example
  • the desired siding pattern 37 is then found in a database, local 13 or internet 15, and displayed in the selected area 251 by performing the described drag and drop operation 93 on the associated icon image 85, 157
  • the pattern autoscalmg improvement 35 then causes the improved system 1 to automatically display the sidmg 37 as proportionally resized relative to the size of the house based on the designated eighty- inch height of the front door 176 and based on an actual height dimension 179 associated with the pattern image 37
  • Benefits provided by the pattern autoscalmg improvement 35 include allowing a potential homeowner vendee to preview products 53 — such as wall-paper, tiles and siding — in a realistic manner, which assists the homeowner in making design and remodeling decisions, reducing the uncertainty of making a decision without visualization, and enabling professionals to bridge visualization gaps and close sales to thereby reduce potential customer dissatisfaction
  • the sub-composition improvement 43 allows the user to construct an item image 4 with various sub- comp images 45 selected from an array 265 of sub-comp images 45 related thereto prior to composmg the item image 4, together with one or more selected sub-comp images 45, with the background image 55 and other item images 4 being displayed on the background image 55 rather than simply dropping an item image 4 onto the background image 55 "as is" as hereinbefore described.
  • the record in a local database 13 that contains an image object 15 that can be "sub-composed" usmg the sub-composition improvement 43 has a sub-comp value m a field indicative of the sub-composition property thereof.
  • a wmdow 273 pops up displaying a mam image 275 of the selected item 53, generally with an initial sub-comp image 45 appropriately positioned relative to the mam image 275.
  • the improved system 1 automatically conducts a search for other sub-comp images 45 related to the main image 275, such as for a relation comprising a recognized set of ID values
  • a relation comprising a recognized set of ID values
  • the database 13 another record may be provided mdicatmg that there is a relationship between the mam image 275 and sub-comp images 45 having an ID field containing "7878". All sub-comp images 45 with related ID records are retrieved and presented to the user as the array 265 for possible pre-composition combmation with the ma image 275.
  • Related sub-comp images 45 are preferably grouped by category in order to present them m an organized manner to the user.
  • Each sub-comp image 45 may also be stored in gray scale in order to permit the user to apply any number of color combinations thereto, such as by using the Lead underlay method.
  • Preferred colors may also stored m color values related to each sub-comp image 45 that is usable in combmation with the mam image object 275 2)
  • the user may select any number of combinations of the sub-comp images 45 as needed m order to construct a desired composition of the selected image object 25 of the main image 275.
  • the mam image 275 may be a digitized picture of a door 53.
  • the array or arrays of 265 of sub-comp images 45 may present the user with different selectable glass inserts to choose from for combining with the door mam image 275, as schematically suggested m Fig 9 Additionally, different door knobs for the door 53 may be presented m a category or array 265 different from the array 265 of glass inserts, each of which door knob may have a different color for the user to select and experiment with m relation to the door 53
  • Each related sub- comp image 45 of a category has identical coordinates relative to the main image 275 m order to be composed with the main image 275 at the same exact location
  • An example of provisions of the improved system 1 for removing a sub-comp image 45 of an image object 25 displayed on the screen 5 and automatically replacing that sub-comp image 45 with another sub-comp image 45 is shown below 3)
  • a unique advantage provided by the sub-composition improvement 43 is the ability to pre- assemble an item 53 with selected features and then dropping the assembled item image 4 into the visualization environment
  • the grid autoscalmg improvement 57 of the enhanced system 1 is structured to superimpose a grid image
  • Option Exphc ⁇ t,P ⁇ vate Composed As Boolean 'Used to stop compose on arrow keys P ⁇ vate StopMove As Boolean 'Used to stop key events to arrow keys,P ⁇ vate offsetx As Single, offsety As Single 'Disitace from mouse to left of object being moved.P ⁇ vate BegmDrag As Boolean 'Flag set to true when movmg an object,P ⁇ vate Xpos As Single, ypos As Single 'Holds old mouse pomt to see it mouse was moved,P ⁇ vate SourceLeft As Integer 'Left of object bemg res
  • vaP ⁇ cture(Index).Move .vaImageBufferl(10).Recordset("left"), vaImageBufferl(10).Recordset("top”); For I 1 To .vaImageBufferl(10).Recordset("Zoom") - Zoom; vaP ⁇ cture(Index).Move (vaP ⁇ cture(Index).Left - .vaImageBufferl(10).Recordset("UndoBackLeft”)) * 0.5, (vaP ⁇ cture(Index).Top -
  • UndoPerspecCoordXl vaP ⁇ cture(Index) PerspecCoordXl
  • UndoPerspecCoordYl vaP ⁇ cture(Index) PerspecCoordYl
  • UndoPerspecCoordX2 vaP ⁇ cture(Index) PerspecCoordX2
  • UndoPerspecCoordY2 vaP ⁇ cture(Index) PerspecCoordY2
  • UndoPerspecCoordY3 vaP ⁇ cture(Index) PerspecCoordY3
  • UndoPerspecCoordX4 vaP ⁇ cture(Index) PerspecCoordX4
  • vaP ⁇ cture(Index).Left vaP ⁇ cture(Index)Left - hsbMam.Value;' ldSp ⁇ teTransferBuffer.SetPicture lmgUndoSp ⁇ te.Picture,' IdMaskTransferBuffer.
  • vaP ⁇ cture(Index).Left vaP ⁇ cture(Index) Left - hsbMain Value,' ldSp ⁇ teTransferBuffer SetPicture lmgUndoSp ⁇ te.Picture,' IdMaskTransferBuffer SetPicture lmgUndoMask.Picture,' ldSp ⁇ teTransferBuffer.Size IdSpriteTransferBuffer.Bitmap Width * amount, ldSp ⁇ teTransferBuffer.BitmapHeight, RESIZE NORMAL,' ldMaskTransferBuffer.Size IdMaskTransferBuffer Bitmap Width * amount, IdMaskTransferBuffer BitmapHeight * amount, RESIZE_NORMAL;' vaP ⁇ cture(Index).
  • Sprite ldSp ⁇ teTransferBuffer.GetPicture,' va
  • vaP ⁇ ctare (An ⁇ mat ⁇ onIndex).Repa ⁇ ntImage picComposite.hDC, vaP ⁇ cture(An ⁇ mat ⁇ onIndex).Left, vaP ⁇ cture(Ammat ⁇ onIndex).Top, frmMDI.ldShadowBuffer, frmMDI.ldShadow; vaPicture(Ammationlndex).
  • va_msg_NoTape LoadResStr ⁇ ng(6873) ' "Must use the tape measure first to display G ⁇ d";If
  • ReDim T meFactorArray(l To 1); End If; 'remove the object; Unload vaP ⁇ cture(ps ⁇ ndex), ObjectZorderl .RemoveFromZorder psindex; ObjectZorderl .RemoveFromPrevZorder psmdex; ObjectZorderl.
  • Selectedlndex 0; SendToFront; If ObjectListLoaded Then frmObjectList.LoadObjectList Me; End If; UpdateShopp ⁇ ngL ⁇ st;End Sub;'In ⁇ t ⁇ al ⁇ zes the form that shows Zoomed image at creating object t ⁇ me;Pubhc Sub Imt ⁇ al ⁇ zeMag ⁇ cZoom();D ⁇ m dum As Integer;On Error GoTo ImtiahzeMagicZoom_Error;If MagicZoom Then; If Mag
  • va_Warnmg2 LoadResStrmg(6251) ' "Click OK to format your hard drive or call Developement”
  • va_cap_ShapeOfBrush LoadResStr ⁇ ng(6045) ' "Shape of brush”
  • va cap Paint LoadResStrmg(6044) ' "Paint”
  • vajrompt LosePerspectiveDrop LoadResStr ⁇ ng(6204) ' "After domg this operation, you will not be able to use perspective drop mode on this object.
  • va_prompt_ModeCont ⁇ nue LoadResStr ⁇ ng(6210) ' "Continue in this mode?"
  • va cap Dialog Continue LoadResStrrng(6410) ' "Continue”
  • va Warmng NoSelected LoadResSt ⁇ ng(6257)
  • va_cap_Grou ⁇ 4 LoadResStr ⁇ ng(6170) ' ") item.
  • va_cap_DownloadCalnceled
  • FormSize.Y 1000 / Screen.Tw ⁇ sPerPixelY
  • FormSize.Y 1000 / Screen.Tw ⁇ sPerPixelY
  • ldScreen.CreateBitmap FormSize.X FormSize.Y, ProgramBits
  • picScreen.Picture IdScreen.GetPicture; ' initialize the rest of the FormState data structure
  • FormatType "TIFF" ' default form type to common TIFF
  • BPPType ProgramBits
  • IsThumb 0 ' default thumbnail stamp to no; 'default filenames to current path plus noname.tif
  • LastPath CurDir + " ⁇ NONAME.TIF"
  • NameOfFile LastPath
  • FPath NameOfFile; ' Case
  • .Width 01dForm.ldImageMask( ⁇ ).W ⁇ dth
  • ' .Height OldForm.ldlmageMask(i) Height, ' .Zorder, ' End With, ' With Me.ldlmage ⁇ bject( ⁇ ) ' next copy image
  • Bitmap 01dForm.ldImageObject( ⁇ ).B ⁇ tmap
  • ' x SetP ⁇ xelB ⁇ ts(Me.ldImageObject( ⁇ ), FormState(Me.Tag).BMB ⁇ ts)
  • ' '.BitmapBits 24, ' Move OldForm.ldlmageObject(i) Left, OldForm ldImageObject( ⁇ ).Top
  • ' Width OldForm.ldlmageObject(i) Width
  • ' Height OldForm ldlmage ⁇ bject( ⁇ ) Height
  • Underlay frmTime.ldOverlay Bitmap
  • InGroup OldForm vaP ⁇ cture(Index).InGroup; vaP ⁇ cture(ObjectZorderl .SelectedIndex).
  • ResizePatPer OldForm. vaP ⁇ cture(Index). ResizePatPer; vaP ⁇ cture(ObjectZorderl . Selectedlndex).
  • PerspecCoordXO OldForm. vaP ⁇ cture(Index).PerspecCoordXO; vaP ⁇ cture(ObjectZorderl .
  • PerspecCoordYO OldForm. vaP ⁇ cture(Index).PerspecCoordYO; vaP ⁇ cture(ObjectZorderl.SelectedIndex).
  • PerspecCoordXl OldForm. vaPicture(Index).PerspecCoordXl; vaPicture(ObjectZorderl.SelectedIndex).
  • PerspecCoordYl OldForm. vaP ⁇ cture(Index).PerspecCoordYl; vaP ⁇ cture(ObjectZorderl .SelectedIndex).
  • PerspecCoordX2 01dForm.vaPicture(Index).PerspecCoordX2; vaP ⁇ cture(ObjectZorderl. Selectedlndex).
  • PerspecCoordY2 OldForm. vaP ⁇ cture(Index).PerspecCoordY2; vaP ⁇ cture(ObjectZorderl .SelectedIndex).
  • PerspecCoordX3 OldForm. vaP ⁇ cture(Index).PerspecCoordX3, vaP ⁇ cture(ObjectZorderl . Selectedlndex).
  • PerspecCoordY3 OldForm. vaP ⁇ cture(Index).PerspecCoordY3, vaP ⁇ cture(ObjectZorderl.SelectedIndex).
  • Perspect ⁇ veType OldForm. vaP ⁇ cture(Index).Perspect ⁇ veType, vaP ⁇ cture(ObjectZorderl . Selectedlndex).
  • ShopNumberOfUmt 01dForm.vaP ⁇ cture(Index).ShopNumberOfUmt; vaP ⁇ cture(ObjectZorderl . Selectedlndex).
  • ShopUnitP ⁇ ce OldForm vaP ⁇ cture(Index).ShopUn ⁇ tP ⁇ ce, vaP ⁇ cture(ObjectZorderl .Selectedlndex).
  • ShopUmt OldForm. vaP ⁇ cture(Index).ShopUmt; vaP ⁇ cture(ObjectZorderl. Selectedlndex)
  • IsTransparent 01dForm.vaP ⁇ cture(Index).IsTransparent; vaP ⁇ cture(ObjectZorderl .Selectedlndex).
  • IsEmbossed 01dForm.vaP ⁇ cture(Index).IsEmbossed, vaP ⁇ cture(ObjectZorderl . Selectedlndex).
  • Islnterpolation OldForm. vaP ⁇ cture(Index).IsInterpolat ⁇ on, vaP ⁇ cture(ObjectZorderl .Selectedlndex).
  • IsText OldForm.
  • frmMDI.picDistort.Picture frmMDI picDistort.Image
  • varLong Me.ldMaskTransferBuffer.GetBitmapDC
  • VA_COMPOSE_NOT_INDEX 0; vaP ⁇ cture(Index).Repa ⁇ ntImage Me.picComposite.hDC, vaP ⁇ cture(Index).Left, vaP ⁇ cture(Index).Top; Me.SendToFront, Else; DisplayErrorMessage VA NOTSELECTED, vblnformation, VaTitle, End If; Else, DisplayErrorMessage VA_NOTSELECTED, vblnformation, VaTitle; End If;End Sub;P ⁇ vate Sub mnuIsInterpolat ⁇ onOn_Chck(); Dim Index As Integer, If ObjectZorderl.
  • VA_NOTSELECTED, vblnformation, VaTitle; End If; Else; DisplayErrorMessage VA_NOTSELECTED, vblnformation, VaTitle; End If;End SubjP ⁇ vate Sub mnuNewNone_Cl ⁇ ck(); CancelPendmgMode; If ObjectZorderl. Count ⁇ 1 Then; DisplayErrorMessage VAJSTOTSELECTED, vblnformation, VaTitle; Exit Sub; End If; If ObjectZorderl. Selectedlndex ⁇ > 0 Then; If vaP ⁇ cture(Me.ObjectZorderl.SelectedIndex).SelectedObject Then; vaP ⁇ cture(Me. ObjectZorderl . Selectedlndex). DropType EZ_NON; Else; DisplayErrorMessage
  • va_msg_UserObject LoadResStemg(6179) ' "User created object, User database item, or Internet catalog item.”, If ObjectZorderl. Selectedlndex > 0 Then ' Check to see if there is an
  • ObjectZorderl. SelectedIndex).DropType EZ_PAT; Else; DisplayErrorMessage VA NOTSELECTED, vblnformation, VaTitle, End If; Else; DisplayErrorMessage VA_NOTSELECTED, vblnformation, VaTitle, End If;End Sub;P ⁇ vate Sub mnuNewSendPrev_Cl ⁇ ck(), CancelPendmgMode; If ObjectZorderl. Count ⁇ 1 Then; DisplayErrorMessage VA_NOTSELECTED, vblnformation, VaTitle; Exit Sub; End
  • VA_NOTSELECTED, vblnformation, VaTitle; End IftEnd Sub;,P ⁇ vate Sub mnuNewSP_Chck(), CancelPendmgMode, If ObjectZorderl. Count ⁇ 1 Then; DisplayErrorMessage VA NOTSELECTED, vblnformation, VaTitle; Exit Sub; End If; If ObjectZorderl .Selectedlndex > 0 Then; If vaP ⁇ cture(Me. ObjectZorderl .Selectedlndex). SelectedObject Then; vaP ⁇ cture(Me ObjectZorderl .SelectedIndex).Dro ⁇ Type EZ_PAT_NO; Else, DisplayErrorMessage
  • vaP ⁇ cture(Me. ObjectZorderl. Selectedlndex). SelectedObject Then; vaP ⁇ cture(Me. ObjectZorderl SelectedIndex).DropType EZ ANY PROP2; Else; DisplayErrorMessage VA_NOTSELECTED, vblnformation, VaTitle; End If; Else; DisplayErrorMessage VA_NOTSELECTED, vblnformation, VaTitle; End If;End Sub;Pubhc Sub mnuObjlst_Click(); frmObjectL ⁇ st.Show;End Sub;Pnvate Sub mnuoff ChckO; If ObjectZorderl .
  • CDVolumn o "User” And vaP ⁇ cture(ObjectZorderl.SelectedIndex).CD Volumn ⁇ > "None” And vaP ⁇ cture(ObjectZorderl.SelectedIndex).CD Volumn ⁇ > "" And vaP ⁇ cture(ObjectZorderl SelectedIndex).DatabaseID ⁇ > 0 Then; frmMDI.pblnfoNet.
  • frmMDI.ldShadowBuffer frmMDI.ldShadow
  • frmMDI ssBottom(l) Caption "" 'turn off at animation download
  • frmMDI ssDrop Caption ""
  • frmMDI PicDrop Visible False
  • frmMDI PicShadow Visible False
  • frmMDI PicTransperant Visible False
  • frmMDI PicAnti Visible False
  • frmMDI PicAmmation Visible False
  • frmMDI p ⁇ cPostIt2 Visible False, End
  • OLEDragDropError,D ⁇ rty Tme
  • Screen MousePomter vbHourglass
  • Shder3D Visible False
  • 'MsgBox "Drop target cannot accept the data
  • frmMDI pblnfoNet Visible False
  • frmMDI pblnfoCD Visible Tme, Elself vaP ⁇ cture(ObjectZorderl Selectedlndex) CDVolumn ⁇ > ""
  • frmMDI.pblnfoCD Visible False, frmMDI.pblnfoCD Visible
  • ObjectZorderl. Selectedlndex Index And vaP ⁇ cture(ObjectZorderl. Selectedlndex). SelectedObject Then; If vaP ⁇ cture(Index).CDVolumn ⁇ > "User” And vaP ⁇ cture(Index).CDVolumn ⁇ > "None” And vaP ⁇ cture(Index).CDVolumn ⁇ > "" And vaP ⁇ cture(Index).DatabaseID ⁇ > 0 Then; frmMDI.pblnfoNet.
  • vaP ⁇ cture(Index).ProportionalHandles Tme
  • vaP ⁇ cture(Index).HandleColor RGB(255, 128, 0); vaP ⁇ cture(Index).
  • SelectedObject Tme, ObjectZorderl.
  • vaP ⁇ cture_HandleMouseUp(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single, Handle As Integer, HandleLeft As Integer, HandleTop As Integer); 'Handle indexes; '; ' 0 1 2; ' * * *; ' 3* *4; ' * * *; ' 5 6 7; X SaveUndo(Index, va_cap_Undo_Re
  • SelectedObject False, vaP ⁇ cture(Index).
  • SelectedObject False; 'UnselectGroup 'check this on right click; End If; vaP ⁇ cture(Index).
  • vaP ⁇ cture(Index) False; End If; If vaP ⁇ cture(Index).
  • SelectedObject False Then
  • frmMDI.pblnfoCD.Visible False
  • frmMDI.pblnfoNet. Visible Tme
  • frmMDI.pblnfoCD.Visible False
  • frmMDI.pblnfoNet. Visible False; End If; If vaP ⁇ cture(Index).
  • LinkLeft vaP ⁇ cture(Index).Left 'OJO DECLARE
  • linktop vaP ⁇ cture(Index).Top; End If; If vaP ⁇ cture(Index).
  • vaP ⁇ cture(Index) .Visible False
  • vaP ⁇ cture(Index).Repa ⁇ ntImage picComposite.hDC vaP ⁇ cture(Index).Left, vaPicture(Index).Top, frmMDI.ldShadowBuffer, frmMDI.ldShadow
  • iRetVal B ⁇ tBlt(p ⁇ cCompos ⁇ te.hDC, vaP ⁇ cture(Index).Left + 8, vaP ⁇ cture(Index).Top + 8, vaP ⁇ cture(Index). Width - 16, vaP ⁇ cture(Index).
  • ObjectlndexCount ObjectlndexCount + 1; End If; If ObjectlndexCount > 0 Then Load vaPicture(ObjectlndexCount), vaPicture(ObjectlndexCount).
  • IdScreen.FloaterWidth IdScreen.FloaterHeight, ldScreen.BitmapBits; IdSpriteTransferBuffer. Combme 0, 0, IdScreen.FloaterWidth, IdScreen.FloaterHeight, ldScreen.Bitmap, IdScreen.RgnLeft, IdScreen.RgnTop, L SRC COPY; IdMaskTransferBuffer.
  • ScaleMode IdScreen.ScaleMode; ldMaskTransferBuffer.CreateBitmap IdScreen.FloaterWidth, IdScreen.FloaterHeight, ldScreen.BitmapBits; ldMaskTransferBuffer.Combine 0, 0, IdScreen.FloaterWidth, IdScreen.FloaterHeight, ldScreen.Bitmap, IdScreen.RgnLeft, IdScreen.RgnTop, CB_RES_0 '
  • Tem ⁇ Index Perspect ⁇ veCoord ⁇ nates(2).Y - OutLine.Size 1 ' - me.ldImageObject(TempIndex).Top,' If ObjectD ⁇ scnpt ⁇ on(Me.Tag, Templndex).
  • PerspectiveCoordmates(0).X - OutLme.Size 12 '- me.ldImageObject(TempIndex)Left;' Po_ygonPo ⁇ nts(3).Y ObjectD ⁇ sc ⁇ pt ⁇ on(Me.Tag, Templndex). PerspectiveCoordinates(0).Y - OutLine.Size 12 '- me.ldImageObject(Tem ⁇ Index).Top;'
  • X ObjectD ⁇ sc ⁇ pt ⁇ on(Me.Tag, TempIndex).PerspectiveCoordinates(0).
  • Y ObjectD ⁇ scr ⁇ pt ⁇ on(Me.Tag, Templndex).
  • Templndex Perspect ⁇ veCoord ⁇ nates(0).
  • Y OutLine.Size 1 2 '- me.ldImageObject(TempIndex).Top,' PolygonPomts(3)
  • X ObjectD ⁇ sc ⁇ t ⁇ on(Me.Tag, Templndex) Perspec ⁇ veCoord ⁇ nates(0).
  • X - OutLme.Size 12 '- me.ldImageObject(TempIndex).Left;' End If,',' '- — 09/08/97 DEH Changed from VBX to OCX;
  • ImageObjectDC Me.ldImageObject(TempIndex).GetB ⁇ tmapDC;
  • ObjectZorderl. Selectedlndex 0 Then; DisplayEnorMessage VA NOTSELECTED, vblnformation, VaTitle; Exit Sub; End If, If Not vaP ⁇ cture(ObjectZorderl. Selectedlndex). SelectedObject Then; DisplayErrorMessage VA_NOTSELECTED, vblnformation, VaTitle; Exit Sub; End If; CancelPendmgMode; If pShadowOps Or pEffectsActive Then; MsgBox va Wammg CloseEffect; Exit Sub; End If, If Not vaP ⁇ cture(ObjectZorderl. Selectedlndex).
  • ObjectName netObjectlnfo.Product ' IltemName, Me.vaP ⁇ cture(ObjectZorderl .Selectedlndex).
  • DatabaselD 0; Me.vaP ⁇ cture(ObjectZorderl .Selectedlndex).
  • DatabaselD 0; Me. vaP ⁇ cture(Index).
  • DropType DType Then; Me.vaP ⁇ cture(n).
  • FRMMDI Dim CurrentVendor As Stemg;D ⁇ m CurrentCategory As St ⁇ ng;D ⁇ m CunentSubCategoryld As Integer;D ⁇ m Loading As Boolean;D ⁇ m ExitEvent As Boolean;D ⁇ m AllStnps As Boolean;D ⁇ m Buttonlndex As Integer;D ⁇ m PSwitch As Boolean;Pubhc TintFlagl As BooleanjPubhc TmtFlag2 As Boolean;Pubhc TmtFlag3 As
  • FM_SubCategorys.Fam ⁇ lyJvlember Objects
  • FM_SubCategorys. Category- Objects Objects
  • Image3_MouseUp (Button As Integer, Shift As Integer, X As Smgle, Y As Single); frmMDI.ActiveForm ldCompositionBuffer.ZOrder 1 ;End Sub;P ⁇ vate Sub Image4_DragDrop(Source As Conteol, X As Single, Y As Single) ;MDIForm_DragDrop Source, X, Y;End Sub;P ⁇ vate Sub Label l_DragDrop(Index As Integer, Source As Conteol, X As Single, Y As Single) ;MDIForm_DragDrop Source, X, Y;End Sub;Pubhc Sub Label l_MouseDown(Index As Integer, Button As Integer, Shift As Integer, X As Smgle, Y As S ⁇ ngle);D ⁇ m I As
  • Source. top, Source. top + Source.Height, Source. left, Source. left + Source Width, Me; 'Regenerate objects;' Regenerate frmMDI.ActiveForm; 'Select cunent object;' UnselectObject frmMDI.ActiveForm;' RecreateObject CurrentObj(frmMDI.Act ⁇ veForm.Tag), frmMDI.ActiveForm,' SelectObjects(frmMDI.ActiveForm) CurrentObj(frmMDI.Act ⁇ veForm.Tag); 'Set ZOrder;' Source. Zorder 0: frmMDI.ActiveForm.hsbMain.Zorder 0: frmMDI.ActiveForm.
  • Step -1 f ⁇ mMDI.Act ⁇ veFo ⁇ m.vaP ⁇ cture(frrnMDI.Act ⁇ veForm.ObjectZorderl .GetZOder(n%)).

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)
  • Processing Or Creating Images (AREA)

Abstract

A system is provided for producing a computer-generated display that permits visualization of one or more items in a user-provided environment. The system includes a computer system (7) with a screen (5) for displaying an item image (4) generated from ingredients (65) stored in local and internet sources on a background image (55) by performing a drag and drop operation on an icon image associated with the various displayed images. The system further is configured to retrieve and display information related to the item images, to automatically resize an item image (4) relative to a vertical or horizontal dimension defined relative to a vertical or horizontal feature of the background image (55) or to a vertical or horizontal dimension of an object area (67), and to enable 'see through' characteristics of the displayed item image (4).

Description

SYSTEM FOR VISUALIZING ITEMS IN USER-PROVIDED ENVIRONMENT
CROSS REFERENCE TO RELATED APPLICATION
This application claims priority under 35 U S C § 119(e) of Provisional Application Serial No 60/075,134, filed February 18, 1998 entitled SYSTEM FOR DOWNLOADING MANIPULATABLE IMAGES
BACKGROUND OF THE INVENTION
1 FIELD OF THE INVENTION
The invention generally relates to digital image processing and, more particularly without limitation, to a method and apparatus for producing a computer generated display that permits visualization of changes to the exterior or interior of any building structure
2 DESCRIPTION OF THE RELATED ART
Product catalogs have existed for many years in printed form allowing customers to browse through illustrations, photographs and information about the products listed m the catalogs With the advent of computers, product catalogs can now be created in the form of digital media Some of these digital catalogs have combined photographic and video images with audio in order to more fully represent the products being sold and to provide detailed information about those products However, by and large, many of these digital product catalogs have retained the static look and feel of pre-digital catalogs utilizing print media These digital catalog programs do not allow, or only mitedly allow, the user to manipulate, experiment and apply the catalog products m a dynamic fashion to create a realistic photographic rendering of the products in actual use Various graphics and drawing programs are known in the art Programs such as Corel Draw, Adobe
Photoshop and similar programs allow users to "cut and paste" images onto a composite background image and to fill a particular area with a pattern Some of these graphics and drawing programs also allow the pasted images to remain as objects over the composite background image Programs have been proposed which allow a user to preview a few selected images of certain home improvement products agamst a predefined digitized background image of an interior room or other portion of a house that is not a background unique to each user
For example, U S Patent No 4,970,666, to Welsh, et al , teaches a system for producing video images which depict the appearance of a simulated structure in a video-derived image of an actual environment The system disclosed in the '666 patent, however, does not provide access to information about the image elements from a database by means of linking particular information related to each of the products of the images being manipulated relative to the background image of the user's individually desired environment Further, the '666 patent does not provide mternet-type access to information related to the image elements placed over or merged with a background image by means of an interface associated with a computer generated screen display Yet further, the system in the '666 patent lacks the ability to manipulate — such as object resizmg, distorting, edge smoothing, etc , for example ~ digital images of available products over the background image What is needed is a visualization system that enables displaying of mampulatable images of items on a background image wherein the images are obtainable from internet-type sources as well as from local sources, such as from a CD-ROM and/or HDD component of a computer system of the visualization system, that enables "see through characteristics, that enables autoscalmg of objects, that enables easy and automatic substitution of one image for another, that enables viewing images of items from different perspectives, that enables autoscalmg of pattern tiling, that enables experimenting with different subassembhes of an item, and that enables supeπmposmg a calibrated grid over displayed images SUMMARY OF THE INVENTION
In a system for producing a computer-generated display that permits visualization of one or more items in a selected environment, there is provided a computer system having a screen structured to display a computer- generated display, at least one source mechanism structured to enable generation of at least one background image, the at least one source mechanism including at least one internet-type source containmg ingredients structured to enable generation of at least one item image of an item and to enable generation of a trigger image associated with the at least one item image, and a connection mechanism structured to operably connect the computer system to the at least one source mechanism wherein the connection mechanism includes at least one internet-type connection structured to operably connect the computer system to the at least one internet-type source, and wherein the computer system and the connection mechanism are cooperatively structured to selectively retrieve and display the at least one background image on a first screen portion of the screen, display the trigger image associated with the at least one item image on a second screen portion of the screen, and enable the at least one item image associated with the trigger image to be displayed on the at least one background image on the first screen portion by selectively performing a drag and drop operation on the trigger image on the second screen portion The at least one source mechanism includes the computer system having a second source mechanism, including a local storage-type mechanism, containmg the ingredients structured to enable generation of another of the at least one item image of an item and to enable generation of a thumbnail image associated with the another of the at least one item image The mgredients include a height value of the item of the at least one item image and are structured to enable displaying of information associated with the item, with the computer system and the connection mechanism being structured to enable selective retrieval and displaying of the information associated with the item, and are structured to enable generation of a sprite image and a mask image associated with the at least one item image The system includes an object autoscalmg mechanism structured to automatically resize the at least one item image bemg displayed on the screen by adjusting the displayed height of the at least one item image pursuant to the ratio of the height value and a user-specified vertical dimension defined relative to the at least one background image being displayed on the screen The system also mcludes a modification mechanism structured to perform various user-selected modifications to the at least one item image being displayed on the screen The computer system is structured to, in conjunction with the mgredients, enable "see through" characteristics of the at least one item image as displayed on the background image on the screen
The computer system is also structured to display the thumbnail image associated with the another of the at least one item image on a third screen portion of the screen, and enable the another of the at least one item image associated with the thumbnail image to be displayed on the background image on the first screen portion by selectively performing the drag and drop operation on the thumbnail image on the third screen portion, to simultaneously display two of the at least one item images on the background image on the screen, wherem any of the two of the at least one item images may be generated from ingredients contamed in either of the at least one internet-type source and the second source mechanism, to selectively display, at least partially, either of the two of the at least one item images on the other of the two of the at least one item images displayed on the background image on the screen, to simultaneously enable "see through" characteristics of either of the two of the at least one item images relative to the other of the two of the at least one item images and the background image apparently positioned there behind to the extent that features of the background image are not foreclosed by the other of the two of the at least one item images apparently positioned between the either of the two of the at least one item images and the background image, to selectively exchange the relative positioning of the two of the at least one item images as displayed on the screen, and to appropriately alter the "see through" characteristics of the two of the at least one item images upon the exchanging of the relative positioning thereof
In a system for producing a computer-generated display that permits visualization of image objects in a selected environment, there is further provided at least one source mechanism containing ingredients structured to enable generation by the computer system of at least one background image, an item image of an item portrayed by at least one image object, and an icon image associated with the at least one image object, a computer system having a screen structured to display a computer-generated display, and an object area creating mechanism structured to permit automatic creation of a user-selected object area of the computer-generated display on the screen including an automatic creation of an image object containmg a sprite image and a mask image associated with the object area wherem the object area is structured to receive and display the item image of the at least one image object therein, and a connection mechanism connecting the computer system to the at least one source mechanism, and wherein the computer system and the connection mechanism are cooperatively structured to selectively retrieve and display the at least one background image on a first screen portion of the screen, create the object area comprising a user-selected area of the at least one background image displayed on the first screen portion, display the icon image associated with the at least one image object on another screen portion of the screen, and enable the item image of the at least one image object associated with the icon image to be displayed m association with the object area on the background image displayed on the screen by performing a drag and drop operation on the icon image on the another screen portion The system is structured to automatically resize the at least one item image being displayed on the screen in association with the object area such that horizontal dimensions of the at least one item image may be resized substantially identically to horizontal dimensions of the object area, and vertical dimensions of the at least one item image resized proportionately to the resized horizontal dimensions of the at least one item image, or such that vertical dimensions of the at least one item image may be resized substantially identically to vertical dimensions of the object area, and horizontal dimensions of the at least one item image resized proportionately to the resized vertical dimensions of the at least item image The system mcludes an exchanging system wherem the at least one item image displayed on the screen, including modifications thereof if any, may be selectively and automatically removed from bemg displayed on the screen and replaced with another of the at least one item image, wherem the exchanging mechanism is further structured to store a plurality of the at least one item images that have been removed and replaced, including modifications thereof if any, and to selectively remove and replace the at least one item image being displayed on the screen with a selected one of the plurality of the at least one item images that have previously been removed from bemg displayed on the screen, including modifications thereof if any
The at least one item image may comprise a set of sub-item images of an item from different perspectives, and wherein the computer system and the connection mechanism are cooperatively structured to enable the sub-item images of the at least one item image to be selectively and separately displayed in association with the object area on the background image by performing a drag and drop operation on the icon image on the second screen portion The ingredients of the at least one source mechanism are further structured to enable generation of a sprite image and a mask image associated with each of the sub-item images of the set, with the computer system structured to, m conjunction with the mgredients, enable "see through" characteristics of each of the sub-item images of the set as displayed in association with the object area on the screen The system is structured to display a control slider image on the screen, for use in conjunction with a pointing device of the computer system, to enable the selective and separate viewing of the sub-item images of the set The different perspectives of the item portrayed by the sub-item images of the set may have substantially equi-angular spacing therebetween such that the successive and separate displaying of the sub-item images of the set provides the appearance of the item portrayed by the item image as being rotated on the background image about an axis Further, the system may include an animation mechanism structured to automatically successively and separately display each the sub-item image of the set with a user-selected time interval therebetween
The at least one source mechanism contains ingredients structured to enable generation by the computer system of at least one pattern image and an icon image associated with the at least one pattern image, with the computer system including an outlining mechanism structured to permit outlining of a user-selected area of the computer-generated display on the screen, and a pattern autoscalmg mechanism structured to automatically resize the computer-generated display within the user-selected area pursuant to a user-determined scale defined relative to the at least one background image displayed on the screen, wherem the computer system and the connection mechanism are cooperatively structured to define a user-determined scale relative to the at least one background image displayed on the first screen portion, and enable the at least one pattern image associated with the icon image to be automatically resized pursuant to the user-determined scale and displayed in the user-selected area on the background image displayed on the screen by performing a drag and drop operation on the icon image on the second screen portion The system is structured to cause the pattern image to be displayed m association with the object area while adopting the mask image of the object area and thereby enable "see through" characteristics of the at least one pattern image as resized and displayed on the background image on the screen The at least one pattern image includes a data mechanism having information associated with the at least one pattern image, with the computer system and the connection mechanism structured to enable selective retrieval of the information associated with the at least one pattern image The at least one source mechanism preferably mcludes at least one internet- type source containing some of the ingredients and the computer system havmg a second source mechanism also contammg more of the mgredients for generating another of the at least one pattern image, with the connection mechanism including at least one internet-type connection connecting the computer system to the at least one internet-type source
In a system for producing a computer-generated display that permits visualization of one or more items in a selected environment, there is further provided a computer system havmg a screen structured to display a computer-generated display, at least one source mechanism contammg ingredients structured to enable generation of at least one background image, at least one item image comprising a mam image of an item and a plurality of sub-comp images, where each of the sub-comp images is linked to a pre-determmed location relative to the mam image, and an icon image associated with the at least one item image, and a connection mechanism connecting the computer system to the at least one source mechanism, and wherein the computer system and the connection mechanism are cooperatively structured to selectively retrieve and display the at least one background image on a first screen portion of the screen, display the icon image associated with the at least one item image on a second screen portion of the screen, selectively retrieve and display the mam image, together with a first one of the plurality of sub-comp images, on a third screen portion of the screen, enable removal and replacement of the first one of the plurality of sub-comp images with another selected one of the plurality of sub-comp images, and enable the mam image together with a selected one of the plurality of sub-comp images to be selectively displayed on the object area by performing a drag and drop operation on the third screen portion In a system for producing a computer-generated display that permits visualization of one or more items m a selected environment, there is further provided a computer system havmg a screen structured to display a computer-generated display, and a grid autoscalmg mechanism structured to automatically provide a screen grid image displayable on the screen pursuant to a user-determined dimension, at least one source mechanism containing ingredients structured to enable generation by the computer system of at least one background image, and a connection mechanism connecting the computer system to the at least one source mechanism, and wherein the computer system and the connection mechanism are cooperatively structured to selectively retrieve and display the at least one background image on the screen, and display the screen grid over the at least one background image displayed on the screen The user-determined dimension is defined relative to a feature of the at least one background image displayed on the screen PRINCIPAL OBJECTS AND ADVANTAGES OF THE INVENTION
Principal objects and advantages of the present invention mclude providmg an system for producing a computer generated display that permits visualization of one or more items on a user-provided background image wherem manipulatable item images are obtainable from internet-type sources through internet-type connections, providmg such a system wherein an item image obtamed from an internet-type source is displayed by the system by performing a drag and drop operation on a trigger image associated with the item image, providmg such a system wherem an item image for display by the system is automatically resized relative to a user-designated vertical dimension defined relative to a vertical feature of the background image, providmg such a system wherem vertical dimensions of an item image for display by the system are automatically resized substantially identically to vertical dimensions of an object area of the background image defined by the user and horizontal dimensions of the item image for display by the system are automatically resized proportionately to vertical dimensions thereof, providmg such a system wherein horizontal dimensions of an item image for display by the system are automatically resized substantially identically to horizontal dimensions of an object area of the background image defined by the user and vertical dimensions of the item image for display by the system are automatically resized proportionately to horizontal dimensions thereof, providmg such a system wherem a pattern image for tiling by the system on a user-outlmed area of the background image is automatically resized relative to a user-designated vertical dimension defined relative to a vertical feature of the background image, providing such a system wherem an item image being displayed on the background image may be automatically removed and replaced with another item image, providing such a system wherem a user may select from a plurality of item images from different perspectives of an item for display by the system, providmg such a system wherem a plurality of item images from different perspectives of an item may be automatically successively displayed by the system to thereby provide a user with the impression that the displayed item is rotating, being displaced, opening and closing etc , providing such a system wherein item images removed from display on the background image and replaced by another item image are stored for recall by a user of the system, providing such a system wherein an item image may be selectively viewed with sub-images related thereto prior to displaying the item image on a background image displayed by the system, providing such a system wherein a grid is selectively displayable over a background image and image objects displayed by the system, and generally providing such a system that is reliable, user- friendly, and adapted to provide the benefits for which it is designed Other objects and advantages of the present invention will become apparent from the following description taken m conjunction with the accompanying drawings, which constitute a part of this specification and wherein are set forth exemplary embodiments of the present invention to illustrate various objects and features thereof
BRIEF DESCRIPTION OF THE DRAWINGS Fig 1 is a schematic representation of a system for visualizing items in a user-provided environment, according to the present invention
Fig 2 is a schematic representation of a system for visualizing items m a user-provided environment, illustrating features for utilizing various improvements thereof
Fig 3 is a schematic representation of the system for visualizing items in a user-provided environment, illustrating features for providing "see through" characteristics
Fig 4 is a schematic representation of the system for visualizing items m a user-provided environment, illustrating features for updating a display as an image is bemg moved
Fig 5 is a schematic representation of the system for visualizing items m a user-provided environment, illustrating features for autoscalmg an image using a tape measure tool of the system Fig 6 is a schematic representation of the system for visualizing items in a user-provided environment, illustrating features for autoscalmg an image dropped into an object area of the system
Fig 7 is a schematic representation of the system for visualizing items in a user-provided environment, illustrating features for viewing item images of an item from various perspectives
Fig 8 is a schematic representation of the system for visualizing items m a user-provided environment, illustrating features for autoscalmg a pattern image m an outlined area
Fig 9 is a schematic representation of the system for visualizing items in a user-provided environment, illustrating features for viewing a mam item image with selected sub-comp images related thereto
Fig 10 is a schematic representation of the system for visualizing items m a user-provided environment, illustrating features for displaying a grid image over a background image and items images displayed on the background image, according to the present invention
DETAILED DESCRIPTION OF THE INVENTION As required, detailed embodiments of the present invention are disclosed herem, however, it is to be understood that the disclosed embodiments are merely exemplary of the mvention, which may be embodied m various forms
The improved system 1 of the present invention, as shown in Fig 1 through , is structured to operate in a 32-bit Microsoft Windows operating system, such as Windows 95, Wmdows 98, Windows NT, or other suitable operatmg system A printout of the computer program shown below contammg the various features and enhancements described herein, which is an integral part of this specification and is incorporated herein by reference The improved system 1 includes the following improvements (i) a drag and drop download improvement 3 wherein item images 4 displayed on a screen 5 of a computer system 7 of the improved system 1 may not only be obtained from a local source 13 but also from internet-type sources 15 connected to the computer system 7 through internet-type connections 17, {u) an object autoscalmg improvement 23 wherein item images 4 of image objects 25 are automatically resized for display on the screen 5, (in) an image substitution improvement 27 for automatically and successively displaying and manipulating alternative item images 4 on the screen 5, (.v) a pseudo-translational improvement 33 which provides item images 4 of the image objects 25 being displayed on the screen 5 with quasi-three-dimensional viewing and movement characteristics, (v) a pattern autoscalmg improvement 35 which provides automatic resizing of pattern images 37 tiled on the screen 5, (v.) a sub- composition improvement 43 for experimenting with various sub-comp images 45 on a mam image 47 of an item 53 prior to displaying the resulting item image 4 on a background image 55, and {vu) a grid improvement 57 for superimposing a calibrated grid 63 over item images 4 and the background image 55 being displayed on the screen 5
The term "image object" as used herem generally refers to an entire bundle of ingredients 65 that enable the enhanced system 1 to generate and display on the screen 5 of the enhanced system 1 the pattern image 37 or the item image 4 of an item 53 portrayed by the bundle of ingredients 65 regardless of the source of the mgredients 65, be it local or internet In the following discussions, the term "image object" may sometimes be used to refer to the item image 4 or the pattern image 37 provided by the bundle of ingredients 65 for display on the screen 7, such as in an object area 67 of the display as discussed herein, as a reminder that the various ingredients 65 associated therewith and properties thereof, such as textual information 73 regardmg the corresponding item 53 for example, remain available for further modification, manipulation and analysis of the pattern image 37 or the item image 4 then under scrutiny by a user of the enhanced system 1 Each of the above- referenced improvements will now be described in greater detail
1 "DRAG AND DROP" DOWNLOAD IMPROVEMENT
A prior art system providing visualization capability using image objects 25 stored locally relative to an associated computer system has been previously disclosed, namely U S patent application Serial No 08/713,994, filed September 14, 1996 entitled METHOD AND APPARATUS FOR PRODUCING A COMPUTER GENERATED DISPLAY THAT PERMITS VISUALIZATION OF CHANGES TO THE INTERIOR AND
EXTERIOR OF A BUILDING STRUCTURE SHOWN IN ITS ACTUAL ENVIRONMENT (heremafter sometimes referred to as the '"944 reference"), which reference is incorporated herein by reference However, a user may desire to visualize an item 53 found on the Internet relative to the user's own selected environment, or background image 55 For example, the user may wish to superimpose an image of a sofa found at a Web site on a digital image of his living room The improved system 1 of the present invention essentially automates the entire visualization process by providing image objects 25 from internet-type sources 15, local sources 13, or both, ready for user-selected modifications and manipulations, which modifications and manipulations are more fully discussed in the incorporated '944 reference
The drag and drop download improvement 3 can be briefly described as providing a user with the ability to locate an image object 25 of a selected item 53 stored in an internet-type source 15 with a browser 75 through an internet-type connection 17 The user may then download the ingredients 65 of the image object 25, that enables displaying the item image 4 of the selected item 53, to the user's computer system 7 and display the item image 4 on the selected background image 55 displayed on the screen 5 of the computer system 7 to thereby permit visualizing the item 53 m the user's selected environment
More specifically, the improved system 1 is caused to display a selected background image 55 on a first screen portion 77 of the user's monitor screen 5 The background image 55 is generally an environment provided by the user by any suitable means, such as a digital camera, a photograph scanned with a Twain-mterface scanner, a video camera used m conjunction with a frame-grabbing device, or other suitable arrangement The background image 55 may also be generated from digital files provided locally, such as by a local source 13, such as a CD- ROM or HDD component, or from digital data previously scanned into and stored m the user's computer system 7 It is to be understood that the background image 55 may also be generated by downloading necessary ingredients 65 for generating the background image 55 from an internet-type source 15 through an internet-type connection 17
The background image 55, which may be a digitized picture of the user's living room for example, is held by the improved system 1 in a form object which can also hold a plurality of image objects 25 portraying selected items 53 such as a sofa and a wall paper pattern for example, which portrayed items 53 appear to be integrated with the background image 55 of the living room as hereinafter described In addition, the portrayed items 53 may appear to be mtegrated with each other if various of the corresponding item images 4 should overlap
An example of provisions of the improved system 1 for retrieving a background image 55 from an internet source 15 is shown below
After displaying the background image 55 on the screen 5, the user's computer system 7 is then connected via a browser 75 to an URL address of an internet source 15 that contains mgredients 65 for a desired image object 25, which ingredients 65 cause a trigger image 85 to be generated from an associated trigger image file 87 and to be displayed on a browser wmdow or second screen portion 89 of the user's monitor screen 5 The browser wmdow 89 is preferably resized, generally along one side of the monitor screen 5 as shown in Fig 2, such that a majority of the viewing area of the monitor screen 5 is reserved for viewing of the background image 55 The trigger image 85 may have any suitable format, but preferably has a JPEG format
The item image 4 associated with the trigger image 85 is then caused to be displayed on the background image 55 on the first screen portion 77 by performing a drag and drop operation 93 on the trigger image 85 on the second screen portion 89, as schematically indicated by the arrow designated by the numeral 93 in Fig 1 The drag and drop operation 93 triggers an OLE drop event 95, symbolized by the hub on the arrow 93 designated by the numeral 95, whereupon information associated with the trigger image file 87 that generated that OLE drop event 95 is provided to the improved system 1
An example of provisions of the improved system 1 for performing the drag and drop operation 93 on the trigger image 85 is shown below, and for triggering the OLE drop event 95 when performing the drag and drop operation 93 on the trigger image 85 is shown below
Upon triggering the OLE drop event 95, the improved system 1 parses the name of the trigger image file 87 to determine the names of files that are to be downloaded and used for displaying images associated therewith, namely the "floating" image objects 25 for displaying item images 4 on the background image 55 It should be understood that similar procedures, in whole or in part, may be utilized for downloading the background image 55 if needed, depending on the characteristics of the background image 55 bemg downloaded
An example of provisions of the improved system 1 for parsing the name of the trigger image file 87 to determine the names of various associated files is shown below
For example, the bundle of downloadable ingredients 65 may include a sprite image file 103, such as S0000012 jpg, for generating a sprite image 105 of the item 53 portrayed by the associated image object 25, a mask image file 113, such as M0000012 jpg, for generating a mask image 115 associated with the sprite image 105, and a text file 123, such as X0000012 txt, for displaying the textual information 73 mcludmg URL addresses 124 of associated internet sources 15 including selectively accessible auxiliary sources 125 that contain other pertinent information regarding the item 53 portrayed by the associated item image 4 The corresponding sprite image 105 and mask image 115 generally are precisely the same size and operably occupy the same display space of the screen 5, but are shown slightly offset in Fig 3 for identification purposes
An exemplary name for the trigger image file 87 related to the various associated files 103, 113, 123 of the preceding example could be TRIGGERT0000012 jpg The improved system 1 is thus structured to download ingredients 65 for the item image 4 associated with the exemplary trigger image 85 as follows 1) Code executed upon execution of the OLE drop event 95 returns the name of the trigger image file 87 from a data object which contains that name
2) Smce the mgredients 65 for displaying the trigger image 85 on the screen 5 are generally already downloaded and residing m the computer system 7, the parsing process of the name of the trigger image 85 strips off the image path, since that path is no longer needed, leaving the name string of the trigger image file 87, in this example "TRIGGERT0000012 jpg"
3) The extension is then also stripped, leaving "TRIGGERT0000012"
4) In a reverse manner, the remaining string is then parsed up to eight characters, leaving "T0000012"
5) The first character is then removed and replaced with a selected character, such as "S", and an extension is appended, such as " jpg", which identifies the name of the associated sprite image file 103, namely S0000012 jpg
6) A similar procedure is utilized to identify the name of the associated mask image file 113 by replacing the first character with an "M" and appending a " pg" extension, namely M0000012 jpg, and the name of the associated text file 123 by replacing the first character with an "X" and appending a " txt" extension, namely X0000012 jpg 7) The identified files 103, 113, 123 may then be downloaded from the appropπate URL addresses known to the improved system 1 and be available for composing and displaying the desired item image 4 on the screen 5
In other words, the names of the sprite image file 103, the mask image file 113, and the text file 107 associated with the trigger image 85 are generally a composite of a fragment of the name of the trigger image file 87 combined with additional string characters recognized by the improved system 1
After identifying the names of the various files containing the mgredients 65 for displaying the desired item image 4, the improved system 1 automatically downloads the associated sprite image file 103 from the appropriate internet source 15 to the user's computer system 7 As a result of the associated drag and drop operation 93 on the trigger image 85, the downloaded sprite image file 103 causes a sprite image 105 of the portrayed item 53 to be displayed on the background image 55 as directed by the user's positioning of a pointer 127 of a pointing device 128 of the computer system 7, such as at the center of the sprite image 105 as shown in Fig 1 The mask image file 113 associated with the sprite image file 103 and the corresponding text file 123 are concurrently downloaded with the sprite image file 103 Appropriate contents of those files 103, 113, 123 become properties of the object image 25 of the associated item image 4
The process of downloading the identified and associated sprite unage file 103, the mask image file 113, and the text file 123 from an identified URL to the computer system 7, such as by using capabilities provided by WmSock of MS Visual Basic 5 0 for example, may be described in greater detail as follows
1) A request is made on the appropriate server 15 for one of the identified files 103, 113, or 123 usmg the "http" protocol and issumg a GET request via the SENDDATA command of WinSock
2) The resulting incoming data is saved in a temporary binary file via a "data receive" event, upon completion of which the connection 17 between the computer system 7 and the URL 15 is closed
3) The temporary file is then stripped of its header and re-saved as a temporary file havmg an appropriate format, such as the " jpg" format for the images and the " txt" format for the text
4) Steps 1-3 are repeated for each image, namely the sprite image 105 and the counterpart mask image 115 5) For the text file 123, steps 1-3 are executed but the information is parsed out from the file "as-
IS" instead of just stripping the header as m the case of the image files 103, 113 6) The files 103, 113, 123, after downloading, are then available as properties for composing and displaying the associated item image 4 on the screen 5, mcludmg placing information 73 from the text file 123 in the properties of the "floating" image object 25 of the item image 4 Application of the mask image 115 of the mask image file 113 to the displayed sprite image 105 of the sprite image file 103 causes the item image 4 thereof to display "see through" attributes of the portrayed item 53 relative to other images 4, 55 shown at a lower level or rearwardly situated position as displayed by the monitor screen 5 In other words, by applymg the mask image 115 to the associated sprite image 105, appropriate parts of the background image 55 may be copied to the sprite image 105 giving the appearance of integration of the item image 4 with the background image 55
An overview of the provision of "see through" characteristics may be described as follows The improved system 1 is structured whereby each item image 4 is custom controlled, such as by capabilities developed with Visual Basic, followed by compiling into an OCX that provides other controls, methods and properties For example, the main elements of such custom control may be described as follows
1) A first picture control buffer 129 holds the downloaded sprite image 105 of the item 53 with see-through areas in black
2) A second picture control buffer 130 holds the corresponding downloaded mask image 115 of the item 53
3) A third picture control buffer 131 holds a generated image 132 which is a composite of (.) a captured area image 133 of the background image 55 corresponding to the selected location of the item image 4 and having the same dimensions, {n) the sprite image 105 of the portrayed item 53, and {in) the mask image 115 of the portrayed item 53 as schematically illustrated in Fig 3, which generated image 132 is the item image 4 that is visible to the user over the background image 55
4) Other properties of the object image 25 of the associated item image 4 include the information 73, such as the item name and manufacturer, instructions for re-sizing, handles for re-sizmg, etc , some of which may be initially displayed on the screen 5 along with the item image 4 A more detailed description of the mtegration process is now provided wherem more than one item image 4 is displayed on the background image 55 The first such item image 4 positioned on the background image 55 will exhibit "see through" characteristics relative to the background image 55, whereas the second such item image 4 positioned on existing images 4, 55 displayed on the screen 5 will exhibit "see through" characteristics not only relative to the first item image 4 but also to appropriate details of the background image 55 not foreclosed by the first item image 4 It is to be understood that such "see through" characteristics are preserved regardless of the number of item images 4 positioned relative to each other over the background image 55, and regardless of whether an item image 4 is positioned partially or entirely over another item image 4
Each image object 25 superimposed over the background image 55 is generally rectangularly shaped even though the portrayed item 53 may not necessarily have a rectangular shape, such as a sofa Parts of the background image 55, not foreclosed by "solid" aspects of the item image 4, are "painted" to the exemplary sofa image object 25 m order to achieve the visual effect of the sofa 53 appearmg m front and part of the living room 55 This effect is accomplished by usmg various functions, such as the MS Wmdows API call BITBLT, that allow combmation of images by applying certain selected operations, such as boolean AND and OR
The process of mtegration provided by the improved system 1 can be basically described as follows 1) The rectangularly shaped captured area image 133 is sectioned from the background image 55, wherem the captured area image 133 is equal in size to that of the item image 4, and is copied to the picture control buffer 131 A boolean AND operator is then used to combine the mask image 115, held in the picture control buffer 130, with the captured area image 133 in the picture control buffer 131 A boolean OR operator is then used to combine the associated sprite image 105, held in the picture control buffer 129, with the composite image m the picture control buffer 131 resulting from the previous AND operation, hereinbefore referred to as the generated image 132 2) The mtegration of the selected item images 4 with the background image 55 and with each of the other displayed item images 4 is accomplished by processing each item image 4 m reverse order, starting with a first item image 4 that is to appear closest to the background image 55 and contmumg in a Z order of levels, performing the operations m step 1) to the first item image 4, and then "painting" or "copying" the result to the background image 55 so as to visually include the item 53 of the first item image 4 in the background image 55 The second item image 4 of the Z order is then similarly processed but with a captured area image 133 sectioned from the background image 55 that is relevant to the positioning of the second item image 4, appropriately including any overlapping portions of the first item image 4
3) The process is similarly repeated for each of the other selected item images 4, properly taking into account overlapping portions of the other item images 4 based on Z order thereof
4) If a selected item image 4 has been selected for a particular operation, such as "rotate 90°" for example, that item image 4 may be temporarily excluded from the process of bemg painted or copied to the background image 55 Instead, the operations in step 1) may be performed on that item image 4, and steps 1) and 2) may be performed on each of the other item images 4 While the steps 1) and 2) are being performed on the other item images 4, the item image 4 smgled out to receive special treatment is not shown with the background image 55 An example of provisions of the improved system 1 for utilizing the mask image 115 m conjunction with the sprite image 105 to enable "see through" attributes of the associated image object 25 is shown below
Each time one of the item images 4 is moved relative to the background image 55, the appropriate "see through" characteristics are re-determined and modified accordingly Arrangmg and moving item images 4 around on the background image 55 may be described as follows
1) The improved system 1 is structured such that the subject item image 4 can be selectively moved about on the background image 55 by mouse-clicking and draggmg the item image 4 as desired
2) When a subject item image 4 is to be visually moved by the user m an x-y plane of the display, the subject item image 4 is first positioned at the top of the Z order, meanmg that the item 53 of the subject item image 4 appears to be spaced farthest from the background image 55
3) The composition process as hereinbefore discussed is executed for all of the displayed item images 4 except for the subject item image 4
4) As the user drags the subject item image 4 with the mouse 128, the sprite image 105 and the mask image 115 of the item image 4 is repeatedly re-processed with the background image 55 via the picture control buffers 129, 130, 131 of the other item images 4 as herembefore described, such as through the use of the BITBLT function, to thereby display the subject item image 4 as being smoothly moved over the background image 55 The improved system 1 is structured to accomplish this by a) hiding all other items images 51 but continuing to display the background image 55, b) forming a composite image 137 in a picture control buffer 138 as illustrated in Fig 4, wherein the composite image 137 is identical to the appropriate captured area image
133 of the background image 55 together with appropriate portions of the other item images 4 "painted" thereon, c) copying the content of the picture control buffer 138 to another picture control buffer 139 structured to process the composite image 137, such as with the BITBLT function, as the subject item image 4 is being moved, d) combining the mask image 115 of the subject item image 4 bemg moved with the content of the picture control buffer 139 using a boolean AND operator, e) then combining the sprite image 105 of the subject item image 4 being moved with the modified content of the picture control buffer 139 using a boolean OR operator, f) copying the resulting content of the picture control buffer 139 to the picture control buffer 138 holding the composite image 137 and displaying same on the screen 5 as schematically indicated by the arrow designated by the numeral 140 m Fig 4, whereupon the user sees an image of the subject item image 4 being moved, i.e "painted" to the background image 55 and to the other item images 4 that have already been "painted" to the background image 55, g) repeatedly applying steps c) through f) at successive new positions of the mouse pointer
127 bemg dragged, h) upon completion of the moving event, displaying the background image 55 together with the generated images 132 of the picture control buffers 133 of all of the item images 4 at their appropriate Z order or levels relative to the background image 55
An example of provisions of the improved system for exchanging the relative positioning of apparently superimposed image objects is shown below
After the various ingredients 65 for displaying an item unage 4 have been downloaded and the item image 4 displayed on the background image 55, the user may elect to view selected portions of the other pertment information contained m an auxiliary source 125 about the item 53 bemg displayed on the screen 5 In that event, an information access mechanism 155, such as a context-sensitive button, pull-down menu, or other suitable arrangement may be activated, whereupon the browser 75 is caused to automatically connect to the associated URL address(es) of the auxiliary source 125, which address(es) are generally derivable from parsmg the text of the downloaded text file 123 associated with the item image 4 The browser 75 then automatically accesses the respective information file(s) of one or more auxiliary sources 125
An example of provisions of the improved system 1 for parsmg text from the text file 123 to retrieve information in regard to the associated image object 25 is shown below It is to be understood that the mgredients 65 for the item images 4 may originate from various sources mcludmg a local database 13, an internet server 15 known to the improved system 1, a user database 13 generally contained as an integral part of the computer system 1, such as a CD-ROM or HDD, special application "clipboard" buffers of the improved system 1 , other databases developed to be compatible with the improved system 1 , a user selected area of a background image 55 displayed by the enhanced system 1 , or other suitable arrangement A possible variation for accessing the mgredients 65 from a database 13 contained as an integral part of the computer system 7 is that a thumbnail image 157 is generated on the screen 5 as opposed to the described trigger image 85 for ingredients 65 from an internet-type source 15 An example of provisiohs of the improved system 1 for performing a drag and drop operation 93 on a thumbnail image 157 is shown below The term "icon image" may sometimes be used herein to collectively refer to either or both the trigger image 85 and the thumbnail image 157 Also, it is to be understood that fields may be used for storing various of the ingredients 65, particularly locally, as opposed to the current use of files with the internet-type sources 15
In the composing environment wherein one or more item images 4 is being displayed by the improved system 1, as the user moves the mouse pointer 127 over any of the item images 4, a mouse-move event is triggered whereupon the improved system 1 is structured to respond as follows
1) Code executed upon triggering of the mouse-move event causes the improved system 1 to examine the properties of the image object 25 of the item image 4 that triggered the mouse- move event, such as object or item name and manufacturer, for example
2) Select the item image 4 by mouse-clicking whereupon the improved system 1 ascertains the source or sources whereat more information about the item 53 portrayed m the item image 4 can be obtained, mcludmg the address of one or more URL's if the item image 4 was downloaded from an internet type source 15
3) The improved system 1 is structured to display the button 155 on the screen 5 if the item image 4 was downloaded from an internet-type source 15, by clicking on the displayed button 155, appropriate selected additional pertinent information may be automatically downloaded from the auxiliary source 125, before actually downloadmg, the user is queried for confirmation of launching the browser 75 to access the URL address(es) of the auxiliary source 125 for the desired additional pertinent information, upon confirmation, the improved system 1 is structured to cause the browser 75, such as by a shell command, to connect to the appropriate URL and download the appropriate ingredients 65 for displaying the desired additional pertment information Substantially all available processes for modifying and manipulating item images 4 from local databases 13, as disclosed in the incorporated '944 reference, are also supported for item images 4 downloaded to the computer system 7 from internet- type sources 15 through internet- type connections 17 Most changes performed on the content of an item image 4 are first conducted on images m buffers, wherem a sprite image buffer thereof may mclude a Lead control holdmg the image, an MS Picture control, or other suitable arrangement Effects and transforms applied to the item images 4, such as changmg the brightness thereof, can be described as follows 1) If changes are to be executed to the sprite image 105 of the item image 4, the modified image in the picture control buffer 129 is transferred to and becomes the new sprite image 105 of the item image 4 upon completion of the changes
2) Changes to the mask image 115 of the item image 4 a e similarly processed 3) By way of example a) The user selects an item image 4 m order to change the "contrast" value thereof, b) The sprite image 105 is placed in the picture control buffer 129, c) The bitmap of the sprite image 105 in the picture control buffer 129 is modified, such as by applying the Lead Contrast method and passmg a valid value thereto, d) The revised bitmap in the picture control buffer 129 is then used as the new or revised sprite image 105 of the item image 4, e) The composition process with the background image 55 is re-executed in conjunction with the revised sprite image 105 and mask image 115 to appropriately compose the revised image object 105 in relation to the displayed background image 55 and other item images 4
Benefits provided by the download improvement 3 of the improved system 1 include enablmg a user to preview a product 53 in context before making a purchasing or design decision thereby reducing uncertainty of making a decision which might otherwise result without having a clear idea as to how the product 53 might look and fit in context, and enabling a manufacturer or vendor to provide the general public, professionals, distributors, product representatives and others with the opportunity to download and view their products 53 m context
2 OBJECT AUTOSCALI G IMPROVEMENT
The object autoscalmg improvement 23 of the improved system 1, schematically illustrated in Fig 5 and sometimes referred to herein as the "tape measure" improvement 23, allows the user to view an item image 4 having an autoscalmg property or height value 167, such as the height of cabinets or length of a dress, appropriately resized relative to a proposed environment, namely an associated feature portrayed m the background image 55, such as a kitchen wall or a front view of a person for whom the dress is bemg considered, for example Image objects 25 having the autoscalmg property 167, which permits the associated item image 4 to be used with the object autoscalmg improvement 23, contain the height value 167 m a field, if stored in a local database source 13, or m a text file 123, if stored m an internet source 15 The height value 167 represents the actual height, usually in mches, of the item 53 portrayed by the image object 25 The database thumbnail image
157 or the internet trigger image 85, as appropriate, of an image object 25 designed to be used with the object autoscalmg improvement 23 and activated by the drag and drop operation 93 described herem, generally has an autoscalmg indicator 175 associated therewith as mdicted m Fig 1, which allows the user to readily identify whether an image objects 25 being considered has the desired autoscalmg property 167 prior to loadmg the mgredients 65 thereof
The object autoscalmg improvement 23 mcludes a tape measure tool 176 structured to permit a user to select a vertical spacmg of a particular feature of the background image 55 as a scale 177, such as by dragging the pointer 127 from a lower extremity 178 of the feature to an upper extremity 179 of the feature to select the height of that feature, as indicated in Fig 5 The user is then prompted to enter a specified value 181, usually in inches, that the improved system 1 uses, until subsequently changed, as the height of that feature
An example of provisions for the object autoscalmg mechanism 23 of the improved system 1 for automatically resizing an image object 25 pursuant to a user-determined dimension 181 is shown below The procedure for applying the object autoscalmg improvement 23 can be briefly described as follows
(.) use the tape measure tool 176 to designate the vertical height 181 of a particular feature m the depth plane of the background image 55 as the selected scale 177 whereat the item 53 portrayed by the image object 25 that is to be retrieved from a local source 13 or an internet source 15 is to be displayed, {ιή select an image object 25 in a database, local 13 or internet 15, that has the desired autoscalmg property 167, and {m) selectively display the item image 4 of the desired item 53 on the screen 5 of the improved system 1 by appropriately performing the drag and drop operation 93 on the database thumbnail image 157 or the internet trigger image 85, whereupon the associated item image 4 is automatically re-sized accordmg to the designated vertical height 181 entered by the user with the tape measure tool 176
When the database thumbnail image 157 or the internet trigger image 85 is subjected to the drag and drop operation 93, the resulting actions executed by the improved system 1 include (.) from the local database 13, the field containmg the height value 167 is read and used to determine the appropriate resizing of the object image 25, or from the Internet source 15, the associated text file 123 retrieved with the ingredients 65 for generating the sprite image 105 and the mask image 115 of the item 53 generally contain a file lme indicating the height value 167 in inches The enhanced system 1 parses this file line into a variable and uses the value thereof to calculate the resized vertical dimension for the height of the corresponding image object 25 in order to appropriately proportionately display the portrayed item 53 relative to the environment displayed as the background image 55 Thus, regardless of the source providing the image object 25, local 13 or internet 15, the improved system 1 resizes the image object 25 accordmgly
For example, the user desiring to place a cabinet against the back wall of a room, measures the height of the wall The tape measure tool 176 is used on a background image 55 displaying that back wall by positioning the mouse pointer 127 at the ceiling line of the displayed back wall and dragging the mouse pointer 127 down to the floor lme of the displayed back wall The user then appropriately enters the height 181 of the back wall, ninety-six mches for example, mdicatmg to the improved system 1 that the item image 4 is to be resized accordmg to a vertical scale 177 of ninety-six inches as defined by the displacement of the mouse pointer 127 when usmg the tape measure tool 176 and displayed relative to the background image 55 as if the item 53 of the item image 4 were standing against that back wall The image object 25 of the desired cabinet is then located in a database, local 13 or internet 15, and appropriately dropped on the background image 55, whereupon the cabmet item image 4 is automatically resized and shown positioned as indicated by the user, such as against the back wall
More specifically, the height value 167 of an image object 25 retrieved from the local source 13 or downloaded from an internet source 15 is applied by the improved system 1 m the following manner
1) use the tape measure tool 176 to indicate to the improved system 1 that the dimension of a user- selected feature of the background image 55 has a designated height 181 m inches as specified by the user, 2) determine the quantity of pixels that is equivalent to the vertical displacement of the pointer 127 when using the tape measure tool 176 and calculate a pixel-based scale 183 therefrom, such as by dividing the quantity of pixels by the specified height value 181 m inches, an example of provisions of the improved system 1 for defining a user-determined scale 177 relative to the background image 55 displayed on the screen 7 is shown below,
3) multiply the height value 167 provided by the ingredients 65 of the selected image object 25 by the calculated pixel-based scale 183 to determine the quantity of vertically spaced pixels to be used for appropriately resizing and displaying the portrayed item 53 relative to the background image 55 based on the user-specified value 181 provided while using the tape measure tool 176 For example, assume that the vertical height of a feature of the background image has been specified by the user to have a height of 84 inches The number of pixels spanned by the 84-inch feature is divided by 84 which, m turn, is multiplied by the height value 167 by the improved system 1 to obtain the desired height in pixels of the autoscaled sprite image 105 of the item image 4 and the vertical dimensions of the sprite image 105 are resized accordmgly 4) The width of the sprite image 105 is also resized proportionally to the height thereof
5) A similar resizing operation is performed on the corresponding mask image 115 of the item image 4
6) The resized item image 4 is then appropriately displayed and composed with (.) the background image 55, and (..) the other item images 4 displayed on the background image 55 as herem described
The object autoscalmg improvement 23 may be used in conjunction with the download improvement 3 — which allow a downloaded item image 4 to be brought in at the correct height relative to an adjacent wall such as furniture
Exemplary benefits provided by the object autoscalmg improvement 23 include allowing the user to view a product or item 53 realistically and m appropriate dimensions relative to those of a feature portrayed m the background image 55, allowing the user to preview whether the item 53 appropriately fits in a particular area or environment ~ such as a dress on a person, or a TV m an entertainment center, previewing items 53 to assist with the design or purchase decision, and reducing the uncertainty of buying without knowmg how a particular product
3 IMAGE SUBSTITUTION IMPROVEMENT
The image substitution improvement 27 of the improved system 1, sometimes referred to herein as the "metaphor" improvement, is structured to remove existmg bitmaps in existing image objects 25 and replace them with other selected bitmaps It is to be understood that the improved system 1 is also structured to create an object area 67 as a newly created image object 25, including a sprite image 105 and a mask image 115 pertinent thereto, for the purpose of holding bitmaps that are compatible with the remove and replace capability provided by the image substitution improvement 27 as described herem
An object area 67 may be created by using one of the area creation tools provided by the improved system 1, some of which tools automatically program the object area 67 as an image object 25 for convenience Alternatively, any existing image object 25 bemg displayed on the screen 5, sometimes referred to herein as "floating" on the background image 55, can be converted to a programmed area by using a right mouse click on the displayed item image 4 The improved system 1 will then process that programmed area accordingly, as hereinafter described Any item image 4 of an item 53 to be placed in an image object 25, mcludmg in an object area 67, preferably has the following components the sprite image 105 comprising a first bitmap for providing the visible portions of the item 53 to be displayed by the improved system 1, such as a tree, and the mask image 115 comprising a second bitmap for providing a corresponding black and white mask mdicatmg the visible areas of the item 53 in black and the see-through areas of the item 53 in white Types of programming of the object area 67 provided by the improved system 1 include (.) "Force Fit"
188, wherein an item image 4 is dropped into the object area 67 whereupon the improved system 1 automatically resizes the bitmaps of the respective sprite image 105 and mask image 115 to precisely adjust the horizontal and vertical dimensions thereof to the corresponding horizontal and vertical dimensions of the object area 67, (π) "Height Proportional" 189, wherem an item image 4 is dropped into the object area 67 whereupon the improved system 1 automatically resizes the vertical dimensions of the bitmaps of the respective sprite image 105 and mask image 115 to substantially coincide with the vertical dimensions of the object area 67, and simultaneously resize the horizontal dimensions of the bitmaps of the respective sprite image 105 and mask image 115 proportionately to the height thereof, {ιιi) "Width Proportional" 190, wherem an item image 4 is dropped mto the object area 67 whereupon the improved system 1 automatically resizes the horizontal dimensions of the bitmaps of the respective sprite image 105 and mask image 115 to substantially coincide with the horizontal dimensions of the object area
67, and simultaneously resize the vertical dimensions of the bitmaps of the respective sprite image 105 and mask image 115 proportionately to the width thereof, (.v) "Scaled Pattern" 191, wherein the item image 4 is resized accordmg to a user-specified value 181 suppled by the tape measure tool 176, and (v) "Standard Pattern" 192, wherem the item image 4 is displayed without resizmg The improved system 1 is structured to (.) "hold" the OLE drop event property 95 which was created when the image object 25 displayed m the associated object area 67 was retrieved or downloaded, which "holding" enables the improved system 1 to re-access the local source 13 or the internet source 15 of the respective image object 25, to obtam additional information from an associated auxiliary source 125 as described herein, and to (..) "hold" the type of selected operation, height proportional, etc , to be performed on any other item image 4 subsequently dropped mto the same object area 67 or underlymg displayed item image 4
Upon initiating the drag and drop operation 93, which indicates to the improved system 1 that the object image 25 associated therewith has been selected for displaying an item image 4 in a designated object area 67, the improved system 1 determines, from ingredients 65 associated with the OLE drop event 95, the address(es) or locations of the source 13, 15 whereat additional mgredients 65 of the selected image object 25 are stored The improved system 1 then retrieves or downloads certain of those additional ingredients 65 from the respective source 13, 15 and places them into an object area buffer 195 as a source image Once copied mto the object area buffer 195, the improved system 1 determines which scaling operation has been selected, such as through the activation of an appropriate context-sensitive button 188, 189, 190, 191 as schematically illustrated m Fig 6, for displaying the source image 187 m the destmation object area 67
As opposed to traditional metaphors provided by prior art systems wherein objects are placed, repositioned and resized, the image substitution improvement 27 of the improved system 1 allows the user to experiment with various characteristics and modifications of different selected item images 4 before finally selecting a particular modified version of one of the item images 4 selected for display on the background image 55 on the screen 5 Additionally, traditional metaphors provided by prior art systems typically require the user to discard an existing image before replacing it with another image The improved system 1 allows the user to successively and separately drop a plurality of item images 4 in the object area 67 without havmg to delete or create a new object area 67 As a result, the image substitution improvement 27 of the improved system 1 allows almost thoughtless substitution of item images 4 to thereby encourage and support easy and rapid flow of creativity along with immediate recall of any of the item images 4 which have been previously removed from the object area 67 and replaced by another The benefit of such a flow of creativity and rapid viewmg of proposed changes provided by the image substitution improvement 27 permits the user to concentrate on design and visualization issues rather than on system operational issues
For example, the user creates a rectangularly shaped object area 67 on the displayed background image 55 and designates it "Height Proportional" 189, such as by activating a button 189 specifically designed for that purpose, m preparation for dropping an item image 4 of a tree therein The user then locates an image object 25 of a first tree, either locally or through the internet, drops the associated tree item image 4 mto the object area 67, and views it in context with the surroundings provided by the background image 55, with the height of the tree item image 4 resized to the height of the object area 67 mto which it was dropped and the width of the tree item image 4 resized proportionately to the height thereof Subsequently, the user may successively drop as many other item images 4 of trees 53 or other items 53 mto the same programmed object area 67 as desired for automatic resizing and viewmg accordingly It is to be understood that this same procedure may also be performed with pattern images 37, such as siding, wall paper, etc , as hereinafter described
An example of provisions of the improved system 1 for automatically resizing the horizontal dimensions of the item image 4 relative to a user-provided dimension 181 of the background image 55 and proportionately resizing the vertical dimensions of the item image 4 displayed on the background image 55 is shown below, and for force fitting the item image 4 into an object area 67 on the background image 55 displayed on the screen 5 is shown below
4 PSEUDO-TRANSLATIONAL IMPROVEMENT
The pseudo-translational improvement 33, sometimes referred to herem as the "movable 3D" improvement 33, allows a user to view and modify a set 213 of image objects 25, sometimes referred to herein as sub-image objects 215 of the image object set 213, wherein a plurality of the sub-image objects 215 of the set 213 comprise a series of views of an item 53 portrayed by the sub-image objects 215 taken from different perspectives for use m conjunction with an image of a selected environment, namely in association with a selected background image 55 Prior art three-dimensional applications that allow an item to be viewed in a three-dimensional environment typically create a wire frame of the item and then "texture maps" a digital image of the item around the wire frame Although such applications can sometimes produce fairly realistic representations, the improved system 1 differs m that any angular view of the item 53 observed by the user of the improved system 1 is generally provided by a digital photograph of the item 53 and not by a texture mapped wire frame image generated by a computer
Various software products are presently available that allow a user to view images of an item from different angles or at different stages of operation There are typically two basic methods of viewmg an item or a scene (.) photographs are taken from different angles and then "stitched" via software m order to display the item from different angles to provide a view which simulates an observer walking around the item, or (u) photographs are taken from a central location and then "stitched" together with software to provide a view to a user which simulates an observer standing in one place with the item appearing to turn about a vertical axis The movable 3D improvement 33 of the improved system 1 is more like the former basic method in that a plurality of associated sub-image objects 215 are stored m a local database 13, such as a CD-ROM or other suitable storage mechanism, or kept on one or more internet-type servers 15 connected to the computer system 7 through internet-type connections 17 and appropriately accessed, such as by a browser- like mechanism 75 Each such sub-image object 215 contams a view of the portrayed item 53 from a different angle, but the improved system 1 is unique m at least the following instances (1) the user may position and manipulate the multiple sub-image objects 215 m context relative to the background image 55, and (2) the user may manipulate the item image 4 with any of the available image processing options provided by the improved system 1
To utilize the benefits provided by the movable 3D improvement 33, the user locates a desired item 53 either in the local database 13, which causes a thumbnail image 157 to be displayed on the monitor screen 5 of the computer 7, or on an internet server 15, which causes a trigger image 85 to be displayed on the screen 5 A first or initial one of the plurality of sub-image objects 215 of the object image set 213 associated with the thumbnail image 157 or trigger image 85 is then caused to be displayed on the screen 5, such as the sub-image object 215 designated by the numeral 216 in Fig 7, by performing a drag and drop operation 93 on the respective thumbnail image 157 or trigger image 85 The displaying of the sub-image object 215 may comprise any of several available options, such as (z) simple drop on the background image 55, {ιή automatically resize the sub-image object 215 and drop on the background image 55 as described elsewhere herem, {in) drop on previously dropped image object 25 wherein appropriate existmg programmed properties thereof and actions related thereto are automatically assumed by the newly dropped image object 25, such as existmg object height, width or both, for example
When selectmg an image object 25 having ingredients providmg characteristics that utilize the movable 3D improvement 33, the first sub-image object 216 in the sequence of the plurality of sub-image objects 215 of the image object set 213 is displayed on the background image 55 The user may selectively move and position this sub-image object 215 on the background image 55 by performing a drag and drop operation 93 on the sub- image object 215 as herembefore described During such moving and positioning manipulations, the sub-image object 215 retains all relevant properties thereof, including "see-through" characteristics as described elsewhere herein
The improved system 1 is configured to operatively generate and display a control image 217 on the monitor screen 5, which is generally displayed below the sub-image object 215 By clickmg and dragging a slider portion 223 of the control image 217, the sub-image object 215 displayed on the screen 5 can be removed and replaced with the next preceding or succeeding sub-image object 215 in the sequence of associated sub-image objects 215 by appropriately moving the slider portion 223 from side to side of the control image 217
Upon selecting the desired sub-image object 215, the various available effects and other operations structured to provide image manipulation may be applied thereto For example, the user finds a sofa image object 25 having ingredients 65 on either the local database 13 or an internet source 15 that utilize the movable 3D improvement 33 creates an object area 67 where the image object 25 is to be "dropped", and performs a drag and drop operation 93 on the thumbnail image 157 or trigger image 85 associated with the sofa image object 25 by clicking on the thumbnail image 157 or the trigger image 85 and dragging the pointer 127 of the pointing device 128 to the object area 67 where the image object 25 is to be displayed The improved system 1 then downloads and displays the first sub-image object 216 m the active object area 67 of the background image 55 as hereinbefore described
An example of provisions of the improved system 1 for performing a drag and drop operation 93 on an icon image 85, 157 to separately display each sub-image object 215 of an image object set is shown below The drag and drop operation 93 follows the same procedures as for non-3D-type object images 25 hereinbefore described but with an additional operation wherem the improved system 1 determines that the initially downloaded sub-image object 215 is associated with other sub-image objects 215 and automatically proceeds to download and store in an array of image buffers 225 the ingredients 65 needed to subsequently display the other sub-image objects 215 associated therewith, such as views of the same sofa 53 viewed from different angles Also downloaded with each of the sub-image objects 25 and become properties thereof are the associated sprite image 105 and mask image 115 and, with the first sub-image object 125, the relevant information for the object image set 213, such as product name, supplier name, associated database location or URL address as appropriate, etc All available processes for an image object 25 displayed on the background image 55 are supported for any of the sub-image objects 215 displayed on the background image 55
The first sub-image object 216 of the set 213 is tagged as bemg associated with other sub-image objects 215 whereupon the improved system 1, being structured to accordingly respond to the association tag, generates and displays the control image 27 with the slider portion 223 which, as aforesaid, enables the user to select any desired one of the associated sub-image objects 215 by clickmg on the slider portion 223 with the pomter 127 of the pointing device 128 and dragging the slider portion 223 from side to side as appropriate As the user moves the slider portion 223, a slide value 227 serves as an mdex to locate, compose and display the selected sub-image object 215 of the 213 associated with that slide value 227 m context with the background image 55 displayed on the screen 5
An example of provisions of the improved system 1 for displaying the slider portion 223 to accommodate selective and separate viewing of the sub-image objects 215 of an image object set 213 is shown below Manipulation of the slider portion 223 of the control image 217 with the pointing device 128 allows the user to selectively view the sofa 53 from each corresponding perspective provided by the set 213 of sub-image objects 215 and to thereby select the most desired sub-image object 215 in context with the background image 55 By so moving the slider portion 223, the user essentially realizes "real time" rendering of the sofa 53, which appears to be rotating about an axis Further, the user may create duplicate copies of one or more of the sub- image objects 25 and thereby populate the background image 55 with multiple versions of the same item 53 If the item image 4 to be displayed is a sub-image object 215 associated with other sub-rmage objects 215 of an object image set 213, as hereinafter described, then the same selected operation is automatically repeated on each sub-image object 215 of the set 213 The movable 3D improvement 33 includes an animation mechanism 233, which "plays" the sequence of the sub-image objects 215 of the object image set 213 in a continuous loop to thereby create an illusion of animation of the item 53 portrayed by the plurality of sub-image objects 215 of the object image set 213 An example of provisions of the improved system 1 for the animation mechanism 233 is shown below
An association mechanism that maintains the relationship between the sub-image objects 215 of the object image set 213 is retained withm the object image set 213 as a property thereof For example, for an object image set 213 stored in the local database 13, the first sub-image object 216 of the image object set 213 may hold a string field containing (z) the record ID of the related sub-image objects 215, and (π) a selectable array 237 of different time lapses in milliseconds to be used in conjunction with the animation mechanism 233 and, for an object image set 213 stored in the internet 15, a text file 123 related to the object image set 213 may contam a string specifying the file name of each sub-image object 215 of the plurality of sub-image objects 215 forming the object image set 213
If the user selects the option provided by the animation mechanism 233, the improved system 1 will "play" all of the sub-image objects 215 in a contmuous loop by indexmg through the buffers 225 and displaying each sub-image object 215 after the specified time lapse, the available time lapses bemg kept in a lapse array 237 of number values indicating the milliseconds pause before displaying the next succeeding sub-image object 215
An example of provisions of the improved system for selectmg an available tune interval between displaying of successive sub-image objects 215 of an image object set 213 is shown below
An example string "fanl,T10,fan2,T10,fan3,T10,fan4,T10,lHF,tl" in the text file 123 of a sub-image object set 213 sourced from the internet for use with the movable 3D improvement 33 can be described as follows Once the information provided by the associated text file 123 is downloaded and its content parsed, the string is further parsed to determine the identity of the sub-image objects 215 compnsmg the associated image object set 213 For the example string, the parsing is performed as follows
1) "fanl" mdicates the name of the first sub-image object 216, which is initially downloaded from an Internet server 15 as a result of performing a drag and drop operation 93 on the associated trigger image 85 displayed on the screen 5 Again, a corresponding mask image file 113 is downloaded with each respective sprite image file 103 to become properties of the respective sub-item images 2) "T10" indicates the time lapse m milliseconds, which is the value 237 that is relevant when activating the animation mechanism 233 and indicates the time interval between displaying of succeeding sub-image objects 215 of the respective image object set 213
3) "fan2" is the name of the next successive sub-image object 215 in the set 213 The improved system 1 proceeds to download this sub-image object 215 and places it m the array of image buffers 225 Again, "T10" represents the optional animation time lapse for this sub-image object 215 The properties provided by the corresponding mask image files 113 are also downloaded
4) The process is repeated until the entire string is parsed and all related images 105, 115 and properties are downloaded
5) "1HF" mdicates that a download is not required but the sub-image object 215 to be used for this part of the set 213 is the first sub-image "1" 216 and a "horizontal flip" operation is to performed thereon
6) Similar parsing is performed for sub-image objects 215 retrieved from a local database 13 In this case, the name of the sub-image object 215 is usually the value in the ID field for the record in the table contammg the sub-image object 215
7) Finally, in both cases 13, 15, if this string is missing either from the text file 123 (Internet 15) or the proper field (local database 13), then the improved system 1 determines that the image object 25 associated therewith does not have characteristics that utilize the movable 3D improvement 33
Benefits provided by the "movable 3D" improvement 33 include allowing the user to view a product 53, such as a sofa, from various perspectives to more accurately visualize the product 53 relative to a selected background image 55, such as of the user's living room, and simultaneously visualizing the product 53 in conjunction with other available features provided by the improved system 1, such as accessmg selected pertment information 73 regardmg the product 53, which information 73 may be obtained from either the local database 13 or from one or more URL sites 15 on the internet
5 PATTERN AUTOSCALING IMPROVEMENT
The pattern autoscalmg improvement 35 comprises tiling a bitmap of a pattern image 37 m a programmed object area 67 defined by the user The tiling displayed m the programmed area 67 is resized pursuant to user-provided scaling information 181 while usmg the tape measure tool 176 wherein tiling of the pattern image 37 is scaled relative to a prescribed dimension for a selected vertical characteristic of the background image 55 displayed on the screen 5 of the improved system 1, as hereinbefore described In other words, materials and products 53, such as wall-paper and sid g, can be applied as a pattern image 37 to a designated object area 67 of the background image 55 taking mto account the relative dimensions of a selected feature of the background image 55 and an actual vertical dimension 167 of the portrayed material or product 53 that is stored with the mgredients 65 for producmg the respective pattern image 37 as hereinbefore described for image objects 25 Procedures for applying the pattern autoscalmg improvement 35 generally include (;) outline a selected area 251 of an object area 67, sometimes referred to herein as a programmed area, with an outlining mechanism 253 of the improved system 1, (..) search the local database 13, the internet 15, or other compatible database for a desired pattern, {in) select the pattern image 37 of the desired pattern by performing a drag and drop operation 93 on the corresponding thumbnail image 157 for a pattern image 37 stored on the local database 13 or the corresponding trigger image 85 for a pattern image 37 found on the internet 15, as appropriate, and (;v) drop the pattern image 37 associated with the thumbnail image 157 or trigger image 85 on the previously outlined area 251, whereupon the improved system 1 is structured to automatically resize and display the selected pattern image 37 in the programmed area 251 All programmed areas 251 created using the outlining mechanism 253 have properties attached thereto, such as autoscalmg, for example, which indicates to the improved system 1 that whenever the drag and drop operation 93 is performed, the pattern image 37 to be tiled therein is to be resized and displayed in the programmed area 251 pursuant to those properties
An example of the outlining mechanism 253 of the improved system 1 for outlining a user-selected outlined area 251 of the computer generated display on the screen 5 is shown below, and for automatically resizing the computer-generated display within the user-selected outlined area 251 pursuant to a user-determined dimension 181 defined relative to the background image 55 displayed on the screen 5 usmg the tape measure tool 176 is shown below
The image object 25 of the pattern image 37 consists of a sprite image file 103 for providing an associated sprite image 105 but with the pattern image 37 adopting the mask image associated with the outlined area 251 into which the pattern image 37 is being dropped As with other improvements herem, the mask image 115 generally comprising a bitmap containing a black polygon with white surroundings with the polygon having the shape of the outline created with the outlining mechanism 253 The white portion of the mask image 115 is used to copy overlapping parts of the background image 55 onto the image object 25 in order to simulate "see- through" areas The mask image 115 is applied to show any "see-through" areas to thereby display the content of the image object 25 realistically agamst the environment portrayed by the background image 55
For convenience, the improved system 1 may be structured such that durmg the drag and drop operation 93 and as the pointer 127 of the pomtmg device 128 is moved over the programmed area 251, a compatibility indicator 255 may be activated to indicate whether the programmed area 251 will accept the pattern image 37 desired to be tiled in the programmed area 251 Further, the improved system 1 may be further structured to optionally "tint" the programmed area 251 in order to make that defined area 251 more readily identifiable
For an example of the use of the pattern autoscalmg improvement 35, if the user is using a digital image of his house for the background image 55, the pattern autoscalmg improvement 35 may be used to indicate that the front door is eighty inches in height This designation is accomplished by clicking and dragging the tape measure tool 176 along one vertical side of the door in the background image 55 and entering the height 181 of the door 176 in inches The outlining mechanism 253 is then used to delineate an area 251 for sidmg, for example The desired siding pattern 37 is then found in a database, local 13 or internet 15, and displayed in the selected area 251 by performing the described drag and drop operation 93 on the associated icon image 85, 157 The pattern autoscalmg improvement 35 then causes the improved system 1 to automatically display the sidmg 37 as proportionally resized relative to the size of the house based on the designated eighty- inch height of the front door 176 and based on an actual height dimension 179 associated with the pattern image 37
Benefits provided by the pattern autoscalmg improvement 35 include allowing a potential homeowner vendee to preview products 53 — such as wall-paper, tiles and siding — in a realistic manner, which assists the homeowner in making design and remodeling decisions, reducing the uncertainty of making a decision without visualization, and enabling professionals to bridge visualization gaps and close sales to thereby reduce potential customer dissatisfaction
6 SUB-COMPOSITION IMPROVEMENT The sub-composition improvement 43 allows the user to construct an item image 4 with various sub- comp images 45 selected from an array 265 of sub-comp images 45 related thereto prior to composmg the item image 4, together with one or more selected sub-comp images 45, with the background image 55 and other item images 4 being displayed on the background image 55 rather than simply dropping an item image 4 onto the background image 55 "as is" as hereinbefore described. The record in a local database 13 that contains an image object 15 that can be "sub-composed" usmg the sub-composition improvement 43 has a sub-comp value m a field indicative of the sub-composition property thereof. Once the user attempts to perform the drag and drop operation 93 on an image object 25 having the sub- composition property, the improved system 1, upon recognizing the presence of that property, launches an alternative process as follows: 1) A wmdow 273 pops up displaying a mam image 275 of the selected item 53, generally with an initial sub-comp image 45 appropriately positioned relative to the mam image 275. The improved system 1, automatically conducts a search for other sub-comp images 45 related to the main image 275, such as for a relation comprising a recognized set of ID values By way of example, if the mam image 275 has an ID of "3444" m the database 13, another record may be provided mdicatmg that there is a relationship between the mam image 275 and sub-comp images 45 having an ID field containing "7878". All sub-comp images 45 with related ID records are retrieved and presented to the user as the array 265 for possible pre-composition combmation with the ma image 275. Related sub-comp images 45 are preferably grouped by category in order to present them m an organized manner to the user. Each sub-comp image 45 may also be stored in gray scale in order to permit the user to apply any number of color combinations thereto, such as by using the Lead underlay method. Preferred colors may also stored m color values related to each sub-comp image 45 that is usable in combmation with the mam image object 275 2) The user may select any number of combinations of the sub-comp images 45 as needed m order to construct a desired composition of the selected image object 25 of the main image 275. By way of example, the mam image 275 may be a digitized picture of a door 53. The array or arrays of 265 of sub-comp images 45 may present the user with different selectable glass inserts to choose from for combining with the door mam image 275, as schematically suggested m Fig 9 Additionally, different door knobs for the door 53 may be presented m a category or array 265 different from the array 265 of glass inserts, each of which door knob may have a different color for the user to select and experiment with m relation to the door 53 Each related sub- comp image 45 of a category has identical coordinates relative to the main image 275 m order to be composed with the main image 275 at the same exact location An example of provisions of the improved system 1 for removing a sub-comp image 45 of an image object 25 displayed on the screen 5 and automatically replacing that sub-comp image 45 with another sub-comp image 45 is shown below 3) Once the user has composed an image object 25 at a sub-level as just described, the portrayed item 53, together with selected sub-parts portrayed by the sub-comp images 45, may be applied to the background image 55 in the composition environment in the same manner as if the image object 25 were retrieved or downloaded directly from the database 13 or Internet source 1 Although the above example was described in relation to a local source 13, it is to be understood that the sub- composition improvement 43 can also be used with image objects 25 downloaded from an internet-type source 15 provided they have the necessary sub-composition property
Obviously, a unique advantage provided by the sub-composition improvement 43 is the ability to pre- assemble an item 53 with selected features and then dropping the assembled item image 4 into the visualization environment
7 GRID AUTOSCALING IMPROVEMENT The grid autoscalmg improvement 57 of the enhanced system 1 is structured to superimpose a grid image
283 over the background image 55 and the image objects 4 displayed on the background image 55 Mesh 285 of the grid image 283 have a user-specified dimension, such as one foot by one foot Dimensioning of the mesh 285 is approximately accurate for the depth level selected by the user for applying the grid image 283 In other words, if the tape measure tool 176 is used with a door of a house in the background image 55, then the dimensions of the mesh 285 of the grid image 283 will be approximately accurate for all features m the background image 55 that are approximately in the same plane as the door With the grid image 283, the user can easily count the number of mesh 285 spanning a particular area of the background image 55 to roughly and quickly estimate the lineal dimensions and or number of square feet in that area, for example
An example of provisions for the grid autoscalmg improvement 57 of the improved system 1 for automatically displaying the grid image 283 on the screen 5 pursuant to a user-determined dimension is shown below
It is to be understood that, while certain forms of the present mvention have been illustrated and described herein, it is not to be limited to the specific forms or arrangement of parts described and shown PREFERRED EMBODIMENT OF SOURCE CODE FOR SYSTEMS FRMammate, Option Explιcιt,Dιm StopMe As Boolean.Pubhc ThisForm As Form,Pπvate Sub
Command l_Clιck()„ If Not StopMe Then, StopMe = True, Sliderl Chck, Me Commandl Caption =
LoadResStπng(6891) ' — Stop, ThisForm RunAmmation = True, ThisForm AmmateMe,Else,
ThisForm RunAmmation = False, StopMe = False, Me Commandl Caption = LoadResStrιng(6892) ' — Stop, Unload Me, End If,End Sub, Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer), If KeyCode = vbKeyEscape Then Unload Me,End Sub,Pπvate Sub Form_Load(), HideAnyStrips, StopMe = False, Me Move 1300, 600 '(Screen Width / 2 - Me Width / 2), (Screen Height / 2 - Me Height / 2), loadFormControlCaps Me,End Sub,Pπvate Sub Form_Unload( Cancel As Integer), ThisForm RunAmmation = False, End Sub,Pπvate Sub S der l_Chck(), ThisForm AmmatedDelay = (Slider 1 Value) + 1 ,End Sub, .VERSION 5 00,Object =
"{6B7E6392-850A-101B-AFC0-4210102A8DA7}#1 2#0", "COMCTL32 OCX",Begιn VB Form frmAnimate, BackColor = &H00C0C0C0&, BorderStyle = 4 'Fixed ToolWmdow, Caption = "Animate", ChentHeight = 690, ChentLeft = 5205, ChentTop = 1995, ChentWidth = 1560, LinkTopic = "Forml ", MaxButton = 0 'False, MmButton = 0 'False, ScaleHeight = 690, ScaleWidth = 1560, ShowInTaskbar = 0 'False, Tag = "6893", Begm ComctlLib Slider Shderl, Height = 255, Left = 120, Tablndex = 0, Top = 375, Width = 1335, _ExtentX = 2355,
ExtentY = 450, Version = 327682, LargeChange = 1, Max = 8, End, Begin VB CommandButton Commandl , Caption = "Run", Height = 315, Left = 120, Tablndex = 1 , Tag = "6892", Top = 30, Width = 1335, End, End, FRMmam; Option Exphcιt,Pπvate Composed As Boolean 'Used to stop compose on arrow keys,Pπvate StopMove As Boolean 'Used to stop key events to arrow keys,Pπvate offsetx As Single, offsety As Single 'Disitace from mouse to left of object being moved.Pπvate BegmDrag As Boolean 'Flag set to true when movmg an object,Pπvate Xpos As Single, ypos As Single 'Holds old mouse pomt to see it mouse was moved,Pπvate SourceLeft As Integer 'Left of object bemg resιzed,Pπvate SourceRight As Integer 'Right of object being resizedjPπvate SourceBottom As Integer 'Bottom of object bemg resιzed,Pπvate SourceTop As Integer 'Top of object bemg resιzed,Pπvate StartX As Single, StartY As Single 'Set m mousedown, used for first pomt in regions.Pπvate EndX As Single, EndY As Sιngle,Pπvate Reclmtiated As Boolean 'Set to true while creatmg rectangle or ellipse, Private pcount As Integer 'Keeps count of region pomts for poygon,'Pπvate CreateRegion As Byte 'Flag set to region type being created,Pπvate RgnPosX As Integer, RgnPosY As Integer 'Left and top of object bemg created,Prιvate vScrollBarOffset As Byte 'Width in pixels of vertical scrollbar if visible, 0 if not visible, Private hScrollBarOffset As Byte 'Height m pixels of Horizontal scrollbar if visible, 0 if not vιsιble,Pπvate m shopObjects As ShoppιngLst,Pπvate m_shopGlued As ShoppmgLst,Prιvate m_shopAdded As
ShoppιngLst,'Formstate variables, Public Dirty As Boolean,Pubhc Deleted As Boolean.Pubhc FPath As String,Pubhc CompressType As String.Pubhc FormatType As Strιng,Pubhc BPPType As Integer.Pubhc IsThumb As Integer,Pubhc LastPath As Strmg.Pubhc Zoom As Byte,Pubhc ProjectPathName As Strιng,Pubhc BMBits As Byte,Pubhc DoorSizeW As Integer,Publιc DoorSizeH As Integer,Pubhc ResizeProportional As Boolean„'01d vaπableSjDim FormGπdPomt() As POINTAPI.Dim FormRegιonPosιtιon() As Integer,Dιm FormlnteriorRoom As
Boolean.Drm FormRoomleftpos As Integer,Dιm FormRoomtoppos As Integer,Drm RectTopX As Integer,Dιm RectTopY As Integer,Dιm NotResizmgFirstTime As Boolean,Dιm MouseoffsefX As Smgle,Dιm MouseoffsetY As Sιngle,Dιm WasSelected As Boolean,'For editing ears,Dιm FirstDown As Integer 'flag,Dιm FirstDownTop As Integer,Dιm FirstDownLeft As Integer,Dιm PreviousMoveX As Integer,Dιm PreviousMoveY As Integer,Dιm PreviousMovePπmeX As Integer,Dιm PreviousMovePπmeY As Integer,Dιm EarMoving As Integer,Dιm ShiftMove As Boolean,Dιm MoveX As Integer,Dιm MoveY As Integer,Dιm MovePnmeX As Integer,Dιm MovePrrmeY As Integer.Dim OffsetMoveX As Integer,Dιm OffsetMoveY As Integer,Drm OffsetMovePπmeX As Integer,Dιm OffsetMovePπmeY As Integer ,Drm MoveAspect As Double ' -end of ear manipulation,'- — Captions from Resource Fιle;Pπvate va_prompt_EnterYourPassword As Strιng;Pπvate va Warningl As String ;Pπvate va_Warnmg2 As Strιng;Pπvate va_cap_ShapeOfBrush As Strmg;Pπvate va cap Paint As Strιng;Pπvate va_promρt_LosePerspectιveDrop As Strιng;Pπvate va_prompt_ModeContmue As String ;Pπvate va_cap_Dιalog_Contmue As Stπng;Pπvate va_Warnmg_NoSelected As Strmg;Pπvate va_Warnmg_CloseEffect As Strιng;Pπvate va cap UserCreated As Stπng;Pπvate va_cap_Item As Strmg;Pπvate va_cap_DownloadιngNet
As String ;Pπvate va cap Group 1 As Strmg;Pπvate va_cap_Group2 As String ;Pπvate va_cap_Group3 As Strmg;Pπvate va_cap_Group4 As String ;Prιvate va_cap_Group5 As Strmg;Pπvate va cap AlreadyShadow As Strιng;Pπvate va cap DownloadCalnceled As Strmg;Pπvate va cap Applyinglmage As Strιng;Dιm PolyDIX As Integer;Dιm polyDlY As Integer;Pπvate Object WidthAspect As Smgle;Pπvate ObjectHeightAspect As Sιngle;'magιc Zoom variables ;Pubhc Mag As Integer '2 4 8;'Shoppιng hst;Pπvate ShopLιst() As SLιst;Pπvate
IsSelected As Boolean;Pπvate IsTransparentBefore As Boolean;'Rιght click on region creatιon;Pubhc RegionChckType As Integer;'Gnd;Publιc Grid As Boolean;Pπvate TempVerticalGπd As Integer,Pπvate TempHoπzontalGπd As Integer;'Anιmatιon;Dιm AnιmateSpnte() As New StdPicture 'animation buffers;Dιm AnιmateMask() As New StdPιcture;Dιm TιmeFactorArray() As Integer 'Keeps animation time lapse;Pubhc DoingAmmation As Boolean;Pubhc Animationlndex As Integer 'to make it faster to locate object to ammate;Pubhc RunAmmation As Boolean 'true = animation in actιon;Publιc AmmatedDelay As Long;Dιm AmmationTimerFlag As Boolean;Pubhc InternetAmmate As Strmg;'Undo vaπables;'Pubhc UndoToppos As Integer;'Pubhc UndoLeftpos As Integer,'Pubhc UndoSelectedObject As Boolean;'Publιc UndoInGroup As Boolean;'Publιc UndoObjectName As Strιng;'Pubhc UndoDatabaselD As Integer;'Pubhc UndoCDVolume As Strιng;'Publιc UndoCompanyName As Strιng;'Pubhc UndoZoom As Byte;'Publιc UndoUndoMode As
Strιng;'Pubhc UndoBackLeft As Integer;'Pubhc UndoBackTop As Integer;'Publιc UndoDropType As Integer;'Pubhc UndoResizePatPer As Integer;'Pubhc UndoPerspecCoordXO As Integer;'Pubhc UndoPerspecCoordYO As Integer;'Pubhc UndoPerspecCoordXl As Integer;'Publιc UndoPerspecCoordYl As Integer;'Pubhc UndoPerspecCoordX2 As Integer;'Pubhc UndoPerspecCoordY2 As Integer;'Publιc UndoPerspecCoordX3 As Integer;'Pubhc UndoPerspecCoordY3 As Integer; 'Public UndoPerspecCoordX4 As
Integer;'Pubhc UndoPerspecCoordY4 As Integer;'Pubhc UndoPerspectiveType As Integer;Pubhc UndoObjectlndex As Integer;'Public UndoIsShadow As Boolean;'Pubhc UndoShadowIntensity As Integer;'Pubhc UndoIsTransparent As Boolean;'Publιc UndoIsEmbossed As Boolean;'Public Undolslnteφolation As Boolean;'Publιc UndoIsText As Boolean;'Pubhc UndoUmt As Boolean;'Public UndoNumberOfUnits As Boolean;'Pubhc UndoUnitPnce As Boolean;Pπvate UndoTempFile As Stπngj'Linking of objects ;Pπvate LinkLeft
As Integer;Pπvate linktop As Integer;Pπvate Sub CreateUndoTempFιle(); On Error GoTo CreateUndoTempFileError; UndoTempFile = "VA" & CStr(Format(tιme, "hhnnss")) & ".tvp"; FileCopy GalleryPath & "\" & "vatemp.tmp", GalleryPath & "\" & UndoTempFile; Exit Sub;CreateUndoTempFιleError:; If Err = 53 Then 'database template was not found so create new one; If CreateUndoDB Then; Resume; Else; MsgBox Err & Error; Exit Sub; End If; Else; MsgBox Err & Error; Resume Next; End If;End Sub;;Pubhc
Function LoadUndo(Index As Integer) As Boolean;Dιm I As Integer, DatabaseControllOLoaded As Boolean, DatabaseControll 1 Loaded As Boolean, DatabaseControllOLoaded As Boolean; Dim X As Integer, amount As Single, Adj As Integer, LastID; On Error GoTo LoadUndoError; LoadUndo = False, Screen.MousePomter = vbHourglass, With frmMDI, 'open database project, Load frmMDI valmageBufferl(lO) DatabaseControllOLoaded = True 'Patch for lead problem, valmageBufferl(lO) Readonly = False, valmageBufferl(lO) DatabaseName = GalleryPath & "\" & UndoTempFile
'"C \VB5\32bit_VP\GALLERY\val23456 tmp", valmageBufferl(lO) Refresh, valmageBufferl(lO) dtaField = "", vaImageBufferl(10) RecordSource = "Undo", valmageBufferl(lO) Refresh, valmageBufferl (10) dtaField =
"Sprite", valmageBufferl (10) Refresh, valmageBufferl(lO) Recordset MoveLast, valmageBufferl (10) Recordset MoveFirst, valmageBufferl(lO) Recordset MoveLast,, Index = frmMDI valmageBufferl (10) Recordset("Index"), If frmMDI valmageBufferl (10) Recordset("UndoMode") = "Undo Delete" Or frmMDI valmageBufferl (10) Recordset("UndoMode") = "Undo Glue" Then, If ldSpπteTransferBuffer Bitmap = 0 Then, ldSpπteTransferBuffer CreateBitmap 60, 60, 16,
IdSpπteTransferBuffer Fill RGB(255, 255, 255), End If, If IdMaskTransferBuffer Bitmap = 0 Then, IdMaskTransferBuffer CreateBitmap 60, 60, 16, IdMaskTransferBuffer Fill RGB(0, 0, 0), End If, VA LoadObject frmMDI valmageBufferl(lO) Recordset("left") - hsbMain Value, frmMDI valmageBufferl(lO) Recordset("top") - vsbMam Value, Index, End If, LastID = valmageBufferl(lO) Recordset("ID"), Zoom = valmageBufferl(lO) Recordset("Zoom"), vaPιcture(Index) SelectedObject = True, vaPιcture(Index) InGroup = valmageBufferl (10) Recordset("InGrouρ"), vaPιcture(Index) DatabaselD = valmageBufferl(lO) Recordset( "DatabaselD"), vaPιcture(Index) ObjectName = valmageBufferl(lO) Recordset("ObjectName"), vaPιcture(Index) CDVolumn = valmageBufferl (10) Recordset("CDVolumn"), vaPιcture(Index) CompanyName = valmageBufferl(lO) Recordset("CompanyName"), vaPιcture(Index) ResizePatPer = valmageBufferl(lO) Recordset("ResιzePatPer"), vaPιcture(Index) DropType = valmageBufferl (10) Recordset("DropType"), vaPιcture(Index) PerspectiveType = valmageBufferl (10) Recordset( "PerspectiveType"), vaPιcture(Index) PerspecCoordXO = valmageBufferl(lO) Recordset("PerspecCoordX0"), vaPιcture(Index) PerspecCoordYO = valmageBufferl(lO) Recordset("PerspecCoordY0"), vaPιcture(Index) PerspecCoordXl = valmageBufferl (10) Recordset( "PerspecCoordXl"), vaPιcture(Index) PerspecCoordYl = valmageBufferl (10) Recordset("PerspecCoordYl"), vaPιcture(Index) PerspecCoordX2 = valmageBufferl(lO) Recordset("PerspecCoordX2"), vaPιcture(Index) PerspecCoordY2 = valmageBufferl(lO) Recordset("PerspecCoordY2"), vaPιcture(Index) PerspecCoordX3 = valmageBufferl (10) Recordset("PerspecCoordX3"), vaPιcture(Index) PerspecCoordY3 = valmageBufferl(lO) Recordset("PerspecCoordY3"), vaPιcture(Index) PerspecCoordX4 = valmageBufferl (10) Recordset("PerspecCoordX4"), vaPιcture(Index) PerspecCoordY4 = valmageBufferl (10) Recordset("PerspecCoordY4"), vaPιcture(Index) IsShadow = valmageBufferl (10) Recordset("IsShadow"), vaPιcture(Index) Shadowlntensity = valmageBufferl (10) Recordset("ShadowIntensιty"), vaPιcture(Index) IsTransparent = valmageBufferl (10) Recordset("IsTransparent"), vaPιcture(Index) IsEmbossed = valmageBufferl (10) Recordset("IsEmbossed"), vaPιcture(Index) Islnterpolation = valmageBufferl(lO) Recordset("IsInterpolatιon"), vaPιcture(Index) IsText = .vaImageBufferl(10).Recordset("IsText"); If .valmageBufferl(lO) Recordset("UndoMode") <> "Undo Move" Then; Load frmMDI.vaImageBufferl(l 1): DatabaseControll lLoaded = True 'Patch for lead problem, .vaImageBufferl(l l).DatabaseName = GalleryPath & "\" & UndoTempFile; .valmageBufferl (1 l).Refresh; .vaImageBufferl(l l).dtaFιeld = ""; .vaImageBufferl(l l).RecordSource = "Select Mask from Undo"; .vaImageBufferl(l l).Refresh; .valmageBufferl(l l). dtaField = "Mask", valmageBufferl(l l). Refresh;
.vaImageBufferl(l l).Recordset.MoveLast; If Zoom > .vaImageBufferl(10).Recordset("Zoom") Then; amount = 1; vaPιcture(Index).Move .vaImageBufferl(10).Recordset("left"), .valmageBufferl ( 10). Recordset("top"); For I = 1 To Zoom - ,vaImageBufferl(10).Recordset("Zoom"); vaPιcture(Index).Move (vaPιcture(Index).Left * 2) + .vaImageBufferl(10).Recordset("UndoBackLeft"), (vaPιcture(Index).Top * 2) + .vaImageBufferl(10).Recordset("UndoBackTop"); amount = amount * 2; Next I; vaPιcture(Index) Move vaPιcture(Index).Left - hsbMam.Value, vaPιcture(Index).Top - vsbMain.Value; ldSpπteTransferBuffer.Bitmap = .vaImageBufferl(10).Bιtmap; ldMaskTransferBuffer.Bitmap = .valmageBufferl (1 l).Bιtmap, ldSpπteTransferBuffer.Size ldSpπteTransferBuffer.Bitmap Width * amount, ldSpπteTransferBuffer.BitmapHeight, RESIZE NORMAL; ldMaskTransferBuffer.Size ldMaskTransferBuffer.Bitmap Width * amount, ldMaskTransferBuffer.BitmapHeight * amount,
RESIZE NORMAL; vaPιcture(Index). Sprite = ldSpπteTransferBuffer.GetPicture; vaPιcture(Index) Mask = IdMaskTransferBuffer. GetPicture; Elself Zoom < .valmageBufferl ( 10). Recordset("Zoom") Then; amount = 1; vaPιcture(Index).Move .vaImageBufferl(10).Recordset("left"), vaImageBufferl(10).Recordset("top"); For I = 1 To .vaImageBufferl(10).Recordset("Zoom") - Zoom; vaPιcture(Index).Move (vaPιcture(Index).Left - .vaImageBufferl(10).Recordset("UndoBackLeft")) * 0.5, (vaPιcture(Index).Top -
.valmageBufferl ( 10). Recordset("UndoBackTop")) * 0.5; amount = amount * 0.5; Next I; vaPιcture(Index).Move vaPιcture(Index).Left - hsbMam.Value, vaPιcture(Index).Top - vsbMain. Value; ldSpπteTransferBuffer.Bitmap = .vaImageBufferl(10).Bιtmap; ldMaskTransferBuffer.Bitmap = .valmageBufferl (l l).Bιtmap; ldSpnteTransferBuffer.Size ldSpπteTransferBuffer.Bitmap Width * amount, ldSpriteTransferBuffer.BitmapHeight, RESIZE NORMAL; ldMaskTransferBuffer.Size ldMaskTransferBuffer.Bitmap Width * amount, ldMaskTransferBuffer.BitmapHeight * amount, RESIZE NORMAL; vaPιcture(Index). Sprite = IdSpriteTransferBuffer.GetPicture; vaPιcture(Index).Mask = ldMaskTransferBuffer.GetPicture; Else; ldSpπteTransferBuffer.Bitmap = .valmageBufferl(lO). Bitmap; ldMaskTransferBuffer.Bitmap = .vaImageBufferl(l l).Bιtmap; vaPicture(Index). Sprite = ldSpπteTransferBuffer.GetPicture; vaPιcture(Index).Mask = ldMaskTransferBuffer.GetPicture; vaPιcture(Index).Move .vaImageBufferl(10).Recordset("left") - hsbMam.Value, .vaImageBufferl(10).Recordset("top") - vsbMam. Value; End If; Unload .valmageBufferl(l l): DatabaseControll lLoaded = False; Else; vaPιcture(Index).Move .vaImageBufferl(10).Recordset("left") - hsbMam.Value, .vaImageBufferl(10).Recordset("top") - vsbMam.Value; End If; If .vaImageBufferl(10).Recordset("UndoMode") = "Undo Glue" Then; Load frmMDI.vaImageBufferl(16):
DatabaseControll 6Loaded = True 'Patch for lead problem; .vaImageBufferl(16).DatabaseName = GalleryPath & "\" & UndoTempFile; .vaImageBufferl(16).Refresh; .valmageBufferl (16).dtaFιeld = ""; .vaImageBufferl(16).RecordSource = "Select BackGround from Undo"; .valmageBufferl (16). Refresh; valmageBufferl (16) dtaField = "BackGround", valmageBufferl (16) Refresh, valmageBufferl (16) Recordset MoveLast, IdSnapshotBuffer Bitmap = valmageBufferl (16) Bitmap, picDistort Picture = IdSnapshotBuffer GetPicture, picBackgroundBuffer AutoRedraw = True, picBackgroundBuffer Visible = False, picBackgroundBuffer Cls, X = BιtBlt(pιcBackgroundBuffer hDC, vaPιcture(Index) Left + 8, vaPιcture(Index) Top + 8, vaPιcture(Index) Width - 16, vaPιcture(Index) Height - 16, picDistort hDC, 0, 0, SRCCOPY), picBackgroundBuffer Picture = picBackgroundBuffer Image, picComposite Picture = picBackgroundBuffer Picture, picScreen Picture = picBackgroundBuffer Picture, IdScreen SetPicture picBackgroundBuffer Picture, Unload valmageBufferl (16) DatabaseControll όLoaded = False, Me shopGlued Remove Me shopGlued Count, End If, Compose VA COMPOSE LOAD NEW, Index, vaPιcture(Index) Repaintlmage picComposite hDC, vaPιcture(Index) Left, vaPιcture(Index) Top, frmMDI IdShadowBuffer, frmMDI IdShadow, vaPιcture(Index) Refresh, picScreen Refresh, SendToFront, If ShoppingListActive Then frmShopList loadObjects Me Else UpdateShoppingList, If valmageBufferl(lO) Recordset RecordCount = 1 Then, mnuUndo Enabled = False, mnuUndo Caption = LoadResStrιng(5011) ' "&Undo", Else, valmageBufferl (10) Recordset MovePrevious, mnuUndo Caption = valmageBufferl (10) Recordset("UndoMode"), End If, 'Delete record, valmageBufferl(lO) dtaField = "", valmageBufferl (10) RecordSource = "Select * from Undo where ID = " & LastlD, valmageBufferl (10) Refresh, valmageBufferl(lO) Recordset Delete, valmageBufferl (10) Refresh, 'release datacontrol, Unload valmageBufferl(lO) DatabaseControll OLoaded = False, OperationMode = VA MOVING, Screen MousePomter = vbDefault, ActiveForm vaPιcture(Index) SelectedObject = False, End With, LoadUndo = True,Exιt Functιon,LoadUndoError , If DatabaseControll OLoaded = True Then Unload frmMDI valmageBufferl(lO), If
DatabaseControll lLoaded = True Then Unload frmMDI valmageBufferl (11), If DatabaseControll όLoaded = True Then Unload frmMDI valmageBufferl(lo), Screen MousePomter = vbDefault,' MsgBox Err & Error,' Resume, Exit Functιon,End Functιon„Pubhc Function SaveUndo(Index As Integer, UndoMode As String) As Boolean, Dim l As Integer, DatabaseControll4Loaded As Boolean, DatabaseControll 5Loaded As Boolean, DatabaseControll όLoaded As Boolean, On Error GoTo SaveUndoError, Screen MousePomter = vbHourglass,
SaveUndo = False, With frmMDI, 'open database project, Load frmMDI valmageBufferl (14) DatabaseControll 4Loaded = True 'Patch for lead problem, valmageBufferl (14) ReadOnly = False, valmageBufferl (14) DatabaseName = GalleryPath & "\" & UndoTempFile '"C \VB5\32bit_VP\GALLERY\val23456 top", vaImageBufferl(14) Refresh, valmageBufferl (14) dtaField = "", valmageBufferl (14) RecordSource = "Undo", vaImageBufferl(14) Refresh, 'Remove records if over undo layer limit, If UndoLayers <> -1 Then, vaImageBufferl(14) Recordset MoveLast vaImageBufferl(14) Recordset MoveFirst, If UndoLayers <= valmageBufferl (14) Recordset RecordCount Then, For l = 0 To valmageBufferl (14) Recordset RecordCount - UndoLayers, vaImageBufferl(14) Recordset MoveFnst, valmageBufferl (14) Recordset Delete, Next I, vaImageBufferl(14) RecordSource = "Undo", valmageBufferl (14) Refresh, End If, End If, If UndoMode <>
"Undo Move" Then, valmageBufferl (14) dtaField = "Sprite", vaImageBufferl(14) Refresh, Load frmMDI valmageBufferl (15) DatabaseControll 5Loaded = True 'Patch for lead problem, valmageBufferl (15) ReadOnly = False, valmageBufferl (15) DatabaseName = GalleryPath & "\" & UndoTempFile; .vaImageBufferl(15). Refresh; .valmageBufferl (15). dtaField = "",
.valmageBufferl (15).RecordSource = "Select Mask from Undo"; .vaImageBufferl(15) Refresh,
.vaImageBufferl(15).dtaFιeld = "Mask", vaImageBufferl(15). Refresh, End If,
.vaImageBufferl(14).Recordset.AddNew Others are added; .vaImageBufferl(14).Recordset("Zoom") = Zoom, .vaImageBufferl(14).Recordset("Index") = Index, .vaImageBufferl(14).Recordset("UndoMode") = UndoMode;
.vaImageBufferl(14).Recordset("DatabaseID") = vaPιcture(Index).DatabaseID;
.vaImageBufferl(14).Recordset("ObjectName") = Left(vaPιcture(Index).ObjectName, 50);
.vaImageBufferl(14).Recordset("CDVolumn") = vaPιcture(Index).CDVolumn;
.vaImageBufferl(14).Recordset("CompanyName") = vaPιcture(Index).CompanyName; .vaImageBufferl(14).Recordset("top") = vaPιcmre(Index).Top; .vaImageBufferl(14).Recordset("left") = vaPιcture(Index)Left, vaImageBufferl(14).Recordset("ResιzePatPer") = vaPιcture(Index).ResιzePatPer; vaImageBufferl(14).Recordset("DropType") = CInt(vaPιcture(Index).DropType);
.vaImageBufferl(14).Recordset("PerspectιveType") = CInt(vaPιcture(Index). PerspectiveType), vaImageBufferl(14).Recordset("PerspecCoordX0") = vaPιcture(Index).PerspecCoordXO, .vaImageBufferl(14).Recordset("PerspecCoordY0") = vaPιcture(Index).PerspecCoordYO;
.vaImageBufferl(14).Recordset("PerspecCoordXl") = vaPιcture(Index).PerspecCoordXl;
. valmageBuffer 1 ( 14).Recordset("PerspecCoordY 1 ") = vaPιcture(Index).PerspecCoordY 1 ;
.vaImageBufferl(14).Recordset("PerspecCoordX2") = vaPιcture(Index).PerspecCoordX2;
.vaImageBufferl(14).Recordset("PerspecCoordY2") = vaPιcture(Index).PerspecCoordY2; .vaImageBufferl(14).Recordset("PerspecCoordX3") = vaPιcture(Index).PerspecCoordX3;
.valmageBuffer 1(14) .Recordset("PerspecCoordY3 ") = vaPιcture(Index) .PerspecCoordY3 ;
.vaImageBufferl(14).Recordset("PerspecCoordX4") = vaPιcture(Index).PerspecCoordX4; vaImageBufferl(14).Recordset("PerspecCoordY4") = vaPιcture(Index).PerspecCoordY4;
.valmageBuffer 1( 14). Recordset("IsShadow") = vaPιcture(Index).IsShadow; .vaImageBufferl(14).Recordset("ShadowIntensιty") = vaPιcture(Index).ShadowIntensιty;
.vaImageBufferl(14).Recordset("IsTransparent") = vaPιcture(Index).IsTransparent,
.vaImageBufferl(14).Recordset("IsEmbossed") = vaPιcture(Index).IsEmbossed;
.vaImageBufferl(14).Recordset("IsInterpolatιon") = vaPιcture(Index).IsInterpolatιon;
.vaImageBufferl(14).Recordset("IsText") = vaPιcture(Index).IsText; If UndoMode <> "Undo Move" Then; 'assign sprite; ldSpπteTransferBuffer.SetPicture vaPιcture(Index). Sprite; .vaImageBufferl(14).Bιtmap =
IdSpriteTransferBuffer.Bitmap; .vaImageBufferl(14).DataSaveBιts = 24, .vaImageBufferl(14).DataSaveFormat :
FILE JFIF; .valmageBufferl (14).DataSaveQualιty = 2; .valmageBufferl (14).Recordset.Update; 'assign mask;
.vaImageBufferl(15).RecordSource = "Select Mask from Undo"; .vaImageBufferl(15).Refresh;
.valmageBufferl (15).Recordset.MoveLast; .vaImageBufferl(15).Recordset.Edιt, ldMaskTransferBuffer.SetPicture vaPιcture(Index).Mask; .vaImageBufferl(15).Bιtmap = ldMaskTransferBuffer.Bitmap; .vaImageBufferl(15).DataSaveBιts = 24; .vaImageBufferl(15).DataSaveFormat =
FILE JFIF; .valmageBufferl (15). DataSaveQuahty = 2; .valmageBufferl (15).Recordset.Update; 'release datacontrol, Unload .vaImageBufferl(14): DatabaseControll 4Loaded = False; Unload .vaImageBufferl(15) DatabaseControll 5Loaded = False, Else, valmageBuffer 1(14) Recordset Update, Unload valmageBuffer 1(14) DatabaseControll 4Loaded = False, End If, If UndoMode = va_cap_Undo_Glue Then, Load frmMDI vaImageBufferl(16) DatabaseControll όLoaded = True 'Patch for lead problem, valmageBufferl(lo) ReadOnly = False, valmageBufferl (16) DatabaseName = GalleryPath & "\" & UndoTempFile, valmageBufferl (16) Refresh, valmageBuffer 1( 16) dtaField = "", valmageBufferl (16) RecordSource = "Select BackGround from Undo", valmageBufferl (16) Refresh, valmageBufferl (16) dtaField = "BackGround", valmageBufferl (16) Refresh, vaΙmageBufferl(lό) Recordset MoveLast, valmageBufferl (16) Recordset Edit, picBackgroundBuffer Cls, picDistort Move picDistort Left, picDistort Top, vaPιcture(Index) Width - 16, vaPιcture(Index) Height - 16, l = BιtBlt(frmMDI picDistort hDC, 0, 0, (vaPιcture(Index) Width + 16) * Screen TwipsPerPixelX,
(vaPιcture(Index) Height + 16) * Screen TwipsPerPixelY, picBackgroundBuffer hDC, vaPιcture(Index) Left + 8, vaPιcture(Index) Top + 8, SRCCOPY), I = IdMaskTransferBuffer SetPιcture( picDistort Image), valmageBufferl (16) Bitmap = IdMaskTransferBuffer Bitmap, valmageBufferl (16) DataSaveBits = 24, valmageBufferl (16) DataSaveFormat = FILE JFIF, valmageBufferl (16) DataSaveQuality = 2, vaImageBufferl(16) Recordset Update, Unload vaImageBufferl(16) DatabaseControll όLoaded = False, End If,
End With, mnuUndo Caption = UndoMode, mnuUndo Enabled = True, Screen MousePomter = vbDefault, SaveUndo = True,Exιt Function, SaveUndoError , If Err = 3021 Then, Resume Next, Else, If DatabaseControll4Loaded = True Then Unload frmMDI valmageBuffer 1(14), If DatabaseControll 5Loaded = True Then Unload frmMDI vaImageBufferl(15), If DatabaseControll όLoaded = True Then Unload frmMDI valmageBufferl (16), Screen MousePomter = vbDefault, MsgBox Err & Error, Exit Function, End If,End
Functιon„'Publιc Function SetUndoObj(Index As Integer, UndoMode As String) As Boolean,' On Error GoTo SetUndoObj Error,',' SetUndoObj = False,',' lmgUndoSpπte Picture = vaPιcture(Index) Sprite,' lmgUndoMask Picture = vaPιcture(Index) Mask,' UndoToppos = vaPιcture(Index) Top,' UndoLeftpos = vaPιcture(Index) Left,' UndoSelectedObject = vaPιcture(Index) SelectedObject,' UndoInGroup = vaPιcture(Index) InGroup,' UndoObjectName = vaPιcture(Index) ObjectName,' UndoDatabaselD = vaPιcture(Index) DatabaselD,' UndoCDVolume = vaPιcture(Index) CDVolumn,' UndoCompanyName = vaPιcture(Index) CompanyName,' UndoZoom = Zoom,' UndoObjectlndex = Index,' UndoUndoMode = UndoMode,' UndoBackLeft = Abs(ldScreen Left),' UndoBackTop = Abs(ldScreen Top),' UndoDropType = vaPιcture(Index) DropType,' UndoResizePatPer = vaPιcture(Index) ResizePatPer,' UndoPerspecCoordXO = vaPιcture(Index) PerspecCoordXO,' UndoPerspecCoordYO = vaPιcture(Index) PerspecCoordYO,'
UndoPerspecCoordXl = vaPιcture(Index) PerspecCoordXl,' UndoPerspecCoordYl = vaPιcture(Index) PerspecCoordYl,' UndoPerspecCoordX2 = vaPιcture(Index) PerspecCoordX2,' UndoPerspecCoordY2 = vaPιcture(Index) PerspecCoordY2,' UndoPerspecCoordX3 = vaPιcture(Index) PerspecCoordX3,' UndoPerspecCoordY3 = vaPιcture(Index) PerspecCoordY3,' UndoPerspecCoordX4 = vaPιcture(Index) PerspecCoordX4,' UndoPerspecCoordY4 = vaPιcture(Index) PerspecCoordY4,' UndoPerspectiveType = vaPιcture(Index) PerspectiveType,' UndoIsShadow = vaPιcture(Index) IsShadow,' UndoShadowIntensity = vaPιcture(Index) Shadowlntensity,' UndoIsTransparent = vaPιcture(Index) IsTransparent,' UndoIsEmbossed = vaPιcture(Index) IsEmbossed,' Undolslnterpolation = vaPιcture(Index).IsInterpolatιon,' UndoIsText = vaPιcture(Index).IsText,';' mnuUndo. Caption = UndoMode,' mnuUndo. Enabled = True;';' SetUndoObj = True;';'Exιt Functιon;'SetUndoObj_Error.;' If Err.Number <> 0 Then,' gMsg = va_Error_Error & Str(Err Number) & va Error WasGeneratedBy _;' & Err.Source & Chr(13) & Err.Description & Chr(13) & " (SetUndoObj)";' DisplayErrorMessage gMsg, vbCritical, VaTitle;' End If;' Resume Next;' Exit Functιon;'End Functιon;'Publιc Function GetUndoObject(Index As Integer) As Boolean;' On Error
GoTo GetUndoObject Error;' Dim X As Integer, amount As Single, l As Integer, Adj As Integer,';' X = LoadUndo(Index);' Exit Function;',' GetUndoObject = False;';' Screen.MousePointer = 11 ;';' ' If UndoObject(ThιsForm.Tag). UndoMode = "Undo Last Delete" Then;' ' CurrentObj(ThιsForm.Tag) = 0," ' UnselectObject ThisForm,' ' X = LoadObject(ThιsForm);' ' Index = X;' ' CurrentObj (ThisForm Tag) = X,' ' 'Else,' ' 'FormState(ThιsForm.Tag).ObjectOrder = UndoObject(ThιsForm.Tag).ObjectOrder;' '
'FormState(ThιsForm.Tag).ObjectPrevOrder = UndoObject(ThιsForm.Tag).ObjectPrevOrder;' ' End If,' ' If ObjectDιscπρtιon(ThisForm.Tag, Index). Selected = False And ObjectDιscπptιon(ThιsForm.Tag, Index). Deleted = False Then;' ' OperationMode = "Undo";' ' UnselectObject ThisForm;' ' RecreateObject Index, ThisForm;' ' CurrentObj(ThιsForm.Tag) = Index;' ' SelectObjects(ThιsForm) = Index;' ' End If;" ThisForm.ldCompositionBuffer.Bitmap = ThisForm.ldBackGround.Bitmap;" Regenerate frmMDI ActiveForm;',' vaPιcture(Index). SelectedObject = True;' vaPιcture(Index). InGroup = UndoInGroup;' vaPιcture(Index).ObjectName = UndoObjectName;' vaPιcture(Index). DatabaselD = UndoDatabaselD;' vaPιcture(Index).CDVolumn = UndoCDVolume;' vaPιcture(Index).CompanyName = UndoCompanyName;' vaPιcture(Index).DropType = UndoDropType;' vaPιcture(Index).ResιzePatPer = UndoResizePatPer;' vaPιcture(Index).PerspecCoordXO = UndoPerspecCoordXO;' vaPιcture(Index).PerspecCoordYO =
UndoPerspecCoordYO,' vaPιcture(Index). PerspecCoordXl = UndoPerspecCoordXl;' vaPιcture(Index).PerspecCoordYl = UndoPerspecCoordYl;' vaPιcture(Index).PerspecCoordX2 = UndoPerspecCoordX2;' vaPιcture(Index).PerspecCoordY2 = UndoPerspecCoordY2;' vaPιcture(Index).PerspecCoordX3 = UndoPerspecCoordX3;' vaPιcture(Index).PerspecCoordY3 = UndoPerspecCoordY3;' vaPιcture(Index).PerspecCoordX4 = UndoPerspecCoordX4;' vaPιcture(Index).PerspecCoordY4 = UndoPerspecCoordY4;' vaPιcture(Index).PerspectιveTyρe = UndoPerspectiveType;' vaPιcture(Index).IsShadow = UndoIsShadow;' vaPicture(Index).ShadowIntensιty = UndoShadowIntensity;' vaPιcture(Index).IsTransparent = UndoIsTransparent;' vaPιcture(Index).IsEmbossed = UndoIsEmbossed;' vaPιcture(Index).IsInterpolatιon = Undolslnterpolation;' vaPιcture(Index).IsText = UndoIsText;';' If Zoom > UndoZoom Then;' amount = 1;' vaPιcture(Index).Top = UndoToppos,1 vaPιcture(Index).Left = UndoLeftpos;' For I = 1 To Zoom - UndoZoom;' vaPιcture(Index).Top = (vaPιcture(Index).Top * 2) + UndoBackTop;' vaPιcture(Index).Left = (vaPιcture(Index).Left * 2) + UndoBackLeft;' amount = amount * 2;' Next i;' vaPιcture(Index).Top = vaPιcture(Index).Top - vsbMam. Value;' vaPιcture(Index).Left = vaPιcture(Index)Left - hsbMam.Value;' ldSpπteTransferBuffer.SetPicture lmgUndoSpπte.Picture,' IdMaskTransferBuffer. SetPicture rmgUndoMask.Picture;' IdSpriteTransferBuffer.Size ldSpπteTransferBuffer.BitmapWidth * amount, ldSpπteTransferBuffer.BitmapHeight, RESIZE NORMAL;' ldMaskTransferBuffer.Size ldMaskTransferBuffer.Bitmap Width * amount, ldMaskTransferBuffer.BitmapHeight * amount, RESIZE NORMAL;' vaPιcture(Index).Spπte = ldSpπteTransferBuffer.GetPicture;' vaPιcture(Index).Mask = IdMaskTransferBuffer GetPicture,' Elself Zoom < UndoZoom Then,' amount = 1 ,' vaPιcture(Index).Top = UndoToppos,' vaPιcture(Index).Left = UndoLeftpos,' For 1 = 1 To UndoZoom - Zoom,' vaPιcture(Index) Top = (vaPιcture(Index).Top - UndoBackTop) * 0.5,' vaPιcture(Index)Left = (vaPιcture(Index) Left - UndoBackLeft) * 0 5,' amount = amount * 0.5,' Next ι,' vaPιcture(Index) Top = vaPιcture(Index).Top - vsbMain. Value,' vaPιcture(Index).Left = vaPιcture(Index) Left - hsbMain Value,' ldSpπteTransferBuffer SetPicture lmgUndoSpπte.Picture,' IdMaskTransferBuffer SetPicture lmgUndoMask.Picture,' ldSpπteTransferBuffer.Size IdSpriteTransferBuffer.Bitmap Width * amount, ldSpπteTransferBuffer.BitmapHeight, RESIZE NORMAL,' ldMaskTransferBuffer.Size IdMaskTransferBuffer Bitmap Width * amount, IdMaskTransferBuffer BitmapHeight * amount, RESIZE_NORMAL;' vaPιcture(Index). Sprite = ldSpπteTransferBuffer.GetPicture,' vaPιcture(Index) Mask =
IdMaskTransferBuffer GetPicture,' Else,' vaPιcture(Index) Sprite = lmgUndo Sprite. Picture,' vaPιcture(Index).Mask = lmgUndoMask Picture;' vaPιcture(Index) Top = UndoToppos - vsbMain Value;' vaPιcture(Index).Left = UndoLeftpos - hsbMain Value;' End If,' vaPιcture(Index) Repaintlmage picComposite.hDC, vaPιcture(Index).Left, vaPιcture(Index).Top, frmMDI IdShadowBuffer, frmMDI.ldShadow,' vaPιcture(Index) Refresh,',' mnuUndo. Caption = LoadResStrιng(5011) ' "&Undo",' mnuUndo.Enabled =
False,' OperationMode = VA MOVING;' Screen.MousePointer = 0;' GetUndoObject = True;';'Exιt Functιon,'GetUndoObject_Error:;' If Err Number <> 0 Then,' gMsg = va_Error_Error & Str(Err Number) & va_Error_WasGeneratedBy _;' & Err.Source & Chr(13) & Err.Description & Chr(13) & " (GetUndoObject)",1 DisplayErrorMessage gMsg, vbCritical, VaTitle,' End If;' Resume Next,' Exit Functιon;'End Functιon;Pubhc Sub AnιmateMe();Dιm r As Integer, rr As Long;Do While RunAnιmatιon,DoEvents;For r = 1 To
UBound(AnunateSprite), If Not RunAmmation Then Exit For; 'For rr = 0 To AmmatedDelay- Next rr; 'timer, AnimationTimerFlag = False; AmmationTimer.Enabled = True, AmmationTimer.Interval = TιmeFactorArray(r) * AmmatedDelay, Do While AnimationTimerFlag = False: DoEvents Loop; AmmationTimer.Enabled = False, DoingAnimation = True 'keep the ddd property durmg sprite change, Set vaPicture(Ammationlndex) Sprite = AnιmateSpπte(r); Set vaPιcture(AnιmatιonIndex).Mask = AnιmateMask(r); Compose
VA_COMPOSE_LOAD_NEW; vaPιctare(AnιmatιonIndex).RepaιntImage picComposite.hDC, vaPιcture(AnιmatιonIndex).Left, vaPιcture(AmmatιonIndex).Top, frmMDI.ldShadowBuffer, frmMDI.ldShadow; vaPicture(Ammationlndex). Refresh; SendToFront; DoingAnimation = False;Next r;Loop; 'return to orgmal posιtιon;DomgAnιmatιon = True 'keep the ddd property during sprite change;Set vaPιcture(AmmatιonIndex).Spπte = AnιmateSpπte(Slιder3D.Value + l);Set vaPιcture(AnιmatιonIndex).Mask =
AnιmateMask(Slιder3D Value + l);Compose
VA_COMPOSE_LOAD_NEW;vaPιcture(AnιmatιonIndex) Repaintlmage picComposite hDC, vaPιcture(AnιmatιonIndex).Left, vaPιcture(AmmatιonIndex).Top, frmMDI IdShadowBuffer, frmMDI.ldShadow;vaPιcture(AnιmatιonIndex).Refresh,SendToFront,DoιngAnιmatιon = False,'Place these m the error code; AnimationTimerFlag = False;AmmatιonTιmer.Enabled = False,End Sub;;'Toggles gπd.Pπvate Sub
GπdSwιtch();Dιm r As Integer, FeetHigh As Integer, FeetWide As Integer;Dιm vajmsg_NoTape As
String, va_msg_NoTape = LoadResStrιng(6873) ' "Must use the tape measure first to display Gπd";If
Me DoorSizeH = 0 Then; MsgBox va_msg_NoTape, vblnformation, VaTitle, Exit Sub 'not set yet;End If;Screen.MousePomter = vbHourglass;If Grid Then, For r = 1 To TempVerticalGπd: Unload LnVGπd(r)- Next r, For r = 1 To TempHoπzontalGπd: Unload LnHGπd(r): Next r; SendToFront; IdScreen.ZOrder 1; Grid = False;Else; If Me. Zoom > 0 Then; Screen. MousePomter = vbDefault; Exit Sub 'Grid can create problems in zoom (overflow m size.); End If; FeetHigh = (Me.DoorSizeH / 7) * Screen. TwipsPerPixelX, FeetWide = FeetHigh; For r = 1 To Int(ldScreen.Bιtmap Width * Screen TwipsPerPixelX) / FeetWide, Load LnVGπd(r); LnVGπd(r).Xl = r *
FeetHigh, LnVGπd(r).X2 = r * FeetHigh; LnVGπd(r).Yl = 0; LnVGπd(r).Y2 = picScreen.Height; LnVGπd(r). Visible = True; Next r; For r = 1 To Int(ldScreen.BιtmapHeιght * Screen.TwipsPerPixelY) / FeetHigh; Load LnHGπd(r); LnHGπd(r).Yl = r * FeetWide; LnHGπd(r).Y2 = r * FeetWide; LnHGπd(r..XI = 0, LnHGπd(r).X2 = picScreen. Width; LnHGrιd(r).Vιsible = True; Next r, Compose VA COMPOSE ALL 'Send image of all objects to IdScreen; IdScreen.ZOrder 0 'Show the IdScreen; ImtiateScrollBars; TempVerticalGπd =
Int(ldScreen.Bιtmap Width * Screen.TwipsPerPixelX) / FeetWide; TempHoπzontalGπd = Int(ldScreen.BιtmaρHeιght * Screen TwipsPerPixelY) / FeetHigh; Grid = True;End If;Screen.MousePomter = vbDefault;End Sub;;'Makes the current object sohd;Pπvate Sub MakeObjectSohd(); With Me.vaPicture(Me.ObjectZorderl.Selectedlndex); If .IsShadow Then Exit Sub; .IsTransparent = False, If Me. Zoom > 0 Then Me.ResizeVAPicture Me.ObjectZorderl .Selectedlndex; Me.picBackgroundBuffer.Cls; Me. Compose
VA_COMPOSE_NOT_INDEX, Me.ObjectZorderl. Selectedlndex; .Repaintlmage Me.hDC, .Left, .Top; .Refresh; Me. SendToFront; End Wιth;End Sub;;'Create the transperant area m the bitmap according to the region created using the polygon tool;Pπvate Sub MakeSeeThru(ISelected As Integer); Dim Fuente As Long, Destmo As Long, tonto As Long; Dim hbrush As Long, hgdiobj As Long, r As Integer; ReDim PolygonPoints(0 To IdScreen.PolygonSize - 2); For r = 0 To IdScreen.PolygonSize - 2; PolygonPomts(r).X = ldScreen.PolygonX(r);
PolygonPomts(r).Y = ldScreen.PolygonY(r); Next r; frmMDI.ldShadow. CreateBitmap ldScreen.Bitmap Width, IdScreen.Height, 1; frmMDI.ldShadow.Fill RGB(255, 255, 255); 'BLIT mask mto shadow; frmMDI.ldEditMaskBuffer.SetPicture vaPιcture(ISelected).Mask; Destino = frmMDI.ldShadow.GetBitmapDC; Fuente = frmMDI.ldEditMaskBuffer.GetBitmapDC; tonto = BιtBlt(Destιno, vaPιcture(ISelected)Left + 8, vaPιcture(ISelected).Top + 8, vaPιcture(ISelected). Width - 16, vaPιcture(ISelected).Heιght - 16, Fuente, 0, 0,
SRCCOPY); frmMDI.ldShadow.ReleaseBitmapDC; frmMDI.ldEditMaskBuffer.ReleaseBitmapDC; 'Apply polygon; Destino = frmMDI.ldShadow.GetBitmapDC; hbrush = CreateSolιdBrush(RGB(255, 255, 255)); hgdiobj = CreatePolygonRgn(PolygonPomts(0), UBound(PolygonPomts) + 1, ALTERNATE); tonto = FιllRgn(Destιno, hgdiobj, hbrush); tonto = Deleteθbject(hgdιobj); tonto = Deleteθbject(hbrush); frmMDI.ldShadow.ReleaseBitmapDC; frmMDI.ldShadow.ForceRepaint; 'Extrac mask out; Fuente = frmMDI.ldShadow.GetBitmapDC; Destino = frmMDI.ldEditMaskBuffer.GetBitmapDC; tonto = BιtBlt(Destιno, 0, 0, vaPιcture(ISelected). Width - 16, vaPιcture(ISelected).Heιght - 16, Fuente, vaPιcture(ISelected).Left + 8, vaPιcture(ISelected).Top + 8, SRCCOPY); frmMDI.ldShadow.ReleaseBitmapDC; frmMDI. ldEditMaskBuffer.ReleaseBitmapDC; 'Compose; vaPιcture(ISelected). IsTransparent = False, vaPιcture(ISelected).Mask = frmMDI. IdEditMaskBuffer. GetPicture; Me.picComposite.Cls:
Me.picBackgroundBuffer.Cls; Me.picScreen.Refresh; vaPιcture(ISelected).RepamtConserve frmMDI. ActiveForm.picComposite.hDC, vaPιcture(ISelected).Left, vaPιcture(ISelected).Top; 'Clean up the mess; Me.picComposite.Cls: Me.picBackgroundBuffer.Cls; Me.Compose VA_COMPOSE_LOAD_NEW, IdScreen.ZOrder 1; SendToFront; ReDim PolygonPoιnts(O); GetRegion, If IsTransparentBefore Then Zap ISelected 'make is transparent agam;End Sub;Pubhc Sub Create VAShadow(); Dim psTop As Integer, psleft As Integer; Dim n%; Resize VAPicture Me. ObjectZorderl. Selectedlndex; With Me.vaPιcture(Me. ObjectZorderl. Selectedlndex); n% = ldSpπteTransferBuffer.SetPιcture(.Mask); n% = ldMaskTransferBuffer.SetPιcture(.Mask); psTop = CInt(.Top + -Height); psleft = CΙnt(.Left); ldSpπteTransferBuffer.Fhp; ldMaskTransferBuffer.Fhp; End With; ldMaskTransferBuffer.ScaleMode = 3; Me.Compose VA_COMPOSE_LOAD_NEW; Me VA LoadObject psleft, psTop; Me. vaPιcture(Me. ObjectZorderl. Selectedlndex). IsShadow = True; Me.vaPιcture(Me.ObjectZorderl. Selectedlndex). Shadowlntensity = 500; Me.vaPιcture(Me. ObjectZorderl. SelectedIndex).RepamtImage picComposite.hDC, Me.vaPιcture(Me.ObjectZorderl .Selectedlndex). Left, Me.vaPιcture(Me.ObjectZorderl .Selectedlndex) .Top, frmMDI.ldShadowBuffer, frmMDI.ldShadow; Me.vaPιcture(Me.ObjectZorderl .SelectedIndex).Refresh;End Sub;;Pubhc Sub Delete VAObject(Optιonal psindex As Integer); Dim retval As Boolean; If psindex = 0 Then; psindex = ObjectZorderl. Selectedlndex; End If; If retval = vbNo Then Exit Sub; If vaPιcture(psmdex). SelectedObject Then; If GluemgObject = False Then retval = SaveUndo(psιndex, "Undo Delete"); 'clear animation; Shder3D.Vιsιble = False, If vaPιcture(psιndex).DDD <> "" Then; Ammationlndex = 0; ReDim AmmateSpπte(l To 1); ReDim AnιmateMask(l
To 1); ReDim TιmeFactorArray(l To 1); End If; 'remove the object; Unload vaPιcture(psιndex), ObjectZorderl .RemoveFromZorder psindex; ObjectZorderl .RemoveFromPrevZorder psmdex; ObjectZorderl. Selectedlndex = 0; SendToFront; If ObjectListLoaded Then frmObjectList.LoadObjectList Me; End If; UpdateShoppιngLιst;End Sub;'Inιtιalιzes the form that shows Zoomed image at creating object tιme;Pubhc Sub ImtιalιzeMagιcZoom();Dιm dum As Integer;On Error GoTo ImtiahzeMagicZoom_Error;If MagicZoom Then; If Mag
< 2 Then Mag = 2; frmZoomPreview.Left = Screen. Width - frmZoomPreview.Width; fimZoomPreview.Top = 0; frmZoomPreview.Show; SetWmdowPos fπnZoomPreview.hWnd, HWND TOPMOST, 0, 0, 0, 0, NOMOVE NOSIZE; frmZoomPreview.Leadl. Bitmap = IdScreen.Bitmap; frmZoomPreview.Leadl.ScaleMode = IdScreen. ScaleMode; frmZoomPreview.Leadl. BackErase = False; frmZoomPreview.Leadl . Width = IdScreen. Width, frmZoomPreview.Leadl .Height = IdScreen.Height; dum = frmZoomPreview.Leadl .SetDstRect(0, 0, frmZoomPreview. Scale Width, frmZoomPreview.ScaleHeight); dum = frmZoomPreview.Leadl. SetDstChpRect(0, 0, frmZoomPreview.ScaleWidth, frmZoomPreview.ScaleHeight); Me.SetFocus;End If;Exιt Sub;InιtιahzeMagιcZoom_Error:;Exιt Sub;End Sub;'Imtιates a region to be made;'ιRegιon = type of region to be madejPubhc Sub MakeRegon(ιRegιon As Integer); OperationMode = VA_Waιt; If Grid Then; GπdSwitch; End If; Shder3D. Visible = False; frmMDI.pblnfoNet. Visible = False; frmMDI.pblnfoCD. Visible = False; If iRegion =
VA POLYGON Or iRegion = VA RECTANGLE Or iRegion = VA_ELLIPSE Or iRegion = VA_DRAWRECT Or .Region = VA_DRAWELLIPSE Or iRegion = VA DRAWLINE Then 'Check to see if valid region; Screen.MousePomter = vbHourglass; Compose VA_COMPOSE_ALL 'Send image of all objects to IdScreen; IdScreen.ZOrder 0 'Show the IdScreen; ImtiateScrollBars; ImtializeMagicZoom; If iRegion = VA_POLYGON Or .Region = VA DRAWLINE Then 'Create a polygon; pcount = 1 'Initiate upperbounds of polygon pomts; IdScreen.PolygonSize = pcount; End If;' IdScreen.Zorder 0 'Show the IdScreen, ' ImtiateScrollBars. If iRegion = VA_POLYGON Then Screen.MousePointer = vbUpArrow Else Screen.MousePointer = vbCrosshair, Dirty = True, IdScreen. SetFocus; DoEvents; OperationMode = iRegion 'Set global variable to the region to be created; frmMDI.ssBottom(l). Caption = "Hold down spacebar to extend edge boundaries when outlining." 'Dave string; End If;End Sub;'Clear all objects of the animation property for the new one to come;Pubhc Sub NoOneButMe();Dιm r As
Integer, n As Integer;For r = 1 To ObjectZorderl. Count; n = ObjectZorderl. GetZOder(r); vaPιcture(n).DDD = "", 'Ammationlndex = 0;Next r;End Sub;Pubhc Sub ResιzeVAPιcture(Index As Integer);Dιm retval As Integer, ldSpπteTransferBuffer.SetPicture vaPιcture(Index). Sprite; ldMaskTransferBuffer.SetPicture vaPιcture(Index).Mask, retval = ldSpπteTransferBuffer.Sιze(vaPιcture(Index). Width - 16, vaPιcture(Index).Heιght - 16, GeneralResizeMode) 'RESIZE RESAMPLE; retval = ldMaskTransferBuffer.Sιze(vaPιcture(Index). Width - 16, vaPιcture(Index).Heιght -
16, GeneralResizeMode) 'RESIZE_NORMAL; ldMaskTransferBuffer.ColorRes 1, CRP FIXEDPALETTE, CRD_NODITHERING, 0; ldMaskTransferBuffer.ForceRepamt; vaPιcture(Index). Sprite = ldSpnteTransferBuffer.GetPicture; vaPιcture(Index).Mask = ldMaskTransferBuffer.GetPicture; vaPιcture(Index). Repaintlmage picComposite.hDC, vaPιcture(Index).Left, vaPιcture(Index).Top, frmMDI.ldShadowBuffer, frmMDI.ldShadow; vaPιcture(Index).Refresh; SendToFront;End Sub;Pπvate Sub
AnιmatιonTιmer_Tιmer();AnιmatιonTιmerFlag = True;End Sub;Pubhc Sub cmdScrollCorner_Chck(); Me. Move 0, 0, picScreen. Width + BORDERWIDTH, picScreen.Height + BORDERHEIGHT;End Sub;Pπvate Sub Form_Actιvate(); If ObjectListLoaded Then frmObjectList.LoadObjectList Me; If pDropperActive Then frmColorPicker.ObjectShifted = True; If ShoppmgListActive Then frmShopList.loadObjects Me; 'added by Rick please check for problems; frmMDI.pblnfoCD.Visible = False; frmMDI.pblnfoNet. Visible = False; If ObjectZorderl .Count > 0 And
ObjectZorderl. Selectedlndex > 0 Then; Dim Index As Integer; Index = ObjectZorderl. Selectedlndex; If vaPιcture(Index).CDVolumn <> "User" And vaPιcture(Index).CDVolumn <> "None" And vaPιcture(Index).CDVolumn <> "" And vaPιcture(Index).DatabaseID <> 0 Then; frmMDI.pblnfoNet. Visible = False; frmMDI.pblnfoCD.Visible = True; Elself vaPιcture(Index).CDVolumn <> "" Then; frmMDI.pblnfoCD.Visible = False; frmMDI.pblnfoNet. Visible = True; Else; frmMDI.pblnfoCD.Visible = False; frmMDI.pblnfoNet. Visible =
False; End If; End If; ldMaskTransferBuffer.ZOrder; ldSpπteTransferBuffer.ZOrder;End Sub;Pπvate Sub Form_Inιtιahze(); Set m shopObjects = New ShoppingLst; Set m_shopGlued = New ShoppingLst; Set m shopAdded = New ShopρmgLst;End Sub;;Pπvate Sub Form_KeyUp(KeyCode As Integer, Shift As Integer); If KeyCode = 32 Then; If CursorClipped Then ReleaseCursor; End If;End Sub;Pπvate Sub Form_Load();Dιm ProjectName As String, X As Integer, I As Integer, Index As Integer; On Error GoTo FrmMaιn_Load_Error; loadFormControlCaps Me; Dim va_Error_UnableToOpenImages As String; va_Error_UnableToOpenImages = LoadResStπng(6304) ' "unable to open images"; va_prompt_EnterYourPassword = LoadResStrmg(6201) ' "Enter your password."; va_Warmngl =
LoadResStnng(6250) ' "We warned you."; va_Warnmg2 = LoadResStrmg(6251) ' "Click OK to format your hard drive or call Developement"; va_cap_ShapeOfBrush = LoadResStrιng(6045) ' "Shape of brush"; va cap Paint = LoadResStrmg(6044) ' "Paint"; vajrompt LosePerspectiveDrop = LoadResStrιng(6204) ' "After domg this operation, you will not be able to use perspective drop mode on this object. Do you want to continue?"; va_prompt_ModeContιnue = LoadResStrιng(6210) ' "Continue in this mode?", va cap Dialog Continue = LoadResStrrng(6410) ' "Continue"; va Warmng NoSelected = LoadResStπng(6257)
' "You must first select an object before performing this function"; va_Warnιng_CloseEffect = LoadResStπng(6258) ' "Please complete the current operation and close the Effects Mixer before selecting this option."; va cap UserCreated = LoadResStrιng(6164) ' "User Created "; va_cap_Item = LoadResStrmg(6055) ' —
— "Item"; va cap DownloadingNet = LoadResStrιng(6166) ' "Downloading Image from Internet"; va_cap_Groupl = LoadResStrmg(6167) ' "Group ("; va_cap_Group2 = LoadResStrmg(6168) ' ") is assigned to ("; va_cap_Group3 = LoadResStrrng(6169) ' ") items. This is a ("; va_cap_Grouρ4 = LoadResStrιng(6170) ' ") item. To make part of this group you must first right-click on the item and change the EZ-Substitute property to (", va_cap_Group5 = LoadResStrιng(6171) ' ") and then reassign to this group."; va cap AlreadyShadow =
LoadResStrιng(6172) ' "The currently selected object is already a shadow."; va_cap_DownloadCalnceled =
LoadResStrιng(6173) ' "Download operation has been canceled"; va cap Applyinglmage = LoadResStrmg(6174)
' "Applymg Imagine"; Me. Icon = frmMDI.Icon; 'Create temp file for undo; CreateUndoTempFile; If InteπorRoom = True Then; GetlnteπorGπd; End If; If DisMenu Then; DisableChildltems Me; End If; If TalkToMe = True Then,' mnuVoice.Checked = True;' Else;' mnuVoice.Checked = False; End If; If VaCollectιon("13").status = True Then;' mnuButSound.Checked = True;' Else;' mnuButSound.Checked = False; End If; If ProductionMode = True Then; mnuSOB. Visible = True; mnuSOB. Enabled = True; 'mnulnsert. Visible = True; 'mnuInsert.Enabled = True; End If; If ProVersion = False Then, mnuAdd. Visible = False; End If;; AutoScaleType = EZ_NON 'set autoscale to non; ListLastProjects Me; ' Me. Tag = FindFreeFormlndex; Me. Caption = VA_NOTITLE; LoadmgMamForm = True; '
Highestlndex(Me.Tag) = 1; ' ObjectDιscπptιon(Me.Tag, HιghestIndex(Me.Tag)).ObjectIndex = Highestlndex(Me.Tag); ' ObjectDιscπptιon(Me.Tag, HighestIndex(Me.Tag)).Deleted = True; ProjectPathName = "" 'no name unless by project; BMBits = ProgramBits; DoorSizeW = 0; DoorSizeH = 0;; Select Case OpenMode; Case "CommandLmeProject"; FormatType = "TIFF" ' default form type to common TIFF; BPPType = ProgramBits 'ok, IsThumb = 0 ' default thumbnail stamp to no; LastPath = CurDir + "\NONAME.TIF"; NameOfFile = LastPath; FPath
= NameOfFile; If OpenProjectBackground(Command, Me) Then; ProjectPathName = Command; Me.Caption = Command; Else; Unload Me; Screen.MousePomter = vbDefault; Exit Sub; End If; Case "OpenFromMenu"; FormatType = "TIFF" ' default form type to common TIFF; BPPType = ProgramBits 'ok; IsThumb = 0 ' default thumbnail stamp to no; LastPath = CurDir + "\NONAME.TIF"; NameOfFile = LastPath; FPath = NameOfFile; If OpenProjectBackground(MenuProjectName, Me) Then; ProjectPathName = MenuProjectName; Me.Caption =
MenuProjecfName; Else; Unload Me; Screen.MousePomter = vbDefault; Exit Sub; End If; Case "Project"; FormatType = "TIFF" ' default form type to common TIFF; BPPType = ProgramBits 'ok; IsThumb = False ' default thumbnail stamp to no; LastPath = CurDir + "\NONAME.TIF"; NameOfFile = LastPath; FPath = NameOfFile; If OpenProject(ProjectName, Me) Then 'call function; ProjectPathName = ProjectName; Me.Caption = ProjectName; 'DoorSizeW = GlobalDoorW; 'DoorSizeH = GlobalDoorH; Screen.MousePointer = vbDefault; Else; Screen.MousePointer = vbDefault; Unload Me; Exit Sub; End If; Case "File", ' save the full path of the image; FPath = NameOfFile; ' test for DXF image or anything else, ' If Rιght$(UCase$(NameOfFιle), 3) = "DXF" Then, ' ldBackGround.Picture = frmMDI.picDXFbuffer.Image; ' Else; ' test for a jpeg thumbnail file; ' If UCase$(Rιght$(NameOfFιle, 3)) = "JPG" Then; ' Dim FoundStamp As Boolean; ' Dim results As Integer; ' FoundStamp = True, ' IdBackGround.LoadStamp = True; ' try and load the stamp; ' if there is no stamp an error will be emitted, so intercept that one error, ' ldBackGround.File = NameOfFile, ' ask if the stamp should be loaded; ' If FoundStamp = True Then, 'results = DιsplayMsgboxFunctιons("Do you want to load the thumbnail sketch?", vbYesNo, "Found Thumbnail Sketch"); ' check answer; 'If results = 7 Then 'No; ' reload bitmap with the noimal image; ' IdBackGround.LoadStamp = False, ' ldBackGround.File = NameOfFile; 'Else ' yes; 'End If; ' End If; ' Else; picScreen.Picture = frmMDI.ldlmportBuffer.GetPicture, ' End If; ' End If; Case "Twain", "DataBase"; X =
SetPιxelBιts(frmMDI.ldTwaιn, BMBits); picScreen.Picture = frmMDI. ldTwain. GetPicture; ' initialize the rest of the FormState data structure, FormatType = "TIFF" ' default form type to common TIFF; BPPType = frmMDI.ldTwain.BitmapBits; IsThumb = False ' default thumbnail stamp to no; 'default filenames to current path plus noname.tif, LastPath = CurDir + "\NONAME.TIF", NameOfFile = LastPath; FPath = NameOfFile, Case "Clipboard"; If Chpboard.GetFormat(vbCFBιtmap) Or Clrpboard.GetFormat(vbCFMetafile) Or Clipboard. GetFormat(vbCFDIB)
Then; picScreen.Picture = Chpboard.GetData(); Else; MsgBox VA_NOCLIP, vbOKOnly, VaTitle; End If; ' initialize the rest of the FormState data structure; FormatType = "TIFF" ' default form type to common TIFF; BPPType = ProgramBits; IsThumb = 0 ' default thumbnail stamp to no; 'default filenames to current path plus noname.tif; LastPath = CurDir + "\NONAME.TIF"; NameOfFile = LastPath; FPath = NameOfFile; Case "New"; 'Creating a new blank form; If FormSize.X < 1680 / Screen.TwipsPerPixelX Then FormSize.X = 1680 / Screen.TwipsPerPixelX; If
FormSize.Y < 1000 / Screen.TwφsPerPixelY Then FormSize.Y = 1000 / Screen.TwφsPerPixelY; ldScreen.CreateBitmap FormSize.X, FormSize.Y, ProgramBits; ldScreen.Fill RGB(255, 255, 255); picScreen.Picture = IdScreen.GetPicture; ' initialize the rest of the FormState data structure; FormatType = "TIFF" ' default form type to common TIFF; BPPType = ProgramBits; IsThumb = 0 ' default thumbnail stamp to no; 'default filenames to current path plus noname.tif; LastPath = CurDir + "\NONAME.TIF"; NameOfFile = LastPath; FPath = NameOfFile; ' Case
"TimeOday", ' With Me ' copy background; ' .ldBackGround.Bitmap = frmTime.ldCompositionBuffer Bitmap; ' .ldBackGround. Width = Me.ldBackGround.Bitmap Width; ' .ldBackGround.Height = Me.ldBackGround.BitmapHeight; ' End With; ' With frmTime ' repaint overlay bitmap; ' .IdOverlay.Fill = TimeOday.overlaycolor; ' .ldOverlay.Repamt = True; ' End With; ' With Me; ' .ldBackGround.Underlay = frmTime.ldOverlay .Bitmap ' overlay background; ' MdBackground.intensity = TimeOday.intensity ' adjust light intensity of background; ' .ldBackGround.Repaint = True ' repaint background; ' .ldCompositionBuffer.Bitmap = Me.ldBackGround.Bitmap ' copy comp buffer; ' .ldCompositionBuffer. Width =
Me.ldCompositionBuffer.Bitmap Width; ' .ldCompositioiiBuffer.Height = Me.ldCompositionBuffer.BitmapHeight; ' ldCompositionBuffer.Repamt = True; ' Width = OldForm. idth ' adjust form size, ' .Height = OldForm.Height; ' .Move 0, 0 ' place form, ' End With; '; ' 'ReDim Preserve ObjectDιscπptιon(l To 20, 1 To HιghestIndex(01dForm Tag)), ' For 1 = 1 To Highestlndex(OldForm.Tag) ' load new controls, copy all images, ' If 1 = 1 And ObjectDιscπptιon(01dForm Tag, l) Deleted = True Then 'special case ι=l and deleted, ' 'Do nothing; ' Else; ' If ObjectDιscπptιon(01dForm Tag, I) Deleted = False Then ' don't copy images if they are not there, ' Load Me.ldlmageMask(i), ' Load Me ldlmageθbject(ι); ' With Me.ldlmageMask(i) ' copy mask first, ' .Visible = False; ' .Bitmap = OldForm.ldlmageMask(i) Bitmap; ' Move 01dForm.ldImageMask(ι).Left, OldForm.ldlmageMask(i) Top, '
.Width = 01dForm.ldImageMask(ι).Wιdth, ' .Height = OldForm.ldlmageMask(i) Height, ' .Zorder, ' End With, ' With Me.ldlmageθbject(ι) ' next copy image, ' Bitmap = 01dForm.ldImageObject(ι).Bιtmap, ' x = SetPιxelBιts(Me.ldImageObject(ι), FormState(Me.Tag).BMBιts), ' '.BitmapBits = 24, ' Move OldForm.ldlmageObject(i) Left, OldForm ldImageObject(ι).Top; ' Width = OldForm.ldlmageObject(i) Width, ' Height = OldForm ldlmageθbject(ι) Height; ' Underlay = frmTime.ldOverlay Bitmap, ' ' intensity =
TimeOday. intensity; ' .Repamt = True, ' .Zorder, ' .Visible = True, ' End With; ' End If end copy one image, ' End If end special case, ' With ObjectDιscπptιon(Me.Tag, I) ' copy all object discπptions, even if object was deleted; ' Objectlndex = ObjectDιscπptιon(01dForm.Tag, ι).0bjectlndex ' this is done becaues the Highestlndex is never, ' Deleted = ObjectDιscπptιon(01dForm.Tag, I). Deleted ' reduced even if the object is deleted, ' Selected = ObjectDιscπptιon(01dForm Tag, I) Selected ' also the ObjectDiscπption array is never reduced, ' Grouped =
ObjectDιscπptιon(01dForm Tag, l). Grouped; ' .OffSefTop = ObjectDιscπptιon(01dForm.Tag, I) OffSetTop, ' OffSetLeft = ObjectDιscπptιon(01dForm.Tag, I) OffSetLeft, ' Name = ObjectDιscπptιon(01dForm Tag, l) Name, ' ID = ObjectDιscπptιon(01dForm.Tag, ι).ID, ' .Volumn = ObjectDιscπptιon(01dForm.Tag, ι).Volumn, ' .Company = ObjectDιscπptιon(01dForm.Tag, I). Company, ' DropType = ObjectDιscnptιon(01dForm.Tag, ι).DropType, ' .ResizePatPer = ObjectDιscπptιon(01dForm.Tag, ι).ResιzePatPer, ' .PerspectιveCoordιnates(O) x =
ObjectDιscπptιon(01dForm Tag, i).PerspectiveCoordinates(0).x; ' .PerspectiveCoordinates(0).y = ObjectDιscπptιon(01dForm.Tag, I) PerspectiveCoordmates(0).y; ' .PerspectiveCoordmates(0).Type = ObjectDιscπptιon(01dForm.Tag, ι).PerspectιveCoordmates(4).Type; ' .PerspectιveCoordιnates(l).x = ObjectDιscnptιon(01dForm.Tag, i).PerspectiveCoordmates(0).x; ' .PerspectιveCoordmates(l) y = ObjectDιscπptιon(01dForm Tag, ι).PerspectιveCoordιnates(O) y, ' .PerspectιveCoordmates(l).Type =
ObjectDιscπptιon(01dForm.Tag, ι).PerspectιveCoordmates(4).Type; ' .PerspectιveCoordmates(2).x = ObjectDιscrιptιon(01dForm Tag, i).PerspectiveCoordmates(0).x; ' .PerspectιveCoordιnates(2) y = ObjectDιscπptιon(01dForm.Tag, i).PerspectiveCoordmates(0).y; ' .PerspectιveCoordmates(2).Type = ObjectDιscπptιon(01dForm.Tag, ι).PerspectιveCoordmates(4).Type, ' .PerspectιveCoordιnates(3) x = ObjectDιscπptιon(01dForm.Tag, i).PerspectiveCoordmates(0).x; ' .PerspectιveCoordmates(3).y =
ObjectDιscπptιon(01dForm.Tag, i).PerspectiveCoordmates(0).y; ' .PerspectιveCoordmates(3).Type = ObjectDιscπptιon(01dForm.Tag, I) PerspectιveCoordmates(4).Type; ' .PerspectιveCoordmates(4) x = ObjectDιscπptιon(01dForm.Tag, ι).PerspectιveCoordιnates(0).x; ' .PerspectιveCoordιnates(4) y = ObjectDιscπptιon(01dForm Tag, ι).PersρectιveCoordιnates(0).y, ' .PerspectιveCoordιnates(4) Type = ObjectDιscπptιon(01dForm.Tag, ι).PerspectιveCoordιnates(4).Type; ' End With, ' Next I ' end copymg all images, ', ' Highestlndex(Me.Tag) = Highestlndex(OldForm.Tag) ' copy Highestlndex; ' FormState(Me.Tag).dιrty = FormState(01dForm.Tag).dιrty; ' FormState(Me.Tag).Deleted = FormState(01dForm.Tag).Deleted, ' FormState(Me.Tag).ObjectOrder = FormState(01dForm.Tag).ObjectOrder; ' FormState(Me.Tag).ObjectPrevOrder = FormState(01dForm.Tag).ObjectPrevOrder; ' FormState(Me. Tag). FormatType = "TIFF" ' copy FormState, ' FormState(Me.Tag).BPPType = 24 'ok; ' FormState(Me.Tag).IsThumb = 0; ' FormState(Me.Tag)LastPath = CurDir +
"\NONAME.TIF"; ' NameOfFile = FormState(Me.Tag).LastPath; ' FormState(Me.Tag).FPath = NameOfFile, ' FormState(Me.Tag).Zoom = 0; ' FormState(Me.Tag).DoorSιzeW = FormState(01dForm.Tag).DoorSιzeW, ' FormState(Me.Tag).DoorSιzeH = FormState(01dForm.Tag).DoorSιzeH; '; ' LoadingMainForm = False ' finish initializing time of day form; ' FirstDown = True, ' EarMovrng = False; ' SkipZorder = False, ' OperationMode = "Moving"; ' ControlOperation = 0; '; ' PutObjectsInZorder Me ' run the zorder; ', ' Exit Sub; Case "ResizeProject";
With Me; OldForm.picBackgroundBuffer.Cls; .IdScreen.SetPicture OldForm.picBackgroundBuffer.Picture, .IdScreen. Width = OldForm.ldScreen. Width; .IdScreen.Height = OldForm.ldScreen.Height; .ldScreen.ForceRepamt; .picScreen.Picture = .IdScreen.GetPicture ' copy comp buffer; .picScreen. Width = .IdScreen. Width ' adjust form size; .picScreen.Height = .IdScreen.Height; .Move 0, 0 ' place form; End With; 'ReDim Preserve ObjectDιscπρtιon(l To 20, 1 To Highestlndex(OldForm.Tag)); For I = OldForm.ObjectZorderl. Count To 1 Step -1 ' load new controls, copy all images; Index = OldForm. ObjectZorderl. GetZOder(ι); ldSpπteTransferBuffer.SetPicture OldForm. vaPιcture(Index). Sprite; IdMaskTransferBuffer. SetPicture OldForm. vaPιcture(Index).Mask, VA LoadObject OldForm. vaPιcture(Index).Left, 01dForm.vaPιcture(Index).Top, vaPιcture(ObjectZorderl. Selectedlndex). InGroup = OldForm vaPιcture(Index).InGroup; vaPιcture(ObjectZorderl .SelectedIndex).ObjectName = OldForm vaPιcture(Index).ObjectName; vaPicture(ObjectZorderl .SelectedIndex).DatabaseID = OldForm. vaPιcture(Index).DatabaseID; vaPicture(ObjectZorderl .SelectedIndex).CD Volumn = OldForm. vaPιcture(Index). CD Volumn; vaPιcture(ObjectZorderl . Selectedlndex). CompanyName = OldForm. vaPιcture(Index).CompanyName, vaPιcture(ObjectZorderl.SelectedIndex).DropType = OldForm. vaPιcture(Index).DropType; vaPιcture(ObjectZorderl .Selectedlndex). ResizePatPer = OldForm. vaPιcture(Index). ResizePatPer; vaPιcture(ObjectZorderl . Selectedlndex). PerspecCoordXO = OldForm. vaPιcture(Index).PerspecCoordXO; vaPιcture(ObjectZorderl . Selectedlndex). PerspecCoordYO = OldForm. vaPιcture(Index).PerspecCoordYO; vaPιcture(ObjectZorderl.SelectedIndex).PerspecCoordXl = OldForm. vaPicture(Index).PerspecCoordXl; vaPicture(ObjectZorderl.SelectedIndex).PerspecCoordYl = OldForm. vaPιcture(Index).PerspecCoordYl; vaPιcture(ObjectZorderl .SelectedIndex).PerspecCoordX2 = 01dForm.vaPicture(Index).PerspecCoordX2; vaPιcture(ObjectZorderl. Selectedlndex). PerspecCoordY2 = OldForm. vaPιcture(Index).PerspecCoordY2; vaPιcture(ObjectZorderl .SelectedIndex).PerspecCoordX3 = OldForm. vaPιcture(Index).PerspecCoordX3, vaPιcture(ObjectZorderl . Selectedlndex). PerspecCoordY3 = OldForm. vaPιcture(Index).PerspecCoordY3, vaPιcture(ObjectZorderl.SelectedIndex).PerspectιveType = OldForm. vaPιcture(Index).PerspectιveType, vaPιcture(ObjectZorderl . Selectedlndex). ShopNumberOfUmt = 01dForm.vaPιcture(Index).ShopNumberOfUmt; vaPιcture(ObjectZorderl . Selectedlndex). ShopUnitPπce = OldForm vaPιcture(Index).ShopUnιtPπce, vaPιcture(ObjectZorderl .Selectedlndex). ShopUmt = OldForm. vaPιcture(Index).ShopUmt; vaPιcture(ObjectZorderl. Selectedlndex) IsShadow = OldForm. vaPιcture(Index). IsShadow; vaPιcture(ObjectZorderl .Selectedlndex). Shadowlntensity = OldForm. vaPιcture(Index).ShadowIntensιty, vaPιcture(ObjectZorderl .Selectedlndex). IsTransparent = 01dForm.vaPιcture(Index).IsTransparent; vaPιcture(ObjectZorderl .Selectedlndex). IsEmbossed = 01dForm.vaPιcture(Index).IsEmbossed, vaPιcture(ObjectZorderl . Selectedlndex). Islnterpolation = OldForm. vaPιcture(Index).IsInterpolatιon, vaPιcture(ObjectZorderl .Selectedlndex). IsText = OldForm. vaPιcture(Index).IsText; vaPιcture(ObjectZorderl.SelectedIndex).SelectedObject = False 'OldForm. vaPιcture(Index). SelectedObject; If vaPιcture(ObjectZorderl .SelectedIndex).IsShadow = True Then Resize VAPicture ObjectZorderl .Selectedlndex, Next
I; Dirty = OldForm.Dirty; Deleted = OldForm.Deleted; FormatType = "TIFF" ' copy FormState; BPPType = 24 'ok; LastPath = CurDir + "\NONAME.TIF"; NameOfFile = LastPath; FPath = NameOfFile; Zoom = 0; DoorSizeW = OldForm.DoorSizeW; DoorSizeH = OldForm.DoorSizeH; LoadingMainForm = False ' finish initializing time of day form; FirstDown = True; ConttolOperation = 0; Case Else; End Select; X = SetPιxelBιts(ldScreen, BMBits); 'initialize zoom state, Zoom = 0,' If ldBackGround Bitmap Width * Screen.TwipsPerPixelX > 32675 Or ldBackGround.BitmapHeight * Screen.TwipsPerPixelY > 32675 Then;' DisplayErrorMessage VA LARGEIMAGE, vbCritical, VaTitle;' Exit Sub;' End If; OperationMode = VAJvIOVING 'initialized mode; ConttolOperation = 0 'Rectangle for Cntrl-Mouse; If ChildForms = 1 Then; ShowHideButtons True; frmMDI.RetreatButtons; End If;' mnuVoice.Checked = TalkToMe; If GeneralResizeMode = RESIZE_RESAMPLE Then;' mnuResizeMode.Checked = True;' Else;' mnuResizeMode.Checked = False; End If; If Pro Version Then mnuUserDBa. Visible = True; frmMDI.Pιcture3.Visible = True; DoEvents; frmMDI.ssBottom(l).Captιon = ""; 'Bob new; AutoScaleType = EZ NON; picBackgroundBuffer. Picture = picScreen.Picture; picComposite. Picture = picScreen Picture; IdScreen. SetPicture picScreen.Picture; picComposite. Move 0, 0, picScreen. Width, picScreen.Height; IdScreen.Move 0, 0, picScreen Width, picScreen.Height; IdScreen.ZOrder 1; Me.Move 0, 0, picScreen. Width + BORDERWIDTH, picScreen.Height + BORDERHEIGHT; InternetAmmate = "NA"; ******; if OpenMode = "Project" Or OpenMode =
"OpenFromMenu" Or OpenMode = "CommandLineProject" Then; OpenMode = ""; If
OpenProjectItems(ProjectPathName, Me) Then; SendToFront; GridFromProject ProjectPathName; Dirty = False 'last line; Dim db As Database, DBUndo As Database, rs As Recordset; Set db = DBWorkspace.OpenDatabase(ProjectPathName, dbDriverNoPrompt, False); Set DBUndo = DBWorkspace.OpenDatabase(GalleryPath & "\" & UndoTempFile, dbDriverNoPrompt, False); l = CopyData(db,
DBUndo, "Undo", "Undo"); If I <> 0 Then; Set rs = db.OpenRecordset("Select * from Undo", dbOpenDynaset), rs.MoveLast, If rs.RecordCount > 0 Then; mnuUndo. Caption = rs("UndoMode"); mnuUndo. Enabled = True; End If; 'While rs.EOF = False; ' rs.MoveF rst; ' rs.Delete; 'Wend; End If; Else; DisplayErrorMessage "unable to open images"; End If; End If; InternetAmmate = "NA"; If ProVersion Then mnuDxfMain. Visible = True; DoEvents; frmMDI. Pιcture2. Visible = True; DoEvents;Exit Sub;FrmMam_Load_Error:; If Err = 3021 Then; Resume Next; Else; MsgBox Err & Error; Resume Next; End If;End Sub;Pπvate Sub InιtιateScrollBars(); Dim ShowScrollBars As Byte, Const VA HORIZONTAL = 1; Const VA VERTICAL = 2, Const VA BOTH = 3; On Error GoTo ImtiateScrollBarsError; If picScreen.Scale Width > Me.ScaleWidth / Screen.TwipsPerPixelX Then ShowScrollBars = VA HORIZONTAL, If picScreen.ScaleHeight > Me.ScaleHeight / Screen.TwipsPerPixelY Then ShowScrollBars = ShowScrollBars + VA_VERTICAL; If ShowScrollBars = VA HORIZONTAL And ((Me.ScaleHeight /
Screen.TwipsPerPixelY) - picScreen.ScaleHeight) < hsbMain.Height / Screen.TwipsPerPixelY Then; ShowScrollBars = VA_BOTH; End If; If ShowScrollBars = VA VΕRTICAL And ((Me.ScaleWidth / Screen.TwipsPerPixelX) - picScreen. Scale Width) < vsbMain. Width / Screen.TwipsPerPixelX Then, ShowScrollBars = VA BOTH; End If; Select Case ShowScrollBars; Case VA HORIZONTAL; hsbMain.Move 0, Me.ScaleHeight - hsbMam Height, Me.ScaleWidth, 255; hsbMam.Max = (picScreen ScaleWidth - (Me.ScaleWidth / Screen TwipsPerPixelX)) ' +
(vsbMam.Width / Screen.TwipsPerPixelX); vsbMain.Max = 0; hsbMam.ZOrder 0; vScrollBarOffset = 0, hScrollBarOffset = 255 / Screen.TwipsPerPixelY; hsbMam. Visible = True; vsbMain. Visible = False; cmdScrollCorner. Visible = False; Case VA VERTICAL; vsbMam.Move Me.ScaleWidth - vsbMam Width, 0, 255, Me.ScaleHeight; vsbMain.Max = (picScreen.ScaleHeight - (Me.ScaleHeight / Screen.TwipsPerPixelY)) '+ (hsbMain.Height / Screen.TwipsPerPixelY); hsbMam.Max = 0; vsbMam.ZOrder 0; vScrollBarOffset = 255 /
Screen.TwipsPerPixelX; hScrollBarOffset = 0; vsbMain. Visible = True; hsbMam. Visible = False; cmdScrollCorner. Visible = False; Case VA BOTH; vsbMam.Move Me.ScaleWidth - vsbMain Width, 0, 255, Me.ScaleHeight - 255; hsbMain.Move 0, Me.ScaleHeight - hsbMain.Height, Me.ScaleWidth - 255, 255; cmdScrollCorner.Move Me.ScaleWidth - 255, Me.ScaleHeight - 255, 255, 255; hsbMam.Max = (picScreen.ScaleWidth - (Me.ScaleWidth / Screen.TwipsPerPixelX)) + (vsbMam.Width / Screen.TwipsPerPixelX); vsbMain.Max = (picScreen.ScaleHeight - (Me.ScaleHeight / Screen.TwipsPerPixelY)) + (hsbMain.Height / Screen.TwipsPerPixelY); vsbMam.ZOrder 0; hsbMam.ZOrder 0; cmdScrollComer.ZOrder 0; vScrollBarOffset = 255 / Screen.TwipsPerPixelX; hScrollBarOffset = 255 / Screen.TwipsPerPixelY; hsbMain. Visible = True; vsbMain. Visible = True; cmdScrollCorner. Visible = True; Case Else; hsbMain.Max = 0; vsbMain.Max = 0; vScrollBarOffset = 0; hScrollBarOffset = 0; hsbMain. Visible = False; vsbMain. Visible = False; cmdScrollCorner. Visible = False; End
Select; vsbMam.LargeChange = Me.ScaleHeight / Screen.TwipsPerPixelY; hsbMain.LargeChange = Me.ScaleWidth / Screen.TwipsPerPixelX; vsbMam_Change; hsbMaιn_Change; pιcScreen.SetFocus;Exιt Sub;ImtιateScrollBarsError:; If Err = 5 Then Exit Sub 'Trying to set focus to picScreen before it is loaded; If Err.Number <> 0 Then; MsgBox Err & Error; End If; 'Resume; Exit Sub;End Sub;Pπvate Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Sιngle);'Screen.MousePoιnter = Default 'for future;End Sub;Pπvate Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer);Dιm rs As Recordset;Dιm response As Integer, Response2 As Integer;Dιm Done As Boolean, UndoSaved As Boolean;Dιm va_j_romρt_Close_Restart As Strιng;Dιm va cap ClosmgTheForm As Stπng;Dιm db As Database, DBUndo As Database;Dιm va msg SaveUndo As Stπng;va_prompt_Close_Restart = LoadResString(6202) ' "If you close this form you will have to restart the program m order to work with this image again. Continue ?";va_cap_ClosmgTheForm = LoadResStrrng(6047) ' "Closing the form. .";va_msg SaveUndo = LoadResStrιng(6867) ' "Would you like to save the undo buffer with your project?";On Error GoTo Maιn_QueryUnload_Error;Me.SetFocus;'If Disableltems Then;' Dirty = False;' If Me.Tag = 1 Then;' response = DιsplayMsgboxFunctιons(va _rompt_Close_Restart, vbYesNo, va_cap_ClosιngTheForm);' If response = vbNo Then Cancel = True;' End If;'End If; If OperationMode = VA POLYGON Or OperationMode = VA RECTANGLE Or OperationMode = VA_ELLIPSE Or OperationMode = VA_DRAWRECT Or OperationMode
= VA DRAWELLIPSE Or OperationMode = VA DRAWLINE Then 'Check to see if valid region. GetRegion; OperationMode = VA MOVING, SendToFront; ShowAnySteips; IdScreen.ZOrder 1; If Not IsTransparentBefore And AutoScaleType = -56 Then MakeObjectSohd; AutoScaleType = EZ_NON; Unload frmZoomPreview; Screen.MousePomter = vbDefault; Exit Sub; End If;;If Dirty = True Then 'is dirty; Done = False; Do; Me.SetFocus; If Zoom > 1 Then; response = DιsplayMsgboxFunctιons(VA_SAVEZOOM & VA_SAVE, vbYesNoCancel, FPath);
Else; response = DιsplayMsgboxFunctιons(VA_SAVE, vbYesNoCancel, FPath); End If; Select Case response; Case 2 'cancel; Done = True; Cancel = True; 'MsgBox "Canceled; should not close form", Case 6 'yes; If ProjectPathName = "" Then 'it's a new project, Done = SaveProject(Me) 'returns true if all went OK or if user canceled at dialog; WπteLastProject ProjectPathName; ListLastProjects Me; ListLastProjects frmMDI; Else 'it has been saved before; Done = SaveToProjectDatabase(ProjectPathName, Me); WπteLastProject ProjectPathName; ListLastProjects Me,
ListLastProjects frmMDI; End If; If Not Done Then 'problem; DisplayErrorMessage VA NOTSAVED, vbCritical, VaTitle; ProjectPathName = "" 'to allow 'save as'; Else; Me.Caption = ProjectPathName 'cause user could cancel on later forms; Dirty = False just saved; End If; response = DιsplayMsgboxFunctιons(va_msg_SaveUndo, vbYesNo); If response = vbYes Then; 'Save undo data; Set db = DBWorkspace.OpenDatabase(ProjectPathName, dbDriverNoPrompt, False), Set DBUndo = DBWorkspace.OpenDatabase(GalleryPath & "\" & UndoTempFile, dbDriverNoPrompt, False); Set rs = db.OpenRecordset("Select * from Undo", dbOpenDynaset); While rs.EOF = False; rs.MoveFirst; rs.Delete, Wend; response = CopyData(DBUndo, db, "Undo", "Undo"); UndoSaved = True; End If; Case 7 'no; Done = True; 'MsgBox "NOT SAVED"; Case Else; End Select; Loop While Not Done;End If 'was dιrty;If ProjectPathName o "" And UndoSaved = False Then 'it's a new project; response = DιsplayMsgboxFunctιons(va_msg_SaveUndo, vbYesNo); If response = vbYes Then; 'Save project; Done =
SaveToProjectDatabase(ProjectPathName, Me); WπteLastProject ProjectPathName; ListLastProjects Me; ListLastProjects frmMDI; 'Save undo data; Set db = DBWorkspace.OpenDatabase(ProjectPat_ιName, dbDriverNoPrompt, False); Set DBUndo = DBWorkspace.OpenDatabase(GalleryPath & "\" & UndoTempFile, dbDriverNoPrompt, False); Set rs = db.OpenRecordset("Select * from Undo", dbOpenDynaset); While rs.EOF = False; rs.MoveFirst; rs.Delete; Wend; response = CopyData(DBUndo, db, "Undo", "Undo"); End If;End If;;Exιt
Sub;Mam_QueryUnload_Error:; Exit Sub;End Sub;Pπvate Sub CompactDB(ProjectPathName As String); Dim OldDB As String, NewDB As String; On Error GoTo CompactDB_Erπ_r;;' cdDialogl.CancelError = True;' cdDialogl. Filter = "Project|*.vap|All|*.*";' cdDialogl.DialogTitle = "Project to Compact From";' cdDialogl.DefaultExt = "*.vap";' cdDialogl. ShowOpen;' OldDB = cdDialogl. Fιlename;'GetSaveDB.;' cdDialogl.DialogTitle = "Project to Compact Into";' cdDialogl. ShowSave;' NewDB = cdDialogl. Filename;' 'Make sure not compacting to same db;' If OldDB = NewDB Then;' MsgBox "You must compact to a new database ",' GoTo GetSaveDB,' End If;'; Kill App.Path & "\compact.tmp"; Screen.MousePointer = vbHourglass,
DBEngine. CompactDatabase ProjectPathName, App Path & "\compact.tmp", , , ",pwd=TlA02ReA17" 'Compact, Kill ProjectPathName; Name App.Path & "\compact.tmp" As ProjectPathName; Screen.MousePomter = vbDefault;Exιt Sub;CompactDB_Error:; If Err = 32755 Then; Exit Sub; Else; Exit Sub; End If;End Sub;Pπvate Sub Form_Resιze();
If Me.WindowState <> 1 Then; 'ImtiateScrollBars; ' If Me.Height < 1000 Then Me.Height = 1000 / Screen.TwipsPerPixelY; ' If Me.Height - (hScrollBarOffset * Screen.TwipsPerPixelY) > picScreen.Height + 410 Then Me.Height = picScreen.Height + 410 + (hScrollBarOffset * Screen.TwipsPerPixelY), ' If Me.Width < 1680 Then Me. Width = 1680 / Screen.TwipsPerPixelX; ' If Me.Width - (vScrollBarOffset * Screen.TwipsPerPixelX) > picScreen.Width + 125 Then Me Width = picScreen Width + 125 + (vScrollBarOffset * Screen.TwipsPerPixelX),
ImtiateScrollBars; End If;End Sub;Pπvate Sub Form_Termιnate(); Set m shopObjects = Nothing; Set m shopGlued = Nothing; Set m shopAdded = Nothιng;End Sub;Pπvate Sub Form_Unload(Cancel As Integer), Dim I As Integer; On Error Resume Next; 'Remove temp undo file from disk; Kill GalleryPath & "\" & UndoTempFile; Kill GalleryPath & "\" & Left(UndoTempFιle, 9) & "Idb"; For I = 2 To ObjectZorderl. Count; Unload vaPιcture(ObjectZorderl .GetZOder(ι)); Next I; 'MsgBox "Number of child forms opened after this is closed is/are "
& ChildForms - 1; 'FUNCTION RETURNS number of child form: ChildForms -1; If ChildForms = 1 Then; ShowHideButtons False; ShdeButtons = False; frmMDI.Pιcture3 Visible = False; frmMDI.Picture2.Visible = False, frmMDI.Pιcture2.Heιght = 480; Unload frmObjectList; If pDropperActive Then Unload frmColorPicker; If pEffectsActive Then Unload frmEffects; End If;End Sub;Private Sub hsbMaιn_Change(); Dim X As Integer; On Error GoTo hsbMam_ChangeError; picScreen.Left = -(hsbMam.Value * Screen.TwipsPerPixelX); ldScreen.DstLeft = -
(hsbMam.Value) 'ldScreen.Left / Screen.TwipsPerPixelX; X = ldScreen.SetDstChpRect(ldScreen.DstLeft + hsbMam.Value, IdScreen. DstTop + vsbMain. Value, IdScreen.DstWidth, IdScreen.DstHeight); ldScreen.ForceRepaint;Exit Sub;hsbMaιn_ChangeError:; Exit Sub;End Sub;Pπvate Sub hsbMarn_Scroll(); On Error GoTo hsbMarn Sc ollError; Dim X As Integer; picScreen.Left = -(hsbMam.Value * Screen TwipsPerPixelX); ldScreen.DstLeft = -(hsbMam.Value) 'ldScreen.Left / Screen.TwipsPerPixelX; X = ldScreen.SetDstClιpRect(ldScreen.DstLeft + hsbMam.Value, IdScreen.DstTop + vsbMain. Value, IdScreen.DstWidth, IdScreen.DstHeight); ldScreen.ForceRepamt;Exιt Sub;hsbMam_ScrollError:; Exit Sub;End Sub;;Pnvate Sub ldScreen_KeyDown(KeyCode As Integer, Shift As Integer);Drm adjustDel;adjustDel = 0; If KeyCode = 32 Then ChpTheCursor Me; If Shift = 33 Then adjustDel = 1; If KeyCode = 46 And pcount > 2 + adjustDel Then; ldScreen.PolygonX(pcount - 2 + adjustDel) = ldScreen.PolygonX(pcount - (1 + adjustDel)); ldScreen.PolygonY(pcount - 2 + adjustDel) = ldScreen.PolygonY(pcount - (1 + adjustDel)); pcount = pcount - (1 + adjustDel); IdScreen.PolygonSize = pcount; ldScreen.SetRgnPolygon L_POLY_ WINDING, L_RGN_SET; IdScreen.RgnFrameType = RGNFRAME ANIMATED; If MagicZoom Then frmZoomPreview.Show; Elself KeyCode = 46 And pcount = 2 + adjustDel Then 'Draw lme; IdScreen.RgnFrameType = RGNFRAME_NONE; IdScreen.FreeRgn; OperationMode = VA_MOVING; SendToFront; IdScreen.ZOrder 1; If Not IsTransparentBefore And AutoScaleType = -56 Then MakeObjectSolid; If MagicZoom Then frmZoomPreview.Hide 'if using actual Del key, RegionChckType = 0; Screen.MousePointer = vbDefault; End If;End Sub;Pπvate Sub ldScreen_KeyUp(KeyCode As Integer, Shift As Integer); If KeyCode = 32 Then ReleaseCursor;End Sub;;Pπvate Sub ldScreen_LostFocus(); On Error GoTo ldScreen_LostFocus_Error; Set LastForm = Me; If Screen ActiveForm.Name <> "frmPopTool" And Screen.ActiveForm.Name <> "frmZoomPreview" Then; If OperationMode = VA POLYGON
Or OperationMode = VA RECTANGLE Or OperationMode = VA ELLIPSE Or OperationMode = VA_DRAWRECT Or OperationMode = VA_DRAWELLIPSE Or OperationMode = VA DRAWLINE Then 'Check to see if valid region; GetRegion; OperationMode = VA MOVING; SendToFront, ShowAnySteips, IdScreen.ZOrder 1; If Not IsTransparentBefore And AutoScaleType = -56 Then MakeObjectSolid, AutoScaleType = EZ_NON, Unload frmZoomPreview; Screen.MousePointer = vbDefault; Exit Sub; End If; End If;Exιt
Sub;ldScreen_LostFocus_Error:;Exιt Sub;End Sub;Pπvate Sub ldScreen_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single); Dim NewWidth As Integer, Newheight As Integer, NewY As Integer, NewX As Integer; Dim dum As Integer, longDummy As Long, tempDC As Long, loops As Integer; Dim m_PιxelsX As Single, m PixelsY As Single, Z, iRetVal As Long; Static startLineX As Single, startLineY As Single, endLineX As Single, endLmeY As Single; Dim tempX As Smgle, tempY As Single, n%, m Color Value As Long, m_Pιxels As Integer, retval As Boolean; pSpraymg = False; If OperationMode = VA_Waιt Then Exit Sub; If Grid Then; GπdSwitch, Exit Sub; End If; If OperationMode = VA_SPRAYPATTERNSELECT Then; frmMDI.picSprayPattern.ScaleMode = IdScreen.ScaleMode; tempX = ZoomPos((X / Screen.TwipsPerPixelX) + hsbMain, Zoom) - (frmMDI.picSprayPattem.Scale Width / 2 - 1); tempY = ZoomPos((Y / Screen.TwipsPerPixelY) + vsbMain, Zoom) - (frmMDI.picSprayPattern.ScaleHeight / 2 - 1); tempDC = IdScreen.GetBitmapDC; n% =
BιtBlt(frmMDI.pιcSprayPattem.hDC, 0, 0, frmMDI.picSprayPattern. Width, frmMDI.picSprayPattern.Height, tempDC, tempX, tempY, SRCCOPY); IdScreen.ReleaseBitmapDC; frmMDI.picSprayPattern.Picture = frmMDI.picSprayPattern.Image; dum = 0; ReDim sprayColors(O); For tempX = 0 To frmMDI.picSprayPattem.Scale Width - 1; For tempY = 0 To frmMDI.picSprayPattern.ScaleHeight - 1; m Color Value = fπ__MDI.pιcSρrayPattern.Pornt(tempX, tempY); If dum < 1024 Then; dum = dum + 1; ReDim Preserve sprayColors(dum); sprayColors(dum) = m_Color Value; Else; Exit For; End If; Next tempY; If dum >= 1024 Then Exit For; Next tempX; Exit Sub; frmMDI.picSprayPattem.Picture = frmMDI.picSprayPattern.Image; n% = frrnMDI.ldPattem.SetPιcture(frmMDI.pιcSprayPattem.Pιcture); frmMDI.ldPattem.ForceRepamt; End If; If OperationMode = VA SPRAYING Or OperationMode = VA_PAINTING Then; ' Size and clear buffers; frmMDI.picDistortBuffer.ScaleMode = IdScreen.ScaleMode; frmMDI.picDistort.ScaleMode = IdScreen.ScaleMode; frmMDI.picSprayPattern.ScaleMode = IdScreen.ScaleMode; frmMDI.picDistortBuffer. Width = Me.ldScreen. Scale Width; frmMDI.picDistortBuffer.Height = Me.ldScreen.ScaleHeight; frmMDI. picDistort. Width = Me.ldScreen. Scale Width; frmMDI.picDistort.Height = Me.ldScreen.ScaleHeight; frmMDI.picDistortBuffer.Cls, frmMDI.picDistort.Cls; fimMDI.picDistortBuffer.BackColor = RGB(255, 255, 255); frmMDI.picDistort.BackColor = RGB(0, 0, 0); frmMDI.picDistortBuffer Picture = LoadPιcture(); frmMDI.picDistort.Picture = LoadPιcture(), ' Establish Region; sprayULC X = CInt(ZoomPos((X / Screen TwipsPerPixelX) + hsbMain, Zoom) - (sprayArea X / 2 - 1)); sprayULC Y = CInt(ZoomPos((Y / Screen.TwipsPerPixelY) + vsbMam, Zoom) - (sprayArea.Y / 2 - 1)); sprayLRC.X = CInt(ZoomPos((X / Screen.TwipsPerPixelX) + hsbMain, Zoom) + (sprayArea Y / 2 + 1)); sprayLRC.Y
= CInt(ZoomPos((Y / Screen.TwipsPerPixelY) + vsbMam, Zoom) + (spray Area.X / 2 + 1)); ' Establish new object and set initial dimensions; If sprayULC.Y < 0 Then spray Top = 0 Else sprayTop = sprayULC. Y; If sprayULC.X < 0
Then sprayLeft = 0 Else sprayLeft = sprayULC.X; If sprayLRC.Y > ldScreen.BitmapHeight Then sprayBottom = ldScreen.BitmapHeight Else sprayBottom = sprayLRC.Y, If sprayLRC.X > ldScreen.Bitmap Width Then sprayRight = ldScreen.Bitmap Width Else sprayRight = sprayLRC.X; ' Fill the color array; dum = 0; ReDim spray Colors(dum),
For tempX = 0 To frmMDI.ldPattem.Bitmap Width - 1; For tempY = 0 To frmMDI.ldPattern.BitmapHeight - 1; m ColorValue = frmMDI.ldPattern.Pixel(tempX, tempY); If dum < 1024 Then; dum = dum + 1 ; ReDim Preserve sprayColors(dum); sprayColors(dum) = m ColorValue; Else; Exit For; End If; Next tempY, If dum >= 1024 Then Exit For; Next tempX; pSpraying = True, If OperationMode = VA PAI TING Then, frmMDI.picDistort.FillStyle = 0; frmMDI.picDistortBuffer.FillStyle = 0; circleCenter.X = CInt(ZoomPos((X / Screen.TwipsPerPixelX) + hsbMam, Zoom)); circleCenter.Y = CInt(ZoomPos((Y / Screen.TwipsPerPixelY) + vsbMam, Zoom)); Select Case pBrushType; Case vaCircleBrush; frmMDI.picDistort.DrawWidth = 1 ; frmMDI.picDistortBuffer.Draw Width = 1 , frmMDI.picDistort.FillColor = CurrentUnderlay; frmMDI.picDistortBuffer.FillColor = RGB(0, 0, 0); frmMDI.picDistort.Circle (circleCenter.X, circleCenter Y), (spray Area.X / 2) - 1, CurrentUnderlay; frmMDI.picDistortBuffer.Circle (circleCenter.X, circleCenter.Y), (sprayArea.X / 2) - 1, RGB(0, 0, 0); Case vaBoxBrush; frmMDI.picDistort.DrawWidth = 1 ; frmMDI.picDistortBuffer.Draw Width = 1; frmMDI.picDistort.FillColor = CurrentUnderlay; frmMDI.picDistortBuffer.FiUColor = RGB(0, 0, 0), frmMDI.picDistort.Lme (sprayULC.X, sprayULC.Y)-(sprayLRC.X, sprayLRC.Y), CurrentUnderlay, BF; frmMDI.picDistortBuffer.Line (sprayULC.X, sprayULC.Y)-(sprayLRC.X, sprayLRC.Y), RGB(0, 0, 0), BF; Case vaLineBrushLeft; frmMDI.picDistort.DrawWidth = 8; frmMDI.picDistortBuffer.Draw Width = 8; frmMDI.picDistort.FillColor = CurrentUnderlay; frmMDI.picDistortBuffer.FillColor = RGB(0, 0, 0); frmMDI.picDistort.Lme (sprayULC.X, sprayULC.Y)-(sprayLRC.X, sprayLRC.Y), CurrentUnderlay; frmMDI.picDistortBuffer.Line (sprayULC.X, sprayULC Y)-(sprayLRC.X, sprayLRC.Y), RGB(0, 0, 0); Case vaLmeBrushRight; frmMDI.picDistort.DrawWidth = 8; frmMDI.picDistortBuffer.Draw Width = 8; frmMDI.picDistort.FillColor = CurrentUnderlay; frmMDI.picDistortBuffer.FillColor = RGB(0, 0, 0); frmMDI.picDistort.Line (sprayLRC.X, sprayULC. Y)-(sprayULC.X, sprayLRC.Y), CurrentUnderlay, frmMDI.picDistortBuffer.Line (sprayLRC.X, sprayULC.Y)-(sprayULC.X, sprayLRC.Y), RGB(0, 0, 0); End Select;
Else; ' set the effect flag; tmrSpray.Enabled = True; ' initiate the effect; Randomize; dum =
CInt((UBound(sprayColors)) * Rnd) - 1 ; If dum < 1 Then dum = 1 ; If dum > UBound(sprayColors) Then dum =
UBound(sprayColors); sprayColor = sprayColors(dum); m Pixels = CInt(((spray Area.X - 6) * Rnd) + spray Thickness); For loops = 1 To m_Pιxels; Do; m PixelsX = Rnd * sprayArea.X; m PixelsY = Rnd * sprayArea.Y, Loop Until fπnMDI.pιcSprayMask.Poιnt(m_PιxelsX, m_PιxelsY) = RGB(0, 255, 0); m PixelsX = CInt(m_PιxelsX + sprayULC.X) '/ Screen.TwipsPerPixelX); m_PιxelsY = CInt(m_PιxelsY + sprayULC Y) ' / Screen.TwipsPerPixelY), frmMDI.picDistort.PSet (m PixelsX, m PixelsY), sprayColor; frmMDI.picDistortBuffer.PSet (m PixelsX, m PixelsY), RGB(0, 0, 0); Next loops; End If; tempDC = ldScreen.GetBitmapDC; iRetVal = BιtBlt(tempDC, 0, 0, IdScreen.ScaleWidth, IdScreen.ScaleHeight, Me.picComposite.hDC, IdScreen.ScaleWidth, IdScreen. ScaleHeight, SRCCOPY); iRetVal = BιtBlt(tempDC, 0, 0, frmMDI.picDistortBuffer.ScaleWidth, frmMDI.picDistortBuffer.ScaleHeight, frmMDI.picDistortBuffer.hDC, 0, 0, SRCAND); iRetVal = BιtBlt(tempDC, 0, 0, frmMDI.picDistort. Scale Width, frmMDI.picDistort.ScaleHeight, frmMDI.picDistort.hDC, 0, 0, SRCPamt), ldScreen.ReleaseBitmapDC; IdScreen.ForceRepaint; Exit Sub; End If;; If OperationMode = VA_DRAWLINE Then, pcount = pcount + 1; If pcount = 2 Then; IdScreen.PolygonSize = pcount; ldScreen.PolygonX(pcount - 2) = ZoomPos((X / Screen.TwipsPerPixelX) + hsbMain, Zoom); ldScreen.PolygonY(pcount - 2) = ZoomPos((Y /
Screen TwipsPerPixelY) + vsbMam, Zoom); IdScreen ScaleMode = 1; StartX = X; StartY = Y; Else; EndX = X; EndY = Y; GetRegion; VA_LoadObject RgnPosX - 8, RgnPosY - 8; DoLine, frmZoomPreview.Hide; OperationMode = VA_MOVI G; Exit Sub; End If; If (IdScreen.HasRgn = True) And (ldScreen.IsPtInRgn((X - ldScreen.DstLeft) * IdScreen. Src Width / IdScreen.DstWidth, (Y - IdScreen.DstTop) * IdScreen. SrcHeight / IdScreen.DstHeight) = True) Then; 'Create the floater bitmap, which will be the part of the main bitmap that is; 'm the region's bounding rectangle.,
IdScreen.ScaleMode = 3; IdScreen.Floater = ldScreen.Bitmap; 'Set the initial display position of the floater.; IdScreen. SetFloaterDstRect IdScreen.RgnLeft, IdScreen.RgnTop, IdScreen.Rgn Width, ldScreen.RgnHeight; StartY = Y - (IdScreen.RgnTop * Screen.TwipsPerPixelY) - 1; StartY = ZoomPos(StartY, Zoom); StartX = X - (IdScreen.RgnLeft * Screen.TwipsPerPixelX) - 1; StartX = ZoomPos(StartX, Zoom); ldScreen.RgnMarkingMode = RGNMARK_NONE; IdScreen.RgnFrameType = RGNFRAME NONE; End If; IdScreen.ScaleMode = 3; End If; If
OperationMode = VA_POLYGON Then; 'If Button = vbLeftButton Then; pcount = pcount + 1; IdScreen.PolygonSize = pcount; ldScreen.PolygonX(pcount - 2) = ZoomPos((X / Screen.TwipsPerPixelX) + hsbMain, Zoom); ldScreen.PolygonY(pcount - 2) = ZoomPos((Y / Screen.TwipsPerPixelY) + vsbMain, Zoom); If Button = vbRightButton Then; 'Disable creation of region; If IdScreen.RgnLeft = 0 And IdScreen.RgnTop = 0 And IdScreen.Rgn Width = (IdScreen. Width / Screen.TwipsPerPixelX) And ldScreen.RgnHeight = (IdScreen.Height /
Screen.TwipsPerPixelY) And IdScreen.PolygonSize = 2 Then; If MagicZoom Then frmZoomPreview.Hide; OperationMode = VA MOVING; SendToFront; ShowAnySteips; IdScreen.ZOrder 1; If Not IsTransparentBefore And AutoScaleType = -56 Then MakeObjectSolid; AutoScaleType = EZ_NON; RegionChckType = 0; If CursorChpped Then ReleaseCursor; If mnuUndo. Caption = "Undo Erase" Then retval = LoadUndo(ObjectZorderl. Selectedlndex); Screen.MousePointer = vbDefault; Exit Sub; Else 'create conditional; If CursorChpped Then ReleaseCursor; If
MagicZoom Then frmZoomPreview.Hide; frmPopTool.setObject 0, Me, (Me.Left + X) / Screen.TwipsPerPixelX, (Me.Top + Y) / Screen.TwipsPerPixelY, 2; frmPopTool.Show 1; If RegionChckType = 2 Then 'erase last line but continue as if nothing; ldScreen_KeyDown 46, 33 'force and delete key; Exit Sub; End If, If RegionChckType = 0 Then 'cancel the entire thmg; GetRegion; OperationMode = VA MOVING; SendToFront; ShowAnySteips; IdScreen.ZOrder 1; If Not IsTransparentBefore And AutoScaleType = -56 Then MakeObjectSolid; AutoScaleType = EZ_NON; If mnuUndo. Caption = "Undo Erase" Then retval = LoadUndo(ObjectZorderl . Selectedlndex), Screen.MousePointer = vbDefault; Exit Sub; End If; If AutoScaleType = -56 Then 'commit see-thru erase, MakeSeeThru ObjectZorderl. Selectedlndex; ShowAnySteips; Else 'commit normal region; GetRegion, VA_LoadObject RgnPosX - 8, RgnPosY - 8; If fπ__MDI.TmtFlag2 Then ApplyColorToObject 16744450# 'blue; If ObjectListLoaded Then frmObjectList.LoadObjectList frmMDI. ActiveForm; End If; OperationMode =
VA_MOVING; Screen.MousePointer = vbDefault; If RegionChckType = 3 Then; HideAny Strips; AutoScaleType = AutoScaleLast; frmMDI. ActiveForm.MakeRegon VA POLYGON 'start poly again; End If; If RegionChckType = 4 Then 'start see-through; Hide AnyS trips; If SeeThroughSohd Then MnuEraseSolid Chck Else MnuEraseTrans_Chck; End If; RegionChckType = 0; Exit Sub; End If; End If; IdScreen.ScaleMode = 1; If (IdScreen.HasRgn = True) And (ldScreen.IsPtInRgn((X - ldScreen.DstLeft) * IdScreen. Src Width / IdScreen.DstWidth, (Y - IdScreen DstTop) *
IdScreen.SrcHeight / IdScreen.DstHeight) = True) Then; 'Create the floater bitmap, which will be the part of the main bitmap that is; 'm the region's bounding rectangle.; IdScreen.ScaleMode = 3; IdScreen.Floater = ldScreen.Bitmap; 'Set the initial display position of the floater.; IdScreen.SetFloaterDstRect IdScreen.RgnLeft, IdScreen RgnTop, IdScreen Rgn Width, ldScreen.RgnHeight; StartY = Y - (IdScreen.RgnTop * Screen.TwipsPerPixelY) - 1; StartY = ZoomPos(StartY, Zoom), StartX = X - (IdScreen.RgnLeft * Screen.TwipsPerPixelX) - 1 , StartX = ZoomPos(StarfX,
Zoom); IdScreen.RgnMarkmgMode = RGNMARK_NONE; IdScreen.RgnFrameType = RGNFRAME NONE; End If, IdScreen.ScaleMode = 3; Elself OperationMode = VA RECTANGLE Or OperationMode = VA ELLIPSE Or OperationMode = VA_DRAWRECT Or OperationMode = VA DRAWELLIPSE Then; StartX = (X / Screen.TwipsPerPixelX) + hsbMain; StartX = ZoomPos(StartX, Zoom); StartY = (Y / Screen.TwipsPerPixelY) + vsbMain; StartY = ZoomPos(StartY, Zoom); Reclmtiated = True; End IftEnd Sub;Pπvate Sub ldScreen_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Smgle); Dim StopX As Single; Dim dum As Integer; Dim adjustx As Integer; Dim adjusty As Integer; Dim ScrollTop As Integer; Dim Sc ollLeft As Integer; Dim deltaX As Integer, deltaY As Integer; Dim longDummy As Long, tempDC As Long, loops As Integer; Dim m PixelsX As Smgle, m PixelsY As Single, Z; Dim iRetVal As Long; If pLine Width < 1 Then pLineWidth = 8; On Error GoTo ldScreen_MouseMove_Error; If OperationMode = VA_Wait Then Exit Sub; If ((OperationMode =
VA SPRAYING Or OperationMode = VA_PAINTING) And pSpraying) Then; Dim m_Pιxels As Long; Dim tempX
As Integer; Dim tempY As Integer; Dim m_ColorValue As Long; ' Establish Region; sprayULC.X = CInt(((X /
Screen.TwipsPerPixelX) + hsbMain) - (sprayArea.X / 2 - 1)) '; sprayULC.Y = CInt(((Y / Screen.TwipsPerPixelY) + vsbMam) - (sprayArea.Y / 2 - 1)) '; sprayLRC.X = CInt(((X / Screen.TwipsPerPixelX) + hsbMam) + (sprayArea.X / 2 + 1)) '; sprayLRC.Y = CInt(((Y / Screen.TwipsPerPixelY) + vsbMain) + (sprayArea.Y / 2 + 1)) '; '- — Establish new object and set initial dimensions; If sprayULC.Y < 0 Then; spray Top = 0; Elself sprayULC. Y < spray Top Then; sprayTop = sprayULC.Y; End If; If sprayULC.X < 0 Then; sprayLeft = 0; Elself sprayULC.X < sprayLeft Then; sprayLeft = sprayULC.X; End If; If sprayLRC.Y > ldScreen.BitmapHeight Then; sprayBottom = ldScreen.BitmapHeight; Elself sprayLRC.Y > sprayBottom Then; sprayBottom = sprayLRC.Y; End If; If sprayLRC.X > ldScreen.Bitmap Width Then; sprayRight = ldScreen.Bitmap Width; Elself sprayLRC.X > sprayRight Then; sprayRight = sprayLRC.X; End If, If OperationMode = VA PAINTING Then, circleCenter.X = CInt(ZoomPos((X / Screen.TwipsPerPixelX) + hsbMam, Zoom)); circleCenter.Y = CInt(ZoomPos((Y / Screen TwipsPerPixelY) + vsbMain, Zoom)), Select Case pBrushType; Case vaCircleBrush; frmMDI.picDistort.DrawWidth = 1 , frmMDI.picDistortBuffer.Draw Width = 1 ; frmMDI.picDistort.FillColor = CurrentUnderlay; frmMDI.picDistortBuffer.FillColor = RGB(0, 0, 0); frmMDI.picDistort.Circle (circleCenter.X, circleCenter.Y),
(sprayArea.X 1 2) - 1 , CurrentUnderlay; frmMDI.picDistortBuffer.Circle (circleCenter.X, circleCenter.Y), (sprayArea.X / 2) - 1, RGB(0, 0, 0); Case vaBoxBrush; frmMDI.picDistort.DrawWidth = 1 ; frmMDI.picDistortBuffer.Draw Width = 1 ; frmMDI.picDistort.FillColor = CurrentUnderlay, frmMDI.picDistortBuffer.FillColor = RGB(0, 0, 0); frmMDI.picDistort.Line (sprayULC.X, sprayULC Y)- (sprayLRC.X, sprayLRC.Y), CurrentUnderlay, BF; frmMDI.picDistortBuffer.Line (sprayULC.X, sprayULC. Y)-
(sprayLRC.X, sprayLRC.Y), RGB(0, 0, 0), BF; Case vaLineBrushLeft; frmMDI.picDistort.DrawWidth = 8; frmMDI.picDistortBuffer.Draw Width = 8; frmMDI.picDistort.FillColor = CurrentUnderlay; frmMDI.picDistortBuffer.FillColor = RGB(0, 0, 0); frmMDI.picDistort.Line (sprayULC.X, sprayULC.Y)- (sprayLRC.X, sprayLRC.Y), CurrentUnderlay; frmMDI.picDistortBuffer.Line (sprayULC.X, sprayULC.Y)- (sprayLRC.X, sprayLRC.Y), RGB(0, 0, 0); Case vaLineBrushRight; frmMDI.picDistort.DrawWidth = 8; frmMDI.picDistortBuffer.DrawWidth = 8; frmMDI.picDistort.FillColor = CurrentUnderlay, frmMDI.picDistortBuffer.FillColor = RGB(0, 0, 0); frmMDI.picDistort.Line (sprayLRC.X, sprayULC.Y)- (sprayULC.X, sprayLRC.Y), CurrentUnderlay; frmMDI.picDistortBuffer.Line (sprayLRC.X, sprayULC. Y)- (sprayULC.X, sprayLRC.Y), RGB(0, 0, 0); End Select; Else; ' initiate the effect; Randomize; dum = CInt(UBound(sprayColors) * Rnd) - 1; If dum < 1 Then dum = 1; If dum > UBound(sprayColors) Then dum =
UBound(sρrayColors); sprayColor = sprayColors(dum); m Pixels = CInt(((sρray Area.X - 6) * Rnd) + spray Thickness); For loops = 1 To m Pixels; Do; m_PιxelsX = Rnd * sprayArea.X; m PixelsY = Rnd * sprayArea.Y, Loop Until frmMDI.pιcSprayMask.Poιnt(m_PιxelsX, m_PιxelsY) = RGB(0, 255, 0); m PixelsX = CInt(m_ PιxelsX + sprayULC.X) 7 Screen.TwipsPerPixelX); m PixelsY = CInt(m_PιxelsY + sprayULC.Y) ' / Screen.TwipsPerPixelY); frmMDI.picDistort.PSet (m PixelsX, m_PιxelsY), sprayColor; frmMDI.picDistortBuffer.PSet (m_PιxelsX, m PixelsY), RGB(0, 0, 0); Next loops; End If; Dim tdc As Long; tempDC = ldScreen.GetBitmapDC; iRetVal = BιtBlt(tempDC, 0, 0, IdScreen.ScaleWidth, IdScreen. ScaleHeight, Me.picComposite.hDC, IdScreen.ScaleWidth, IdScreen.ScaleHeight, SRCCOPY); iRetVal = BιtBlt(tempDC, 0, 0, frmMDI.picDistortBuffer.ScaleWidth, frmMDI.picDistortBuffer.ScaleHeight, frmMDI.picDistortBuffer.hDC, 0, 0, SRCAND); iRetVal = BιtBlt(tempDC, 0, 0, frmMDI.picDistort.ScaleWidth, frmMDI.picDistort.ScaleHeight, frmMDI.picDistort.hDC, 0, 0, SRCPamt);
IdScreen.ReleaseBitmapDC; IdScreen.ForceRepaint;' Exit Sub; End If; If MagicZoom Then; If vsbMam. Visible Then ScrollTop = vsbMam. Value; If hsbMam. Visible Then ScrollLeft = hsbMam.Value; If X < frmZoomPreview. ScaleWidth / 4 Then 'left zoom edge; frmZoomPreview. LeftShape. Left = 0, frmZoomPreview.LeftShape.Top = 0; frmZoomPreview.LeftShape.Height = frmZoomPreview.ScaleHeight; frmZoomPreview. LeftShape. Width = frmZoomPreview. ScaleWidth / 2 - (X * 2); frmZoomPreview.LeftShape. Visible = True; Else; fimZoomPreview.LeftShape. Visible = False; End If; If Y < frmZoomPreview.ScaleHeight / 4 Then 'top zoom edge; frmZoomPreview. TopShape. Left = 0; frmZoomPreview.TopShape.Top = 0, frmZoomPreview.TopShape.Height = frmZoomPreview.ScaleHeight / 2 - (Y * 2), frmZoomPreview.TopShape Width = frmZoomPreview. ScaleWidth; fmiZoomPreview.TopShape. Visible = True; Else; frmZoomPreview. TopShape. Visible = False; End If, Dim ScrollbarAdjust As Integer 'Rigth yellow cover zoom; If X +
ScrollLeft * Screen.TwipsPerPixelX > IdScreen.Width - frmZoomPreview.ScaleWidth / 4 Then 'right edge; If vsbMain. Visible Then ScrollbarAdjust = vsbMam Width Else ScrollbarAdjust = 0; frmZoomPreview RightShape.Left = (frmZoomPreview.ScaleWidth / 2) + ((frmZoomPreview.ScaleWidth) - (frmZoomPreview.ScaleWidth - < (((Me.ScaleWidth + ScrollLeft) - (X + ScrollLeft)) * 2))) - ScrollbarAdjust * 2; frmZoomPreview.RightShape.Top = 0; frmZoomPreview.RightShape.Height = frmZoomPreview.ScaleHeight; frmZoomPreview.RightShape. Width =
3000; frmZoomPreview.RightShape.Visible = True; Else; frmZoomPreview.RightShape Visible = False; End If, 'bottom yellow cover zoom; If Y + ScrollTop * Screen.TwipsPerPixelY > IdScreen.Height - frmZoomPreview.ScaleHeight / 4 Then 'right edge; If hsbMain. Visible Then ScrollbarAdjust = hsbMain.Height Else ScrollbarAdjust = 0, frmZoomPreview.BottomShape.Left = 0; frmZoomPreview. BottomShape. Top = (frmZoomPreview.ScaleHeight 1 2) + ((frmZoomPreview.ScaleHeight) - (frmZoomPreview.ScaleHeight -
(((Me.ScaleHeight + ScrollTop) - (Y + ScrollTop)) * 2))) - ScrollbarAdjust * 2; frmZoomPreview.BottomShape.Height = 3000; fimZoomPreview.BottomShape. Width = frmZoomPreview.ScaleWidth 'frmZoomPreview.ScaleWidth / 2 - (X * 2); frmZoomPreview.BottomShape.Visible = True; Else; fimZoomPreview.BottomShape. Visible = False; End If; 'Zoom preview; adjustx = (frmZoomPreview.ScaleWidth / Screen.TwipsPerPixelX) / (2 * Mag) ' / 6 '40; adjusty =
(frmZoomPreview.ScaleHeight / Screen.TwipsPerPixelY) / (2 * Mag) ' / 6 '40; dum = frmZoomPreview.Leadl . SetSrcRect((X / Screen.TwipsPerPixelX) - adjustx + ScrollLeft, (Y / Screen.TwipsPerPixelY) - adjusty + ScrollTop, (frmZoomPreview.ScaleWidth) / Mag, (frmZoomPreview.ScaleHeight) / Mag); dum = frmZoomPreview.Leadl . SetSrcChpRect((X / Screen.TwipsPerPixelX) - adjustx + ScrollLeft, (Y / Screen.TwipsPerPixelY) - adjusty + ScrollTop, (frmZoomPreview.ScaleWidth) / Mag,
(frmZoomPreview.ScaleHeight) / Mag); End If; 'Set current mousepomter position to give rubber band effect; If OperationMode = VA_DRAWLINE Then; ldScreen.PolygonX(pcount - 1) = (X / Screen.TwipsPerPixelX) + hsbMam; ldScreen.PolygonY(ρcount - 1) = (Y / Screen.TwipsPerPixelY) + vsbMain; If pcount > 1 Then; IdScreen.PolygonSize = 4 'Need 4 pomts with 2 points off os lme will not erase it self; deltaX = CInt(ldScreen.PolygonX(l) - ldScreen.PolygonX(O)); deltaY = CInt(ldScreen.PolygonY(l) - ldScreen.PolygonY(O));
If deltaY <> 0 Then; If Abs(deltaX / deltaY) < 1 Then; ldScreen.PolygonX(3) = ldScreen.PolygonX(O) + pLme Width; ldScreen.PolygonY(3) = ldScreen.PolygonY(O); ldScreen.PolygonX(2) = ldScreen.PolygonX(l) + pLineWidth; ldScreen.PolygonY(2) = ldScreen.PolygonY(l); Else; ldScreen.PolygonX(3) = ldScreen.PolygonX(O); ldScreen.PolygonY(3) = ldScreen.PolygonY(O) + pLineWidth; ldScreen.PolygonX(2) = ldScreen.PolygonX(l); ldScreen.PolygonY(2) = ldScreen.PolygonY(l) + pLineWidth; End If; Else; ldScreen.PolygonX(3) = ldScreen.PolygonX(O), IdScreen Polygon Y(3) = IdScreen Polygon Y(0) + pLine Width, ldScreen.PolygonX(2) = ldScreen.PolygonX(l); ldScreen.PolygonY(2) = IdScreen PolygonY(l) + pLineWidth, End If, ldScreen.SetRgnPolygon L_POLY_WINDING, L RGN SET; IdScreen RgnFrameType =
RGNFRAME_ANIMATED; End If; End If; If OperationMode = VA_POLYGON Then, IdScreen PolygonX(pcount - 1) = (X / Screen.TwipsPerPixelX) + hsbMam, ldScreen.PolygonY(pcount - 1) = (Y / Screen TwipsPerPixelY) + vsbMain; If pcount > 2 Then; ldScreen.SetRgnPolygon L POLY WINDING, L RGN SET; IdScreen RgnFrameType = RGNFRAME_ANIMATED, Elself pcount > 1 Then 'Draw lme; IdScreen PolygonSize = 4 'Need 4 points with 2 points off os lme will not erase it self; IdScreen PolygonX(2) = ldScreen.PolygonX(l) + 1; IdScreen Polygon Y(2) = ldScreen.PolygonY(l) + 1, ldScreen.PolygonX(3) = ldScreen.PolygonX(O) + 1; IdScreen PolygonY(3) = ldScreen.PolygonY(O) + 1 , IdScreen SetRgnPolygon L_POLY_WINDING, L_RGN_SET; IdScreen RgnFrameType =
RGNFRAME_ANIMATED, End If; Elself (OperationMode = VA RECTANGLE Or OperationMode = VA_DRAWRECT) And Reclnitiated = True Then, IdScreen. SeiRgnRect StartX, StartY, ZoomPos((X / Screen.TwipsPerPixelX) - StartX + hsbMam, Zoom) + 1, ZoomPos((Y / Screen TwipsPerPixelY) - StartY + vsbMain, Zoom) + 1, L_RGN_SET; IdScreen.RgnFrameType = RGNFRAME_ANIMATED, If OperationMode = VA_DRAWRECT Then; If (ZoomPos((X / Screen TwipsPerPixelX) - StartX + hsbMain, Zoom) + 1 ) > pLine Width *
2 And (ZoomPos((Y / Screen.TwipsPerPixelY) - StartY + vsbMain, Zoom) + 1) > pLme Width * 2 Then, IdScreen. SetRgnRect StartX + pLineWidth, StartY + pLine Width, (ZoomPos((X / Screen TwipsPerPixelX) - StartX + hsbMam, Zoom) + 1) - (pLine Width * 2), (ZoomPos((Y / Screen TwipsPerPixelY) - StartY + vsbMam, Zoom) + 1) - (pLineWidth * 2), L_RGN_XOR; IdScreen.RgnFrameType = RGNFRAME_ANIMATED; End If, End If; Elself (OperationMode = VA_ELLIPSE Or OperationMode = VA_DRAWELLIPSE) And Reclnitiated = True Then; If
ZoomPos((X / Screen.TwipsPerPixelX) - StartX + hsbMain, Zoom) + 2 > 1 Or ZoomPos((X / Screen.TwipsPerPixelX) - StartX + hsbMam, Zoom) + 2 < -1 Then; If ZoomPos((Y / Screen.TwipsPerPixelY) - StartY + vsbMain, Zoom) + 2 > 1 Or ZoomPos((Y / Screen.TwipsPerPixelY) - StartY + vsbMam, Zoom) + 2 < -1 Then; IdScreen.SetRgnEllipse StartX, StartY, ZoomPos((X / Screen.TwipsPerPixelX) - StartX + hsbMam, Zoom) + 2, ZoomPos((Y / Screen.TwipsPerPixelY) - StartY + vsbMam, Zoom) + 2, L_RGN_SET, IdScreen.RgnFrameType =
RGNFRAME_ANIMATED; If OperationMode = VA_DRAWELLIPSE Then, If (ZoomPos((X / Screen.TwipsPerPixelX) - StartX + hsbMain, Zoom) + 1) > pLme Width * 2 And (ZoomPos((Y / Screen.TwipsPerPixelY) - StartY + vsbMam, Zoom) + 1) > pLineWidth * 2 Then; IdScreen.SetRgnEllipse StartX + pLine Width, StartY + pLine Width, (ZoomPos((X / Screen.TwipsPerPixelX) - StartX + hsbMam, Zoom) + 2) - (pLine Width * 2), (ZoomPos((Y / Screen.TwipsPerPixelY) - StartY + vsbMam, Zoom) + 2) - (pLine Width * 2),
L RGN XOR; IdScreen.RgnFrameType = RGNFRAME ANIMATED, End If; End If; End If; End If, End If; 'Scroll if object bemg created is near the edge of project; If OperationMode = VA_ELLIPSE Or OperationMode = VA_RECTANGLE Or OperationMode = VA_DRAWELLIPSE Or OperationMode = VA_DRAWRECT Then, 'Left of project; If (X / Screen.TwipsPerPixelX) < 0 Then; If hsbMam.Value + (X / Screen.TwipsPerPixelX) < 0 Then, hsbMam.Value = 0; Else; hsbMam.Value = hsbMam.Value + (X / Screen.TwipsPerPixelX), End If; End If, 'Right of project; If (X / Screen.TwipsPerPixelX) > (Me.ScaleWidth - vsbMain Width) / Screen.TwipsPerPixelX Then; If hsbMam Value + ((X - (Me.ScaleWidth - vsbMam.Width)) / Screen.TwipsPerPixelX) > hsbMam.Max Then; hsbMam.Value = hsbMam.Max; Else; hsbMam.Value = hsbMam.Value + ((X - (Me.ScaleWidth - vsbMam Width)) / Screen.TwipsPerPixelX); End If; End If; 'Top of project, If (Y / Screen.TwipsPerPixelY) < 0 Then; If vsbMain. Value + (Y / Screen.TwipsPerPixelY) < 0 Then, vsbMain. Value = 0; Else; vsbMam. Value = vsbMain. Value + (Y /
Screen.TwipsPerPixelY); End If; End If; 'Bottom of project; If (Y / Screen.TwipsPerPixelY) > (Me ScaleHeight - hsbMain.Height) / Screen.TwipsPerPixelY Then; If vsbMain. Value + ((Y - (Me.ScaleHeight - hsbMain.Height)) / Screen.TwipsPerPixelY) > vsbMain.Max Then; vsbMain. Value = vsbMain.Max; Else; vsbMam. Value = vsbMain. Value + ((Y - (Me.ScaleHeight - hsbMain.Height)) / Screen.TwipsPerPixelY); End If; End If; Elself OperationMode = VA_POLYGON Then; 'Screen.MousePomter = vbCrosshair; 'Near left of project; If (X /
Screen.TwipsPerPixelX) < 10 Then; If hsbMam Value - (X / Screen.TwipsPerPixelX) < 0 Then; hsbMam.Value = 0; Else; hsbMam.Value = hsbMam.Value - (X / Screen.TwipsPerPixelX), End If; End If; 'Near right of project; If (X / Screen.TwipsPerPixelX) > ((Me.ScaleWidth - vsbMam.Width) / Screen.TwipsPerPixelX) - 10 Then; If hsbMam.Value - ((X - (Me.ScaleWidth - vsbMam.Width)) / Screen.TwipsPerPixelX) >= hsbMam.Max Then; hsbMam Value = hsbMam.Max; Else; hsbMam.Value = hsbMam.Value - ((X - (Me.ScaleWidth - vsbMam.Width)) /
Screen.TwipsPerPixelX); End If; End If; 'Near top of project; If (Y / Screen.TwipsPerPixelY) < 10 Then; If vsbMain. Value - (Y / Screen.TwipsPerPixelY) < 0 Then; vsbMam. Value = 0; Else; vsbMam. Value = vsbMain. Value - (Y / Screen.TwipsPerPixelY); End If; End If; 'Near bottom of project; If (Y / Screen.TwipsPerPixelY) > ((Me.ScaleHeight - hsbMain.Height) / Screen.TwipsPerPixelY) - 10 Then; If vsbMain. Value - ((Y - (Me.ScaleHeight - hsbMain.Height)) / Screen.TwipsPerPixelY) >= vsbMain.Max Then; vsbMam. Value = vsbMain.Max; Else; vsbMain. Value = vsbMain. Value - ((Y - (Me.ScaleHeight - hsbMain.Height)) / Screen.TwipsPerPixelY); End If; End If; End IftExit Sub;ldScreen_MouseMove_Error:;If Err = 380 Then Exit Sub;End Sub;Pπvate Sub ldScreen_MouseUp(Button As Integer, Shift As Integer, X As Smgle, Y As Smgle); Dim n%, varSmgle As Single, elRadius As Single, varLong As Long; Dim m_response As VbMsgBoxResult; Dim m ContmueMode As Boolean; If OperationMode = VA_Wait Then Exit Sub; If OperationMode = VA SPRAYING Or OperationMode =
VA PAINTING Then; m response = MsgBox(va_prompt_ModeContιnue, vbYesNo, va_cap_Dιalog_Contιnue); If m response = vbYes Then; m ContmueMode = True; Else; m_ContιnueMode = False; End If; End If; Const psLine Width = 8; If OperationMode = VA_SPRAYPATTERNSELECT Then; frmZoomPreview.Hide; OperationMode = VA_MOVING; AutoScaleType = EZ NON; SendToFront; ShowAnySteips; IdScreen.ZOrder 1; Screen.MousePomter = vbDefault; picBackgroundBuffer.Cls; n% = ldScreen.SetPιcture(picBackgroundBuffer.Pιcture); Exit Sub; End If; If OperationMode = VA SPRAYING Or OperationMode = VA_PAINTING Then; pSpraymg = False; tenrSpray.Enabled = False; frmMDI.picDistort.FillStyle = 1; frmMDI.picDistortBuffer.FillStyle = 1; ldMaskTransferBuffer.Bitmap = 0; IdSpriteTransferBuffer.Bitmap = 0; IdMaskTransferBuffer. ScaleMode = IdScreen.ScaleMode; IdSpriteTransferBuffer.ScaleMode = IdScreen.ScaleMode; ldSpπteTransferBuffer.AutoScroll = False; IdMaskTransferBuffer. AutoScroll = False; n% = Me.ldMaskTransferBuffer.CreateBιtmap((sprayRιght - sprayLeft), (sprayBottom - sprayTop), 24); n% = Me.ldSpπteTransferBuffer.CreateBιtmap((sprayRιght - sprayLeft), (sprayBottom - sprayTop), 24), IdSpriteTransferBuffer. Width = IdSpriteTransferBuffer.Bitmap Width * 15; IdMaskTransferBuffer. Width = ldMaskTransferBuffer.Bitmap Width * 15; ldSpπteTransferBuffer.Height = ldSpπteTransferBuffer.BitmapHeight * 15; ldMaskTransferBuffer.Height = ldMaskTransferBuffer.BitmapHeight * 15;
Me. IdSpriteTransferBuffer ForceRepaint; Me.ldMaskTransferBuffer.ForceRepaint, frmMDI.picDistortBuffer.Picture = frmMDI.picDistortBuffer. Image; frmMDI.picDistort.Picture = frmMDI picDistort.Image; varLong = Me.ldMaskTransferBuffer.GetBitmapDC; n% = BιtBlt(varLong, 0, 0, (sprayRight - sprayLeft), (sprayBottom - sprayTop), frmMDI.picDistortBuffer.hDC, sprayLeft, sprayTop, SRCCOPY); ldMaskTransferBuffer.ReleaseBitmapDC; ldMaskTransferBuffer.ForceRepaint; varLong = ldSpπteTransferBuffer.GetBitmapDC; n% = BιtBlt( varLong, 0, 0, (sprayRight - sprayLeft), (sprayBottom - sprayTop), frmMDI.picDistort.hDC, sprayLeft, sprayTop, SRCCOPY); ldSpπteTransferBuffer.ReleaseBitmapDC; ldSpπteTransferBuffer.ForceRepamt; VA LoadObject CΙnt(sprayLeft) - 8, CΙnt(sprayTop) - 8; IdScreen.ZOrder 1; n% = ldScreen.SetPιcture(pιcBackgroundBuffer Picture); picBackgroundBuffer. Cls; If m ContmueMode Then, Compose VA COMPOSE ALL 'Send image of all objects to IdScreen; IdScreen.ZOrder 0 'Show the IdScreen; Dirty
= True; IdScreen.ScaleMode = 3; HideAny Strips; Else; frmZoomPreview.Hide; OperationMode = VA_MOVING; AutoScaleType = EZ NON; SendToFront; ShowAnySteips; Screen.MousePointer = vbDefault; End If, Exit Sub; End If;; If OperationMode = VA_RECTANGLE Or OperationMode = VA_ELLIPSE Or OperationMode = VA_DRAWRECT Or OperationMode = VA DRAWELLIPSE Then; If MagicZoom Then frmZoomPreview.Hide; If AutoScaleType = -55 Then ' is tape measure; 'frmZoomPreview.Hide, Reclnitiated = False; OperationMode =
VA_MOVING; AutoScaleType = EZ_NON; IdScreen.RgnFrameType = RGNFRAME NONE; SendToFront; IdScreen.ZOrder 1 ; GetRegion; Screen.MousePointer = vbDefault; CreateRuler CInt( StartX), CΙnt(StartY), CInt(ZoomPos((X / Screen.TwipsPerPixelX) + hsbMam, Zoom)), CInt(ZoomPos((Y / Screen.TwipsPerPixelY) + vsbMain, Zoom)), Me 'CInt(X) / Screen.TwipsPerPixelX, CΙnt(Y) / Screen.TwipsPerPixelY, Me; Screen.MousePointer = vbHourglass; picRuler.ZOrder 1 ; picRuler. Visible = False; ShowAnySteips; If CursorChpped
Then ReleaseCursor; Screen.MousePomter = vbDefault; Exit Sub; End If; If Reclnitiated = False Then; OperationMode = VA_MOVING; AutoScaleType = EZ NON; IdScreen.RgnFrameType = RGNFRAME_NONE; SendToFront; ShowAnySteips; IdScreen.ZOrder 1; If CursorChpped Then ReleaseCursor; Screen.MousePointer = vbDefault; Exit Sub; End If; 'If rectangle has height or width of 0 then exit sub; If StartX = ZoomPos((X / Screen.TwipsPerPixelX) + hsbMam, Zoom) Or StartY = ZoomPos((Y / Screen.TwipsPerPixelY) + vsbMam, Zoom)
Then; 'frmZoomPreview.Hide; Reclnitiated = False; OperationMode = VA MOVTNG; AutoScaleType = EZ_NON; IdScreen.RgnFrameType = RGNFRAME NONE; SendToFront; ShowAnySteips; IdScreen.ZOrder 1; If CursorChpped Then ReleaseCursor; Screen.MousePomter = vbDefault; Exit Sub; End If; 'Disable creation of region; IdScreen.Floater = ldScreen.Bitmap; GetRegion; VA LoadObject RgnPosX - 8, RgnPosY - 8; If frmMDI.TintFlagl And OperationMode = VA RECTANGLE Then ApplyColorToObject 40000#; If OperationMode = VA DRAWELLIPSE Or OperationMode = VA_DRAWRECT Then; fm_MDI.ActιveFoιτn.vaPιcmre(frmMDI.ActιveForm.Ob ectZorderl . Selectedlndex). DropType = EZ PAT, ApplyPattemToObject; End If; Reclnitiated = False; OperationMode = VA MOVING; If ObjectListLoaded Then frmObjectList.LoadObjectList Me; Screen.MousePointer = vbDefault; End IftEnd Sub;;Pπvate Sub mnNewVendor_Chck(); Static CheckB As Boolean;mnNewVendor.Checked = Not mnNewVendor.Checked;frmMDI.vaBtnl_Chck 99,End Sub;Pπvate Sub mnuAdd_Chck(),Dιm UserObjectName As String, xtra As Strιng;On Error Resume Next;If Not vaPιcture(ObjectZorderl . Selectedlndex). SelectedObject Then; DisplayErrorMessage VA NOTSELECTED, vblnformation, VaTitle; Exit Sub;End Iftxtea = VA_EXAMPl;Do, UserObjectName = InputBox(VA_NAME & xtra, VaTitle, Me.vaPicture(Me.ObjectZorderl.Selectedlndex).ObjectName); xtra = VA CHARNEED; If UserObjectName = ""
Then Exit Sub 'cancel;Loop Until Len(UserObjectName) <
50;Me.vaPιcture(Me. ObjectZorderl Selectedlndex). ObjectName = UserObjectName;AddToUserDB UserObjectName, Me;End Sub;Publιc Sub mnuApplyOpacιty_Clιck(); Dim retval As Boolean; If frmMDI.ActiveForm.ObjectZorderl. Count < 1 Then, MsgBox va_Warnιng_NoSelected; Exit Sub; End If; If vaPιcture(Me ObjectZorderl Selectedlndex). SelectedObject = True Then; CancelPendmgMode, retval =
Me.SaveUndo(Me. ObjectZorderl. Selectedlndex, va_cap_Undo_Paιnt); ApplyColorToObject CurrentUnderlay; Else; MsgBox va_Warnιng_NoSelected; End If;End Sub;Pπvate Sub mnuBackgroundAdjust_Click(); HideAnySteips; frmBackgroundEffects.Show 1; ShowAnySteιps;End Sub;Pπvate Sub MnuBest_Chck();On Error Resume Next;frmMDI.ActιveForm.CancelPendmgMode;PasteFromOurChpboard 3, vaPιcture(ObjectZorderl .Selectedlndex). Left, vaPιcture(ObjectZorderl .SelectedIndex).Top, Me;End Sub;Pπvate Sub mnuBπghtness_Clιck();'Anιmatιon calls, the ones to use;Dιm r As Integer, n As Integer, Flag3D As Boolean;Dim va msg NoAmmation As Steιng;va_msg_NoAnιmatιon = LoadResSteιng(6875) ' "No item in this project has animation properties. ";If ObjectZorderl. Count <> 0 Then; For r = 1 To ObjectZorderl . Count; n =
ObjectZorderl. GetZOder(r); If vaPιcture(n).DDD <> "" Then; Flag3D = True; End If; vaPιcture(n).SelectedObject = False; Next r; If Flag3D Then; Shder3D. Visible = False; Set frmAnimate.ThisForm = Me; frmAnimate.Show 1;
ShowAnySteips; Else; MsgBox va msg NoAmmation; End If;Else; MsgBox va_msg_NoAmmatιon;End If;End Sub;Pπvate Sub mnuDrawLιne_Click(); MakeRegon VA_DRAWLINE;End Sub;Pubhc Sub mnuD awSolιd_Clιck(); Screen.MousePointer = vbHourglass, Compose VA_COMPOSE_ALL 'Send unage of all objects to IdScreen; IdScreen.ZOrder 0 'Show the IdScreen; ImtiateScrollBars; ImtializeMagicZoom; OperationMode = VA_PAINTING; Dirty = True; IdScreen.ScaleMode = 3; Screen.MousePomter = vbCrosshaιr;End Sub;Pπvate Sub mnuDeleteq_Chck();End Sub;Pubhc Sub mnuDrawTools_Chck(); frmDrawmgTools.Show l;End SubjPπvate Sub mnuDxfMam_Clιck();frrnMDI.mnuImportDXF_Clιck;End Sub;Pubhc Sub mnuEffectBrightness_Chck(); If ObjectZorderl. Count < 1 Then; DisplayErrorMessage VA NOTSELECTED, vblnformation, VaTitle, Exit Sub, End If; If ObjectZorderl . Selectedlndex <> 0 Then ' Are there Objects?; If Not vaPιcture(ObjectZorderl. Selectedlndex). SelectedObject Then ' Is there one that is REALLY selected9; DisplayErrorMessage VA NOTSELECTED, vblnformation, VaTitle, Exit Sub, End If, ' Everything is copacetic so go ahead, CancelPendmgMode, If pShadowOps Or pEffectsActive Then, MsgBox va_Warnmg_CloseEffect, Exit Sub, End If, gpsEffects = va Bnghtness, frmEffects Show, Else, DisplayErrorMessage VA NOTSELECTED, vblnformation, VaTitle, End If,End Sub.Pπvate Sub mnuEffectColor_Chck(), If vaPιcture(ObjectZorderl Selectedlndex) IsShadow Then, Dim msgNotSupported As String, msgNotSupported =
LoadResSteιng(6896) ' "The effect you have selected is not supported for shadows ", MsgBox msgNotSupported,
Exit Sub, End If, If ObjectZorderl Count < 1 Then, DisplayErrorMessage VA_NOTSELECTED, vblnformation,
VaTitle, Exit Sub, End If, If ObjectZorderl Selectedlndex <> 0 Then ' Are there Objects9, If Not vaPιcture(ObjectZorderl Selectedlndex) SelectedObject Then ' Is there one that is REALLY selected9, DisplayErrorMessage VA NOTSELECTED, vblnformation, VaTitle, Exit Sub, End If, ' Everything is copacetic so go ahead, CancelPendmgMode, If pShadowOps Or pEffectsActive Then, MsgBox va_Warnmg_CloseEffect, Exit Sub, End If, gpsEffects = va ColorApply, frmEffects Show, Else, DisplayErrorMessage VA_NOTSELECTED, vblnformation, VaTitle, End If,End Sub,Pπvate Sub mnuEffectConteast_Chck(), If vaPιcture(ObjectZorderl Selectedlndex) IsShadow Then, Dim msgNotSupported As String, msgNotSupported = LoadResSteιng(6896) ' "The effect you have selected is not supported for shadows ", MsgBox msgNotSupported,
Exit Sub, End If, If ObjectZorderl Count < 1 Then, DisplayErrorMessage VA NOTSELECTED, vblnformation,
VaTitle, Exit Sub, End If, If ObjectZorderl Selectedlndex <> 0 Then ' Are there Objects9, If Not vaPιcture(ObjectZorderl Selectedlndex) SelectedObject Then ' Is there one that is REALLY selected9,
DisplayErrorMessage VA NOTSELECTED, vblnformation, VaTitle, Exit Sub, End If, ' Everything is copacetic so go ahead, CancelPendmgMode, If pShadowOps Or pEffectsActive Then, MsgBox va Warmng CloseEffect, Exit
Sub, End If, gpsEffects = va_Conteast, frmEffects Show, Else, DisplayErrorMessage VA NOTSELECTED, vblnformation, VaTitle, End If,End Sub„Pπvate Sub mnuEffectGrowth_Clιck(), If frmMDI ActiveForm ObjectZorderl Count < 1 Then, MsgBox va Wammg NoSelected, Exit Sub, End If, CancelPendmgMode, If pShadowOps Or pEffectsActive Then, MsgBox va Wammg CloseEffect, Exit Sub, End If, gpsEffects = va_ObjectGrowth, frmEffects Show,End Sub„Pπvate Sub mnuEffectHue_Chck(), If vaPιcture(ObjectZorderl Selectedlndex) IsShadow Then, Dim msgNotSupported As String, msgNotSupported =
LoadResStπng(6896) ' "The effect you have selected is not supported for shadows ", MsgBox msgNotSupported,
Exit Sub, End If, If ObjectZorderl Count < 1 Then, DisplayErrorMessage VA NOTSELECTED, vblnformation, VaTitle, Exit Sub, End If, If ObjectZorderl Selectedlndex o 0 Then ' Are there Objects9, If Not vaPιcture(ObjectZorderl Selectedlndex) SelectedObject Then ' Is there one that is REALLY selected9,
DisplayErrorMessage VA_NOTSELECTED, vblnformation, VaTitle, Exit Sub, End If, ' Everything is copacetic so go ahead, CancelPendmgMode, If pShadowOps Or pEffectsActive Then, MsgBox va_Warmng_CloseEffect, Exit Sub, End If, gpsEffects = va Hue, frmEffects Show, Else, DisplayErrorMessage VA NOTSELECTED, vblnformation, VaTitle, End If,End Sub„Pπvate Sub mnuEffectMιxer_Chck(), If vaPιcture(ObjectZorderl Selectedlndex) IsShadow Then, gpsEffects = va Bnghtness, frmEffects Show, Exit Sub, End If; If ObjectZorderl . Count < 1 Then; DisplayErrorMessage VA NOTSELECTED, vblnformation, VaTitle; Exit
Sub; End If; If ObjectZorderl. Selectedlndex <> 0 Then ' Are there Objects?; If Not vaPιcture(ObjectZorderl. Selectedlndex). SelectedObject Then ' Is there one that is REALLY selected?;
DisplayErrorMessage VA_NOTSELECTED, vblnformation, VaTitle; Exit Sub; End If, ' Everything is copacetic so go ahead; CancelPendmgMode; If pShadowOps Or pEffectsActive Then; MsgBox va Wammg CloseEffect; Exit
Sub; End If; frmEffects. Show; Else; DisplayErrorMessage VA NOTSELECTED, vblnformation, VaTitle; End If, End Sub;Publιc Sub mnuEffectRotatιon_Chck(); If vaPιcture(ObjectZorderl.SelectedIndex).IsShadow Then; Dim msgNotSupported As String; msgNotSupported = LoadResStπng(6896) ' "The effect you have selected is not supported for shadows.", MsgBox msgNotSupported; Exit Sub; End If; If ObjectZorderl. Count < 1 Then; DisplayErrorMessage VA_NOTSELECTED, vblnformation, VaTitle; Exit Sub; End If; If
ObjectZorderl. Selectedlndex <> 0 Then ' Are there Objects?; If Not vaPιcture(ObjectZorderl. Selectedlndex). SelectedObject Then ' Is there one that is REALLY selected?,
DisplayErrorMessage VA NOTSELECTED, vblnformation, VaTitle; Exit Sub; End If; ' Everything is copacetic so go ahead, CancelPendmgMode; If pShadowOps Or pEffectsActive Then; MsgBox va Wammg CloseEffect; Exit Sub; End If; gpsEffects = vaJRotation; frmEffects.Show; Else; DisplayErrorMessage VA_NOTSELECTED, vblnformation, VaTitle; End If;End Sub;Prιvate Sub mnuEffectSaturatιon_Clιck(); If vaPιcture(ObjectZorderl. Selectedlndex). IsShadow Then; Dim msgNotSupported As String; msgNotSupported =
LoadResSteιng(6896) ' "The effect you have selected is not supported for shadows."; MsgBox msgNotSupported;
Exit Sub; End If; If ObjectZorderl. Count < 1 Then; DisplayErrorMessage VA_NOTSELECTED, vblnformation, VaTitle; Exit Sub; End If; If ObjectZorderl .Selectedlndex <> 0 Then ' Are there Objects?; If Not vaPιcture(ObjectZorderl. Selectedlndex). SelectedObject Then ' Is there one that is REALLY selected?;
DisplayErrorMessage VA NOTSELECTED, vblnformation, VaTitle; Exit Sub; End If; ' Everything is copacetic so go ahead; CancelPendmgMode; If pShadowOps Or pEffectsActive Then; MsgBox va_Warmng_CloseEffect; Exit Sub; End If; gpsEffects = va Saturation; frmEffects.Show; Else; DisplayErrorMessage VA_NOTSELECTED, vblnformation, VaTitle; End If;End Sub;;Pnvate Sub mnuEffectsChannel_Chck(); If vaPιcture(ObjectZorderl. Selectedlndex). IsShadow Then; Dim msgNotSupported As String; msgNotSupported =
LoadResStπng(6896) ' "The effect you have selected is not supported for shadows."; MsgBox msgNotSupported;
Exit Sub; End If; If ObjectZorderl. Count < 1 Then; DisplayErrorMessage VA_NOTSELECTED, vblnformation, VaTitle; Exit Sub; End If; If ObjectZorderl. Selectedlndex o 0 Then ' Are there Objects?; If Not vaPιcture(ObjectZorderl .SelectedIndex).SelectedObject Then ' Is there one that is REALLY selected?;
DisplayErrorMessage VA_NOTSELECTED, vblnformation, VaTitle; Exit Sub; End If, ' Everything is copacetic so go ahead; CancelPendmgMode; If pShadowOps Or pEffectsActive Then; MsgBox va Wammg CloseEffect; Exit Sub; End If; gpsEffects = va ChannelAdjust; frmEffects.Show; Else; DisplayErrorMessage VA_NOTSELECTED, vblnformation, VaTitle; End IftEnd Sub;Pnvate Sub mnuEffectSharpness_Chck(); If vaPιcture(ObjectZorderl.SelectedIndex).IsShadow Then; Dim msgNotSupported As String; msgNotSupported = LoadResStrmg(6896) ' "The effect you have selected is not supported for shadows "; MsgBox msgNotSupported,
Exit Sub, End If, If ObjectZorderl Count < 1 Then; DisplayErrorMessage VA NOTSELECTED, vblnformation,
VaTitle; Exit Sub; End If; If ObjectZorderl. Selectedlndex <> 0 Then ' Are there Objects?; If Not vaPιcture(ObjectZorderl. Selectedlndex). SelectedObject Then ' Is there one that is REALLY selected?; DisplayErrorMessage VA NOTSELECTED, vblnformation, VaTitle; Exit Sub; End If; ' Everything is copacetic so go ahead; CancelPendmgMode; If pShadowOps Or pEffectsActive Then; MsgBox va_Warmng_CloseEffect, Exit Sub; End If; gpsEffects = va Sharpness, frmEffects.Show, Else; DisplayErrorMessage VA_NOTSELECTED, vblnformation, VaTitle; End If;End Sub;;Pπvate Sub mnuEffectTransparency_Clιck(); If vaPιcture(ObjectZorderl. Selectedlndex) IsShadow Then; Dim msgNotSupported As String, msgNotSupported = LoadResStπng(6896) ' "The effect you have selected is not supported for shadows.", MsgBox msgNotSupported;
Exit Sub; End If; If ObjectZorderl. Count < 1 Then; DisplayErrorMessage VA NOTSELECTED, vblnformation,
VaTitle; Exit Sub; End If; If ObjectZorderl. Selectedlndex <> 0 Then ' Are there Objects?, If Not vaPιcture(ObjectZorderl. Selectedlndex). SelectedObject Then ' Is there one that is REALLY selected?;
DisplayErrorMessage VA_NOTSELECTED, vblnformation, VaTitle; Exit Sub; End If; ' Everything is copacetic so go ahead, CancelPendmgMode; If pShadowOps Or pEffectsActive Then; MsgBox va Wammg CloseEffect, Exit
Sub; End If; gpsEffects = va Transparency; frmEffects.Show; Else; DisplayErrorMessage VA_NOTSELECTED, vblnformation, VaTitle; End IftEnd Sub;Pπvate Sub mnuEllιpse_Chck(); CancelPendmgMode; AutoScaleType = EZ PAT; MakeRegon VA_ELLIPSE 'Initiate an ellipse;End Sub;Pubhc Sub MnuEraseSolιd_Chck();Dιm retval;CancelPendmgMode;'See Through erase; If Me. ObjectZorderl. Selectedlndex <> 0 Then; HideAnyStπps; IsTransparentBefore = vaPιcture(ObjectZorderl. Selectedlndex). IsTransparent 'keep value to restore; AutoScaleType =
-56; SeeThroughSohd = Tme; retval = Me. SaveUndo(Me. ObjectZorderl. Selectedlndex, "Undo Erase") 'Dave string; MakeRegon VA POLYGON 'Initiate a polygon; End If;End Sub;Pubhc Sub MnuEraseTrans_Chck();Dιm retval;'See
Through erase;CancelPendιngMode; If ObjectZorderl. Selectedlndex <> 0 Then ' Are there Objects?; If Not vaPιcture(ObjectZorderl.SelectedIndex).SelectedObject Then ' Is there one that is REALLY selected?; DisplayErrorMessage VA_NOTSELECTED, vblnformation, VaTitle; Exit Sub; End If, ' Everything is copacetic so go ahead; CancelPendmgMode; HideAnyStnps; IsTransparentBefore = vaPιcture(ObjectZorderl. Selectedlndex). IsTransparent 'keep value to restore; retval =
Me. SaveUndo(Me. ObjectZorderl. Selectedlndex, "Undo Erase") 'Dave string; Zap ObjectZorderl. Selectedlndex;
AutoScaleType = -56; SeeThroughSohd = False; MakeRegon VA POLYGON 'Initiate a polygon; Else; DisplayErrorMessage VA NOTSELECTED, vblnformation, VaTitle; End If;End Sub;Private Sub mnuFrameEllipse ChckO; MakeRegon VA_DRAWELLIPSE;End Sub;Pπvate Sub mnuFrarneRect_Chck(); MakeRegon VA_DRAWRECT;End Sub;Pπvate Sub mnuExιt_Chck(); Dim l As Integer; For I = Forms.Count - 1 To 0 Step -1; Unload Forms(i); Next I; End;End Sub;Pnvate Sub MnuForce_Chck();On Error Resume Next;frmMDI.ActιveForm.CancelPendmgMode;PasteFromOurChpboard 2, vaPιcture(ObjectZorderl. Selectedlndex). Left, vaPιcture(ObjectZorderl.SelectedIndex).Top, Me;End Sub;Pubhc Sub MnuGπd_Clιck(); GπdSwιtch;End Sub;Pπvate Sub mnuIsInterpolationOff ChckQ; Dim Index As Integer; If ObjectZorderl . Count < 1 Then; DisplayErrorMessage VA NOTSELECTED, vblnformation, VaTitle, Exit Sub; End If; If ObjectZorderl. Selectedlndex <> 0 Then; If vaPιcture(ObjectZorderl. Selectedlndex). SelectedObject Then; Index = Me.ObjectZorderl. Selectedlndex; vaPιcture(Index).IsInterpolatιon = False; Me.picComposite.Cls. Me.picBackgroundBuffer.Cls 'Remove objects from images, Me.picScreen.Refresh; Me.Compose
VA_COMPOSE_NOT_INDEX, 0; vaPιcture(Index).RepaιntImage Me.picComposite.hDC, vaPιcture(Index).Left, vaPιcture(Index).Top; Me.SendToFront, Else; DisplayErrorMessage VA NOTSELECTED, vblnformation, VaTitle, End If; Else, DisplayErrorMessage VA_NOTSELECTED, vblnformation, VaTitle; End If;End Sub;Pπvate Sub mnuIsInterpolatιonOn_Chck(); Dim Index As Integer, If ObjectZorderl. Count < 1 Then; DisplayErrorMessage VA NOTSELECTED, vblnformation, VaTitle; Exit Sub; End If; If ObjectZorderl .Selectedlndex <> 0 Then; If vaPιcture(ObjectZorderl. Selectedlndex). SelectedObject Then; Index = Me.ObjectZorderl Selectedlndex; Me.vaPιcture(Index).IsInterρolatιon = True; Me.picBackgroundBuffer.Cls; Me.Compose VA COMPOSEJSTOT NDEX, O; Me.vaPιcture(Index).RepaιntImage Me.picComposite.hDC, Me.vaPιcture(Index).Left, Me.vaPιcture(Index).Top; Me.SendToFront; Else; DisplayErrorMessage VA_NOTSELECTED, vblnformation, VaTitle; End If, Else, DisplayErrorMessage VA_NOTSELECTED, vblnformation, VaTitle; End If;End Sub;;Pπvate Sub mnuLιneWιdth_Chck(); frmLme Width. Show l;End Sub;Pπvate Sub mnuNetTransfer_Chck(); 'frmTransferLaunch.show l;End Sub;Pπvate Sub mnuNewDatabaseC_Clιck();fπnMDI.Labell_MouseDown 14, 0, 0, 0, 0;End Sub;Pnvate Sub MnuNewDraw_Chck(); frmDrawingTools.Show l;End Sub;Private Sub mnuNewFF_Chck(); If vaPιcture(Me.ObjectZorderl .Selectedlndex). SelectedObject = True And frmMDI.ActiveForm ObjectZorderl .Count >
0 Then; vaPιcture(Me.ObjectZorderl.SelectedIndex).DropTyρe = EZ ANY; Else; MsgBox va_Warnrng_NoSelected; End If;End Sub;Pπvate Sub mnuNewHP_Chck(); If ObjectZorderl. Count < 1 Then; DisplayErrorMessage VA_NOTSELECTED, vblnformation, VaTitle; Exit Sub; End If; If ObjectZorderl. Selectedlndex <> 0 Then; If vaPιcture(Me.ObjectZorderl .Selectedlndex). SelectedObject Then; vaPιcture(Me.ObjectZorderl.SelectedIndex).DropType = EZ ANY PROP; Else; DisplayErrorMessage
VA_NOTSELECTED, vblnformation, VaTitle; End If; Else; DisplayErrorMessage VA_NOTSELECTED, vblnformation, VaTitle; End If;End SubjPπvate Sub mnuNewNone_Clιck(); CancelPendmgMode; If ObjectZorderl. Count < 1 Then; DisplayErrorMessage VAJSTOTSELECTED, vblnformation, VaTitle; Exit Sub; End If; If ObjectZorderl. Selectedlndex <> 0 Then; If vaPιcture(Me.ObjectZorderl.SelectedIndex).SelectedObject Then; vaPιcture(Me. ObjectZorderl . Selectedlndex). DropType = EZ_NON; Else; DisplayErrorMessage
VA_NOTSELECTED, vblnformation, VaTitle; End If; Else; DisplayErrorMessage VA_NOTSELECTED, vblnformation, VaTitle; End IftEnd Sub;Pubhc Sub mnuNewPersVert_Chck(); CancelPendmgMode; If ObjectZorderl. Count < 1 Then; DisplayErrorMessage VA NOTSELECTED, vblnformation, VaTitle; Exit Sub; End If; If ObjectZorderl . Selectedlndex <> 0 Then; If vaPιcture(Me. ObjectZorderl. Selectedlndex). SelectedObject Then; frmPersp.HonzontalDefault = False; frmPersp.GetCurrentlmage Me.ObjectZorderl .Selectedlndex, Me; Hide Any Strips, 'frmPersp HoπzontalDefault = False; frmPersp.Show 1, ShowAnySteips, Else, DisplayErrorMessage VA NOTSELECTED, vblnformation, VaTitle, End If, Else, DisplayErrorMessage VA NOTSELECTED, vblnformation, VaTitle; End If.End Sub;Pubhc Sub MnuNewProduct_Chck(); Dim msgresp As VbMsgBoxResult, va_msg_JumpToNet As String, va_msg_cap_JumpToNet As String, Dim va_msg_UserObject As String; va_msg_JumpToNet = LoadResStrmg(6177) '"Do you wish to connect to .", va msg cap JumpToNet =
LoadResStemg(6178) ' "Connect to Internet"; va_msg_UserObject = LoadResStemg(6179) ' "User created object, User database item, or Internet catalog item.", If ObjectZorderl. Selectedlndex > 0 Then ' Check to see if there is an
Object, If vaPιcture(ObjectZorderl. Selectedlndex). SelectedObject Then ' Is it really selected9, If vaPιcture(ObjectZorderl. Selectedlndex) CD Volumn <> "User" And vaPιcture(ObjectZorderl SelectedIndex).CD Volumn <> "None" And vaPιcture(ObjectZorderl SelectedIndex).CDVolumn <> "" And vaPιcture(ObjectZorderl Selectedlndex) DatabaselD <> 0 Then, gProductID = vaPιcture(ObjectZorderl.SelectedIndex).DatabaseID, frmlnfoProd Show 1, frmMDI, ShowAnySteips; Elself vaPιcture(ObjectZorderl. Selectedlndex) CompanyName <> "Item " And vaPιcture(ObjectZorderl Selectedlndex). CD Volumn <> "" And vaPιcture(ObjectZorderl.SelectedIndex).CD Volumn <> "None" Then '*****va_caρ_User, msgresp = MsgBox(va_msg_JumpToNet & vaPιcture(ObjectZorderl Selectedlndex). CD Volumn, vbYesNo, va_msg_cap_JumpToNet); If msgresp = vbYes Then, browserLaunch "http.//" & Trιm$(vaPιcture(ObjectZorderl. Selectedlndex) CD Volumn), Me, Else, Exit Sub; End If; Else; MsgBox va_msg_UserObject; End If; End If; End If;;End Sub;Pnvate Sub mnuNewScalePat_Chck(), CancelPendmgMode; If ObjectZorderl. Count < 1 Then, DisplayErrorMessage VA_NOTSELECTED, vblnformation, VaTitle; Exit Sub; End If; If ObjectZorderl .Selectedlndex o 0 Then; If vaPιcture(Me. ObjectZorderl .Selectedlndex). SelectedObject Then; vaPιcture(Me. ObjectZorderl. SelectedIndex).DropType = EZ_PAT; Else; DisplayErrorMessage VA NOTSELECTED, vblnformation, VaTitle, End If; Else; DisplayErrorMessage VA_NOTSELECTED, vblnformation, VaTitle, End If;End Sub;Pπvate Sub mnuNewSendPrev_Clιck(), CancelPendmgMode; If ObjectZorderl. Count < 1 Then; DisplayErrorMessage VA_NOTSELECTED, vblnformation, VaTitle; Exit Sub; End
If; If ObjectZorderl. Selectedlndex > 0 Then; If vaPιcture(Me.ObjectZorderl. Selectedlndex). SelectedObject Then, frmPopTool.setObject Me.ObjectZorderl. Selectedlndex, Me, 0, 0, 1; frmPoρTool.Imagel_Chck 7, Else; DisplayErrorMessage VA NOTSELECTED, vblnformation, VaTitle; End If; Else; DisplayErrorMessage VA_NOTSELECTED, vblnformation, VaTitle; End If;End SubjPπvate Sub MnuNewSendToBack_Chck(), CancelPendmgMode; If ObjectZorderl .Count < 1 Then; DisplayErrorMessage VA NOTSELECTED, vblnformation,
VaTitle; Exit Sub; End If; If ObjectZorderl. Selectedlndex > 0 Then; If vaPιcture(Me ObjectZorderl. Selectedlndex). SelectedObject Then; frmPopTool.setObject Me.ObjectZorderl. Selectedlndex, Me, 0, 0, 1; frmPopTool.Imagel_Chck 6; Else; DisplayErrorMessage VA NOTSELECTED, vblnformation, VaTitle; End If; Else; DisplayErrorMessage VA NOTSELECTED, vblnformation, VaTitle; End If;End Sub,Pπvate Sub MnuNewSendToFront_Clιck(), CancelPendmgMode; If ObjectZorderl . Count < 1 Then; DisplayErrorMessage VA NOTSELECTED, vblnformation, VaTitle, Exit Sub; End If; If ObjectZorderl . Selectedlndex > 0 Then; If vaPιcture(Me.ObjectZorderl.SelectedIndex).SelectedObject Then; 'simulates mouse click on the object to bring to front (32 so that is inside the object; vaPicture MouseDown Me.ObjectZorderl. Selectedlndex, 1, 0, 0, 0; vaPicture MouseUp Me.ObjectZorderl. Selectedlndex, 1, 0, 0, 0; Else; DisplayErrorMessage VA NOTSELECTED, vblnformation, VaTitle; End If; Else; DisplayErrorMessage
VA_NOTSELECTED, vblnformation, VaTitle; End IftEnd Sub;,Pπvate Sub mnuNewSP_Chck(), CancelPendmgMode, If ObjectZorderl. Count < 1 Then; DisplayErrorMessage VA NOTSELECTED, vblnformation, VaTitle; Exit Sub; End If; If ObjectZorderl .Selectedlndex > 0 Then; If vaPιcture(Me. ObjectZorderl .Selectedlndex). SelectedObject Then; vaPιcture(Me ObjectZorderl .SelectedIndex).DroρType = EZ_PAT_NO; Else, DisplayErrorMessage
VA NOTSELECTED, vblnformation, VaTitle; End If; Else; DisplayErrorMessage VA NOTSELECTED, vblnformation, VaTitle; End If;End SubjPπvate Sub mnuNewVιdeos_Chck(); HideAnyStπps; frmAvi.Show 1, ShowAnyStnps;End Sub;Pπvate Sub mnuNewWP_Clιck(); CancelPendmgMode; If ObjectZorderl. Count < 1 Then; DisplayErrorMessage VAJNOTSELECTED, vblnformation, VaTitle; Exit Sub; End If; If ObjectZorderl. Selectedlndex > 0 Then; If vaPιcture(Me. ObjectZorderl. Selectedlndex). SelectedObject Then; vaPιcture(Me. ObjectZorderl SelectedIndex).DropType = EZ ANY PROP2; Else; DisplayErrorMessage VA_NOTSELECTED, vblnformation, VaTitle; End If; Else; DisplayErrorMessage VA_NOTSELECTED, vblnformation, VaTitle; End If;End Sub;Pubhc Sub mnuObjlst_Click(); frmObjectLιst.Show;End Sub;Pnvate Sub mnuoff ChckO; If ObjectZorderl . Count < 1 Then; DisplayErrorMessage VA NOTSELECTED, vblnformation, VaTitle; Exit Sub; End If; If ObjectZorderl .Selectedlndex > 0 Then; If vaPιcture(ObjectZorderl. Selectedlndex). SelectedObject Then; MakeObjectSolid; Else; DisplayErrorMessage VA NOTSELECTED, vblnformation, VaTitle; End If; Else; DisplayErrorMessage VA_NOTSELECTED, vblnformation, VaTitle; End If;' With Me.vaPιcture(Me.ObjectZorderl. Selectedlndex);' If .IsShadow Then Exit Sub;' .IsTransparent = False;' If Me.Zoom > 0 Then Me.Resize VAPicture Me. ObjectZorderl. Selectedlndex;' Me.picBackgroundBuffer.Cls;' Me.Compose VA_COMPOSE_NOT_INDEX, Me.ObjectZorderl .Selectedlndex;'
.Repaintlmage Me.hDC, Left, .Top;' .Refresh;' Me.SendToFront;' End Wιth;End Sub;Pπvate Sub mnuPasteDistortHoriz_Chck(); Dim retval As Integer; CancelPendmgMode; If ObjectZorderl. Count < 1 Then; DisplayErrorMessage VA NOTSELECTED, vblnformation, VaTitle; Exit Sub; End If; If ObjectZorderl. Selectedlndex > 0 Then; If vaPιcture(ObjectZorderl. Selectedlndex). SelectedObject Then; Screen.MousePointer = vbHourglass; retval = SaveUndo(ObjectZorderl .Selectedlndex, "Undo Paste");
PasteHorizDistort 'This is right, do not change; Screen.MousePointer = vbDefault; Else; DisplayErrorMessage VA_NOTSELECTED, vblnformation, VaTitle; End If; Else; DisplayErrorMessage VA NOTSELECTED, vblnformation, VaTitle; End If;;End Sub;Pπvate Sub mnuPasteDιstortVert_Clιck(); Dim retval As Boolean; CancelPendmgMode; If ObjectZorderl. Count < 1 Then; DisplayErrorMessage VA_NOTSELECTED, vblnformation, VaTitle; Exit Sub; End If; If ObjectZorderl .Selectedlndex > 0 Then; If vaPιcture(ObjectZorderl. Selectedlndex). SelectedObject Then; Screen.MousePomter = vbHourglass, retval = SaveUndo(ObjectZorderl Selectedlndex, "Undo Paste"); Paste VertDistort 'This is right, do not change; Screen.MousePointer = vbDefault; Else; DisplayErrorMessage VA NOTSELECTED, vblnformation, VaTitle; End If, Else; DisplayErrorMessage VA NOTSELECTED, vblnformation, VaTitle; End If;End Sub;;Pubhc Sub mnuPatternFιllDιstortHoπz_Clιck();Dιm retval As Boolean; If frmMDI.ActiveForm. ObjectZorderl. Count < 1 Then,
DisplayErrorMessage VA_NOTSELECTED, vblnformation, VaTitle, Exit Sub; End If; If vaPιcture(Me. ObjectZorderl. Selectedlndex). SelectedObject Then; Me. CancelPendmgMode; Screen.MousePointer = vbHourglass; retval = Me. SaveUndo(Me. ObjectZorderl. Selectedlndex, va_cap_Undo_FιllDιstort_Vert); ' DistortPatternFillHoπz; Screen.MousePointer = vbDefault; Else; DisplayErrorMessage VA NOTSELECTED, vblnformation, VaTitle; End If;End Sub;Pubhc Sub mnuPatternFillDistortVert_Click(); Dim retval As Boolean; If frmMDI ActiveForm.ObjectZorderl. Count < 1 Then; DisplayErrorMessage VA NOTSELECTED, vblnformation, VaTitle; Exit Sub; End If; If vaPιcture(Me.ObjectZorderl. Selectedlndex). SelectedObject Then, Me. CancelPendmgMode; Screen.MousePointer = vbHourglass; retval = Me. SaveUndo(Me. ObjectZorderl .Selectedlndex, va_cap_Undo_FιllDιstort_Horιz); DistortPatternFillVert; Screen.MousePointer = vbDefault; Else; DisplayErrorMessage VA NOTSELECTED, vblnformation, VaTitle; End
IftEnd Sub;;Pubhc Sub mnuPatternFillNormal_Chck(); If frmMDI.ActiveForm.ObjectZorderl. Count < 1 Then; DisplayErrorMessage VA NOTSELECTED, vblnformation, VaTitle; Exit Sub; End If; Me.CancelPendingMode; ApplyPatternToObject 'Check for selected object is done in the proceedure itself; If ObjectListLoaded Then frmObjectList.LoadObjectList Me;End Sub;;Pubhc Sub MnuPer_Chck(); CancelPendmgMode; If ObjectZorderl .Count < 1 Then; DisplayErrorMessage VA_NOTSELECTED, vblnformation, VaTitle; Exit Sub, End
If; If ObjectZorderl. Selectedlndex > 0 Then, If vaPιcture(ObjectZorderl. Selectedlndex). SelectedObject Then; frmPersp.HoπzontalDefault = True; frmPersp.GetCurrentlmage Me.ObjectZorderl. Selectedlndex, Me; HideAnySteips; frmPersp.Show 1; ShowAnySteips; Else; DisplayErrorMessage VA NOTSELECTED, vblnformation, VaTitle; End If; Else; DisplayErrorMessage VA_NOTSELECTED, vblnformation, VaTitle; End IftEnd Sub;Prιvate Sub mnuPolygonq_Chck(); MakeRegon VA POLYGON 'Initiate a polygon;End Sub;Pπvate Sub mnuRectangle_Chck(); MakeRegon VA_RECT ANGLE 'Initiate a rectangle;End Sub;Pπvate Sub mnuRectangleq_Clιck(); MakeRegon VA RECTANGLE 'Initiate a rectangle;End Sub;;Pnvate Sub mnuSprayArea_Click(); Screen.MousePomter = vbHourglass; Compose VA_COMPOSE_ALL 'Send image of all objects to IdScreen; IdScreen.ZOrder 0 'Show the IdScreen; ImtiateScrollBars; InitializeMagicZoom; OperationMode = VA SPRAYPATTERNSELECT; Dirty = True; IdScreen. ScaleMode = 3 ; Screen.MousePomter = vbCrosshair; ;End
Sub;Pπvate Sub mnuSprayBrush_Click(); CancelPendmgMode; frmBrushSelect.Show l;End Sub;Pubhc Sub mnuSprayPaιnt_Clιck(); Screen.MousePointer = vbHourglass; Compose VA_COMPOSE_ALL 'Send image of all objects to IdScreen; IdScreen.ZOrder 0 'Show the IdScreen; ImtiateScrollBars; InitializeMagicZoom; OperationMode = VA_SPRAYING; Dirty = Tme; IdScreen.ScaleMode = 3; Screen.MousePointer = vbCrosshaιr;End Sub;Pπvate Sub mnuTextTool_Chck(); frmText.Show;End SubjPπvate Sub mnuTransEdges_Chck();' If ObjectZorderl. Count < 1 Then Exit Sub;';' Dirty = True,' frmMDI.picDistort.Picture = vaPιcture(ObjectZorderl. Selectedlndex). Mask;' frmMDI.picDistortBuffer.Picture = vaPιcture(ObjectZorderl. Selectedlndex). Sprite;';' Screen.MousePointer = vbCrosshaιr;End Sub;Pπvate Sub mnuZap_Clιck(), If frmMDI.ActiveForm.ObjectZorderl . Count < 1 Then, DisplayErrorMessage VA NOTSELECTED, vblnformation, VaTitle; Exit Sub; End If; If ObjectZorderl. Selectedlndex = 0 Then; DisplayErrorMessage VA NOTSELECTED, vblnformation, VaTitle; Exit
Sub; End If, If Not vaPιcture(ObjectZorderl. Selectedlndex). SelectedObject Then; DisplayErrorMessage VA NOTSELECTED, vblnformation, VaTitle; Exit Sub; End If; Zap Me.ObjectZorderl. SelectedIndex;;End Sub;Publιc Sub mnuZoomιn_Clιck(), Zoomit 2, Me;End Sub;;Pubhc Sub mnuZoomout_Chck(); Zoomit 0.5, Me,End Sub;;Pnvate Sub pιcScreen_Chck(); frmMDI.pblnfoNet. Visible = False; frmMDI.pblnfoCD Visible = False; If ObjectZorderl .Count > 0 Then; vaPιcture(ObjectZorderl .Selectedlndex). SelectedObject = False; 'UnselectGroup,
ObjectZorderl. Selectedlndex = ObjectZorderl. Toplndex; If ObjectListLoaded Then frmObjectList.LoadObjectList Me; End If; Shder3D.Vιsιble = False;End Sub;Pπvate Sub pιcScreen_DragDrop(Source As Control, X As Single, Y As Single); Dim offset As Integer, IsOnTop As Boolean, temp$; Dirty = Tme, Shder3D. Visible = False; If Source. Tag = "COPYME" Then 'D D paste; Source.Tag = ""; PasteFromOurClipboard 1, X - (Source.Width / 2), Y - (Source.Height / 2), Me, Source.Drag 2; Exit Sub; End If; If Left(Source.Tag, 4) = "DATA" Then 'drop database object to this form or control; Source.Drag vbEndDrag; Me.SetFocus; If Mιd(Source.Tag, 5, 1) = "1" Then CreateObjectFromDB X, Y, CInt(Mιd(Source.Tag, 6)), Me; If Mιd(Source.Tag, 5, 1) = "2" Then; CreateObjectUserDB X, Y, Me; frmUserDatase.Show; End If; If Mιd(Source.Tag, 5, 1) = "3" Then CreateObjectlnternetDB X, Y, Me; If vaPιcture(ObjectZorderl. Selectedlndex). CD Volumn <> "User" And vaPιcture(ObjectZorderl .Selectedlndex). CD Volumn <> "None" And vaPιcture(ObjectZorderl. Selectedlndex). CD Volumn <> "" And vaPιcture(ObjectZorderl.SelectedIndex).DatabaseID <> 0 Then; frmMDI.pblnfoNet. Visible = False; frmMDI.pblnfoCD.Visible = Tme; Elself vaPιcture(ObjectZorderl.SelectedIndex).CD Volumn <> "" Then; frmMDI.pblnfoCD.Visible = False; fπnMDI.pblnfoNet. Visible = Tme; Else; frmMDI.pblnfoCD.Visible = False; frmMDI.pblnfoNet. Visible = False; End If; Exit Sub; End If; If Left(Source.Tag, 7) = "NETDROP" Then; Source.Drag vbEndDrag; temp$ = Source.Caption,
Unload frmNetTransfer; DoEvents; getObjectFromNet X, Y, temp$; If vaPιcture(ObjectZorderl. Selectedlndex). CD Volumn o "User" And vaPιcture(ObjectZorderl. Selectedlndex). CD Volumn <> "None" And vaPιcture(ObjectZorderl. Selectedlndex). CD Volumn <> "" And vaPιcture(ObjectZorderl.SelectedIndex).DatabaseID <> 0 Then; frmMDI.pblnfoNet. Visible = False; frmMDI.pblnfoCD.Visible = Tme; Elself vaPιcture(ObjectZorderl.SelectedIndex).CD Volumn o "" Then; frmMDI.pblnfoCD.Visible = False, frmMDI.pblnfoNet. Visible = Tme; End If; Exit Sub; End If; If Left(Source.Tag, 5) = "GROUP" Then 'drop database object to this form or control, Source.Drag vbEndDrag; Exit Sub; End If; If Source.Tag = "Comp" Then 'drop comp object to this form or control, Source.Drag vbEndDrag, ' Me.SetFocus; FrmSubComp.CreateFromComp X, Y, Me; Screen.MousePointer = vbDefault; If vaPιcture(ObjectZorderl. Selectedlndex). CDVolumn o "User" And vaPιcture(ObjectZorderl.SelectedIndex).CD Volumn <> "None" And vaPιcture(ObjectZorderl.SelectedIndex).CD Volumn <> "" And vaPιcture(ObjectZorderl SelectedIndex).DatabaseID <> 0 Then; frmMDI.pblnfoNet. Visible = False; frmMDI.pblnfoCD.Visible = Tme; Elself vaPιcture(ObjectZorderl.SelectedIndex).CD Volumn <> "" Then; frmMDI.pblnfoCD.Visible = False; frmMDI.pblnfoNet. Visible = Tme; End If; Exit Sub; End If;Screen.MousePomter = vbDefault;' Screen.MousePointer
= vbHourglass;' 'Unselect if mouse not moved;' If MouseoffsetX = X - (Source. Left * Screen.TwipsPerPixelX) - (hsbMam.Value * Screen.TwipsPerPixelX) And MouseoffsetY = Y - (Source.Top * Screen.TwipsPerPixelY) - (vsbMam.Value * Screen.TwipsPerPixelX) And WasSelected Then;' CurrentObj(Me.Tag) = 0;' Source.Visible = Tme;' UnselectObject Me,' Me.hsbMam.Zorder 0: Me vsbMam.Zorder 0: Me. cmdScrollComer.ZOrder 0;' OperationMode = "Moving",';' Screen.MousePointer = vbDefault;' Exit Sub;' End If;End Sub;;Pπvate Sub pιcScreen_DragOver(Source As Control, X As Single, Y As Single, State As Integer); If InternetAmmate = "NA" Then; frmMDI.ssBottom(l). Caption = "" 'turn off at animation download; frmMDI. ssDrop.Caption = ""; frmMDI.PicDrop.Visible = False; frmMDI.PicShadow. Visible = False; frmMDI.PicTransperant. Visible = False; firnMDI.PicAnti. Visible = False; frπiMDI.PicAnimation. Visible = False; End If; ' frmMDI.ssBottom(l). Caption = ""; ' frmMDI.ssDrop.Caption = ""; ' frmMDI.PicDrop.Visible = False;End Sub;Prιvate Sub pιcScreen_GotFocus(); On
Error GoTo picScreenError; If OperationMode = VA POLYGON Or OperationMode = VA_RECTANGLE Or OperationMode = VA ELLIPSE Or OperationMode = VA DRAWRECT Or OperationMode = VA DRAWELLIPSE Or OperationMode = VA_DRAWLI E Then 'Check to see if valid region; If LastForm. WmdowState = 1 Then LastForm.WindowState = 0; LastForm.SetFocus; LastForm.ldScreen.SetFocus; End If;Exιt Sub;picScreenError:;Exιt Sub;End Sub;Private Sub pιcScreen_KeyDown(KeyCode As Integer, Shift As Integer); Dim PixelsToMove As Byte, n As Integer; If Shift = 1 Then PixelsToMove = (2 Λ Zoom) * 10 Else PixelsToMove = 2 Λ Zoom;' If Not Composed Then;' Compose VA_COMPOSE_NOT_TOPMOST;' Composed = Tme;' End If; DoEvents; Select Case KeyCode; Case vbKeyDelete 'Unload the object; Delete VAObject; Case vbKeyDown, vbKeyLeft, vbKeyRight, vbKeyUp 'Move the object; If vaPιcture(ObjectZorderl. Selectedlndex). SelectedObject And StopMove = False Then; vaPιcture(ObjectZorderl .Selectedlndex). Visible = False; If KeyCode = vbKeyDown Then vaPιcture(ObjectZorderl.SelectedIndex).Top = vaPιcture(ObjectZorderl.SelectedIndex).Top + PixelsToMove; If KeyCode = vbKeyLeft Then vaPιcture(ObjectZorderl. Selectedlndex). Left = vaPιcture(ObjectZorderl.SelectedIndex).Left - PixelsToMove; If KeyCode = vbKeyRight Then vaPιcture(ObjectZorderl. Selectedlndex). Left = vaPιcture(ObjectZorderl . Selectedlndex). Left + PixelsToMove; If KeyCode = vbKeyUp Then vaPιcture(ObjectZorderl .Selectedlndex). Top = vaPιcture(ObjectZorderl.SelectedIndex).Top - PixelsToMove; Compose VA COMPOSEJLOADJSTEW; vaPιcture(ObjectZorderl.SelectedIndex).RepamtImage picComposite.hDC, vaPιcture(ObjectZorderl .Selectedlndex). Left, vaPιcture(ObjectZorderl .Selectedlndex). Top, frmMDI.ldShadowBuffer, frmMDI.ldShadow; vaPιcture(ObjectZorderl. Selectedlndex) .Visible = Tme; picScreen.Refresh; End If; Case vbKeyB; gpsEffects = va Bnghtness; n = frmEffects ldSpπteAfter SetPιcture(frmMDI ActiveForm vaPιcture(frmMDI ActiveForm ObjectZorderl Selectedlnde x) Sprite), n = frmEffects IdSpnteOngmal SetPιcture(frmMDI ActiveForm vaPιcture(frmMDI ActiveForm ObjectZorderl Selectedln dex) Sprite), n = frmEffects ldMaskAfter SetPιcture(frmMDI ActiveForm vaPιcture(frmMDI ActiveForm ObjectZorderl Selectedlnde x) Mask), n = frmEffects IdMaskOngmal SetPιcture(frmMDI ActiveForm vaPicture(frmMDI ActiveForm ObjectZorderl Selectedln dex) Mask), Load frmEffects, Case vbKeyR, gpsEffects = va Rotation, n = frmEffects ldSpnteAfter SetPιcture(frmMDI ActiveForm vaPicture(frmMDI ActiveForm ObjectZorderl Selectedlnde x) Sprite), n = frmEffects IdSpnteOngmal SetPιcture(frmMDI ActiveForm vaPicture(frmMDI ActiveForm ObjectZorderl Selectedln dex) Sprite), n = frmEffects ldMaskAfter SetPιcture(frmMDI ActiveForm vaPιcture(frmMDI ActiveForm ObjectZorderl Selectedlnde x) Mask), n = frmEffects IdMaskOngmal SetPιcture(frmMDI ActiveForm vaPιcture(frmMDI ActiveForm ObjectZorderl Selectedln dex) Mask), Load frmEffects, Me MousePomter = 99, Case Else, 'Do Nothing, End Select,End Sub,Pnvate Sub pιcScreen_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Smgle), If InternetAmmate = "NA"
Then, frmMDI ssBottom(l) Caption = "" 'turn off at animation download, frmMDI ssDrop Caption = "", frmMDI PicDrop Visible = False, frmMDI PicShadow Visible = False, frmMDI PicTransperant Visible = False, frmMDI PicAnti Visible = False, frmMDI PicAmmation Visible = False, frmMDI pιcPostIt2 Visible = False, End
If,End Sub.Pπvate Sub pιcScreen_OLEDragDrop(Data As DataObject, Effect As Long, Button As Integer, Shift As
Integer, X As Smgle, Y As Smgle),Dιm InternetFile As String, temp$,Dιm IltemName As Stemg,On Error GoTo
OLEDragDropError,Dιrty = Tme, Screen MousePomter = vbHourglass, Shder3D Visible = False, 'test.If Effect And vbDropEffectNone = vbDropEffectNone Then, 'MsgBox "Drop target cannot accept the data ", 'Screen MousePomter = vbDefault, 'Exit Sub,End If,'If Effect And vbDropEffectCopy = vbDropEffectCopy Then MsgBox " 1 Drop results m a copy of data from the source to the target The original data is unaltered by the drag operation ", 'If Effect And vbDropEffectMove = vbDropEffectMove Then MsgBox "Drop move",frmMDI ssBottom(l) Caption =
LoadResStπng(6878) ' "Downloading Image from Internet", InternetFile = Data Fιles(l),IItemName =
Data Fιles(l),'InternetFιle = Mιd(IItemName, 1, Len(IItemName) - 4), InternetFile = exteactFιlename(IItemName), 'MsgBox InternetFile, InternetlmageReady = False, InternetMaskReady = False, frmMDI IdEditlmageBuffer Visible =
Tme, frmMDI IdEditMaskBuffer Visible = Tme, temp$ = Rιght$(InternetFιle, 7), getObjectFromNet X, Y, temp$, If vaPιcture(ObjectZorderl Selectedlndex) CDVolumn <> "User" And vaPιcture(ObjectZorderl Selectedlndex) CDVolumn <> "None" And vaPιcture(ObjectZorderl Selectedlndex) CDVolumn <> "" And vaPιcture(ObjectZorderl Selectedlndex) DatabaselD o 0 Then, frmMDI pblnfoNet Visible = False, frmMDI pblnfoCD Visible = Tme, Elself vaPιcture(ObjectZorderl Selectedlndex) CDVolumn <> "" Then, frmMDI.pblnfoCD Visible = False, frmMDI.pblnfoNet. Visible = Tme; Else, frmMDI pblnfoCD Visible = False, frmMDI pblnfoNet Visible = False, End If; If InternetAmmate <> "NA" Then 'animation; Screen.MousePointer = vbHourglass, DBAmmation = InternetAmmate, frmMDI.ssBottom(l) Caption = "Downloading multiple images ", NoOneButMe 'only this object will have this animation quality; vaPιcture(ObjectZorderl Selectedlndex). DDD = DBAmmation
'ObjectZorderl Selectedlndex, Ammationlndex = ObjectZorderl Selectedlndex 'easier to find, NewAmmation DBAmmation, CInt(ldSpπteTransferBuffer.Bιtmap Width), CΙnt(ldSρnteTransferBuffer BιtmapHeιght), ObjectZorderl Selectedlndex, 2, frmMDI ssBottom(l).Captιon = "", DBAmmation = ""; InternetAmmate = "NA", End If,Screen MousePomter = vbDefault,Exιt Sub;OLEDragDropError.; Screen MousePomter = vbDefault; If Data.GetFormat(vbCFText) Then; temp$ = parseURL(Data.GetData(vbCFText)), If temp$ <> "" Then, frmNetTransfer.mamURL = "www.showoff com", frmNetTransfer DisplayMode = vaHidden; If frmNetTransfer.SearchCompanyLιst(temp$) Then, frmNetTransfer Visible = Tme, Else; frmNetTransfer.DisplayMode = vaNetscape; frmNetTransfer cbUrlList Listlndex = 0; frmNetTransfer Visible = Tme, End If, Else, frmNetTransfer mamURL = "www.showoff com"; frmNetTransfer DisplayMode = vaNetscape; frmNetTransfer.Show, End If; Else; frmNetTransfer.mamURL = "www.showoff.com", frmNetTransfer DisplayMode
= vaNetscape, frmNetTransfer Show; End If, InternetAmmate = "NA", Exit Sub, End Sub;Pπvate Sub pιcScreen_OLEDragOver(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single, State As Integer); frmMDI.ssBottom(l).Captιon = ""; frmMDI ssDrop Caption = ""; frmMDI.PicDrop.Visible = False;End Sub.Pnvate Sub Shde 3D_Change();On Error Resume Next;DomgAnrmatιon = Tme 'keep the ddd property during sprite change;Set vaPicture(Ammationlndex). Sprite =
AmmateSprιte(Shder3D Value + l);Set vaPιcture(AnιmatιonIndex).Mask = AnιmateMask(Shder3D. Value + l);Compose VA_COMPOSE_LOAD_NEW;vaPιcture(AnιmatιonIndex).RepamtImage picComposite.hDC, vaPιcture(AnιmatιonIndex).Left, vaPicture(An mationlndex) Top, frmMDI.ldShadowBuffer, frmMDI. ldShadow;vaPιcture(AnιmatιonIndex).Refresh;SendToFront,DomgAnιmatιon = False;End Sub;Pπvate Sub Shder3D_DragDrop(Source As Control, X As Single, Y As Single), Source. Drag vbEndDrag;End Sub;Pπvate Sub
Slιder3D_Scroll();On Error Resume Next.DoingA mation = Tme, Set vaPιcture( Ammationlndex). Sprite = AmmateSpπte(Slιder3D. Value + l),Set vaPιcture( Ammationlndex). Mask = AmmateMask(Shder3D Value + l);Compose VA_COMPOSE_LOAD_NEW;vaPιcture(AnιmatιonIndex).RepaιntImage picComposite.hDC, vaPιcture(AmmatιonIndex).Left, vaPιcture(AnιmatιonIndex).Top, frmMDI.ldShadowBuffer, frmMDI.ldShadow;vaPιcture(AnιmatιonIndex).Refresh;SendToFront,DomgAnιmatιon = False;End Sub;Pπvate Sub tmrRestartKeyMove_Tιmer(), tmrRestartKeyMove.Enabled = False; StopMove = False; Composed = False; SendToFront;End Sub;Prιvate Sub pιcScreen_KeyUρ(KeyCode As Integer, Shift As Integer); Select Case KeyCode, Case 32 'spacebar; If CursorChpped Then ReleaseCursor; Case vbKeyDown, vbKeyLeft, vbKeyRight, vbKeyUp, StopMove = Tme; tmrRestartKeyMove.Enabled = Tme, Case Else, 'Do Nothmg; End Select;End Sub,Prιvate Sub tmrSpray_Tιmer(), Dim dum As Integer, longDummy As Long, tempDC As Long, loops As Integer; Dim m PixelsX As Single, m PixelsY As Single, Z, iRetVal As Long; Dim tempX As Single, tempY As Smgle, n%, m_ColorValue As Long, m Pixels As Integer; If pSpraymg Then; Randomize; dum = CInt(UBound(sprayColors) * Rnd) - 1; If dum < 1 Then dum = 1 ; If dum > UBound(sprayColors) Then dum = UBound(sprayColors); sprayColor = sprayColors(dum); m Pixels = CInt(((sprayArea X - 6) * Rnd) + spray Thickness); For loops = 1 To m Pixels; Do, m PixelsX = Rnd * sprayArea.X; mJPixelsY = Rnd * sprayArea.Y, Loop Until frmMDI.pιcSprayMask.Pomt(m_PιxelsX, m PixelsY) = RGB(0, 255, 0); mJ>ιxelsX = CInt(m_PιxelsX + sprayULC.X) '/ Screen.TwipsPerPixelX); m PixelsY = CInt(m_PrxelsY + sprayULC.Y) ' / Screen TwipsPerPixelY), frmMDI.picDistort.PSet (m_PιxelsX, m PixelsY), sprayColor; frmMDI.picDistortBuffer.PSet (m PixelsX, m PixelsY), RGB(0, 0, 0); Next loops; Dim tdc As Long; tempDC = ldScreen.GetBitmapDC, iRetVal = BιtBlt( tempDC, 0, 0, IdScreen.ScaleWidth, IdScreen.ScaleHeight, Me.picComposite.hDC, IdScreen.ScaleWidth,
IdScreen.ScaleHeight, SRCCOPY); iRetVal = BιtBlt(tempDC, 0, 0, frmMDI.picDistortBuffer.Scale Width, frmMDI.picDistortBuffer.ScaleHeight, frmMDI.picDistortBuffer.hDC, 0, 0, SRCAND), iRetVal = BιtBlt(tempDC, 0, 0, frmMDI.picDistort.ScaleWidth, fimMDI.picDistort.ScaleHeight, frmMDI.picDistort.hDC, 0, 0, SRCPamt), IdScreen.ReleaseBitmapDC; IdScreen.ForceRepaint; End If;;End Sub,Pπvate Sub vaPιcture_DragDrop(Index As Integer, Source As Control, X As Single, Y As Single); Dim IsOnTop As Boolean; Dim I As Integer, temp$; Dim
Looplndex As Integer; Dim retval As Boolean; Dirty = Tme; Slιder3D.Vιsιble = False; If Source.Tag = "COPYME" Then 'D D paste; Source.Tag = ""; PasteFromOurClipboard 1, ((X / Screen.TwipsPerPixelX) + vaPιcture(Index)Left) - (Source.Width / 2), ((Y / Screen.TwipsPerPixelX) + vaPιcture(Index).Toρ) - (Source.Height / 2), Me; Source.Drag vbEndDrag; vaPιcture(Index).BorderStyle = 0; Exit Sub; End If;; If Left(Source.Tag, 4) = "DATA" Then 'drop database object to this form or control; Source.Drag vbEndDrag; 'Me.SetFocus; If vaPιcture(Index).DroρType =
EZ NON Then; 'If Mιd(Source.Tag, 5, 1) = "1" Then CreateObjectFromDB X + vaPιcture(Index)Left * Screen.TwipsPerPixelX, Y + vaPιcture(Index).Top * Screen.TwipsPerPixelY, CInt(Mιd(Source.Tag, 6)), Me; retval = SaveUndo(ObjectZorderl. Selectedlndex, va cap Undo Drop); If Mιd(Source.Tag, 5, 1) = "1" Then CreateObjectFromDB (X / Screen.TwipsPerPixelX) + vaPιcture(Index).Left, (Y / Screen.TwipsPerPixelY) + vaPιcture(Index).Top, CInt(Mιd(Source.Tag, 6)), Me; If Mιd(Source.Tag, 5, 1) = "2" Then; 'CreateObjectUserDB X + vaPιcture(Index).Left * Screen.TwipsPerPixelX, Y + vaPιcture(Index).Top * Screen.TwipsPerPixelY, Me; CreateObjectUserDB (X / Screen.TwipsPerPixelX) + vaPιcture(Index).Left, (Y / Screen.TwipsPerPixelY) + vaPιcture(Index).Top, Me; 'frmUserDatase.Show; End If; 'If Mιd(Source.Tag, 5, 1) = "3" Then CreateObjectlnternetDB X + vaPιcture(Index).Left * Screen.TwipsPerPixelX, Y + vaPιcture(Index).Top * Screen.TwipsPerPixelY, Me; If Mιd(Source.Tag, 5, 1) = "3" Then CreateObjectlnternetDB (X /
Screen.TwipsPerPixelX) + vaPιcture(Index).Left, (Y / Screen.TwipsPerPixelY) + vaPιcture(Index).Top, Me; Else; If DBAmmation <> "" Then; vaPιcture(Index).DropType = (CΙnt(vaPιcture(Index).DropType / 10)) * 10; 'take group out; End If; DropIntoObject CInt(Mιd(Source.Tag, 6)), vaPιcture(Index).DropType, Mιd(Source.Tag, 5, 1), Me; DropAction Index, Me; If DBAmmation <> "" And vaPιcture(Index).DropType < EZ PAT Then 'Animate this one, Screen.MousePointer = vbHourglass; frmMDI.ssBottom(l).Captιon = "Loading multiple images "; NoOneButMe 'only this object will have this animation quality; vaPιcture(Index).DDD = DBAmmation 'ObjectZorderl. Selectedlndex; Ammationlndex = Index 'easier to find; New Animation DBAmmation, CInt(ldSpπteTransferBuffer.Bιtmap Width), CΙnt(ldSpπteTransferBuffer.BιtmapHeιght), Index, 1 ; frmMDI.ssBottom(l). Caption = "", DBAmmation = ""; Screen.MousePointer = vbDefault; End If; If Mιd(Source.Tag, 5, 1) = "2" Then frmUserDatase.Show; End If; If ObjectListLoaded Then frmObjectList.LoadObjectList Me; If
ObjectZorderl. Selectedlndex = Index And vaPιcture(ObjectZorderl. Selectedlndex). SelectedObject Then; If vaPιcture(Index).CDVolumn <> "User" And vaPιcture(Index).CDVolumn <> "None" And vaPιcture(Index).CDVolumn <> "" And vaPιcture(Index).DatabaseID <> 0 Then; frmMDI.pblnfoNet. Visible = False, frmMDI.pblnfoCD.Visible = Tme; Elself vaPιcture(Index).CD Volumn <> "" Then; frmMDI.pblnfoCD.Visible = False; fimMDI.pblnfoNet. Visible = Tme; Else; frmMDI.pblnfoCD.Visible = False; frmMDI.pblnfoNet Visible =
False; End If; End If; Exit Sub; End If; If Left(Source.Tag, 7) = "NETDROP" Then; retval = SaveUndo(ObjectZorderl. Selectedlndex, va_cap_Undo_Drop); Source.Drag vbEndDrag; temp$ = Source. Caption, Unload frmNetTransfer; DoEvents; replaceObjectFrorriNet X, Y, temp$, Index; If ObjectListLoaded Then frmObjectList.LoadObjectList Me; If ObjectZorderl. Selectedlndex = Index And vaPιcture(ObjectZorderl .Selectedlndex). SelectedObject Then; If vaPιcture(Index). CD Volumn <> "User" And vaPιcture(Index). CD Volumn <> "None" And vaPιcture(Index). CD Volumn <> "" And vaPιcture(Index).DatabaseID <> 0 Then; frmMDI.pblnfoNet. Visible = False; frmMDI.pblnfoCD.Visible = Tme; Elself vaPιcture(Index).CD Volumn <> "" Then; frmMDI.pblnfoCD.Visible = False; frmMDI.pblnfoNet. Visible = Tme; End If; End If; Exit Sub; End If; If Left(Source.Tag, 5) = "GROUP" Then 'drop database object to this form or control; Source.Drag vbEndDrag; Me.SetFocus; Dim GNumber As Integer; Dim EzSl As String; Dim EzS2 As String;
GNumber = Asc(Rιght(Source.Tag, 1)) - 64; For I = 1 To ObjectZorderl. Count; Looplndex = ObjectZorderl. GetZOder(ι); If vaPιcture(LoopIndex).DropType Mod 10 = GNumber Then ' is m group; If Int(vaPιcture(Index).DropTyρe / 10) * 10 <> Int(vaPιcture(LoopIndex).DropType / 10) * 10 Then; GNumber = 9000, Real EzStemg vaPιcture(LoopIndex).DropType, EzSl; Real EzStemg vaPιcture(Index).DropType, EzS2; End If; End If; Next I; If GNumber = 9000 Then; 'MsgBox "[" & Rιght(Source.Tag, 1) & "] is already assigned to a group usmg
AutoScale: [" & Tπm(Mιd(EzSl, 1, Len((EzSl)) - 3)) & "]. This object is using AutoScale: [" & Tnm(EzS2) & "]. Please use another group letter for this object.", vblnformation, VaTitle; MsgBox va_cap_Groupl & Rιght(Source.Tag, 1) & va_cap_Group2 & Tπm(Mιd(EzSl, 1, Len((EzSl)) - 3)) & va_cap_Group3 & Tπm(EzS2) & va_cap_Group4 & Tnm(Mιd(EzSl, 1, Len((EzSl)) - 3)) & va_cap_Grouρ5, vblnformation, VaTitle, vaPicture(Index).BorderStyle = 0; Exit Sub; End If; Select Case Rιght(Source.Tag, 1); Case "A"; vaPιcture(Index).DropType = (Int(vaPιcture(Index).DropType / 10) * 10) + 1; Case "B"; vaPιcture(Index).DropType = (Int(vaPιcture(Index).DropType / 10) * 10) + 2; Case "C"; vaPιcture(Index).DropType = (Int(vaPιcture(Index).DropType / 10) * 10) + 3; Case "D"; vaPιcture(Index).DropType = (Int(vaPιcture(Index).DropType / 10) * 10) + 4; Case "E"; vaPιcture(Index).DropType = (Int(vaPιcture(Index).DropType / 10) * 10) + 5; Case "F"; vaPιcture(Index).DropType = (Int(vaPιcture(Index) DropType / 10) * 10), Case Else, End Select; vaPιcture(Index) BorderStyle = 0, If ObjectListLoaded Then frmObjectList.LoadObjectList Me; Exit Sub, End If; If Source.Tag = "Comp" Then 'drop comp object to this form or control; Source.Drag vbEndDrag; retval = SaveUndo(ObjectZorderl. Selectedlndex, va_cap_Undo_Drop); 'Me.SetFocus; If vaPιcture(Index).DropType = EZ NON Then; FrmSubComp.CreateFromComp (X / Screen.TwipsPerPixelX) + vaPιcture(Index).Left, (Y / Screen.TwipsPerPixelY)
+ vaPιcture(Index).Top, Me; Else, DropIntoObject -1, vaPιcture(Index).DropType, 3, Me; DropAction Index, Me; vaPιcture(Index).ObjectName = CompTempDBProductName; vaPιcture(Index).DatabaseID = CompObjectID, vaPιcture(Index). CD Volumn = CompDBase; vaPιcture(Index).CompanyName = CompDBCompany, 'ShoppmgLιst().ObjectName = CompTempDBProductName; 'ShoppιngLιst(). DatabaselD = CompObjectID; 'ShoppιngLιst(). CD Volumn = CompDBase; 'ShoppιngLιst().CompanyName = CompDBCompany; End If; 'If
FenceFlag Then; ' GeneralResizeMode = TempResizeMode; ' FenceFlag = False; 'End If; vaPιcture(Index).BorderStyle = 0; If ObjectListLoaded Then frmObjectList.LoadObjectList Me; If ObjectZorderl Selectedlndex = Index And vaPιcture(ObjectZorderl. Selectedlndex). SelectedObject Then; If vaPιcture(Index). CD Volumn <> "User" And vaPιcture(Index). CD Volumn <> "None" And vaPιcture(Index). CD Volumn <> "" And vaPιcture(Index).DatabaseID <> 0 Then, frmMDI.pblnfoNet Visible = False, frmMDI.pblnfoCD.Visible = Tme; Elself vaPιcture(Index).CD Volumn <> "" Then; frmMDI.pblnfoCD.Visible = False; frmMDI.pblnfoNet. Visible = Tme; End If; End If; Screen.MousePointer = vbDefault, Exit Sub; End If,' OperationMode = "Moving",' vaPιcture(Index). BorderStyle = 0;' Screen.MousePointer = vbDefault;End Sub;Pπvate Sub vaPιcture_DragOver(Index As Integer, Source As Control, X As Single, Y As Smgle, State As Integer);Dιm EzStemg As Strmg;If Source.Tag = "COPYME" Then Exit Sub;Select Case State;Case 0 '= Enter; frmMDI.PicDrop.Visible = False; frmMDI.PicTransperant. Visible = False; frmMDI.PicAnti. Visible = False; frmMDI.PicShadow. Visible = False; fimMDI.PicAnimation. Visible = False; If InternetAmmate = "NA" Then frmMDI. ssBottom(l). Caption = vaPιcture(Index).CompanyName & ": " & vaPιcture(Index).ObjectName; EZStemgs vaPιcture(Index).DropType, EzStemg 'EZ; frmMDI.ssDrop.Caption = " " & EzStemg 'EZ; Select Case Int(vaPιcture(Index).DropType / 10) * 10; Case EZ ANY; Set frmMDI.PicDrop.Picture = frmMDI.ImageLιstl .LιstImages(3).Pιcture; Case EZ ANY PROP; Set frmMDI.PicDrop.Picture = fr_nMDI.ImageLιstl .LιstImages(l).Pιcture; Case EZ_ANY_PROP2; Set frmMDI.PicDrop.Picture = frmMDI.ImageListl.ListImages(2).Picture; Case EZ_PAT; Set frmMDI.PicDrop.Picture = fπnMDI.ImageLιstl.LιstImages(4).Pιcture; Case EZ_PAT_NO; Set frmMDI.PicDrop.Picture = frmMDI.ImageListl .LιstImages(5).Pιcture; Case EZ NON; Set frmMDI.PicDrop.Picture = frmMDI.ImageLιstl.LιstImages(6).Pιcture; Case Else; End Select; frmMDI.PicDrop.Visible = Tme; If vaPιcture(Index). IsShadow Then frmMDI.PicShadow. Visible = Tme; If vaPιcture(Index). IsTransparent Then frmMDI. PicTransperant. Visible = Tme; If vaPιcture(Index).IsInterpolatιon Then frmMDI.PicAnti. Visible = Tme; If vaPιcture(Index).DDD <> "" Then fimMDI.PicAnimation. Visible = Tme; If vaPιcture(Index). DropType <> EZJNFON And Not vaPιcture(Index). IsShadow Then vaPιcture(Index).BorderStyle = 1 ; 'If vaPιcture(Index). DropType <> EZ NON Then; 'vaPιcture(Index). BorderStyle = 1 , 'EZStemgs vaPιcture(Index).DropType, EzStemg 'EZ, 'frmMDI.ssDrop.Caption = " " & EzStemg 'EZ; 'frmMDI.PicDrop Visible = Tme, 'End IftCase 1 '= Leave; vaPιcture(Index).BorderStyle = 0; frmMDI.ssDrop.Caption = ""; frmMDI.PicDrop Visible = False. Case 2 - Over;Case Else;End Select;End Sub;;Pπvate Sub vaPιcture_HandleMouseDown(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single, Handle As Integer, HandleLeft As Integer, HandleTop As Integer);
'Handle indexes; '; ' 0 1 2, ' * * *; ' 3* *4, ' * * *; ' 5 6 7; If Button = 1 And Shift = 1 Or vaPicture(Index).ProportionalHandles = Tme Then, If Handle = 1 Or Handle = 3 Or Handle = 4 Or Handle = 6 Then, vaPιcture(Index).HandleColor = RGB(255, 128, 0); vaPιcture(Index). SelectedObject = Tme, ObjectZorderl. Selectedlndex = Index; vaPιcture(Index).ProportιonalHandles = Tme; ObjectWidthAspect = vaPιcture(Index). Width / vaPιcture(Index).Heιght, ObjectHeightAspect = vaPιcture(Index). Height / vaPιcture(Index).Wιdth; End If; End If; picBackgroundBuffer.Cls; Compose VA_COMPOSE_NOT INDEX, Index; offsetx = X; offsety = Y; If Handle = 2 Or Handle = 4 Or Handle = 7 Then; SourceLeft = 130; Else; SourceLeft = vaPιcture(Index).Left + (offsetx / Screen.TwipsPerPixelX); End If; If Handle = 5 Or Handle = 6 Or Handle = 7 Then, SourceTop = 130; Else; SourceTop = vaPιcture(Index).Top + (offsety / Screen.TwipsPerPixelY), End If; SourceRight = vaPιcture(Index).Left + vaPιcture(Index).Wιdth - 8 '(OffsetX / Screen.TwipsPerPixelX); SourceBottom = vaPιcture(Index).Top + vaPιcture(Index). Height - 8 '(OffsetY / Screen TwipsPerPixelY) ;End Sub;Pnvate Sub vaPιcture_HandleMouseMove(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single, Handle As Integer, HandleLeft As Integer, HandleTop As Integer); Dim NewSourceLeft As Integer, NewSourceTop As Integer, NewLeft As Smgle, NewTop As Smgle; On Error Resume Next; 'Handle mdexes; '; ' 0 1 2; ' * * *; ' 3* *4; ' * * *; ' 5 6 7; If Button = 1 Then; picScreen.AutoRedraw = False; If vaPιcture(Index).HandleColor = RGB(255, 128,
0) Then; If Handle = 4 Or Handle = 3 Then; vaPιcture(Index). Height = vaPιcture(Index). Width * ObjectHeightAspect, End If; If Handle = 1 Or Handle = 6 Then; vaPιcture(Index). Width = vaPιcture(Index). Height * ObjectWidthAspect; End If; End If; NewTop = vaPιcture(Index).Top; NewLeft = vaPιcture(Index).Left; If Handle = 0 Or Handle = 3 Or Handle = 5 Then; If vaPιcture(Index).Left + (X / Screen.TwipsPerPixelX) < SourceRight Then; NewLeft = vaPιcture(Index).Left + (X / Screen.TwipsPerPixelX) - (offsetx / Screen.TwipsPerPixelX); End If; End If; If Handle =
0 Or Handle = 1 Or Handle = 2 Then; If vaPιcture(Index).Top + (Y / Screen.TwipsPerPixelY) < SourceBottom Then, NewTop = vaPιcture(Index).Top + (Y / Screen.TwipsPerPixelY) - (offsety / Screen.TwipsPerPixelY); End If; End If, ' vaPιcture(Index).Refresh; picScreen.Refresh; picScreen.AutoRedraw = Tme; NewSourceLeft = SourceLeft - NewLeft - (offsetx / Screen.TwipsPerPixelX); NewSourceTop = SourceTop - NewTop - (offsety / Screen.TwipsPerPixelY), vaPιcture(Index).ResιzeControl picComposite.hDC, NewSourceTop, NewSourceLeft, SourceLeft, SourceTop, X, Y,
Handle, offsetx, offsety; If Handle = 0 Or Handle = 3 Or Handle = 5 Then vaPιcture(Index).Left = NewLeft; If Handle = 0 Or Handle = 1 Or Handle = 2 Then vaPιcture(Index).Top = NewTop; ' vaPιcture(Index).Refresh; ' picScreen.Refresh;; End If;End Sub;Pπvate Sub vaPιcture_HandleMouseUp(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single, Handle As Integer, HandleLeft As Integer, HandleTop As Integer); 'Handle indexes; '; ' 0 1 2; ' * * *; ' 3* *4; ' * * *; ' 5 6 7; X = SaveUndo(Index, va_cap_Undo_Resιze); 'Resize object, ResizeVAPicture Index, 'Change handles to yellow; vaPιcture(Index).HandleColor = RGB(255, 255, 0), vaPιcture(Index). SelectedObject = Tme; ObjectZorderl. Selectedlndex = Index; vaPιcture(Index).ProportιonalHandles = False;End Sub;Pubhc Sub vaPιcture_MouseDown(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single); Dim l As Integer, iRetVal As Integer; Dim myXY As POINTAPI, frmMDI.pblnfoNet Visible = False; frmMDI.pblnfoCD.Visible = False; Dirty = Tme, If OperationMode = VA POLYGON Or OperationMode =
VA RECT ANGLE Or OperationMode = VA ELLIPSE Or OperationMode = VA DRAWRECT Or OperationMode = VA_DRAWELLIPSE Or OperationMode = VA DRAWLINE Then 'Check to see if valid region; If LastForm.WmdowState = 1 Then LastForm.WmdowState = 0; LastForm.SetFocus, LastForm.ldScreen.SetFocus; Exit Sub; End If, Shder3D. Visible = False; If Button = 1 And Shift = vbShiftMask Then 'drag drop copy paste; vaPιcture(ObjectZorderl .Selectedlndex). SelectedObject = False, vaPιcture(Index). SelectedObject = Tme, vaPιcture(Index).Tag = "COPYME"; ObjectZorderl Selectedlndex = Index; CopyToOurChpboard, vaPιcture(Index) Drag 1 ; Exit Sub; End If; If Button = 2 Then; HideAnySteips; If ObjectZorderl . Count > 0 Then; If ObjectZorderl. Selectedlndex <> 0 Then vaPιcture(ObjectZorderl. Selectedlndex). SelectedObject = False; 'UnselectGroup 'check this on right click; End If; vaPιcture(Index). SelectedObject = Tme; 'IsSelected = Tme '?????, ObjectZorderl .Selectedlndex = Index; myXY.X = X; myXY.Y = Y; ChentToScreen vaPιcture(Index).hWnd, myXY, frmPopTool.setObject Index, Me, myXY.X, myXY.Y, 1; frmPopTool.Show 1 ; vaPιcture(Index). BorderStyle = 0, ShowAnySteips; If vaPιcture(Index). CD Volumn <> "User" And vaPιcture(Index).CD Volumn <> "None" And vaPιcture(Index).CDVolumn <> "" And vaPιcture(Index).DatabaseID <> 0 Then; frmMDI.pblnfoNet. Visible = False; frmMDI.pblnfoCD.Visible = Tme; Elself vaPιcture(Index).CD Volumn <> "" Then; frmMDI.pblnfoCD.Visible = False; frmMDI.pblnfoNet. Visible = Tme; Else; frmMDI.pblnfoCD .Visible = False; frmMDI.pblnfoNet. Visible =
False; End If; If vaPιcture(Index). SelectedObject = False Then Slιder3D.Vιsible = False; Exit Sub; End If;; OperationMode = VA NPROCESS; If Button = 1 And Shift = 2 Then;' vaPιcture(Index). InGroup = Tme; Exit Sub; Elself Button = 1 And Shift = 0 Then; If vaPιcture(Index).CD Volumn o "User" And vaPιcture(Index).CDVolumn o "None" And vaPιcture(Index). CD Volumn <> "" And vaPιcture(Index).DatabaseID <> 0 Then; frmMDI.pblnfoNet. Visible = False; frmMDI.pblnfoCD Visible = Tme, Elself vaPιcture(Index).CDVolumn <> ""
Then; frmMDI.pblnfoCD.Visible = False; frmMDI.pblnfoNet. Visible = Tme; Else; frmMDI.pblnfoCD.Visible = False; frmMDI.pblnfoNet. Visible = False; End If; If vaPιcture(Index). InGroup Then; LinkLeft = vaPιcture(Index).Left 'OJO DECLARE; linktop = vaPιcture(Index).Top; End If; If vaPιcture(Index). SelectedObject = Tme Then IsSelected = Tme; offsetx = ZoomPos(X, Zoom); offsety = ZoomPos(Y, Zoom); 'For QBAAM If gpsEffects = va Brightness Or gpsEffects = va Rotation Then Exit Sub; Xpos = 0: ypos = 0; If ObjectZorderl. Count
> 0 Then; If ObjectZorderl . Selectedlndex <> 0 Then vaPιcture(ObjectZorderl. Selectedlndex). SelectedObject = False, 'UnselectGroup; End If; If Not vaPιcture(Index). InGroup Then ObjectZorderl. SetZOrder Index; picComposite. Cls- picBackgroundBuffer.Cls 'Remove objects from images; vaPιcture(Index) .Visible = False; If Not vaPιcture(Index). InGroup Then vaPιcture(Index).ZOrder 0; picScreen.Refresh; Compose VA_COMPOSE_NOT_TOPMOST; BeginDrag = Tme; vaPicture MouseMove Index, Button, Shift, X, Y; End If;End Sub;Pπvate Sub vaPιcture_MouseMove(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single); Dim Zeroln As Integer, OutOfpicScreen As Boolean; Dim EzStemg As String; 'For QBAAM, 'If gpsEffects = va_brιghtness And Button = 1 Or gpsEffects = va rotation And Button = 1 Then; ' frmEffects.sldEffectValue(O). Value = (X - offsetx) * 10; ' frmEffects.DoEffect 0, frmMDI.ActiveForm. ObjectZorderl. Selectedlndex; ' Exit Sub; 'End If, If BegmDrag And (Xpos <> X) Or BegmDrag
And (ypos <> Y) Then; If hsbMam.Value = hsbMam.Max Then; If vaPιcture(Index).Left + (picScreen.Left / Screen.TwipsPerPixelX) + X > (Me.ScaleWidth / Screen.TwipsPerPixelX) - (vScrollBarOffset + 8) Then; X = (Me.ScaleWidth / Screen.TwipsPerPixelX) - (vaPιcture(Index).Left + 8 + vScrollBarOffset) + hsbMam Value; End If; End If, If vsbMam. Value = vsbMain.Max Then; If vaPιcture(Index).Top + (picScreen.Top / Screen TwipsPerPixelY) + Y > (Me.ScaleHeight / Screen.TwipsPerPixelY) - (hScrollBarOffset + 8) Then; Y = (Me.ScaleHeight /
Screen.TwipsPerPixelY) - (vaPιcture(Index).Top + 8 + hScrollBarOffset) + vsbMain.Value; End If; End If; If hsbMam.Value = 0 Then; If vaPιcture(Index).Left + (picScreen.Left / Screen.TwipsPerPixelX) + X < -8 Then; X = - ((vaPicture(Index)Left + 8)); End If; End If; If vsbMain.Value = 0 Then; If vaPιcture(Index).Top + (picScreen.Top / Screen.TwipsPerPixelY) + Y < -8 Then; Y = -((vaPιcture(Index) Top + 8)); End If; End If; X = ZoomPos(X, Zoom); Y = ZoomPos(Y, Zoom); vaPιcture(Index).MoveImage picScreen.hDC, picScreen.ScaleWidth, picScreen.ScaleHeight, picComposite.hDC, vaPιcture(Index).Left + X - offsetx + 8, vaPιcture(Index).Top + Y - offsety + 8, picBackgroundBuffer.hDC, frmMDI.ldShadowBuffer, frmMDI.ldShadow; Xpos = X: ypos = Y, OutOfpicScreen = False; 'Scroll if object being move is near the edge of project; If vaPιcture(Index).Left + (picScreen.Left / Screen.TwipsPerPixelX) + X <= -8 Then 'Check left; Zeroln = hsbMain Value + ((vaPιcture(Index)Left + 8) + (picScreen.Left / Screen.TwipsPerPixelX) + X); If Zeroln < 0 Then; Zeroln = 0; End If; hsbMam.Value = Zeroln; OutOfpicScreen = Tme; End If; If vaPιcture(Index).Left + (picScreen.Left / Screen.TwipsPerPixelX) + X >= (Me.ScaleWidth / Screen.TwipsPerPixelX) - (vScrollBarOffset + 8) Then 'Check right; Zeroln = hsbMam.Value + Abs((-(vaPιcture(Index).Left + (picScreen.Left / Screen.TwipsPerPixelX) + X)) + (Me.ScaleWidth / Screen.TwipsPerPixelX) - (vScrollBarOffset + 8)); If Zeroln > hsbMam.Max Then Zeroln = hsbMam.Max; hsbMam.Value = Zeroln; OutOfpicScreen = Tme; End If; If vaPιcture(Index).Top + (picScreen.Top /
Screen.TwipsPerPixelY) + Y <= -8 Then 'Check top; Zeroln = vsbMain.Value + ((vaPιcture(Index).Top + 8) + (picScreen.Top / Screen.TwipsPerPixelY) + Y) ' - 8; If Zeroln < 0 Then Zeroln = 0; vsbMam. Value = Zeroln; OutOfpicScreen = Tme; End If; If vaPιcture(Index).Top + (picScreen.Top / Screen.TwipsPerPixelY) + Y >= (Me.ScaleHeight / Screen.TwipsPerPixelY) - (hScrollBarOffset + 8) Then 'Check bottom; Zeroln = vsbMain.Value + Abs((-(vaPιcture(Index).Top + (picScreen.Top / Screen.TwipsPerPixelY) + Y)) + (Me.ScaleHeight /
Screen TwipsPerPixelY) - (hScrollBarOffset + 8)); If Zeroln > vsbMain.Max Then Zeroln = vsbMain.Max; vsbMain.Value = Zeroln; OutOfpicScreen = Tme; End If; If OutOfpicScreen Then; Me.MousePomter = vbNoDrop; Else; Me.MousePomter = vbDefault; End If; Else; frmMDI.pιcPostIt2 Visible = False; frmMDI.PicDrop.Visible = False; frmMDI.PicTransperant. Visible = False; frmMDI.PicAnti. Visible = False; frmMDI.PicShadow. Visible = False; fimMDI.PicAnimation. Visible = False; If InternetAmmate = "NA" Then fπ__MDI.ssBottom(l).Captιon = vaPιcture(Index).CompanyName & " " & vaPιcture(Index).ObjectName; EZStemgs vaPιcture(Index). DropType, EzStemg 'EZ; frmMDI.ssDrop.Caption = " " & EzStemg 'EZ; Select Case Int(vaPιcture(Index).DropType / 10) * 10, Case EZ ANY, Set frmMDI.PicDrop.Picture = fιmMDI.ImageLιstl.LιstImages(3).Pιcture; Case EZ ANY PROP; Set frmMDI.PicDrop.Picture = frmMDI.ImageLιstl.LιstImages(l).Pιcture; Case EZ_ANY_PROP2; Set frmMDI.PicDrop.Picture = frmMDI.ImageListl LιstImages(2).Pιcture; Case EZ PAT; Set frmMDI PicDrop.Picture = frmMDI.ImageLιstl.LιstImages(4).Pιcture, Case EZ PATJSfO; Set fimMDI.PicDrop.Picture = frmMDI.ImageListl. LιstImages(5).Pιcture, Case EZ NON; Set frmMDI.PicDrop.Picture = frmMDI. ImageLιstl.LιstImages(6). Picture; Case Else; End Select; frmMDI.PicDrop.Visible = Tme, If vaPιcture(Index) IsShadow Then frmMDI. PicShadow.Visible = Tme; If vaPιcture(Index). IsTransparent Then frmMDI.PicTransperant. Visible = Tme, If vaPιcture(Index).IsInterpolatιon Then frmMDI.PicAnti Visible = Tme; If vaPιcture(Index) DDD <> "" Then frmMDI.PicAmmation Visible = Tme; End If,End Sub;Pubhc Sub vaPιcture_MouseUp(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Smgle), Dim I As Boolean; On Error Resume Next; If Button = 2 Then Exit Sub; 'If clicked but not moved then unselect object; If offsetx = X And offsety = Y And vaPιcture(Index). SelectedObject = Tme Then; BegmDrag = False, vaPιcture(Index).Move vaPιcture(Index).Left + X - offsetx, vaPιcture(Index).Top + Y - offsety; vaPιcture(Index) SelectedObject = False; ObjectZorderl. Selectedlndex = 0; If pEffectsActive = Tme Then, frmEffects. Initialize Values, End If; If pDropper Active Then frmColorPicker.Ob ectShifted = Tme; SendToFront; picScreen.Refresh; vaPιcture(Index). Re fresh; If ObjectListLoaded Then frmObjectList.LoadObjectList Me, OperationMode = VAJVIOVING; IsSelected = False; Exit Sub; End If; 'Move, select and repaint object; If BeginDrag Then; X = ZoomPos(X, Zoom); Y = ZoomPos(Y, Zoom); BeginDrag = False; 'Save object to undo buffer if moved; If offsetx <> X Or offsety <> Y Then I = SaveUndo(Index, "Undo Move"); If Me.MousePomter = vbNoDrop Then; Me.MousePomter = vbDefault; If vaPιcture(Index)Left + (picScreen.Left / Screen.TwipsPerPixelX) + X > (Me.ScaleWidth / Screen.TwipsPerPixelX) - (vScrollBarOffset + 8) Then X = (Me.ScaleWidth / Screen.TwipsPerPixelX) - (vaPιcture(Index).Left + 8) + hsbMam.Value - vScrollBarOffset; If vaPιcture(Index).Top + (picScreen.Top / Screen.TwipsPerPixelY) + Y > (Me.ScaleHeight / Screen.TwipsPerPixelY) - (hScrollBarOffset + 8)
Then Y = (Me.ScaleHeight / Screen.TwipsPerPixelY) - (vaPιcture(Index).Top + 8) + vsbMain.Value - hScrollBarOffset; If vaPιcture(Index).Left + (picScreen.Left / Screen.TwipsPerPixelX) + X < -8 Then X = - (vaPιcture(Index).Left + 8); If vaPιcture(Index).Top + (picScreen.Top / Screen.TwipsPerPixelY) + Y < -8 Then Y = - (vaPιcture(Index).Top + 8); vaPιcture(Index).Move vaPιcture(Index)Left + X - offsetx, vaPιcture(Index).Top + Y - offsety; Else; vaPιcture(Index).Move vaPιcture(Index).Left + X - offsetx, vaPιcture(Index).Toρ + Y - offsety; End If; vaPιcture(Index). Repaintlmage picComposite.hDC, vaPιcture(Index).Left, vaPιcture(Index).Top, frmMDI.ldShadowBuffer, frmMDI.ldShadow; vaPιcture(Index). SelectedObject = Tme; ObjectZorderl. Selectedlndex = Index; If pEffectsActive = Tme Then; frmEffects. Initialize Values;' frmEffects. cmdResetAll Chck; End If; If pDropperActive Then frmColorPicker.ObjectShifted = Tme; SendToFront; picScreen.Refresh; vaPιcture(Index).Refresh; If ObjectListLoaded Then frmObjectList.LoadObjectList Me; ' ; If vaPιcture(Index). InGroup Then 'Move any linked objects; picComposite. Cls; picScreen.AutoRedraw = Not picScreen.AutoRedraw; picScreen.Cls; picScreen.AutoRedraw = Not picScreen.AutoRedraw; Dim r As Integer, n As Integer, Rcount As Integer, LmkL As Integer, LmkT As Integer, For r = 1 To ObjectZorderl. Count; n = ObjectZorderl. GetZOder(r), If vaPιcture(n). InGroup Then; If n <> Index Then, LmkL = vaPιcture(Index).Left + (vaPιcture(n).Left - LinkLeft), LmkT = vaPιcture(Index).Top + (vaPιcture(n).Top - linktop); vaPιcture(n).Move
LmkL, LinkT; Else; LmkL = vaPιcture(Index).Left; LinkT = vaPιcture(Index).Top, End If; Compose VA COMPOSE ALL 'VA COMPOSE NOT INDEX, n; vaPιcture(n) Repaintlmage picComposite.hDC, LmkL, LmkT, frmMDI.ldShadowBuffer, frmMDI.ldShadow; vaPιcture(n).Refresh; End If, Next r; picScreen.AutoRedraw = Not picScreen AutoRedraw; picScreen Cls; picScreen AutoRedraw = Not picScreen.AutoRedraw; IdScreen.ZOrder 1 ; SendToFront, End If; ' ; End If; 'For QBAAM; 'If gpsEffects = va_bπghtness Or gpsEffects = va_rotatιon
Then; ' Unload frmEffects; ' gpsEffects = VAJSTOTHING, 'End If; OperationMode = VA_MOVING; If vaPιcture(Index).DDD <> "" Then, With vaPιcture(Index); Shder3D.Top = .Top + .Height; Shder3D.Left = ( Left + (.Width / 2)) - (Shder3D.Wιdth / 2), Shder3D.Z0rder, Slιder3D.Vιsιble = Tme; End With; End IftEnd Sub;Sub SendToFront(); Dim I As Integer; For l = 1 To ObjectZorderl. Count; vaPιcture(ObjectZorderl.GetZOder(ι)) Visible = Tme; Next I; If Shder3D.Vιsιble Then Shder3D.ZOrder;End Sub;;'Get objects into one bιtmap;'CompType =
VA_COMPOSE_ALL, VA COMPOSE NOT TOPMOST, VA_COMPOSE_LOAD_NEW;Sub Compose(CompType As Byte, Optional Notlndex As Integer); Dim I As Integer, Index As Integer, iRetVal As Integer, BitDC As Long, ObjectLayer As Integer; Select Case CompType; Case VA_COMPOSE_ALL, VA_COMPOSE_LOAD_NEW, VA_COMPOSE_NOT NDEX 'Compose all object layers; ObjectLayer = 1, Case VA_COMPOSE_NOT_TOPMOST 'Compose all but top layer; ObjectLayer = 2; End Select; picScreen.AutoRedraw =
Tme; picComposite. Cls 'Remove bltbit objects from compsite screen; If CompType <> VA_COMPOSE_NOT LNDEX Then; For l = ObjectZorderl. Count To ObjectLayer Step -1 'Send objects to picComposite; Index = ObjectZorderl. GetZOder(ι); vaPιcture(Index). Visible = False; vaPιcture(Index).RepaιntImage picComposite.hDC, vaPιcture(Index).Left, vaPιcture(Index).Top, frmMDI.ldShadowBuffer, frmMDI.ldShadow; iRetVal = BιtBlt(pιcComρosιte.hDC, vaPιcture(Index).Left + 8, vaPιcture(Index).Top + 8, vaPιcture(Index).Wιdth -
16, vaPιcture(Index). Height - 16, vaPιcture(Index).hDC, 0, 0, SRCCOPY); Next I; Else; For I = ObjectZorderl. Count To ObjectLayer Step -1 'Send objects to picComposite; Index = ObjectZorderl. GetZOder(ι); If Index <> Notlndex Then; vaPιcture(Index) .Visible = False; vaPιcture(Index).RepaιntImage picComposite.hDC, vaPιcture(Index).Left, vaPicture(Index).Top, frmMDI.ldShadowBuffer, frmMDI.ldShadow; iRetVal = BιtBlt(pιcComposιte.hDC, vaPιcture(Index).Left + 8, vaPιcture(Index).Top + 8, vaPιcture(Index). Width - 16, vaPιcture(Index). Height - 16, vaPιcture(Index).hDC, 0, 0, SRCCOPY); End If; Next I; End If; If CompType = VA COMPOSE ALL Then 'Copy picComposite to IdScreen; BitDC = ldScreen.GetBitmapDC, iRetVal = BιtBlt(BιtDC, 0, 0, picScreen. Width, picScreen.Height, picComposite.hDC, 0, 0, SRCCOPY); IdScreen.ReleaseBitmapDC; Elself CompType = VA_COMPOSE_NOT_TOPMOST Or CompType = VA_COMPOSE_LOADJSTEW Or CompType = VA_COMPOSE_NOT INDEX Then 'Copy picComposite to picScreen; iRetVal = BιtBlt(pιcScreen.hDC, 0, 0, picScreen Width, picScreen Height, picComposite.hDC, 0, 0, SRCCOPY); End If, picScreen.AutoRedraw = False;End Sub;Pπvate Sub UnselectGroup(); Dim l As Integer, ' If vaPιcture(ObjectZorderl. Selectedlndex) InGroup = Tme Then; For I = 1 To ObjectZorderl. Count; vaPιcture(ObjectZorderl.GetZOder(ι)). InGroup = False, Next I; ' End If;End Sub;Publιc Sub VA_ I_oadObject(leftpos As Integer, toppos As Integer, Optional Index As Integer); On Error GoTo VA LoadObject Error; Static ObjectlndexCount As Integer; If Index <> 0 Then; ObjectlndexCount = Index, Else;
ObjectlndexCount = ObjectlndexCount + 1; End If; If ObjectlndexCount > 0 Then Load vaPicture(ObjectlndexCount), vaPicture(ObjectlndexCount). Sprite = IdSpriteTransferBuffer. GetPicture, vaPιcture(ObjectIndexCount).Mask = IdMaskTransferBuffer. GetPicture; vaPicture(ObjectlndexCount). SelectedObject = Tme; If ObjectZorderl Count > 0 Then vaPιcture(ObjectZorderl. Selectedlndex). SelectedObject = False; ObjectZorderl .SetZOrder ObjectlndexCount; ObjectZorderl .Selectedlndex = ObjectlndexCount; vaPιcture(ObjectIndexCount).ZOrder 0; vaPιcture(ObjectIndexCount).Move leftpos, toppos; vaPicture(ObjectlndexCount). Repaintlmage picComposite.hDC, vaPιcture(ObjectIndexCount).Left, vaPιcture(ObjectIndexCount).Top, frmMDI.ldShadowBuffer, frmMDI.ldShadow, vaPιcture(ObjectIndexCount).ObjectName = va_cap_UserCreated & Date & " " & time, vaPιcture(ObjectIndexCount).CompanyName = va_cap_Item; vaPιcture(ObjectIndexCount).ResιzePatPer = 100, vaPicture(ObjectlndexCount) DropType = AutoScaleType;' UpdateShoppingList; AutoScaleType = EZ NON; SendToFront; If RegionChckType <> 3 And RegionChckType <> 4 Then ShowAnySteips 'repeating the creation of region; IdScreen.ZOrder 1; If ObjectListLoaded Then frmObjectList.LoadObjectList Me; vaPιcture(ObjectIndexCount).SetTransparentbuffers fimMDI.ldEditlmageBuffer, frmMDI.ldEditMaskBuffer, frmMDI.ldTransparentBuffer; If CursorChpped Then ReleaseCursor;Exιt Sub;VAJLoadObject_Error:; If Err = 360
Then; ObjectlndexCount = ObjectlndexCount + 1 , Resume; Else; gMsg = va_Error_Error & Ste(Err.Number) & va Error WasGeneratedBy _; & Err.Source & Chr(13) & Err.Description & Chr(13) & " (VA LoadObject)"; DisplayErrorMessage gMsg, vbCritical, VaTitle; End If;End Sub;;Pubhc Sub GetRegιon(); Dim hRegion As Long; On Error GoTo GetRegion Error; RgnPosX = IdScreen.RgnLeft; RgnPosY = IdScreen.RgnTop; IdScreen.Floater = ldScreen.Bitmap; ldSpπteTransferBuffer.ScaleMode = IdScreen.ScaleMode; ldSpriteTransferBuffer.CreateBitmap
IdScreen.FloaterWidth, IdScreen.FloaterHeight, ldScreen.BitmapBits; IdSpriteTransferBuffer. Combme 0, 0, IdScreen.FloaterWidth, IdScreen.FloaterHeight, ldScreen.Bitmap, IdScreen.RgnLeft, IdScreen.RgnTop, L SRC COPY; IdMaskTransferBuffer. ScaleMode = IdScreen.ScaleMode; ldMaskTransferBuffer.CreateBitmap IdScreen.FloaterWidth, IdScreen.FloaterHeight, ldScreen.BitmapBits; ldMaskTransferBuffer.Combine 0, 0, IdScreen.FloaterWidth, IdScreen.FloaterHeight, ldScreen.Bitmap, IdScreen.RgnLeft, IdScreen.RgnTop, CB_RES_0 '
L SRC COPY; IdScreen.RgnFrameType = RGNFRAME NONE; hRegion = ldScreen.GetFloaterHandle; ldScreen.SetRgnHandle hRegion, 0, 0, L RGN SET; On Error GoTo GetRegion Fill Error; ldSpπteTransferBuffer.SetRgnHandle hRegion, 0, 0, L RGN SETNOT; If OperationMode = VA POLYGON Or OperationMode = VA ELLIPSE Or OperationMode = VA DRAWLINE Or OperationMode = VA DRAWELLIPSE Or OperationMode = VA_DRAWRECT Then ldSpπteTransferBuffer.Fill RGB(0, 0, 0); ldMaskTransferBuffer.SetRgnHandle hRegion, 0, 0, L RGN SETNOT; If OperationMode = VA POLYGON Or OperationMode = VA ELLIPSE Or OperationMode = VA DRAWLINE Or OperationMode = VA DRAWELLIPSE Or OperationMode = VA_DRAWRECT Then ldMaskTransferBuffer.Fill RGB(255, 255, 255); On Error GoTo GetRegion Error; ldScreen.DeleteRgnHandle hRegion; ldSpπteTransferBuffer.FreeRgn; ldMaskTransferBuffer.FreeRgn; IdScreen.FreeRgn; fnnMDI.ssBottom(l). Caption = "";Exιt Sub;GetRegιon_Erroπ,
Exit Sub;GetRegιon_Fιll_Error:; If Err = 20001 Then; Err = 0; ldMaskTransferBuffer.SetRgnHandle hRegion, 0, 0, L_RGN_SETNOT; ldScreen.DeleteRgnHandle hRegion; IdSpriteTransferBuffer.FreeRgn; ldMaskTransferBuffer.FreeRgn; IdScreen.FreeRgn, frmMDI.ssBottom(l). Caption = ""; Exit Sub; Else; Exit Sub; End If;End Sub;Pπvate Sub vaPιcture_OLEDragDrop(Index As Integer, Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Sιngle);Dιm InternetFile As String, temp$;Dιm IltemName As
Stπng,Dιm Index2Use As Integer;On Error GoTo OLEDraglntoErrorjDirty = Tme;Shder3D. Visible =
False;Screen.MousePoιnter = vbHourglass;frmMDI.ssBottom(l). Caption = LoadResStrmg(6878) ' "Downloadmg
Image from Internet" ;InternetFιle = Data.Fιles(l);IItemName = Data Fιles(l);IntemetFιle = exteactFilename(IItemName); vaPιcture(Index).BorderStyle = 0; 'MsgBox InternetFile; IntemetlmageReady = False, InternetMaskReady = False; frmMDI.ldEditlmageBuffer Visible = Tme; frmMDI.ldEditMaskBuffer. Visible = Tme; temp$ = Rιght$(InternetFιle, 7); replaceObjectFromNet X, Y, temp$, Index; Index2Use = Index; If InternetAmmate <> "NA" And vaPιcture(Index). DropType < EZ PAT Then 'animation; ', AmWSize As Integer, amHSize As Integer; If vaPιcture(Index).DropType o EZ_NON Then; Index2Use = Index; Else; Index2Use = ObjectZorderl. Selectedlndex; End If; Screen.MousePomter = vbHourglass; DBAmmation = InternetAmmate; 'AmWSize = CInt(ldSpriteTransferBuffer.Bitmap Width); 'amHSize = CΙnt(ldSpnteTransferBuffer.BιtmapHeιght); frmMDI. ssBottom(l). Caption = "Downloadmg multiple images "; NoOneButMe 'only this object will have this animation quality; vaPιcture(Index2Use).DDD = DBAmmation; Ammationlndex = Index2Use 'easier to find; New Animation DBAmmation, CInt(ldSpπteTransferBuffer.Bιtmap Width), CΙnt(ldSρπteTransferBuffer.BιtmapHeιght), Index2Use, 2; frmMDI.ssBottom(l).Caption = ""; DBAmmation = "", InternetAmmate = "NA"; End If; If ObjectZorderl. Selectedlndex = Index2Use And vaPιcture(Index2Use). SelectedObject Then; If vaPιcture(Index2Use). CD Volumn <> "User" And vaPιcture(Index2Use).CD Volumn o "None" And vaPιcture(Index2Use).CD Volumn <> "" And vaPιcture(Index2Use). DatabaselD <> 0 Then; frmMDI.pblnfoNet. Visible = False; frmMDI.pblnfoCD.Visible = Tme; Elself vaPιcture(Index2Use). CD Volumn <> "" Then; frmMDI.pblnfoCD.Visible = False; frmMDI.pblnfoNet. Visible = Tme; Else; frmMDI.pblnfoCD Visible = False; frmMDI.pblnfoNet. Visible = False; End If; End
If;Screen.MousePoιnter = vbDefault;Exιt Sub;OLEDragIntoError:; Screen.MousePointer = vbDefault; vaPιcture(Index). BorderStyle = 0; frmNetTransfer.mainURL = "www.showoff.com"; frmNetTransfer.DisplayMode = vaNetscape; frmNetTransfer.Show; InternetAnimate = "NA";Exιt Sub;End Sub;Pπvate Sub vaPιcture_OLEDragOver(Index As Integer, Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single, State As Integer);Dιm EzStemg As Stemg;Select Case State.Case 0 '= Enter; frmMDI.PicDrop Visible = False; fimMDI.PicTransperant Visible = False; frmMDI.PicAnti. Visible = False, frmMDI.PicShadow. Visible = False; fimMDI.PicAnimation. Visible = False; If InternetAmmate = "NA" Then frmMDI.ssBottom(l).Captιon = vaPιcture(Index).CompanyName & ": " & vaPιcture(Index) ObjectName, EZStemgs vaPιcture(Index) DropType, EzStemg 'EZ; frmMDI.ssDrop.Caption = " " & EzStemg 'EZ; Select Case Int(vaPιcture(Index).DropType / 10) * 10; Case EZ ANY; Set frmMDI.PicDrop.Picture = frmMDI.ImageListl. LιstImages(3).Pιcture; Case EZ ANY PROP; Set frmMDI.PicDrop.Picture = frmMDI.ImageLιstl.LιstImages(l).Pιcture, Case EZ ANY PROP2; Set frmMDI.PicDrop Picture = frmMDI.ImageListl LιstImages(2).Pιcture; Case EZ PAT; Set frmMDI.PicDrop.Picture = frmMDI.ImageListl. LιstImages(4).Pιcture; Case EZ_PAT_NO, Set frmMDI.PicDrop Picture = frmMDI.ImageListl LιstImages(5).Pιcture; Case EZ NON; Set frmMDI.PicDrop Picture = frmMDI. ImageLιstl.LιstImages(6) Picture; Case Else, End Select; frmMDI.PicDrop Visible = Tme; If vaPιcture(Index).IsShadow Then frmMDI.PicShadow Visible = Tme; If vaPιcture(Index).IsTransparent Then frmMDI.PicTransperant. Visible = Tme; If vaPιcture(Index).IsInterpolatιon Then frmMDI.PicAnti.Visible = Tme; If vaPιcture(Index).DDD <> "" Then frmMDI.PicAmmation. Visible = Tme; If vaPιcture(Index).DropType <> EZ_NON And Not vaPιcture(Index). IsShadow Then vaPιcture(Index). BorderStyle = 1 ; ' If vaPιcture(Index). DropType <>
EZ_NON Then 'add this once EZ sub implemented; ' vaPιcture(Index).BorderStyle = 1; ' EZStemgs vaPιcture(Index).DropType, EzStemg 'EZ; ' frmMDI.ssDrop.Caption = " " & EzStemg 'EZ; ' frmMDI.PicDrop.Visible = Tme; ' End IftCase 1 '= Leave; vaPιcture(Index). BorderStyle = 0; frmMDI.ssDrop.Caption = ""; frmMDI.PicDrop.Visible = False;Case 2 '= Over;Case Else;End Select.End Sub;Pnvate Sub vaPιcture_SprιteChange(Index As Integer) ;If Not DoingAnimation Then; If vaPιcture(Index).DDD <> "" Then;
Shder3D.Vιsιble = False; vaPιcture(Index).DDD = ""; A mationlndex = 0; ReDim AnιmateSpπte(l To 1) 'clear buffers; ReDim AmmateMask(l To 1); ReDim TιmeFactorArray(l To 1); End If;End If;End Sub;Pπvate Sub vsbMam_Change(); Dim X As Integer; On Error GoTo vsbMain ChangeError; picScreen.Top = -(vsbMain.Value * Screen.TwipsPerPixelY); IdScreen.DstTop = -(vsbMain.Value); X = ldScreen.SetDstClιρRect(ldScreen.DsιLeft + hsbMam.Value, IdScreen.DstTop + vsbMain.Value, IdScreen.DstWidth, IdScreen.DstHeight); ldScreen.ForceReparnt;Exιt Sub;vsbMaιn_ChangeError:; Exit Sub;End Sub;Pπvate Sub vsbMaιn_Scroll(); On Error GoTo vsbMaιn_ScrollError; Dim X As Integer; picScreen.Top = -(vsbMain.Value * Screen.TwipsPerPixelY); IdScreen.DstTop = -(vsbMain.Value); X = ldScreen.SetDstChpRect(ldScreen.DstLeft + hsbMam.Value, IdScreen.DstTop + vsbMain.Value, IdScreen.DstWidth, IdScreen.DstHeight); ldScreen.ForceRepaιnt;Exιt Sub;vsbMam_ScrollError:; Exit Sub;End Sub;Prιvate Sub MenuAdd_Chck();Dιm UserObjectName As Steing, xtea As
Stnng;On Error Resume Next;xtea = VA_EXAMPl;Do; UserObjectName = InputBox(VA_NAME & xtea, VaTitle, ObjectDiscπptionfMe.Tag, CurrentObj(Me.Tag)).Name); xtea = VA_CHARNEED; If UserObjectName = "" Then Exit Sub 'cancel;Loop Until Len(UserObjectName) < 50;ObjectDιscnptιon(Me.Tag, CurrentObj(Me.Tag)).Name = UserObjectName;AddToUserDB UserObjectName, Me;End Sub;'Pπvate Sub MenuCenter_Chck();';'MenuLeft.Checked = False;'MenuRιght.Checked = False;';'MenuCenter.Checked = True;'Pattern_alιgnment = l;'frmMDI.LBAhgn.Captιon = "C";'End Sub;'Prιvate Sub MenuLeft_Chck(),';'MenuCenter.Checked = False;'MenuRιght.Checked = False;';'MenuLeft.Checked = True;'Patten__alignment = 0,'frmMDI LBAhgn Caption = "L",'End Sub;Pπvate Sub MenuOpenScanner_Chck(); On Error Resume Next; frmMDI. ActiveForm.CancelPendmgMode; frmMDI. menuScan_Chck;End Sub, 'Private Sub MenuPamt_Clιck();'Dιm X;';' X = SetUndoObj(frmMDI.ActιveForm, CurrentObj(frmMDI.ActιveForm.Tag), "Undo
Last Pamt"),','ColorCurrentObject;"Set ZOrder;' Me.hsbMain.Zorder 0- Me vsbMam.Zorder 0: Me. cmdScrollComer.ZOrder 0,';'End Sub;Publιc Sub MenuPattern_Chck();On Error Resume Next;CancelPend_ngMode;SelectCurrentObjectAsPattern;End Sub;Pπvate Sub MenuProject2_Chck();On Error Resume NextjfrmMDI ActιveForm.CancelPendmgMode;frmMDI.MenuProject_Clιck;End Sub;'Pubhc Sub MenuProportιonal_Clιck(),' On Error Resume Next;' Dim X;';' If CurrentObj(frmMDI ActiveForm.Tag) <> 0 Then,' frmMDI.ActiveForm.CancelPendingMode;' X = SetUndoObj(frmMDI.ActιveForm, CurrentObj(frmMDI.ActιveForm.Tag), "Undo Last Resize"),' 'PlayFile ("resize2.wav");' OperationMode = "ResizmgProportional";' NotResizingFirstTime = False;' frmMDI.ActiveFoim.Resizing,' Else;' DisplayErrorMessage VA_NOTSELECTED, vblnformation, VaTitle,' End If,';' 'X = SetUndoObj(frmMDI ActiveForm, CurrentObj(frmMDI.ActιveForm.Tag), "Undo Last Resize");';' 'CancelPendmgMode;' 'OperationMode =
"ResizmgProportional";' 'NotResizingFirstTime = False;' 'Resιzmg;'End Sub;'Pπvate Sub MenuRιght_Chck();';'MenuLeft.Checked = False;'MenuCenter.Checked = False;';'MenuRιght.Checked = True;'Pattern_ahgnment = 2;';'frmMDI.LBAhgn.Caption = "R";'End Sub;Publιc Sub MenuSave_Clιck();Dιm response As Integer;On Error Resume Next;CancelPendmgMode;If Me. ProjectPathName = "" Then 'it's a new project; MenuSaveProject_Clιck;Else 'already has a name; response = vbYes; If Me. Zoom > 1 Then response =
DιsplayMsgboxFunctιons(VA_SAVEZOOM, vbYesNo, VaTitle); If response = vbYes Then; If Not SaveToProjectDatabase(Me.ProjectPathName, Me) Then; DisplayErrorMessage VA NOTSAVED, vbCritical, VaTitle; Else; WnteLastProject Me.ProjectPathName; ListLastProjects Me; ListLastProjects frmMDI; Me.Dirty = False 'saved, End If; End IftEnd IftEnd Sub;Pπvate Sub MenuSaveProject_Clιck();Dιm response As Integer;On Error Resume Next;frmMDI.ActιveForm.CancelPendιngMode;response = vbYes;If Zoom > 1 Then response =
DιsρlayMsgboxFunctιons(VA_SAVEZOOM, vbYesNo, VaTιtle);If response = vbYes Then; If Not SaveProject(Me) Then; DisplayErrorMessage VA NOTSAVED, vbCritical, VaTitle; Else; Me.Caption = ProjectPathName; WnteLastProject ProjectPathName; ListLastProjects Me; ListLastProjects frmMDI; Dirty = False; End IftEnd If;End Sub;'Pnvate Sub mnBrightness_Click();' Dim X;';' X = SetUndoObj(frmMDI.ActiveForm, CurrentObj(fπ_ιMDI.ActιveForm.Tag), "Undo Last Adjustment");' HideAnySteips;' frmEffects.Show 1;'
ShowAnySteips;' FormState(Me.Tag).Dιrty = True;';'End Sub;'Pπvate Sub mnCloseFιll_Chck();';' frmMDI.MousePointer = 0;' OperationMode = "CreatePolygon";' CreatePolygon frmMDI.ActiveForm;' vsbMain Change;' hsbMam_Change;' ApplyPattemToOb ect;' ImtiateScrollBars Me;' vsbMam Change;' hsbMaιn_Change;';'End Sub;'Prιvate Sub mncloseP_Chck(),' On Error Resume Next;' Dim X As Integer;';' If Distort = False Then;' frmMDI.MousePointer = 0;' OperationMode = "CreatePolygon";' CreatePolygon Me;' ImtiateScrollBars Me;' vsbMam Change;' hsbMain Change,' Else;' frmMDI.MousePointer = 0;' OperationMode = "CreateDistortPolygon";' CreateDistortPolygon Me,' ImtiateScrollBars Me;' vsbMam Change;' hsbMaιn_Change,' End If;';'End Sub;'Pπvate Sub mneraseP_Chck(),' On Error Resume Next,' Dim ι,',' If UBound(PolygonPomts) > 1
Then,' ReDim Preserve PolygonPomts(0 To UBound(PolygonPomts) - 2),' ldCompositionBuffer.ForceRepamt ' 09/04/97 DEH Changed from VBX to OCX;' RectTopX = PoTygo_ιPomts(UBound(PolygonPoιnts)).X *
Screen.TwipsPerPixelX;' RectTopY = PolygonPomts(UBound(PolygonPomts)).Y * Screen.TwipsPerPixelY;' PreviousStopX = 0;' PreviousStopY = 0;' For l = 0 To UBound(PolygonPoιnts) - 1 ;' FromHere ldCompositionBuffer.hDC, PolygonPomts(ι).X, PolygonPomts(ι).Y,' ToThere ldCompositionBuffer.hDC, ' PolygonPoιnts(ι + 1) X, PolygonPomts(ι + 1) Y,' Next ι;' ldCompositionBuffer.Refresh;' End Ift'End Sub;'Pπvate Sub mnFιll_Chck();' Dim X;' X = SetUndoObj(frmMDI.ActιveForm, CurrentObj(frmMDI.ActιveForm.Tag), "Undo Last
Fill");';'ApplyPattemToObject;"Set ZOrder;' Me.hsbMam Zorder 0: Me vsbMain.Zorder 0:
Me. cmdScrollComer.ZOrder 0;';'End Sub;Pnvate Sub mnInformatιon_Chck();On Error Resume Next;Dιm I, TempDB As String; If ObjectDιscπption(frmMDI.ActιveForm.Tag, CurrentObj(frmMDI.ActιveForm.Tag)).ID = 0 Then; DisplayErrorMessage va_Error_ObjectNotFromDatabase; Exit Sub; End If; If Check_Resources(MιnResourceReq + 9, False) Then; DBase = ObjectDιscrιptιon(frmMDI.ActιveFoιm.Tag,
CurrentObj(frmMDI.ActιveForm.Tag)) Volumn; TempDB = DBase; If CD VolumnChange Then 'Did user pull the CD ?; If DBase <> "Not Valid" Then; gMsg = VA_INFOCD & va cap Pleaselnsert & TempDB & " CD."; 'gMsg = VA_CHANGECD; Else; gMsg = VA VOLUMN; End If; DisplayErrorMessage gMsg, vblnformation, VaTitle; HideAllDBForm; Exit Sub; End If; gProductID = ObjectDιscπptιon(frmMDI.ActιveForm.Tag, CurrentObj(frmMDI.ActιveForm.Tag)).ID; frmlnfoProd.Show 1, For I = 1 To 3; If StπpShowιng(i) = Tme Then;
DBForm(ι).Show; End If; Next I; Else; DisplayErrorMessage VA CANT & Chr(13) & VA CANT1 & Chr(13) & VA_CANT2 & Chr(13) & VA_CANT3, vblnformation, VaTitle; End IftEnd Sub/Private Sub mnInvert_Clιck();'On Error Resume Next;'frmMDI.ActιveForm.CancelPendιngMode;'DoEffectToObject 3;'End Sub;Pnvate Sub mnhne_Chck();ApplyPattemToObject;End Sub;'Pπvate Sub n-nMιrrorHorz_Click();'DoEffectToObject 2 'flιp;'End Sub;'Pπvate Sub mnMιrro Vert_Chck();'DoEffectToObject 1 'flιp;'End Sub;'Pπvate Sub
Mmesιze_Chck();'mnuReSιze_Chck;'End Sub;'Pπvate Sub MnResιzeProp2_Clιck();'MenuProportιonal_Chck;'End Sub;'Private Sub mnRotate_Chck();'mnuRotate_Clιck;'End Sub;'Pπvate Sub mnstretch_Chck();'On Error Resume Next;'frmMDI.ActιveForm.CancelPendmgMode;'DoEffectToObject 4 'steetch;'End Sub;Pnvate Sub mnuabout2_Chck();On Enor Resume Next; HideAnySteips; Screen.MousePointer = vbHourglass; AboutScreen = Tme; frmAbout.Show 1 ; ShowAnySteips ;End Sub,Pπvate Sub mnuAcquιre_Clιck(); On Error Resume Next;
OpenMode = "Twain"; GetImageFromTwam;End Sub;Pπvate Sub mnuArrangeIcon_Clιck(); frmMDI.Arrange vbArrangeIcons;End Sub;'Pπvate Sub mnuBall_Clιck();"If ShowBalloons Then;' mnuBall. Checked = False;' ShowBalloons = False;'Else;' mnuBall. Checked = Tme;' ShowBalloons = True;'End Ift'End Sub;'Pπvate Sub MnuBest_Chck();'On Error Resume Next;'frmMDI.ActιveForm CancelPendιngMode;'PasteFromOurChpboard 3,'End Sub;'Pnvate Sub MnuBest2_Chck();'PasteFromOurChpboard 3 ;'End Sub;'Pπvate Sub mnuButSound_Chck();' Dim X As Integer;' On Error Resume Next;' If VaCollectιon("13").status Then,' mnuButSound.Checked = False;' VaCollectιon("13").status = False;' Else;' mnuButSound.Checked = Tme;' VaCollectιon("13").status = Tme;' End If;'End Sub;Pπvate Sub mnuCancelEraseRegιon_Chck(); On Error Resume Next; fιmMDI.ActιveForm.ldImageObject(CurrentObj(frmMDI.ActιveForm.Tag)).ForceRepamt ' 09/04/97 DEH Changed from VBX to OCX '- — 09/04/97 DEH Changed from VBX to OCX; 'Reset OperationMode;
OperationMode = "Erase"; ReDim PolygonPoιnts(O); PreviousStopX = 0: PreviousStopY = 0; DoEvents;End Sub;'Pnvate Sub mnuCancelPolygon_Chck();' On Error Resume Next;',' frmMDI.MousePointer = 0,' 'Release handles for drawing lines;' ReleaselnvertLine Me;' 'Release cursor,';' 'Delete polygon points,' ReDim PolygonPomts(O),' PreviousStopX = 0: PreviousStopY = 0;' 'Reset OperationMode;' OperationMode = "Moving",' 'Put object mto correct Z-Order;' ldBackground.Zorder 0;' PutObjectsInZorder Me,' ImtiateScrollBars Me;' vsbMain Change;' hsbMaιn_Change;' ShowAnyStπps;';'End Sub;Pπvate Sub mnuCascade_Chck(); frmMDI.Arrange vbCascade;End Sub;Prιvate Sub mnuCDROM_Chck(); Dim X; X = InputBox(va_prompt_EnterYourPassword), If X = "monkey" Then; 'MUST UNCOMMENT FOR PRODUCTION frmCDDatabase.Show; Elself X <> "" Then, DisplayErrorMessage va_Warnιngl & Chr(lO) & va_Warmng2; End; End IftEnd Sub;Pnvate Sub mnuChangeDB_Chck();Dιm myvalue As Integer;'On Error Resume
Next;frmMDI.ActiveForm.CancelPendmgMode;CDVolumnChange;If DBase <> "Not Valid" Then; gMsg = VA_CHANGEVOLUMN;Else; gMsg = VA_VOLUMN;End Iftmyvalue = MsgBox(gMsg, vbOKCancel, VaTιtle);If myvalue = vbOK Then; 'TreeViewl. Nodes. Clear; If QuickOpened Then Unload QuickDB; 'QuickDB.Form Load; QuιckDB.Show;End Ift'On Error Resume Next;'frmMDI.ActiveForm.CancelPendmgMode;';'CDVolumnChange;'If DBase <> "Not Valid" Then;' gMsg = VA_CHANGEVOLUMN;'Else;' gMsg = VA_ VOLUMN;'End
If;'HideAllDBForm;'DisplayErrorMessage gMsg, vblnformation, VaTιtle;'QuιckDB.Form_Load;'QuιckDB.Show;End Sub;'Pnvate Sub mnuChangeTool_Chck();';';' frmMDI.MousePointer = 0;' PaintmgPattern = False;' frmHole. Caption = va_cap_Paιnt;' frmHole. fraShape. Caption = va_cap_ShapeOfBrush;' frmHole. cmdCancel. Enabled = False;' skipRegenerate = Tme;' frmHole. Show 1;' skipRegenerate = False;' PaintingPattern = Tme;';'End Sub;'Pnvate Sub mnuChangeTools_Chck();';';' frmMDI.MousePomter = 0;' PaintingPattern = False;' frmHole. Caption = va_cap_Paιnt;' frmHole. fraShape. Caption = va_cap_ShapeOfBrush;' frmHole. cmdCancel.Enabled = False;' skipRegenerate = Tme;' frmHole. Show 1;' skipRegenerate = False;' PaintmgPattern = True;';'End Sub;'Pnvate Sub mnuCιrcleCancel_Chck();';' 'Unload object to be painted;' If PaintingPattern = Tme Then;' SetZOrder CStr(CurrentObj(frmMDI.ActiveForm.Tag)), Me.Tag;' UnloadObject CurrentObj(frmMDI.ActιveForm.Tag), Me;' End If;';' fιmMDI.ActιveFoιm.ldImageMask(CurrentObj(fm_MDI.ActιveForm.Tag)).Bιtmap = frmMDI.ldEditMaskBuffer.Bitmap;' frmMDI.ActιveForm.ldImageMask(CurrentObj(frmMDI.ActιveForm.Tag)).Wιdth = frmMDI.ldEditMaskBuffer. Width;' frmMDI.ActιveForm.ldImageMask(CurrentObj(frmMDI.ActιveForm.Tag)).Heιght = frmMDI.ldEditMaskBuffer.Height;';' frmMDI.ldObjectBuffer.Bitmap = fr MDI.ldEditlmageBuffer.Bitmap;' frmMDI.ldObjectBuffer. Width = frmMDI IdEditlmageBuffer Width;' frmMDI.ldObjectBuffer.Height = frmMDI.ldEditlmageBuffer.Height;',' SelectObjects(frmMDI.ActιveForm) = CurrentObj(frmMDI.ActιveForm.Tag),' fπr_MDI.ActιveFoιm.ldImageObject(CunentObj(frmMDI.ActιveForm.Tag)).ForceRepaιnt ' 09/04/97 DEH
Changed from VBX to OCX '- — 09/04/97 DEH Changed from VBX to OCX;',' frmMDI.ActiveForm.ldBackground.ForceRepaint '- — 09/04/97 DEH Changed from VBX to OCX;' frmMDI. ActiveForm.ldBackground.Zorder,' PutObjectsInZorder frmMDI.ActiveForm;' QuicklmtiateScrollBars Me,' DoEvents;' hsbMam Change,' vsbMam Change;';' OperationMode = "Moving",';';' GetTheCursor = False,' PaintinglnProgress = False;' PaintingPattern = False;' ShowAnySteips;' frmMDI.MousePointer = 0;';'End Sub,Pπvate Sub mnuClearBorders_Chck();MsgBox "CODE MISSING";End Sub;Pπvate Sub mnuClose_Clιck();frmMDI.ActιveForm.CancelPendmgMode;Unload Me;End Sub;'Pπvate Sub mnuClosePaint ClickO;';' frmMDI.MousePointer = 0;' OperationMode = "CreatePolygon";' CreatePolygon fimMDI.ActiveForm,' vsbMam_Change;' hsbMam Change;' ColorCurrentObject;' ImtiateScrollBars Me,' vsbMam_Change,' hsbMam_Change;';'End Sub;'Pubhc Sub MnuConteast_Chck();' Dim X;'On Enor Resume Next;' If frmMDI.ActiveForm.ObjectZorderl. Count < 1 Then;' MsgBox va Waming NoSelected;' Exit Sub,' End If;' CancelPendmgMode,' X = SetUndoObj(frmMDI.ActιveFoιm, CunentObj(frrnMDI.ActιveForm.Tag), "Undo Last
Adjustment");' HideAnySteips;' frmEffects.Show 1;' ShowAnySteips,' FormState(Me.Tag).Dιrty = Trae;'End SubjPubhc Sub mnuCopy_Clιck();On Error Resume Next; frmMDI.ActiveForm. CancelPendmgMode; If ObjectZorderl. Selectedlndex <> 0 Then; If Not vaPιcture(ObjectZorderl. Selectedlndex). SelectedObject Then; DisplayErrorMessage VA NOTSELECTED, vblnformation, VaTitle; Exit Sub; End If; CopyToOurChpboard; Else; DisplayErrorMessage VA NOTSELECTED, vblnformation, VaTitle; End If;End Sub;'Prιvate Sub mnuDefine_Clιck();' frmDefine.Show l;'End Sub;Pubhc Sub mnuDelete_Chck();0n Error Resume Next; CancelPendmgMode; If ObjectZorderl. Count < 1 Then; DisplayErrorMessage VA_NOTSELECTED, vblnformation, VaTitle; Exit Sub; End If; If ObjectZorderl. Selectedlndex <> 0 Then; If Not vaPιcture(ObjectZorderl. Selectedlndex). SelectedObject Then; DisplayErrorMessage VA_NOTSELECTED, vblnformation, VaTitle; Exit Sub; End If; Delete VAObject; Else; DisplayErrorMessage VA NOTSELECTED, vblnformation, VaTitle; End If;;End Sub;Pnvate Sub mnuDoor_Clιck(); AutoScaleType = - 55;fπnMDI.ActiveFoιτn.CancelPendmgMode;frmMDLActiveForm.MakeRegon VA RECTANGLE 'Initiate a rectangle;End Sub;Publιc Sub mnuErase_Clιck();End Sub;'Pnvate Sub mnuEraseRegionNow_Click();';' Dim offsetx As Integer, offsety As Integer, retval As Integer;';' 'Pamt or erase object;' If PaintingPattern Then;' PamtObject PaintPatternlndex, CurrentObj(Me.Tag), 0, 0, Me;' mnuCancelEraseRegion Chck;' Exit Sub;' Else;' EraseObject
CurrentObj(Me.Tag), 0, 0, Me;' End If;';' mnuCancelEraseRegιon_Chck;' 'Select current object;' RecreateObject CurrentObj(Me.Tag), Me;' SelectObjects(Me) = CurrentObj(Me.Tag);' UnselectObject frmMDI.ActiveForm;' DoEvents;' 'Get bmsh for mouse cursor;' With fm_MDI.ActιveForm.ldImageObject(CunentObj(frmMDI.ActiveForm.Tag));' hPen = GetStockObject(WHITE PEN);' holdpen = SelectGDIObject(.hDC, hPen);' hbmsh = GetStockObject(HOLLOW BRUSH),' holdbrash = SelectGDIObject(.hDC, hb sh);' DisplayMode = GetROP2(.hDC);' Ret = SetROP2(.hDC, R2 NOT);' End With,1 offsetx = frmMDI.ActiveForm.hsbMam.Value,' offsety = frmMDI.ActiveForm. vsbMain Value;' 'CreateSohdBrush yellow for outline;' With frmMDI.ActiveForm.ldCompositionBuffer,' hbmsh = CreateSolιdBrush(RGB(255, 255, 0)) 'CreateSohdBmsh yellow;' holdbmsh = SelectGDIObject(.hDC, hbmsh);' retval = Rectangle(.hDC, offsetx +
(fπnMDLActιveForm.ldImageObject(CuιτentObj(frmMDI.ActιveForm.Tag)).Left - (OutLine.Size / 2)), _;' offsety + (frmMDI.ActiveForm.ldImageObject(CurrentObj(frmMDI ActιveForm.Tag)).Top - (OutLine.Size / 2)), _;' offsetx + (fπrιMDI.ActιveForm.ldImageObject(CunentObj(fm_MDI.ActιveForm. Tag)). Left + _;' (f_mMDI.ActιveFoιm.ldImageObject(CurcentObj(frmMDI.ActιveForm Tag)).Wιdth + (OutLine.Size / 2))), _,' offsety + (frmMDI.ActιveForm.ldImageObject(CunentObj(frrnMDI ActιveFoπn.Tag)).Top + _;'
(f_mMDI.ActιveFo_m.ldImageObject(CunentObj(frrr_MDI.ActιveFo_m.Tag)).Heιght + (OutLine.Size / 2))));' retval = SelectGDIObject(.hDC, holdbmsh);' retval = Deleteθbject(hbmsh);' End Wιth;';'End Sub;'Pπvate Sub mnuExit_Chck();' ' insure that cursor is not clipped on exit,',' On Error Resume Next;' frmMDI.ActiveForm.CancelPendmgMode;';';' Unload frmMDI;'End Sub.'Pπvate Sub mnuExιtEraseMode_Chck();'Dιm X As Integer, Templndex As Integer;"- — 09/08/97 DEH For VBX to OCX conversιon;'Dιm ImageObjectDC As Long, ImageMaskDC As Long;' On Error Resume Next;';' Templndex = CurrentObj(Me.Tag);' With Me.ldlmageObject(TempIndex);' Ret = SetROP2(.hDC, DisplayMode);' Ret = SelectGDIObject(.hDC, holdpen);' Ret = SelectGDIObject(.hDC, holdbmsh);' Ret = DeleteObject(hPen);' Ret = Deleteθbject(hbmsh);' Ret = Deleteθbject(holdpen);' Ret = Deleteθbject(holdbmsh);' End With;' ldBackground.ForceRepamt ' 09/04/97 DEH Changed from VBX to OCX;' If PaintingPattern = Tme And
PamtrnglnProgress = False Then;' UnloadObject CurrentObj(Me.Tag), Me;' End If;' 'Delete pattern?;' If PaintingPattern = Tme And PamtrnglnProgress = Tme Then;' SetZOrder CStr(ParntPatternlndex), Me.Tag;'
UnloadObject PaintPatternlndex, Me;' mnuUndo. Enabled = False;' mnuUndo. Caption = LoadResSteιng(5011) '
"&Undo";' End If;' 'Reset OperationMode;' OperationMode = "Moving",' ReDim PolygonPoιnts(O);' PreviousStopX = 0: PreviousStopY = 0;' Me.ldBackground.Zorder 0;' PutObjectsInZorder Me;';' If PaintingPattern = Tme And
PamtrnglnProgress = False Then GoTo skipit;' 'Clean up sprite and mask so no painting m area outside of polygon;' Dim l As Integer, hgdiobj As Integer, retval As Integer;' ReDim PolygonPomts(0 To 3);' If ObjectDιscnptιon(Me.Tag, TempIndex).PerspectiveCoordinates(0).Type = HORIZONTAL Then;' 'Top of object;' PolygonPoιnts(0).X = ObjectDιscnptιon(Me.Tag, TempIndex).PerspectiveCoordinates(0).X - OutLine.Size 12 '- me.ldImageObject(TempIndex).Left;' PolygonPoιnts(0).Y = ObjectDιscnptιon(Me.Tag,
TempIndex).PerspectiveCoordmates(0).Y - OutLine.Size 12 '- me.ldImageObject(TempIndex).Top;' PolygonPoιnts(l).X = ObjectDιscπptιon(Me.Tag, Templndex). PerspectιveCoordιnates(3).X - OutLine.Size 12 '- me.ldImageObject(TempIndex).Left;' PolygonPoιnts(l).Y = ObjectDιscπptιon(Me.Tag, TempIndex).PersρectιveCoordmates(3).Y - OutLine.Size 12 '- me.ldlmageObject(TempIndex) Top;' If ObjectDιscnρtιon(Me.Tag, TempIndex).PerspectiveCoordinates(0).Y < ObjectDιscπptιon(Me.Tag, Templndex) PerspectιveCoordmates(3).Y Then;' PolygonPomts(2).Y = ObjectDιscπptιon(Me.Tag, Templndex). PerspectiveCoordmates(0).Y - OutLine.Size 1 2 '- me.ldImageObject(TempIndex).Top,' PolygonPoιnts(2).X = ObjectDιscπptιon(Me.Tag, Templndex). PerspectιveCoordmates(3).X - OutLine.Size 12 '- me.ldImageObject(TempIndex).Left;' PolygonPoιnts(3).Y = ObjectDιscnptιon(Me.Tag, Templndex). PerspectiveCoordmates(0).Y - OutLine.Size 12 '- me.ldImageObject(TempIndex).Top,'
PolygonPomts(3).X = ObjectDιscrιptιon(Me.Tag, TempIndex).PerspectiveCoordinates(0).X - OutLine.Size 12 '- me.ldImageObject(TempIndex).Left;' Else,' PolygonPomts(2).Y = ObjectDιscπptιon(Me.Tag, TempIndex).PerspectιveCoordιnates(3).Y - OutLme.Size 12 '- me.ldImageObject(TempIndex).Top;' PolygonPomts(2).X = ObjectDιscπptιρn(Me.Tag, TempIndex).PerspectιveCoordιnates(3).X - OutLine Size 12 '- me.ldImageObject(TernpIndex).Left;' PolygonPoιnts(3) Y = ObjectDιscnptιon(Me.Tag,
Templndex). PerspectιveCoordmates(3) Y - OutLine.Size 1 2 '- me.ldImageObject(TempIndex).Top,' PolygonPomts(3).X = ObjectDιscnptιon(Me.Tag, TempIndex).PerspectiveCoordinates(0).X - OutLine.Size 12 '- me.ldImageObject(TempIndex).Left;' End If;';' ' 09/08/97 DEH Changed from VBX to OCX;' ImageObjectDC =
Me.ldImageObject(TempIndex).GetBιtmapDC;' ImageMaskDC = Me.ldImageMask(TempIndex).GetBιtmapDC;' 'Mask;' hbmsh = CreateSohdBrash(RGB(255, 255, 255));' hgdiobj = CreatePolygor_Rgn(PolygonPoints(0),
UBound(PolygonPomts) + 1, ALTERNATE);' retval = FιllRgn(ImageMaskDC, hgdiobj, hbmsh);' retval = Deleteθbject(hgdιobj);' retval = Deleteθbject(hbmsh);' 'Sprite;' hbmsh = CreateSohdBrush(RGB(0, 0, 0));' hgdiobj = CreatePolygonRgn(PolygonPomts(0), UBound(PolygonPoιnts) + 1, ALTERNATE);' retval = FιllRgn(ImageObjectDC, hgdiobj, hbmsh);' retval = Deleteθbject(hgdιobj),' retval = Deleteθbject(hbrush);' Me.ldImageObject(TempIndex).ReleaseBιtmaρDC,' Me.ldImageMask(TempIndex).ReleaseBιtmapDC;';' 'Bottom of object;' PolygonPoιnts(0).X = ObjectDιscrιρtιon(Me.Tag, TempIndex).PerspectιveCoordιnates(l).X - OutLine.Size / 2 ' - me.ldImageObject(TempIndex).Left;' PolygonPomts(0).Y = ObjectDιscπptιon(Me.Tag, TemρIndex).PerspectιveCoordmates(l).Y - OutLme.Size 12 ' - me.ldImageObject(TempIndex).Top,' PolygonPoιnts(l).X = ObjectDιscnptιon(Me.Tag, Templndex). PerspectιveCoordιnates(2).X - OutLme.Size 12 ' - me.ldImageObject(TempIndex)Left;' PolygonPoιnts(l) Y = ObjectDιscnptιon(Me.Tag,
TemρIndex).PerspectιveCoordιnates(2).Y - OutLine.Size 1 ' - me.ldImageObject(TempIndex).Top,' If ObjectDιscnptιon(Me.Tag, Templndex). PerspectιveCoordιnates(l).Y > ObjectDιscnptιon(Me.Tag, TempIndex).PerspectιveCoordιnates(2).Y Then;' PolygonPoιnts(2).Y = ObjectDιscπptιon(Me.Tag, TemρIndex).PerspectιveCoordιnates(l).Y - OutLme.Size 1 2 ' - me.ldImageObject(TempIndex).Top;' PolygonPoιnts(2).X = ObjectDιscπptιon(Me.Tag, TempIndex).PerspectιveCoordmates(2).X - OutLme.Size 12 ' - me.ldImageObject(TempIndex).Left;' PolygonPomts(3).Y = ObjectDιscnptιon(Me.Tag, Templndex). PerspectιveCoordmates(l).Y - OutLine.Size / 2 ' - me.ldImageObject(TempIndex).Top,' PolygonPoιnts(3).X = ObjectDιscnptιon(Me.Tag, TempIndex).PerspectιveCoordιnates(l).X - OutLme.Size 12 ' - me.ldImageObject(TempIndex)Left;' Else;' PolygonPoιnts(2).Y = ObjectDιscπptιon(Me.Tag, Templndex). PerspectιveCoordmates(2).Y - OutLine Size 12 '- me.ldImageObject(TempIndex).Top;' PolygonPomts(2).X = ObjectDιscnptιon(Me.Tag, TempIndex).PerspectιveCoordmates(2) X - OutLme.Size 1 2 '- me.ldImageObject(TempIndex).Left;' PolygonPoιnts(3).Y = ObjectDιscnptιon(Me.Tag, Templndex). PerspectιveCoordmates(2).Y - OutLme.Size 12 '- me.ldlmageObject(TempIndex) Top,' PolygonPoιnts(3).X = ObjectDιscnptιon(Me.Tag, TemρIndex).PersρectιveCoordmates(l).X - OutLme.Size 12 '- me.ldImageObject(TempIndex).Left;' End If;';' '- — 09/08/97 DEH Changed from VBX to OCX,' ImageObjectDC =
Me.ldImageObject(TempIndex).GetBιtmaρDC;' ImageMaskDC = Me.ldImageMask(TempIndex).GetBιtmapDC,' 'Mask;' hbmsh = CreateSolιdBrush(RGB(255, 255, 255));' hgdiobj = CreatePolygonRgn(PolygonPomts(0), UBound(PolygonPomts) + 1, ALTERNATE);' retval = FιllRgn(ImageMaskDC, hgdiobj, hbmsh);' retval = ' Deleteθbject(hgdιobj);' retval = Deleteθbject(hbrush);' 'Sprite;' hbmsh = CreateSohdBmsh(RGB(0, 0, 0)),' hgdiobj = CreatePolygonRgn(PolygonPomts(0), UBound(PolygonPoιnts) + 1 , ALTERNATE);' retval =
FιllRgn(ImageObjectDC, hgdiobj, hbmsh);' retval = Deleteθbject(hgdιobj);' retval = Deleteθbject(hbrush);' Me.ldImageObject(TempIndex).ReleaseBιtmapDC;' Me.ldImageMask(TempIndex).ReleaseBιtmapDC,',' End If;' If ObjectDιscπptιon(Me.Tag, Templndex) PerspectiveCoordmates(0).Type = VERTICAL Then;' Left of object;' PolygonPoιnts(0).X = ObjectDιscnptιon(Me.Tag, TempIndex).PerspectiveCoordmates(0).X - OutLme.Size 12 '- me.ldImageObject(TempIndex)Left;' PolygonPomts(O) Y = ObjectDιscnptιon(Me.Tag,
Templndex). PerspectiveCoordinates(0).Y - OutLine.Size 12 '- me.ldImageObject(TemρIndex).Top;' PolygonPoιnts(l).X = ObjectDιscπptιon(Me.Tag, TempIndex).PerspectιveCoordmates(l).X - OutLme.Size 12 '- me.ldImageObject(TempIndex).Left;' PolygonPomts(l).Y = ObjectDιscπptιon(Me.Tag, TempIndex).PerspectιveCoordmates(l).Y - OutLine.Size 12 '- me.ldImageObject(TempIndex).Top;' If ObjectDιscnptιon(Me.Tag, TempIndex).PerspectiveCoordinates(0).X < ObjectDιscπptιon(Me.Tag,
TempIndex).PersρectιveCoordmates(l).X Then;' PolygonPoιnts(2).Y = ObjectDιscnptιon(Me.Tag, TempIndex).PerspectιveCoordmates(l).Y - OutLine.Size 1 2 '- me.ldImageObject(TempIndex).Top;' PolygonPomts(2).X = ObjectDiscnptιon(Me.Tag, Templndex). PerspectiveCoordmates(0).X - OutLme.Size 12 '- me.ldImageObject(TempIndex)Left;' Po_ygonPoιnts(3).Y = ObjectDιscπptιon(Me.Tag, Templndex). PerspectiveCoordinates(0).Y - OutLine.Size 12 '- me.ldImageObject(TemρIndex).Top;'
PolygonPoιnts(3).X = ObjectDιscπptιon(Me.Tag, TempIndex).PerspectiveCoordinates(0).X - OutLme.Size 1 2 '- me.ldImageObject(TempIndex)Left;' Else;' PolygonPomts(2).Y = ObjectDιscrιptιon(Me.Tag, Templndex). PerspectiveCoordinates(0).Y - OutLine.Size 12 '- me.ldImageObject(TempIndex).Top;' PolygonPomts(2).X = ObjectDιscnptιon(Me.Tag, TempIndex).PerspectiveCoordιnates(l).X - OutLme.Size 12 '- me.ldImageObject(TemρIndex).Left;' PolygonPomts(3).Y = ObjectDιscriptιon(Me.Tag,
Templndex). PerspectiveCoordinates(0).Y - OutLme.Size 12 '- me.ldImageObject(TempIndex).Top;' PolygonPomts(3).X = ObjectDιscrιptιon(Me.Tag, Templndex). PerspectiveCoordinates(0).X - OutLine.Size 12 '- me.ldImageObject(TempIndex).Left;' End If;';' '- — 09/08/97 DEH Changed from VBX to OCX;' ImageObjectDC = Me.ldImageObject(TempIndex).GetBιtmapDC;' ImageMaskDC = Me.ldImageMask(TempIndex).GetBιtmaρDC,' 'Mask;' hbmsh = CreateSohdBrash(RGB(255, 255, 255));' hgdiobj = CreatePo_ygonRgn(PolygonPoints(0), UBound(PolygonPoιnts) + 1, ALTERNATE);' retval = FιllRgn(ImageMaskDC, hgdiobj, hbmsh);' retval = Deleteθbject(hgdιobj);' retval = Deleteθbject(hbrush);' 'Sprite,' hbmsh = CreateSohdBmsh(RGB(0, 0, 0)),' hgdiobj = CreatePolygonRgn(PolygonPoints(0), UBound(PolygonPoιnts) + 1, ALTERNATE),' retval = FιllRgn(ImageObjectDC, hgdiobj, hbmsh);' retval = Deleteθbject(hgdιobj);' retval = Deleteθbject(hbmsh),' Me.ldImageObject(TempIndex).ReleaseBιtmapDC;' Me.ldImageMask(TempIndex).ReleaseBιtmapDC,';' 'Right of object;' PolygonPoιnts(0).X = ObjectDιscπptιon(Me Tag, Templndex) PerspectιveCoordιnates(3) X - OutLine.Size / 2 '- me.ldImageObject(TempIndex).Left;' PolygonPomts(0).Y = ObjectDιscnptιon(Me Tag, TempIndex).PerspectιveCoordmates(3).Y - OutLine.Size 12 '- me.ldImageObject(TempIndex).Top,' PolygonPomts(l).X = ObjectDιscnptιon(Me Tag, TempIndex).PerspectιveCoordmates(2).X - OutLme.Size 12 '- me.ldImageObject(TempIndex).Left;' PolygonPomts(l).Y = ObjectDιscnptιon(Me.Tag,
TempIndex).PersρectιveCoordιnates(2).Y - OutLine.Size 1 2 '- me.ldImageOb ect(TempIndex).Top;' If ObjectDιscnptιon(Me.Tag, Templndex). PerspectιveCoordιnates(2).X < ObjectDιscnptιon(Me.Tag, Templndex). PerspectιveCoordmates(3).X Then;' PolygonPomts(2).Y = ObjectDιscπptιon(Me.Tag, Templndex). PerspectιveCoordιnates(2).Y - OutLme.Size 12 '- me.ldImageObject(TempIndex).Top;' PolygonPomts(2).X = ObjectDιscnptιon(Me.Tag, Templndex) PerspectιveCoordιnates(3).X - OutLme.Size 12 '- me.ldImageObject(TempIndex).Left;' PolygonPoιnts(3).Y = ObjectDιscπptιon(Me.Tag, Templndex). PerspectιveCoordιnates(3).Y - OutLme.Size 12 '- me.ldImageObject(TempIndex).Top;' PolygonPoιnts(3).X = ObjectDιscπptιon(Me.Tag, TempIndex).PerspectιveCoordιnates(3).X - OutLme.Size 12 '- me.ldImageObject(TempIndex).Left;' Else;' PolygonPoιnts(2).Y = ObjectDιscnptιon(Me.Tag, Templndex). PerspectιveCoordmates(3).Y - OutLine.Size 1 2 '- me.ldImageObject(TempIndex).Top;'
PolygonPoιnts(2).X = ObjectDιscπptιon(Me.Tag, TempIndex).PerspectιveCoordιnates(2).X - OutLme.Size 12 '- me.ldImageObject(TempIndex).Left;' PolygonPoιnts(3).Y = ObjectDιscπptιon(Me.Tag, Templndex) PerspectιveCoordιnates(3).Y - OutLme.Size 12 '- me.ldImageObject(TempIndex).Top;' PolygonPomts(3).X = ObjectDιscπptιon(Me.Tag, TempIndex).PerspectιveCoordmates(3).X - OutLme.Size 12 '- me.ldImageObject(TempIndex).Left;' End If;';' '— - 09/08/97 DEH Changed from VBX to OCX;' ImageObjectDC =
Me.ldImageObject(TempIndex).GetBιtmapDC;' ImageMaskDC = Me.ldImageMask(TemρIndex).GetBιtmapDC;' 'Mask;' hbmsh = CreateSohdBrush(RGB(255, 255, 255));' hgdiobj = CreatePolygo_iRgn(PolygonPoints(0), UBound(PolygonPomts) + 1, ALTERNATE);' retval = FιllRgn(ImageMaskDC, hgdiobj, hbmsh);' retval = Deleteθbject(hgdιobj);' retval = Deleteθbject(hbmsh);' 'Sprite;' hbmsh = CreateSolidBrush(RGB(0, 0, 0));' hgdiobj = CreatePolygonRgn(PolygonPoints(0), UBound(PolygonPoιnts) + 1, ALTERNATE);' retval =
FillRgn(ImageObjectDC, hgdiobj, hbmsh);' retval = Deleteθbject(hgdιobj);' retval = Deleteθbject(hbrush);' Me.ldImageObject(TempIndex).ReleaseBιtmapDC;' Me.ldImageMask(TempIndex).ReleaseBιtmapDC;';' End If;';' RecreateObject Templndex, Me;' SelectObjects(Me) = Templndex;' UnselectObject Me;' SelectObjects(Me) = Templndex;'skιpιt:;' QuicklmtiateScrollBars Me;' DoEvents,' hsbMam Change;' vsbMaιn_Change;';';' ShowAnySteips;' GetTheCursor = False;';' PaintinglnProgress = False;' PaintingPattern = False;' 'Set ZOrder;' Me.hsbMa n.Zorder 0- Me.vsbMain. Zorder 0: Me cmdScrollComer.ZOrder 0;' frmMDI. MousePomter = 0,';'End
Sub;'Pπvate Sub mnuExιtRegιon_Chck();' Dim X As Integer, Templndex As Integer,' ' 09/08/97 DEH For VBX to OCX conversion;' Dim ImageObjectDC As Long, ImageMaskDC As Long;';' On Error Resume Next;';' Templndex = CurrentObj(Me.Tag);' With Me.ldImageObject(CurrentObj(Me Tag));' Ret = SetROP2(.hDC, DisplayMode),' Ret = SelectGDIObject(.hDC, holdpen);' Ret = SelectGDIObject(.lιDC, holdbmsh);' Ret = DeleteObject(hPen),' Ret =
Deleteθbject(hbrash);' Ret = Deleteθbject(holdpen),' Ret = Deleteθbject(holdbmsh);' End With;' ldBackground.ForceRepamt ' 09/04/97 DEH Changed from VBX to OCX;' If PaintmgPattem = Tme And
PamtrnglnProgress = False Then;';' UnloadObject CurrentObj(Me.Tag), Me;' End If;' 'Reset OperationMode;' OperationMode = "Moving";' ReDim PolygonPomts(O);' PreviousStopX = 0- PreviousStopY = 0;' Me IdBackground.Zorder 0,' PutObjectsInZorder Me;';' If PaintmgPattem = Tme And PamtmglnProgress = False
Then GoTo skipitnow;',' 'Clean up sprite and mask so no painting m area outside of polygon;' Dim l As Integer, hgdiobj As Integer, retval As Integer;' ReDim PolygonPomts(0 To 3);' If ObjectDιscπptιon(Me.Tag, TempIndex).PerspectiveCoordinates(0).Type = HORIZONTAL Then;' 'Top of object,' PolygonPomts(0).X = ObjectDιscπptιon(Me.Tag, Templndex). PerspectiveCoordinates(0).X - OutLme.Size 12 '- me.ldImageObject(TempIndex)Left;' PolygonPoιnts(0).Y = ObjectDιscπptιon(Me.Tag,
Templndex). PerspectiveCoordinates(0).Y - OutLine.Size 1 2 '- me.ldImageObject(TempIndex).Top,' PolygonPomts(l).X = ObjectDιscnptιon(Me.Tag, Templndex). PerspectιveCoordmates(3).X - OutLine Size 12 '- me.ldImageObject(TempIndex).Left;' PolygonPoιnts(l).Y = ObjectDιscrιptιon(Me.Tag, Templndex). PerspectιveCoordιnates(3).Y - OutLine.Size 12 '- me.ldImageObject(TempIndex).Top;' If ObjectDιscπρtιon(Me.Tag, Templndex). PerspectiveCoordinates(0).Y < ObjectDιscπptιon(Me.Tag,
Templndex). PerspectιveCoordιnates(3).Y Then;' PolygonPoιnts(2).Y = ObjectDιscπptιon(Me.Tag, TempIndex).PerspectiveCoordmates(0).Y - OutLme.Size 12 '- me.ldImageObject(TempIndex).Toρ;' PolygonPomts(2).X = ObjectDιscπptιon(Me.Tag, Templndex). PerspectιveCoordιnates(3).X - OutLme.Size 12 '- me.ldImageObject(TempIndex).Left;' PolygonPoιnts(3).Y = ObjectDιscπptιon(Me.Tag, Templndex). PerspectiveCoordinates(0).Y - OutLine.Size 1 2 ' - me.ldImageObject(TempIndex).Top;'
PolygonPomts(3).X = ObjectDιscπptιon(Me.Tag, TempIndex).PerspectiveCoordmates(0).X - OutLme.Size 12 '- me.ldImageObject(TempIndex).Left;' Else;' PolygonPomts(2).Y = ObjectDιscnptιon(Me.Tag, TempIndex).PerspectιveCoordmates(3).Y - OutLme.Size 12 '- me.ldImageObject(TempIndex).Toρ;' PolygonPoιnts(2).X = ObjectDιscπptιon(Me.Tag, TempIndex).PerspectιveCoordmates(3).X - OutLme.Size 12 '- me.ldImageObject(TempIndex).Left;' PolygonPoιnts(3).Y = ObjectDιscπptιon(Me.Tag,
TempIndex).PersρectιveCoordιnates(3).Y - OutLine.Size 12 '- me.ldImageObject(TempIndex).Top;' PolygonPomts(3).X = ObjectDιscrιptιon(Me.Tag, Templndex). PerspectiveCoordmates(0).X - OutLme.Size 12 '- me.ldImageObject(TempIndex).Left;' End If;';' ' 09/08/97 DEH Changed from VBX to OCX;' ImageObjectDC =
Me.ldImageObject(TempIndex).GetBιtmapDC;' ImageMaskDC = Me.ldImageMask(TempIndex).GetBιtmapDC,' 'Mask;' hbmsh = CreateSohdBrus__(RGB(255, 255, 255)),' hgdiobj = CreatePolygonRgn(PolygonPomts(0), UBound(PolygonPomts) + 1, ALTERNATE);' retval = FιllRgn(ImageMaskDC, hgdiobj, hbmsh);' retval = Deleteθbject(hgdιobj);' retval = Deleteθbject(hbrush),' 'Sprite,' hbmsh = CreateSohdBrush(RGB(0, 0, 0)),' hgdiobj = CreatePo_ygonRgn(PolygonPoints(0), UBound(PolygonPoιnts) + 1, ALTERNATE);' retval = FιllRgn(ImageObjectDC, hgdiobj, hbmsh);' retval = Deleteθbject(hgdιobj);' retval = Deleteθbject(hbrush),' Me.ldImageObject(TempIndex).ReleaseBιtmaρDC;' Me.ldImageMask(TempIndex).ReleaseBιtmapDC,',' 'Bottom of object;' PolygonPoιnts(0).X = ObjectDιscπptιon(Me.Tag, Templndex). PerspectιveCoordmates(l).X - OutLine.Size / 2 '- me.ldImageObject(TernpIndex)Left;' PolygonPomts(O) Y = ObjectDιscπptιon(Me.Tag, TempIndex).PerspectιveCoordmates(l) Y - OutLme.Size 12 '- me.ldImageObject(TempIndex).Top;' PolygonPomts(l).X = ObjectDιscπptιon(Me.Tag, Templndex). PerspectιveCoordmates(2).X - OutLine.Size 1 2 '- me.ldImageObject(TempIndex).Left;' PolygonPoιnts(l).Y = ObjectDιscnptιon(Me.Tag,
Templndex). PersρectιveCoordmates(2).Y - OutLine.Size 12 '- me.ldImageObject(TempIndex).Top;' If ObjectDιscπptιon(Me.Tag, TempIndex).PerspectιveCoordmates(l).Y > ObjectDιscnptιon(Me.Tag, TempIndex).PerspectιveCoordιnates(2).Y Then;' PolygonPoιnts(2).Y = ObjectDιscnptιon(Me.Tag, TempIndex).PerspectιveCoordιnates(l).Y - OutLine.Size 12 '- me.ldImageObject(TempIndex).Top;' PolygonPoιnts(2) X = ObjectDιscπptιon(Me.Tag, Templndex) PerspectιveCoordιnates(2).X - OutLme.Size 12 '- me.ldImageObject(TempIndex).Left;' PolygonPoιnts(3).Y = ObjectDιscπptιon(Me.Tag, TempIndex).PerspectιveCoordinates(l).Y - OutLine.Size 12 '- me.ldImageObject(TemρIndex).Top;' PolygonPomts(3).X = ObjectDιscnptιon(Me.Tag, TempIndex).PerspectιveCoordmates(l).X - OutLine.Size 1 2 '- me.ldImageObject(TempIndex).Left;' Else;' PolygonPomts(2).Y = ObjectDιscπptιon(Me.Tag, Templndex) PerspectιveCoordmates(2).Y - OutLme.Size 12 '- me.ldImageObject(TempIndex).Top;'
PolygonPoints(2).X = ObjectDιscπptιon(Me.Tag, TempIndex).PerspectιveCoordιnates(2).X - OutLme.Size 1 2 '- me.ldImageObject(TempIndex).Left;' PolygonPomts(3) Y = ObjectDιscπptιon(Me.Tag, Templndex). PerspectιveCoordιnates(2).Y - OutLme.Size 12 '- me.ldImageObject(TempIndex).Top;' PolygonPomts(3).X = ObjectDιscnptιon(Me.Tag, TempIndex).PerspectιveCoordmates(l).X - OutLine.Size 1 2 '- me.ldImageObject(TempIndex).Left;' End If;';' '- — 09/08/97 DEH Changed from VBX to OCX;' ImageObjectDC =
Me.ldImageObject(TempIndex).GetBιtmapDC;' ImageMaskDC = Me.ldImageMask(TempIndex).GetBιtmapDC;' 'Mask;' hbmsh = CreateSolιdBrush(RGB(255, 255, 255));' hgdiobj = CreatePolygonRgn(PolygonPoιnts(0), UBound(PolygonPoιnts) + 1, ALTERNATE);' retval = FιllRgn(ImageMaskDC, hgdiobj, hbmsh);' retval = Deleteθbject(hgdιobj);' retval = Deleteθbject(hbmsh),' 'Sprite;' hbmsh = CreateSohdBmsh(RGB(0, 0, 0));' hgdiobj = CreatePolygonRgn(PolygonPoints(0), UBound(PolygonPoints) + 1, ALTERNATE);' retval =
FιllRgn(ImageObjectDC, hgdiobj, hbmsh);' retval = Deleteθbject(hgdιobj);' retval = Deleteθbject(hbmsh);' Me.ldImageObject(TempIndex).ReleaseBιtmapDC;' Me.ldImageMask(TempIndex).ReleaseBitmapDC;',' End If;' If ObjectDιscnptιon(Me.Tag, TempIndex).PerspectiveCoordinates(0).Type = VERTICAL Then;' eft of object,' PolygonPomts(0).X = ObjectDιscπptιon(Me.Tag, TempIndex).PerspectiveCoordinates(0).X - OutLine.Size 1 2 '- me.ldIιnageObject(TemρIndex).Left;' PolygonPoιnts(O) Y = ObjectDιscπptιon(Me.Tag, Templndex) PerspectιveCoordmates(O) Y - OutLine Size / 2 '- me ldlmageObject(TempIndex) Top,' PolygonPomts(l) X = ObjectDιscπptιon(Me Tag, Templndex) PerspectιveCoordιnates(l) X - OutLme.Size 12 '- me ldImageObject(TempIndex).Left;' PolygonPoιnts(l) Y = ObjectDιscnptιon(Me.Tag, Templndex) PerspectιveCoordιnates(l) Y - OutLine.Size / 2 '- me ldImageObject(TempIndex).Top,' If ObjectDιscrιptιon(Me.Tag, TempIndex).PerspectiveCoordmates(0).X < ObjectDιscπρtιon(Me.Tag,
Templndex). PerspectιveCoordmates(l).X Then,' PolygonPomts(2).Y = ObjectDιscnptιon(Me.Tag, TempIndex).PerspectιveCoordmates(l).Y - OutLine Size 12 '- me.ldImageObject(TempIndex).Top,' PolygonPoιnts(2).X = ObjectDιscπptιon(Me.Tag, Templndex) PerspectiveCoordinates(0).X - OutLine. SizeV 2 '- me ldImageObject(TempIndex).Left,' PolygonPomts(3) Y = ObjectDιscnptιon(Me.Tag, TempIndex).PerspectiveCoordmates(0).Y - OutLme.Size / 2 '- me ldlmageObject(TempIndex) Top,'
PolygonPomts(3).X = ObjectDιscπptιon(Me Tag, Templndex) PerspectiveCoordmates(0).X - OutLine Size 12 '- me ldImageObject(Temp Index) Left;' Else,' PolygonPomts(2) Y = ObjectDιscπptιon(Me Tag, Templndex) PerspectιveCoordιnates(O) Y - OutLine.Size / 2 '- me ldImageObject(TempIndex).Top,' PolygonPoιnts(2) X = ObjectDιscπptιon(Me Tag, Templndex) PerspectιveCoordmates(l) X - OutLine Size 12 '- me.ldImageObject(TempIndex)Left;' PolygonPoιnts(3).Y = ObjectDιscπptιon(Me.Tag,
Templndex) PerspectιveCoordιnates(0).Y - OutLine.Size 1 2 '- me.ldImageObject(TempIndex).Top,' PolygonPomts(3) X = ObjectDιscπρtιon(Me.Tag, Templndex) PerspecιιveCoordιnates(0).X - OutLme.Size 12 '- me.ldImageObject(TempIndex).Left;' End If,',' '- — 09/08/97 DEH Changed from VBX to OCX;' ImageObjectDC = Me.ldImageObject(TempIndex).GetBιtmapDC;' ImageObjectDC = Me ldlmageMask(TempIndex) GetBitmapDC;' 'Mask;' hbmsh = CreateSohdBrush(RGB(255, 255, 255)),' hgdiobj = CreatePolygonRgn(PolygonPoints(0),
UBound(PolygonPomts) + 1, ALTERNATE);' retval = FιllRgn(ImageMaskDC, hgdiobj, hbmsh);' retval = Deleteθbject(hgdιobj),' retval = Deleteθbject(hbmsh);' 'Sprite;' hbmsh = CreateSohdBrush(RGB(0, 0, 0));' hgdiobj = CreatePolygonRgn(PolygonPomts(0), UBound(PolygonPomts) + 1, ALTERNATE);' retval = FιllRgn(ImageObjectDC, hgdiobj, hbmsh);' retval = Deleteθbject(hgdιobj),' retval = Deleteθbject(hbmsh);' Me.ldImageObject(TempIndex).ReleaseBιtmapDC;' Me.ldImageMask(TempIndex).ReleaseBιtmapDC;';' 'Right of object,' PolygonPoιnts(O) X = ObjectDιscπptιon(Me Tag, TemρIndex).PerspectιveCoordmates(3).X - OutLme.Size / 2 '- me.ldImageObject(TempIndex)Left;' PolygonPoιnts(0).Y = ObjectDιscnptιon(Me.Tag, Templndex) PerspectιveCoordrnates(3).Y - OutLine.Size 12 '- me.ldlmageObject(TempIndex) Top;' PolygonPoιnts(l).X = ObjectDιscπptιon(Me.Tag, Templndex). PerspectιveCoordιnates(2).X - OutLine Size 12 '- me.ldImageObject(TempIndex).Left;' PolygonPomts(l).Y = ObjectDιscnptιon(Me.Tag,
TempIndex).PerspectιveCoordmates(2).Y - OutLme.Size 12 '- me.ldlmageObject(TempIndex) Top,' If ObjectDιscnptιon(Me.Tag, TempIndex).PerspectιveCoordmates(2).X < ObjectDιscnptιon(Me.Tag, TempIndex).PerspectιveCoordmates(3).X Then;' PolygonPomts(2) Y = ObjectDιscnptιon(Me.Tag, Templndex) PerspectιveCoordmates(2).Y - OutLme.Size 12 '- me.ldImageObject(TempIndex).Top;' PolygonPoιnts(2) X = ObjectDιscπptιon(Me Tag, TempIndex).PerspectιveCoordιnates(3) X - OutLme.Size 12 '- me.ldImageObject(TempIndex).Left;' PolygonPomts(3) Y = ObjectDιscπptιon(Me Tag, TempIndex).PerspectιveCoordmates(3).Y - OutLme.Size 1 2 '- me.ldImageObject(TempIndex).Top,' PolygonPomts(3).X = ObjectDιscπptιon(Me.Tag, TempIndex).PersρectιveCoordmates(3).X - OutLine.Size 12 '- me.ldImageObject(TempIndex)Left,' Else,' PolygonPoιnts(2).Y = ObjectDιscnptιon(Me.Tag, Templndex). PerspectιveCoordιnates(3).Y - OutLine.Size 12 '- me.ldImageObject(TempIndex).Top;'
PolygonPoιnts(2).X = ObjectDιscπptιon(Me.Tag, TempIndex).PerspectιveCoordmates(2).X - OutLine.Size 12 '- me.ldImageObject(TempIndex).Left;' PolygonPoints(3) Y = ObjectDιscπρtιon(Me.Tag, Templndex). PerspectιveCoordιnates(3).Y - OutLme.Size 12 '- me.ldImageObject(TempIndex).Top;' PolygonPomts(3).X = ObjectDιscπptιon(Me.Tag, Templndex). PerspectιveCoordmates(3).X - OutLine.Size 12 '- me.ldImageObject(TempIndex).Left;' End If;';' '- — 09/08/97 DEH Changed from VBX to OCX;' ImageObjectDC =
Me ldImageObject(TempIndex).GetBιtmapDC;' ImageMaskDC = Me.ldImageMask(TempIndex).GetBιtmapDC;' 'Mask;' hbmsh = CreateSohdBrush(RGB(255, 255, 255));' hgdiobj = CreatePolygonRgn(PolygonPomts(0), UBound(PolygonPoιnts) + 1, ALTERNATE);' retval = FιllRgn(ImageMaskDC, hgdiobj, hbmsh);' retval = Deleteθbject(hgdιobj);' retval = Deleteθbject(hbmsh);' 'Sprite;' hbmsh = CreateSolidBrush(RGB(0, 0, 0));' hgdiobj = CreatePolygonRgn(PolygonPoints(0), UBound(PolygonPomts) + 1 , ALTERNATE);' retval =
FιllRgn(ImageObjectDC, hgdiobj, hbmsh);' retval = Deleteθbject(hgdιobj);' retval = Deleteθbject(hbrush);' Me.ldImageObject(TempIndex).ReleaseBιtmapDC;' Me.ldImageMask(TempIndex).ReleaseBιtmaρDC;',' End If;';' RecreateObject CurrentObj(Me.Tag), Me;' SelectObjects(Me) = CurrentObj(Me.Tag);' UnselectObject Me,' SelectObjects(Me) = CurrentObj(Me.Tag);'skιpιtnow:;' ImtiateScrollBars Me;' DoEvents;' hsbMam Change;' vsbMain Change;';';';' GetTheCursor = False;';' If PaintmgPattem = Tme And PamtrnglnProgress = Tme Then;' 'X =
MsgBox("Would you like to delete the pattern object", vbYesNo, "Delete");' 'If X = vbYes Then;' SetZOrder CStr(ParntPatternlndex), Me.Tag;' UnloadObject PaintPatternlndex, Me;' mnuUndo.Enabled = False;' mnuUndo.Caption = LoadResStnng(5011) ' "&Undo";' 'End If;' End If;' ' CurrentObj(Me.Tag) = Templndex;'
PamtinglnProgress = False;' PaintmgPattem = False;' ShowAnySteips;' 'Set ZOrder;' Me.hsbMam.Zorder 0: Me.vsbMain.Zorder 0: Me.cmdScrollComer.Zorder 0;' frmMDI.MousePomter = 0;';'End Sub;Pnvate Sub mnuEyeOpacιty_Chck();CancelPendmgMode; frmColorPicker.pickerMode = vaCPEyeOpacity; frmColorPicker.Show;' OperationMode = "EyedropperOpacity";' frmMDI.ActiveForm.Mouselcon = frmCursors.imgEyeDropper.Picture;' frmMDI.ActiveForm.MousePomter = 99;' Unload frmCursors;End Sub;Pπvate Sub mnuEyePattem_Clιck();CancelPendmgMode; frmColorPicker.pickerMode = vaCPEyePattern; frmColorPicker.Caption = LoadResStπng(3998); frmColorPicker.Show;;' OperationMode = "EyedropperPattem";' frmMDI.ActiveForm.Mouselcon = frmCursors.imgEyeDropper.Picture;' frmMDI.ActiveForm.MousePointer = 99;' Unload frmCursors;End Sub;'Prιvate Sub mnuFF2_Chck();'On Error Resume Next;' frmMDI.ActiveForm.CancelPendmgMode;' EZTag = EZ ANY;' EZVertιcalObj;'End Sub;Pπvate Sub mnuFFFιt_Chck();AutoScaleType = EZ_ANY;fnnMDI.ActιveForm.CancelPendιngMode;frmMDI.ActiveForm.MakeRegon VA_RECTANGLE 'Initiate a rectangle;End Sub;Pπvate Sub mnuFh_Clιck(),AutoScaleType =
EZ_NON;fιmMDI.ActιveForm.CancelPendmgMode;frmMDI.ActιveForm.MakeRegon VAJRECTANGLE 'Initiate a rectangle;;End Sub;Pnvate Sub mnuFιlel_Chck();Dιm NewForm As New FrmMain; On Error Resume Next; If ChildForms > 0 Then frmMDI.ActiveForm.CancelPendmgMode; OpenMode = "OpenFromMenu", MenuProjectName = mnuFilel .Caption; NewForm. Show;End Sub;Pπvate Sub mnuFιle2_Clιck();Dιm NewForm As New FrmMain, On
Error Resume Next; If ChildForms > 0 Then frmMDI ActiveForm CancelPendmgMode; OpenMode = "OpenFromMenu"; MenuProjectName = mnuFιle2.Captιon; NewForm.Show;End Sub;Pπvate Sub mnuFιle3_Chck();Dιm NewForm As New FrmMain; On Error Resume Next; If ChildForms > 0 Then frmMDI.ActιveForm.CancelPendιngMode; OpenMode = "OpenFromMenu"; MenuProjectName = mnuFιle3. Caption, NewForm.Show;End Sub;Pπvate Sub mnuFιle4_Chck();Dιm NewForm As New FrmMain; On Error Resume Next, If
ChildForms > 0 Then frmMDI.ActiveForm.CancelPendmgMode; OpenMode = "OpenFromMenu", MenuProjectName = mnuFιle4. Caption; NewForm. Show;End Sub;'Pπvate Sub MnuFιllGroup_Chck(),'On Error Resume Next;'frmMDI.ActιveForm.CancelPendmgMode;';'ApplyPatterToGroup;'FormState(Me.Tag).Dιrty = True;'End Sub,'Pπvate Sub mnuFιllObjectPattern_Chck(),';' HideAnySteips,' PamtPatternlndex = CurrentObj(Me Tag),' PaintmgPattem = Tme;' frmHole. Caption = va cap Pamt,' frmHole. fraShape. Caption = va cap ShapeOfBmsh,' frmHole.Show l ;';'End Sub;Pπvate Sub mnufind_Chck();0n Error Resume Next;'If Not CDState Then frmMDI. vaBtnl Click 18;frmMDI.Imagel_Clιck;End Sub;'Pπvate Sub MnuForce_Clιck();'On Error Resume Next;'frmMDI.ActιveForm.CancelPendιngMode;'PasteFromOurChpboard 2;'End Sub;'Pπvate Sub MnuForce2_Clιck();'PasteFromOurChpboard 2;'End Sub;'Pπvate Sub mnuForF_Chck();'On Error Resume Next,' frmMDI. ActiveForm.CancelPendingMode;' EZTag = EZ ANY;' EZHorzObj;'End Sub;Pnvate Sub mnuFw_Chck();AutoScaleType =
EZ_ANY_PROP2;fιmMDLActιveForm.CancelPendιngMode;frmMDI ActιveForm.MakeRegon VA_RECTANGLE 'Initiate a rectangle;End Sub;Pnvate Sub mnuGlue_Chck(); Dim X As Boolean;On Error Resume Next;CancelPendmgMode; If ObjectZorderl . Count < 1 Then; DisplayErrorMessage VA_NOTSELECTED, vblnformation, VaTitle; Exit Sub; End If; If ObjectZorderl .Selectedlndex <> 0 Then; If vaPιcture(ObjectZorderl . Selectedlndex). SelectedObject Then; 'X = SaveUndo(ObjectZorderl. Selectedlndex, va_cap_Undo_Glue); X = GlueObject(ObjectZorderl. Selectedlndex, Me); Else; DisplayErrorMessage VA NOTSELECTED, vblnformation, VaTitle; End If; Else; DisplayErrorMessage VA NOTSELECTED, vblnformation, VaTitle; End IftEnd Sub;Pπvate Sub mnuιndex2_Clιck();Dιm lOK As Integer;Dιm dwData As Long;On Error Resume Next; If Check_Resources(MιnResourceReq + 9, False) Then; Dim I As Integer; For I = 1 To
3; If StπpShowιng(ι) = Tme Then; DBForm(ι).WmdowState = 1 ; End If; Next I; dwData& = 0; lOK = RunWιnMacro(Me.hWnd, helpfile, HELP FINDER, ByVal dwData&); Else; MsgBox VA_CANT & Chr(13) & VA_CANT1 & Chr(13) & VA_CANT2 & Chr(13) & VA CANT3, vblnformation, VaTitle; End If,;End Sub;Pπvate Sub mnuManual2_Chck();Dim lOK As Integer;Dιm dwData As Long, On Error Resume Next; If Check_Resources(MιnResourceReq + 9, False) Then; Dim l As Integer, For l = 1 To 3; If StnpShowmg(ι) = Tme Then; DBForm(ι).WmdowState = 1; End If; Next 1; dwData& = 0; lOK = RunWιnMacro(Me hWnd, helpfile, HELP_TOPIC, dwData&), Else; MsgBox VA_CANT & Chr(13) & VA CANT1 & Chr(13) & VA_CANT2 & Chr(13) & VA CANT3, vblnformation, VaTitle; End IftEnd Sub;Publιc Sub mnuMιrrorHorz_Clιck();'On Error Resume Next,'frmMDI.ActιveForm.CancelPendιngMode;'DoEffectToObject 2 'flip hoπz (reverse);Dιm retval As Boolean; If ObjectZorderl. Count < 1 Then; DisplayErrorMessage VA_NOTSELECTED, vblnformation, VaTitle,
Exit Sub; End If; If ObjectZorderl . Selectedlndex <> 0 Then; If vaPιcture(ObjectZorderl. Selectedlndex). SelectedObject Then; CancelPendmgMode; Screen.MousePomter = vbHourglass; retval = Me. SaveUndo(Me. ObjectZorderl. Selectedlndex, va_cap_Undo_Flιp_Honz); CancelPendmgMode; flipHonzontal; Else; DisplayErrorMessage VA NOTSELECTED, vblnformation, VaTitle; End If; Else; DisplayErrorMessage VA NOTSELECTED, vblnformation, VaTitle; End If;End Sub;Pπvate Sub mnuMirrorVert_Chck();CancelPendmgMode; If ObjectZorderl. Count < 1 Then, DisplayErrorMessage VA_NOTSELECTED, vblnformation, VaTitle; Exit Sub; End If; If ObjectZorderl. Selectedlndex <> 0 Then; If vaPιcture(ObjectZorderl. Selectedlndex). SelectedObject Then; CancelPendmgMode; Screen.MousePomter = vbHourglass, CancelPendmgMode; flip Vertical; Screen.MousePomter = vbDefault; Else; DisplayErrorMessage VA_NOTSELECTED, vblnformation, VaTitle; End If, Else; DisplayEnorMessage VA NOTSELECTED, vblnformation, VaTitle; End If;End Sub;Pπvate Sub mnuNew_Chck();On Error Resume Next;fπτ_MDI.ActιveForm.CancelPendιngMode;frrnMDI.mnuNew_Clιck;End Sub;'Pπvate Sub mnuNonPPsca_Click();'On Error Resume Next;' frmMDI.ActiveForm. CancelPendmgMode;' EZTag = EZ PAT NO;' EZHorzObj;'End Sub;Pπvate Sub mnuNonSc_Chck();AutoScaleType = EZ_PAT_NO;__mMDI.ActιveFoπn.CancelPendιngMode;frmMDI.ActιveForm.MakeRegon VA_POLYGON 'Initiate a polygon;End Sub;'Pnvate Sub mnuNonSc2_Chck();'On Error Resume Next;' frmMDI.ActiveForm.CancelPendingMode;' EZTag = EZ PAT NO;' EZVertιcalObj;'End Sub;Pπvate Sub mnuObjectLιst_Clιck(); frmObjectList.Show l;End Sub;Pπvate Sub MnuOρen_Chck();On Error Resume Next;fimMDI.ActιveForm.CancelPendmgMode;frmMDI.MnuOpen_Clιck;End Sub;Prιvate Sub MnuOpenChp_Clιck();On Enor Resume
Next;fimMDI.ActιveFoιm.CancelPendιngMode;frmMDI.MnuMOpenC_Clιck;End Sub;Pnvate Sub mnuOpenInternetDB_Clιck();On Error Resume Next; frmMDI.ActiveForm. CancelPendmgMode; frmlntemetDB.WindowState = 0; 'frmIntemetDB.Show;End Sub;'Pπvate Sub MnuPaιntGroup_Click();'On Error Resume Next;'frmMDI.ActιveForm.CancelPendmgMode;'ApρlyColorToGroup;'FormState(Me.Tag).Drrty = True;'End Sub;Pubhc Sub mnuPaste_Chck();On Error Resume Next; fimMDI.ActiveForm.CancelPendingMode; If
Check_Resources(MιnResourceReq, False) Then; PasteFromOurChpboard 1, 0, 0, Me; Else; DisplayErrorMessage VA_ CANT & Chr(13) & VA_CANT1 & Chr(13) & VA_CANT2 & Chr(13) & VA_CANT3, vblnformation, VaTitle; End If;End Sub;'Publιc Sub mnuPerspectιve_Click();'Dιm X As Integer;' On Error Resume Next;' frmMDLActiveForm.CancelPendmgMode;' 'If CurrentObj(frmMDI.ActιveForm.Tag) <> 0 Then;' HideAnySteips;';' If CurrentObj(frmMDI.ActιveForm.Tag) <> 0 Then;' If ObjectDιscπρtion(frmMDI.ActιveForm.Tag, CurrentObj(frmMDI.ActιveForm.Tag)) PerspectιveCoordmates(O) Type > 0 Then;' X =
MsgBox(va_prompt_LosePerspectιveDrop, vbYesNo, VaTitle),' If X = vbNo Then;' ShowAnySteips,' Exit Sub;' End If;' End If,' End If;',' frmDistortOpt Show 1,' 'Else;' ' DisplayEnorMessage VA_NOTSELECTED, vblnformation, VaTitle;' 'End If;' End Sub;' Private Sub rnnuPolygon_Chck(),' ConteolOperation = 1 'CNTR-mouse,' OperationMode = "DrawPolygon",' ReDim PolygonPomts(O);' Compose Me,' InvertLine Me;' ChpTheCursor Me,' ' frmMDI.Mouselcon = picIconPencil.Picture 'LoadPιcture("C-\VB4 6\ICONS\WRITING\Pencιl02 ico"),' frmMDI.MousePomter = vbUpArrow;' ImtiateScrollBars Me;','End Sub,'Pπvate Sub mnuPPscaled_Chck();'On Error Resume Next;' frmMDI.ActiveForm. CancelPendmgMode;' EZTag = EZ PAT;' EZHorzObj,'End Sub;'Pnvate Sub mnuPresen_Chck();'On Error Resume Next;' Shell ApphcationPath & "\startup.exe", 1 ,'End Sub;Pubhc Sub mnuPrmt_Chck(); Dim temp As Variant, CancelPendmgMode, HideAnySteips; Screen.MousePomter = vbHourglass,
Compose VA_COMPOSE_ALL; SendToFront; picScreen.ZOrder; Screen MousePomter = vbDefault, frmPrintPre view. Show 1, ShowAnySteips, End Sub,Pπvate Sub mnuProgram_Chck();On Enor Resume Next,'
09/10/97 DEH Changed from Menu driven options to a tabbed;' dialog model a la property sheets. This is the only place that I have;' made changes As soon as Bob has finalized this form, we can;' strip out the old menu items ,CancelPendmgMode;HιdeAnyStnps;frmOptιonsDιalog.Show l;ShowAnyStπps;End Sub;'Pπvate Sub
MnuProject_Clιck();'MenuLeft Checked = False;' MenuCenter. Checked = False;' MenuRight.Checked = False;' Select Case Pattern_alιgnment;' Case 0;' MenuLeft. Checked = Tme;' Case 1;' MenuCenter. Checked = Tme;' Case 2;' MenuRight Checked = Tme;' Case Else;' End Select;'End Sub;'Pπvate Sub mnuPscDoor2_Clιck();'On Enor Resume Next;' frmMDI. ActiveFoπn.CancelPendmgMode;' EZTag = EZ PAT,' EZVertιcalObj;'End Sub;Pnvate Sub mnuquιck2_Chck();MsgBox "Currently Under Construction" ;'frmAvι.Show 1 ;'ShowAnyStπps;End Sub;Pπvate Sub mnuQuιckPπnt_Clιck(); Screen.MousePomter = 11; frmPπntPreview Visible = False; Load frmPnntPreview; fimPnntPreview.ckCenterHorizontal. Value = vbChecked; frmPrmtPreview.ckCenterVertical.Value = vbChecked, frmPrintPreview.PπntMe; DoEvents; Unload frmPnntPreview; Screen.MousePomter = 0;' On Error Resume Next;',' Compose Me;' Me.ldCompositionBuffer.PrintBitmap = 0 '**** This needs to be changed. See My Notes;' ldCompositionBuffer.Zorder 1 ;End Sub;'Pπvate Sub mnuReactivate_Click();'Dim l As Long;'On Error Resume Next;'For l = 1 To VaCollection. Count - 1;' VaCollectιon(ι).status = True;'Next ι;'MsgBox VA_ALL VIDEO, vblnformation, VaTιtle;'End Sub;'Pπvate Sub mnuRemoveLastLιne_Clιck();' On Error Resume Next,' Dim ι;',' If UBound(PolygonPomts) > 1 Then;' ReDim Preserve PolygonPomts(0 To UBound(PolygonPomts) - 2);' fimMDI.ActiveForm.ldImageObject(CurrentObj(frmMDI.ActiveForm.Tag)).ForceRepamt ' 09/04/97 DEH Changed from VBX to OCX;' RectTopX = Polygoι_Poιnts(UBound(PolygonPoιnts)).X * Screen.TwipsPerPixelX;'
RectTopY = Po_ygoι_Pomts(UBound(PolygonPoιnts)) Y * Screen.TwipsPerPixelY,' PreviousStopX = 0;' PreviousStopY = 0;' For I = 0 To UBound(PolygonPomts) - 1 ,' FromHere fιmMDI.ActιveFoιm.ldImageObject(CurrentObj(frmMDI.ActιveFθ-m.Tag)).hDC, PolygonPomts(ι) X, PolygonPoιnts(ι).Y;' ToThere frrnMDI.ActiveForm.ldImageObject(CurrentObj(frmMDI ActiveForm Tag)).hDC, PolygonPomts(ι + 1).X, PolygonPoιnts(ι + 1).Y;' Next ι,' End If,';'End Sub,'Pnvate Sub mnuReset_Chck();',' CancelOperation,' 'ImtiateScrollBars;',' 'frmMDI.ActiveForm ldCompositionBuffer.Bitmap = frmMDI.ActiveForm.ldBackGround.Bitmap;' 'frmMDI.ActiveForm.ldBackGround.ZOrder 0;' 'changed this around,' 'SelectObjects(me) = CurrentObj(frmMDI.ActιveForm.Tag),';'End Sub;'Publιc Sub mnuReSize_Chck(),' On Enor Resume Next;' Dim X;';' If CunentObj(frmMDI ActiveForm. Tag) <> 0 Then,' frmMDI.ActiveForm.CancelPendingMode;';' X = SetUndoObj(fπ__MDI.ActιveForm,
CurrentObj(frmMDI.ActιveForm.Tag), "Undo Last Resize"),' 'PlayFile ("resizel.wav"),' OperationMode = "Resizing";' NotResizingFirstTime = False,' frmMDI.ActiveForm.Resizmg;' Else,' DisplayErrorMessage VA_NOTSELECTED, vblnformation, VaTitle;' End If;';' 'X = SetUndoObj(frmMDI.ActιveForm, CurrentObj(frmMDI.ActιveForm.Tag), "Undo Last Resize");';' 'CancelPendmgMode,' 'OperationMode = "Resizing",' 'NotResizingFirstTime = False,' 'Resιzmg;'End Sub;'Pnvate Sub mnuResιzeMode_Chck();'If GeneralResizeMode =
RESIZE RESAMPLE Then,' GeneralResizeMode = RESIZE NORMAL,' mnuResizeMode.Checked = False,' MsgBox VA_REMODE2, vblnformation, VaTιtle;'Else;' GeneralResizeMode = RESIZE_RESAMPLE,' mnuResizeMode.Checked = Tme;' MsgBox VA REMODE1, vblnformation, VaTιtle;'End Ift'End Sub;Prιvate Sub mnuResrzePatternTo_Chck(); Dim perc As Variant; Dim vajprompt ScaleValue As Strmg; Dim va cap EnterObjectScale As Steing; Dim va_msg_EnterANumber As Steing; va msg EnterANumber =
LoadResStnng(6377) ' "You must enter a number"; vajprompt Scale Value = LoadResStemg(6205) ' "If a pattern is applied to this object, this scale value is used "; va_cap_EnterObjectScale = LoadResStπng(6046) '
"Enter object scale. ";'On Enor Resume Next;If ObjectZorderl. Count < 1 Then; DisplayErrorMessage VAJMOTSELECTED, vblnformation, VaTitle; Exit Sub;End If;If ObjectZorderl. Selectedlndex o 0 Then; If vaPιcture(ObjectZorderl .Selectedlndex). SelectedObject Then;doagaιn: ; perc = InputBox(va_prompt_Scale Value, va_cap_EnterObjectScale, vaPicture(ObjectZorderl.Selectedlndex).ResizePatPer); If perc = "" Then Exit Sub; If IsNumeπc(perc) Then; vaPιcture(ObjectZorderl. Selectedlndex). ResizePatPer = perc; Else; MsgBox va_msg_EnterANumber; GoTo doagain; End If; Else; DisplayErrorMessage VA_NOTSELECTED, vblnformation, VaTitle; End IftElse; DisplayEnorMessage VA NOTSELECTED, vblnformation, VaTιtle;End If; 'ResizePatternPercent; 'm_ιFιll_Chck;;End Sub;Pπvate Sub mnuResιzeProject_Click(); frmNew Show, frmNew.lbTitle.Caption = VA_RESIZEPROJECT; frmNew.chkProportional.Visible = Tme; frmNew. optWidth. Visible = Tme; frmNew. optHeight. Visible = Tme; frmNew.Caption = va_cap_ResιzeProject; frmNew.edHeight.Text = Format((frmMDI.ActιveForm.ldScreen.BιtmapHeιght * Screen.TwipsPerPixelY) / 1440, "##.##"); frmNew.edWidth.Text = Format((frmMDI.ActιveForm.ldScreen.Bιtmap Width * Screen.TwipsPerPixelX) / 1440, "##.##"); frmNew.mnuPercentage.Visible = Tme; frmNew.edWidth.Enabled = False; frmNew.SpinWidth.Enabled = False; frmNew.HelpContextlD = 294;End Sub;Publιc Sub mnuRotate_Chck(); If frmMDI.ActiveForm. ObjectZorderl . Count < 1 Then; MsgBox va_Warmng_NoSelected; Exit Sub; End If; CancelPendmgMode; If pShadowOps Or pEffectsActive Then; MsgBox va_Warnιng_CloseEffect; Exit Sub; End If; gpsEffects = va Rotation; frmEffects. Show;End Sub;Pπvate Sub mnuSaveAs_Chck(); On Error Resume Next; Dun temp As Variant; HideAnySteips; frmMDI.ActiveForm.CancelPendmgMode; Screen.MousePomter = vbHourglass; ' get current selected object; temp = IsObjectSelected(frmMDI. ActiveForm), ' send all objects to the background, Compose VA_COMPOSE_LOAD_NEW, ' send background to bottom of z-order,' frmMDI ActiveForm.ldCompositionBuffer.Zorder 1 ; Screen.MousePomter = vbDefault, ' ran FileSave box, frmFileSave.Show 1; SendToFront, ' if an object was selected then reselect the selected object;' If temp <> False Then;' SelectObjects(frmMDI.ActiveForm) = temp;' End If; ShowAnyStnps;End Sub;Pπvate Sub mnuScDoorS_Chck();AutoScaleType =
EZ_NON;frmMDI.ActiveForm.CancelPendmgMode;frmMDI.ActiveForm.MakeRegon VA POLYGON 'Initiate a polygon;End Sub;Prιvate Sub mnuscnιt_Clιck();frmAvι Show l;ShowAnyStπps;'Dιm lOK As Integer,'Dιm place As Long,';';'On Error Resume Next,' If Check_Resources(MmResourceReq + 9, False) Then;' Dim I As Integer,' For I = 1 To 3;' If StπpShowιng(ι) = Tme Then,' DBForm(ι).WmdowState = 1 ;' End If;' Next ι,' place& = 18;' lOK =
RunWιnMacro(Me.hWnd, helpfile, HELP PLACE, place&);' Else;' MsgBox VA_CANT & Chr(13) & VA_CANT1 & Chr(13) & VA_CANT2 & Chr(13) & VA_CANT3, vblnformation, VaTitle;' End IftEnd Sub;Pπvate Sub mnuSelect_Clιck(); On Enor GoTo enSelectTwam; frmMDI.menusource Click; Exit Sub;errSelectTwaιn:; gMsg = va Enor Error & Ste(Err.Number) & va Enor WasGeneratedBy _; & Err.Source & Chr(13) & En.Descπption & Chr(13) & " (mnuSelect_Chck)"; DisplayEnorMessage gMsg, vbCritical, VaTιtle;End Sub;'Prιvate Sub mnuSend_Chck(),';' Compose Me;' ImtiateScrollBars Me;' OperationMode = "Testing" ;'End Sub;Pπvate Sub MnuSetupl_Chck();On Enor Resume Next; frmMDI.ActiveForm.CancelPendmgMode; HideAnySteips; fimPrintPreview.CommonDialogl .ShowPrinter; Unload frmPnntPreview; ShowAnyStπps;End Sub;Pubhc Sub mnuShadows_Clιck();CancelPendmgMode; If pShadowOps Or pEffectsActive Then; MsgBox va_Warnmg_CloseEffect; Exit Sub; End If; 'If frmMDI.ActiveForm.ObjectZorderl .Count = 0 Then; If
ObjectZorderl. Count < 1 Then; DisplayErrorMessage VA NOTSELECTED, vblnformation, VaTitle; Exit Sub; End If; If ObjectZorderl . Selectedlndex = 0 Then, DisplayEnorMessage VAJSfOTSELECTED, vblnformation, VaTitle; Exit Sub; End If; If Not vaPιcture(ObjectZorderl . Selectedlndex). SelectedObject Then; DisplayEnorMessage VA NOTSELECTED, vblnformation, VaTitle; Exit Sub; End If; If fπnMDI.ActιveForm.vaPιcture(frmMDI.ActιveForm. ObjectZorderl. Selectedlndex). IsShadow Then; MsgBox va cap AlreadyShadow; Exit Sub; End If; pShadowOps = Tme; Create VAShadow; DoEvents; gpsEffects = va SkewHorz + va Bnghtness; frmEffects. Show;'On Error Resume Next;' frmMDI.ActiveForm. CancelPendmgMode;' If CunentObj(frmMDI.ActιveForm.Tag) = 0 Then;' MsgBox VAJNTOTSELECTED, vblnformation, VaTitle;' Exit Sub;' End If;' If Check_Resources(MinResourceReq, False) Then;' Dim I As Integer;' For 1 = 1 To 3 'This duplication has a reason, leave alone. Robert Ahle;' If Stπpθpened(ι) =
Tme Then;' DBForm(ι).Enabled = False,' End If;' If StπpShowιng(ι) = Tme Then,' DBForm(ι).Hιde,' End If,' Next ι,' If Not ApplyShadow(CurrentObj(fπ_ιMDI.ActιveForm.Tag), Me) Then;' DisplayErrorMessage VA NOSHADOW, vblnformation, VaTitle;' End If;' For I = 1 To 3 'This duplication has a reason, leave alone. Robert Ahle;' If Stπpθpened(ι) = Tme Then;' DBForm(ι). Enabled = Tme;' End If;' If StnpShowmg(ι) = Tme Then,' DBForm(ι).Show;' End If;' Next ι;' Else,' DisplayEnorMessage VA CANT & Chr(13) & VA_CANT1 & Chr(13) & VA_CANT2 & Chr(13) & VA CANT3, vblnformation, VaTitle,' End If;' Screen.MousePointer = vbDefault;End SubjPubhc Sub MnuSharp_Clιck(); If vaPιcture(ObjectZorderl.SelectedIndex).IsShadow Then; Dim msgNotSupported As Steing; msgNotSupported = LoadResStπng(6896) ' "The effect you have selected is not supported for shadows."; MsgBox msgNotSupported, Exit Sub; End If; If frmMDI.ActiveForm ObjectZorderl Count < 1 Then; DisplayErrorMessage VA_NOTSELECTED, vblnformation, VaTitle, Exit Sub; End If; If
ObjectZorderl. Selectedlndex = 0 Then, DisplayErrorMessage VA NOTSELECTED, vblnformation, VaTitle, Exit Sub; End If, If Not vaPιcture(ObjectZorderl. Selectedlndex). SelectedObject Then, DisplayErrorMessage VA NOTSELECTED, vblnformation, VaTitle; Exit Sub; End IftCancelPendmgMode; frmColorPicker pickerMode = vaCPPreview; pDropperActive = Tme; frmColorPicker.Show;' Dim X;' On Error Resume Next;' frmMDI.ActiveForm CancelPendmgMode;';' If CurrentObj(frmMDI.ActιveForm.Tag) <> 0 Then,' X =
SetUndoObj(frmMDI.ActιveForm, CunentObj(frmMDI.ActιveForm Tag), "Undo Last Pamt");' HideAnySteips,' frmColor.Show 1;' ShowAnySteips;' Else;' DisplayErrorMessage VA NOTSELECTED, vblnformation, VaTitle;' End If; 'X = SetUndoObj(frmMDI.ActiveForm, CunentObj(frmMDI.ActιveFoιm.Tag), "Undo Last Paint"); 'If CurrentObj(Me.Tag) <> 0 Then; ' frmColor.Show 1; 'Else; ' MsgBox VA NOTSELECTED, vblnformation, VaTitle; 'End IftEnd Sub;Pπvate Sub mnuShoρ_Chck(); 'frmShopList.Show; frmShopList.loadObjects Me;End Sub;'Pπvate
Sub mnuShowBar_Clιck();'On Error Resume Next;'If mnuShowBar Checked = Tme Then;' mnuShowBar Checked = False;' frmMDI.Pιcture3. Visible = False;' frmMDI.Pιcture2 Visible = True;'Else;' mnuShowBar.Checked = Tme;' frmMDI.Pιcture3.Visible = True;'End Ift'End Sub;'Pπvate Sub MnuShowSιze_Chck();'Dιm ImageH As Integer;'Dιm ImageW As Integer;'Dιm va msg NoTapeMeasure As Stemg;';'va_msg_NoTapeMeasure = LoadResStnng(6378) ' — - "Tape measure has not been used m this project.";';',';' If CunentObj(Me.Tag) <> 0 Then;' If
FormState(Me.Tag).DoorSιzeH <> 0 Then;' ImageH = Me.ldImageObject(CurrentObj(Me.Tag)).Heιght - (OutLine.Size);' ImageW = Me.ldImageObject(CunentObj(Me.Tag)).Wιdth - (OutLme.Size);' 'msgbox CSng(ImageH) & Chr(13) & CSng(FormState(Me.Tag).DoorSιzeH) & Chr(13) &;' 'msgbox CSng(ImageW) & Chr(13) & CSng(FormState(Me.Tag).DoorSιzeH) & Chr(13) &;' ImageH = ((CSng(ImageH) / CSng(FormState(Me.Tag).DoorSιzeH)) * 84);' ImageW = ((CSng(ImageW) / CSng(FormState(Me.Tag).DoorSιzeH))
* 84);' MsgBox VAHEIGTH & ImageH & VAINCH & Chr(13) & VA WIDTH & ImageW & VAINCH & Chr(13) & VAUNITED & ImageH + ImageW & Chr(13) & Chr(13) & VADISCLAIMER;' Else,' MsgBox va msg NoTapeMeasure;' End If;' Else;' DisplayErrorMessage VA NOTSELECTED, vblnformation, VaTitle;' End If;';'End Sub;Pπvate Sub mnuSkew_Clιck(); If frmMDI.ActiveForm.ObjectZorderl. Count < 1 Then; DisplayErrorMessage VA_NOTSELECTED, vblnformation, VaTitle; Exit Sub; End If; If
ObjectZorderl. Selectedlndex = 0 Then; DisplayEnorMessage VA NOTSELECTED, vblnformation, VaTitle; Exit Sub; End If, If Not vaPιcture(ObjectZorderl. Selectedlndex). SelectedObject Then; DisplayErrorMessage VA_NOTSELECTED, vblnformation, VaTitle; Exit Sub; End If; CancelPendmgMode; If pShadowOps Or pEffectsActive Then; MsgBox va Wammg CloseEffect; Exit Sub; End If, If Not vaPιcture(ObjectZorderl. Selectedlndex). IsShadow Then gpsEffects = va_SkewHorz + va SkewVert Else gpsEffects = va Bπgh ess; frmEffects Show;End Sub;Pubhc Sub mnuSOB_Chck(), On Enor Resume Next; Dim X; X = InputBox(va_prompt_EnterYourPassword), If X = "monkey" Then; If CurrentObj(frmMDI.ActιveForm.Tag) <> 0 Then; 'MUST UNCOMMENT FOR PRODUCTION frmCDDatabase.cmdGoto.Visible = False; 'MUST UNCOMMENT FOR PRODUCTION frmCDDatabase.Command5.Visible = False; UST UNCOMMENT FOR PRODUCTION frmCDDatabase.Datal .Visible = False; 'MUST UNCOMMENT FOR PRODUCTION frmCDDatabase.cmdswitch.Visible = Tme; 'MUST UNCOMMENT FOR PRODUCTION frmCDDatabase.chkMasked.Enabled = Tme; MUST UNCOMMENT FOR PRODUCTION frmCDDatabase.cmdSave. Visible = Tme; If ObjectDιscrιptιon(frmMDI.ActιveForm.Tag, Cu_τentObj(frmMDI.ActιveForm.Tag)).ID = 0 Then, 'MUST UNCOMMENT FOR PRODUCTION frmCDDatabase.Datal .Recordset.AddNew; Else, UST UNCOMMENT FOR PRODUCTION frmCDDatabase.Datal. Recordset.Index = "ID" ' Define current index.; 'MUST UNCOMMENT FOR PRODUCTION frmCDDatabase.Datal .Recordset.Seek "=", ObjectDιscriptιon( frmMDI.ActiveForm. Tag, CunentObj(frmMDI.ActιveForm.Tag)).ID ' Seek record ; 'MUST UNCOMMENT FOR PRODUCTION frmCDDatabase.Datal. Recordset.Edit; End If; MUST UNCOMMENT FOR PRODUCTION frmCDDatabase. Label 1.Text = ObjectDιscπptιon(fιmMDI.ActιveForm.Tag,
CunentObj(frπ_MDI.ActιveForm.Tag)).Name; 'MUST UNCOMMENT FOR PRODUCTION frmCDDatabase.ldMask.Bitmap = fπnMDI.ActιveForm.ldImageMask(CunentObj(frπιMDI.ActιveFoιm.Tag)).Bιtmap; MUST UNCOMMENT FOR PRODUCTION frmCDDatabase.ldMask.ForceRepaιnt '- — 09/04/97 DEH Changed from VBX to OCX; 'MUST UNCOMMENT FOR PRODUCTION frmCDDatabase.ldSprite.Bitmap = frmMDI.ldObjectBuffer.Bitmap; 'MUST
UNCOMMENT FOR PRODUCTION frmCDDatabase.ldSpπte.ForceRepaint '- — 09/04/97 DEH Changed from VBX to OCX; 'MUST UNCOMMENT FOR PRODUCTION frmCDDatabase.Show; Else; DisplayEnorMessage VA_NOTSELECTED, vblnformation, VaTitle; End If; Elself X <> "" Then; DisplayErrorMessage va_Warnιngl & Chr(lO) & va_Wammg2; End; End If;;End Sub;Pnvate Sub mnuTιleHoπzontal_Chck(); frmMDI.Anange vbTιleHonzontal;End Sub;Pnvate Sub mnuTιleVertιcal_Clιck(); frmMDI.Arrange vbTιleVertιcal;End Sub;'Pnvate
Sub MnuTιmeDay_Chck();'On Enor Resume Next;'If ChildForms < 20 Then;' frmMDI.ActiveForm. CancelPendmgMode;';' If Check_Resources(MinResourceReq + 9, False) Then;' HideAnySteips;' frmTime.Show 1;' ShowAnySteips;' FormState(Me.Tag).Dιrty = Tme;' Else;' DisplayErrorMessage VA_CANT & Chr(13) & VA_CANT1 & Chr(13) & VA_CANT2 & Chr(13) & VA_CANT3, vblnformation, VaTitle;' End Ift'Else,' DisplayEnorMessage VA_CLOSEWINDOW, vblnformation, VaTιtle;'End Ift'End Sub;'Pπvate Sub mnuTsource_Clιck();'On Enor Resume Next;' frmMDI.ActiveForm.CancelPendmgMode;' GetTwamSource;'End Sub;Prιvate Sub mnuUndo_Chck(); Dim X; If pShadowOps Or pEffectsActive Then; MsgBox va_Warmng_CloseEffect; Exit Sub; End If; On Error Resume Next; CancelPendmgMode; X = LoadUndo(UndoObjectIndex);End Sub;Pnvate Sub mnuUserDBa_Chck();On Error Resume Next;fιmMDI.bt__DB_Click 3;End Sub;Pπvate Sub mnuVιdeoHow_Chck();MsgBox "Currently Under Construction", 'Dim lOK As Integer, 'Dim place As Long,',', 'On Error Resume Next,' If
Check_Resources(MιnResourceReq + 9, False) Then,' Dim l As Integer,' For 1 = 1 To 3,' If SteιpShowιng(ι) = Tme Then,' DBForm(ι) WindowState = 1,' End If,' Next ι,' PlayFile DBPath & "HowTo wav",' place& = 1027,' lOK = RunWιnMacro(Me hWnd, helpfile, HELP_PLACE, place&),' Else,' DisplayErrorMessage VA_CANT & Chr(13) & VA_CANT1 & Chr(13) & VA_CANT2 & Chr(13) & VA CANT3, vblnformation, VaTitle,' End If,End Sub/Private
Sub mnuVoιce_Chck(),' Dim X As Integer,',' If TalkToMe Then,' mnuVoice Checked = False,' TalkToMe = False,' X = WπtePπvateProfileStπng(ByVal "Options", ByVal "Voice", ByVal "off, ByVal App Path & "WASYS INI"),' Else,' mnuVoice Checked = Tme,' TalkToMe = Tme,' X = WπtePπvateProfileStπng(ByVal "Options", ByVal "Voice", ByVal "on", ByVal App Path & "WASYS INI"),' End If/End Sub,Pnvate Sub mnuWcopy_Chck(),On Enor Resume Next, frmMDI ActiveForm CancelPendmgMode, CopyToWιndows,End Sub,Pπvate Sub mnuWιnPaste_Chck(),On Enor Resume Next, frmMDI ActiveForm CancelPendmgMode, If Check_Resources(MιnResourceReq, False) Then, PasteFrom Windows, Else, DisplayErrorMessage VA CANT & Chr(13) & VA_CANT1 & Chr(13) & VA_CANT2 & Chr(13) & VA_CANT3, vblnformation, VaTitle, End If,End Sub,'Pπvate Sub mnuZOrder_Chck(), 'PutObjectsInPrevZOrder Me,'End Sub,'Pπvate Sub mnuZorderBack_Chck(),' SendToBack CSte(CurrentObj(Me Tag)), Me/End Sub,Pubhc Sub CancelPendmgMode(), Dim retval As Boolean, On
Error GoTo CancelPendmgModeError, If Grid Then GndSwitch, If OperationMode = VA POLYGON Or OperationMode = VA_DRAWLINE Then, GetRegion, OperationMode = VA_MOVING, SendToFront, ShowAnySteips, IdScreen ZOrder 1, If Not IsTransparentBefore And AutoScaleType = -56 Then MakeObjectSolid, AutoScaleType = EZ_NON, If mnuUndo Caption = "Undo Erase" Then retval = LoadUndo(ObjectZorderl Selectedlndex), If MagicZoom Then frmZoomPreview Hide, Screen MousePomter = vbDefault, End If, 'If OperationMode <> "Moving" Then, 'RS **** case was commented because operational mode now a NUMBER, 'reapply as needed, '2 comments mean was commented before l got there,' Select Case OperationMode,' Case "Resizing", "ResizmgProportional"," With ldImageObject(CunentObj(Me Tag))," MoveX = Left '+ (OutLine Size / 2)," MoveY = Top '+ (OutLine Size / 2)," MovePπmeX = MoveX + Width," MovePnmeY = MoveY + Height," End With," ldComposιtιonBuffer_Clιck," DoEvents 'otherwise it does not refresh look for alternatives," ldCompositionBuffer Chck," DoEvents,' Case "HoπzontalPerspective", "VerticalPerspective",' If CreatmgPersObject = Tme Then,' CreatingPersObject = False,' CreatePerObject Me,' Else," ldCompositionBuffer Chck," DoEvents 'otherwise it does not refresh look for alternatives," ldComposιtιonBuffer_Chck," DoEvents,' End If,' Case "Erase", "ErasePolygon",' If DrawModes = "Square" Or DrawModes = "Circle" Then,' mnuExitEraseMode Chck,' Else,' mnuExιtRegιon_Clιck,' End If,' Case
"Draw ngPolygon",' mnuCancelPolygon Chck,' Case "EyedropperPattem", "EyedropperOpacity",' Me MousePomter = vbDefault,' OperationMode = "Moving",' Case Else,' 'Do Nothing,' End Select,, ' End If,Exιt Sub,CancelPendιngModeError , If En Number <> 0 Then, gMsg = va_Error_Error & Str(Err Number) & va_Error_WasGeneratedBy _, & En Source & Chr(13) & Err Description & Chr(13) & " (CancelPendmgMode)", DisplayErrorMessage gMsg, vbCritical, VaTitle, End If,', Exit Sub,End Sub,'Pubhc Sub DrawGnd(),'0n Enor GoTo DrawGndEnor,' Dim 1 As Integer, retval As Integer, FeetHigh As Integer, FeetWide As Integer,' Dim va msg DefϊneKnownMeasure As String,' Dim CompBufferDC As Long,',' va msg DefmeKnownMeasure =
LoadResStnng(6379) ' "You must define a known measurement on your project to view the grid ",' If
FormlnteriorRoom = Tme Then,' NewCompose Me,' ldCompositionBuffer Zorder,' InvertLme Me,' CompBufferDC = ldCompositionBuffer GeiBitmapDC ' 09/08/97 DEH Changed from VBX to OCX,' 'Back wall,' For I =
Forπ_RegιonPosιtιon(BackVertιcalStart) To FormRegιonPosιtιon(BackHoπzontalStop),' If l Mod 2 = 0 Then,' FromHere CompBufferDC, FormGπdPomt(ι) X - FormRoomleftpos, FormGπdPoιnt(ι) Y - FormRoomtoppos,' Else,' ToThere CompBufferDC, FormGπdPoιnt(ι) X - FormRoomleftpos, FormGπdPoιnt(ι) Y - FormRoomtoppo-,' End If,' Next i,' 'Ceiling,' For I = FormRegιonPosιtιon(CeιlmgHoπzontalStart) To FoimRegionPosition(CeilmgVerticalStop),' If l Mod 2 = 0 Then,' FromHere CompBufferDC, FormGndPomt(ι) X - FormRoomleftpos, FormGπdPomt(ι) Y -
FormRoomtoppos,' Else,' ToThere CompBufferDC, FormGπdPoιnt(ι) X - FormRoomleftpos, FormGπdPomt(ι) Y - FormRoomtoppos,' End If,' Next ι,' 'Floor,' For I = FormRegionPosition(FloorHorizontalStart) To FormRegιonPosιtιon(FloorVertιcalStop),' If I Mod 2 = 0 Then,' FromHere CompBufferDC, FormGπdPoιnt(ι) X - FormRoomleftpos, FormGπdPomt(ι) Y - FormRoomtoppos,' Else,' ToThere CompBufferDC, FormGπdPoιnt(ι) X - FormRoomleftpos, FormGπdPoιnt(ι) Y - FormRoomtoppos,' End If,' Next ι,' Left wall,' For I =
FormRegionPosition(LeftVerticalStart) To FormRegιonPosιtιon(LeftHorιzontalStop),' If I Mod 2 = 0 Then,' FromHere CompBufferDC, FormGπdPoιnt(ι) X - FormRoomleftpos, FormGπdPoιnt(ι) Y - FormRoomtoppos,' Else,' ToThere CompBufferDC, FormGrιdPoιnt(ι) X - FormRoomleftpos, FormGπdPomt(ι) Y - FormRoomtoppos,' End If,' Next ι,' 'Right wall,' For I = FormRegionPosition(RightVerticalStart) To FormRegιonPosιtιon(RιghtHonzontalStop),' If I Mod 2 = 0 Then,' FromHere CompBufferDC, FoιmGπdPomt(ι) X - FormRoomleftpos, FormGrιdPomt(ι) Y -
FormRoomtoppos,' Else,' ToThere CompBufferDC, FormGπdPoιnt(ι) X - FormRoomleftpos, FormGndPoιnt(ι) Y -
FormRoomtoppos,' End If,' Next ι,' ldCompositionBuffer ReleaseBitmapDC ' 09/08/97 DEH Changed from VBX to OCX,' ReleaselnvertLme Me,' Elself FormState(fπ_ιMDI ActiveForm Tag) DoorSizeH > 0 Then,' 'FeetHigh = (FormState(frmMDI ActiveForm Tag) DoorSizeH / 84) * 12," 'FeetWide = FeetHigh," FeetHigh = (ldCompositionBuffer Height / FormState(frmMDI ActiveForm Tag) DoorSizeH) * 7," FeetWide = FeetHigh
'(ldCompositionBuffer Width / FormState(frmMDI ActiveForm Tag) DoorSizeH) * 7," NewCompose Me," ldCompositionBuffer Zorder," InvertLme Me," CompBufferDC = ldCompositionBuffer GetBitmapDC ' 09/08/97
DEH Changed from VBX to OCX," For I = 0 To ldCompositionBuffer Height Step ldCompositionBuffer Height / FeetHigh," FromHere CompBufferDC, 0, I," ToThere CompBufferDC, ldCompositionBuffer Width, l," Next I," For I = 0 To ldCompositionBuffer Width Step ldCompositionBuffer Width / FeetWide," FromHere CompBufferDC, I, 0,"
ToThere CompBufferDC, l, ldCompositionBuffer Height," Next ι,"," ldCompositionBuffer ReleaseBitmapDC '
09/08/97 DEH Changed from VBX to OCX," ReleaselnvertLme Me,' Else,' MsgBox va msg DefineKnownMeasure, vbOKOnly, VaTitle,' End If,','Exιt Sub,'DrawGndError ,' If Err Number <> 0 Then,' gMsg = va EπorJEnor & Ste(Err Number) & va Enor WasGeneratedBy _,' & Err Source & Chr(13) & Err Description & Chr(13) & " (DrawGπd)",' DisplayErrorMessage gMsg, vbCritical, VaTitle,' End If,',' Exit Sub.'End Sub.Pubhc Function GetGπdToSaveO As Boolean,Dιm 1 As Integer, On Error GoTo GetGπdToSaveError, GetGndToSave = False; If FormlnteriorRoom = Tme Then, ReDim GπdPoιnt(0 To UBound(FoιmGπdPoιnt)); For 1 = 0 To UBound(FormGπdPomt); GrιdPomt(ι) X = FormGndPoιnt(ι).X; GπdPoιnt(ι).Y = FormGπdPoιnt(ι).Y, Next 1, For 1 = 0 To 19; RegιonPosιtιon(ι) = FormRegιonPosιtιon(ι); Next I; Roomleftpos = FormRoomleftpos, Roomtoppos = FormRoomtoppos; GetGndToSave = Tme; Else; GetGndToSave = False; End IftExit Function, GetGπdToSaveEnor,
GetGndToSave = False; Exit Functιon;End Functιon;Pubhc Sub GetInteπorGrιd(); On Error GoTo GetlnteriorGridError; Dim l As Integer; ReDim FormGπdPomt(0 To UBound(GπdPomt)); ReDim FoπnRegιonPosιtιon(0 To 19); For I = 0 To UBound(GπdPomt); FormGπdPomt(ι).X = GπdPoιnt(ι).X; < FormGndPomt(ι) Y = GπdPoιnt(ι).Y, Next I; For I = 0 To 19; FormRegιonPosιtιon(ι) = RegιonPosιtιon(ι); Next I, FormRoomleftpos = Roomleftpos; FormRoomtoppos = Roomtoppos; FormlnteriorRoom = True;Exιt
Sub;GetInteπorGπdError:; If En.Number <> 0 Then; gMsg = va_Enor_Error & Ste(Err .Number) & va Error WasGeneratedBy _; & Err.Source & Chr(13) & Err.Description & Chr(13) & " (GetlntenorGπd)"; DisplayEnorMessage gMsg, vbCritical, VaTitle; End If;'; Exit Sub;End Sub;Pubhc Sub GπdFromProject(flname As Stπng);On Enor GoTo GπdFromProjectError;'open database project;Dιm db As Database, rs As Recordset, l As Integer;Set db = OpenDatabase(flname);'Get grid; Set rs = db OpenRecordset("GπdLιnePosιtιons", dbOpenDynaset), rs. MoveLast: rs.MoveFirst, If rs RecordCount = 0 Then; rs. Close; db. Close; Exit Sub; Else; ReDim FormGrιdPoιnt(0 To rs.RecordCount - 1); ReDim FormRegιonPosιtιon(0 To 19); For l = 0 To rs.RecordCount - 1 ; FormGπdPoιnt(ι) X = rs("XPos"); FormGrιdPoιnt(ι).Y = rs("YPos"); rs.MoveNext; Next I; Set rs = db.OpenRecordset("WallPosιtion", dbOpenDynaset); Fo l = 0 To 19; FormRegιonPosιtιon(ι) = rs("WallPosιtιons"); rs.MoveNext; Next I; FormRoomleftpos = rs("WallPositιons"); rs.MoveNext; FormRoomtoppos = rs("WallPosιtιons"); FormlnteriorRoom =
Tme; rs. Close; db. Close; End IftExit Sub;GπdFromProjectEnor:; Exit Sub;End Sub;'Pubhc Sub PerUCurrentImage();' Dim offsetx As Integer, offsety As Integer;';' OperationMode = "HoπzontalPerspective";' If NotDistortFirstTime = False Then;' ChpTheCursor Me;' RecreateObject ObjectDιscπptιon(Me.Tag, CurrentObj(Me.Tag)).ObjectIndex, frmMDI.ActiveForm;' UnselectObject Me;' frmMDI.ldEditlmageBuffer.Bitmap = frmMDI.ldObjectBuffer.Bitmap;' frmMDI.ldEditMaskBuffer.Bitmap = Me.ldImageMask(CurrentObj(Me.Tag)).Bιtmap,' NotDistortFirstTime = Tme,'
ResetEars 3, frmMDI.ActιveFoιrn.ldImageObject(CurrentObj(frmMDLActιveForm.Tag)).Left, fιmMDI.ActιveForm.ldImageObject(CuιτentObj(fιτι_MDI.ActιveFoιm.Tag)).Top, f_mMDI.ActιveFo_m.ldImageObject(CurτentObj(f-mMDI.ActιveFoιm.Tag)).Wιdth, fιmMDI.ActιveForm.ldImageObject(CuιτentObj(f_mMDI.ActιveFo_m.Tag)).Heιght, Me;' frmMDI.ActiveForm.SetEarScrollPosition;' End If;';' 'adjust to possible scroll bars;' hsbMam Change;' vsbMam_Change;'QuιckCompose Me;" Compose Me;' QuicklmtiateScrollBars Me;' Me.Refresh;' pιcEar(O) Zorder;' pιcEar(l). Zorder;' picEar(2).Zorder;' pιcEar(3). Zorder;' GetDistortPoints Me;' 'Reset center axis for perspective;' If hsbMam. Visible = Tme Then offsetx = hsbMam.Value;' If vsbMain. Visible = Tme Then offsety = vsbMain.Value,' PerspectiveCenterX = ((pιcEar(O).Left + ((pιcEar(3).Left - pιcEar(O).Left) / 2)) + (pιcEar(O).Wιdth / 2)) ' (TopRight.X - ((TopRight.X - TopLeft.X) / 2)) * Screen.TwipsPerPixelX;' PerspectiveCenterY = ldImageObject(Cu_τentObj(fιmMDI.ActiveFoιm.Tag)) Top +
(ldImageObject(CurrentObj(frmMDI.ActιveForm. Tag)). Height / 2),' PerspectiveCenterX = PerspectiveCenterX - offsetx;' PerspectiveCenterY = PerspectiveCenterY - offsety;' InvertLme Me;';'End Sub;'Pubhc Sub ResιzeCommιt();' On Enor GoTo ResizeCommitEnor,';' frmMDI.ldObjectBuffer.Bitmap = frmMDI.ldEditlmageBuffer.Bitmap,' Me.ldImageMask(CunentObj(Me.Tag)).Bιtmap = frmMDI.ldEditMaskBuffer Bitmap;';' With
Me.ldImageMask(CunentObj(Me.Tag)),' .Width = MovePrimeX - MoveX,' .Height = MovePnmeY - MoveY;' DstWidth = MovePrimeX - MoveX;' .DstHeight = MovePnmeY - MoveY;' .Resize Width = MovePrimeX - MoveX,' .ResizeHeight = MovePnmeY - MoveY;' .Resize = Tme;' End With;' With frmMDI.ldObjectBuffer;' .ResizeType = GeneralResizeMode;' .Width = MovePrimeX - MoveX;' .Height = MovePnmeY - MoveY;' DstWidth = MovePrimeX - MoveX,' .DstHeight = MovePnmeY - MoveY;' .Resize Width = MovePrimeX - MoveX,' .ResizeHeight =
MovePnmeY - MoveY;' Resize = Tme;' .ResizeType = RESIZE NORMAL;' End With;' With Me.ldImageObject(CurrentObj(Me.Tag)) 'should be cunent object;' '.ResizeType = GeneralResizeMode,' .Left = MoveX - Me.hsbMam. Value,' .Top = MoveY - Me.vsbMain. Value,' .Width = MovePrimeX - MoveX;' .Height = MovePnmeY - MoveY;' .DstWidth = MovePrimeX - MoveX,' .DstHeight = MovePnmeY - MoveY;' '.Resize Width = MovePrimeX - MoveX,' '.ResizeHeight = MovePnmeY - MoveY,' '.Resize = Tme;' '.ResizeType =
RESIZE NORMAL;' End With;' SelectObjects(Me) = ObjectDιscnptιon(Me.Tag, CurrentObj(Me.Tag)).ObjectIndex;';'Dιm l As Integer;';' Me.ldBackGround.Zorder;'
Me. ldImageObject(CurrentObj(Me. Tag)). Visible = Tme;' PutObjectsInZorder Me;' If EarMoved = False Then;' NotResizingFirstTime = False;' 'CancelPendmgMode;' QuicklmtiateScrollBars Me;' DoEvents;' hsbMarn_Change;' vsbMain Change;' OperationMode = "Moving",' MovePnmeY = 0;' MovePrimeX = 0;' ResetPerspectivePoints Me,
CunentObj (Me .Tag) ;' ;' NewTouchlt ldlmageObj ect(CurrentObj (Me .Tag)) .Top, ldImageObject(CurrentObj(Me.Tag)).Top + ldImageObject(Cun-entObj(Me.Tag)).Heιght, ldImageObject(CurrentObj(Me.Tag)).Left, ldImageObject(CunentObj(Me.Tag)).Left + ldImageObject(CurrentObj(Me.Tag)).Wιdth, CurrentObj(Me.Tag), Me, Tme;' NewPartTouchlt ldImageObject(CunentObj(Me.Tag)).Top, ldImageObject(CunentObj(Me.Tag)).Top + ldImageObject(CurrentObj(Me.Tag)).Heιght, ldImageObject(CurrentObj(Me.Tag)).Left, ldImageObject(CurrentObj(Me.Tag)).Left + ldImageObject(CurrentObj(Me.Tag)).Wιdth, CurrentObj(Me.Tag), Me, Tme;' NewRegenerate Me;' 'Regenerate Me;' Exit Sub;' End If;' Resizing;' 'adjust to possible scroll bars;' hsbMam Change;' vsbMain Change;' EarMoved = False;';'Exιt Sub;'ResιzeCommιtError:;' If Err.Number <> 0 Then;' gMsg = va_Enor_Error & Ste(Err.Number) & va_Error_WasGeneratedBy _;' & Err.Source & Chr(13) &
Err.Description & Chr(13) & " (ResizeCommit)";' DisplayEnorMessage gMsg, vbCritical, VaTitle;' End If;';'Exιt Sub;'End Sub;'Pubhc Sub Resιzιng();' On Enor GoTo ResizmgError;';' If NotResizingFirstTime = False Then;' RecreateObject CurrentObj(Me.Tag), frmMDI.ActiveForm;' frmMDI.ldEditlmageBuffer.Bitmap = frmMDI.ldObjectBuffer.Bitmap;' frmMDI.ldEditMaskBuffer.Bitmap = Me.ldImageMask(CunentObj(Me.Tag)).Bιtmap;' ObjectOldWidth = Me.ldImageObject(CunentObj(Me.Tag)).Wιdth - OutLme.Size,' ObjectOldHeight = Me ldImageObject(CurrentObj(Me.Tag)).Heιght - OutLme.Size,' End If;' 'adjust to possible scroll bars;' hsbMaιn_Change;' vsbMain Change;' Compose Me,' QuicklmtiateScrollBars Me;' DoEvents,',' With Me.ldImageObject(CunentObj(Me.Tag));' MoveX = eft + hsbMam.Value;' MoveY = .Top + vsbMain.Value;' If MovePrimeX = 0 Then;' MovePrimeX = MoveX + .Bitmap Width - (OutLine.Size),' End If;' If MovePnmeY = 0 Then;' MovePnmeY = MoveY + .BitmapHeight - (OutLme.Size);' End If;' OffsetMoveX = MoveX;' OffsetMoveY =
MoveY;' OffsetMovePπmeX = MovePrimeX;' OffsetMovePπmeY = MovePnmeY;' .Visible = False;' End With,';' If NotResizingFirstTime = False And OperationMode = "Resizing" Then;' ResetEars 1, MoveX - Me.hsbMam. Value, MoveY - Me.vsbMain Value, (MovePrimeX - MoveX), (MovePnmeY - MoveY), Me 'l=ResιzeFreeForm; Elself NotResizingFirstTime = Tme And OperationMode = "Resizing" Then;' ResetEars 1, MoveX, MoveY, (MovePrimeX - MoveX), (MovePnmeY - MoveY), Me 'l=ResιzeFreeForm;' Elself NotResizingFirstTime = False And
OperationMode = "ResizmgProportional" Then;' pιcEar(4).Left = MovePrimeX - Me. hsbMain Value;' pιcEar(4).Top = MovePnmeY - Me.vsbMain. Value;' pιcEar(4) Visible = Tme;' pιcEar(4).Zorder;' Elself NotResizingFirstTime = Tme And OperationMode = "ResizmgProportional" Then;' pιcEar(4)Left = MovePrimeX;' pιcEar(4) Top = MovePnmeY;' pιcEar(4).Vιsιble = Tme;' picEar(4).Zorder;' End If;';' SetEarScrollPosition;' HollowRectangle MoveX, MoveY, MovePrimeX, MovePnmeY, Me;',' QuicklmtiateScrollBars Me;' DoEvents;';' NotResizingFirstTime = True;';'Exιt
Sub;'ResιzιngError:;' If Err.Number <> 0 Then;' gMsg = va Error Error & Ste(En.Number) & va_Error_WasGeneratedBy _;' & En.Source & Chr(13) & En.Descnption & Chr(13) & " (Resizing)";' DisplayErrorMessage gMsg, vbCritical, VaTitle;' End If;';' Exit Sub;';'End Sub;'Sets variable to ear positions for scrolhng;'Pubhc Sub SetEarScrollPosιtιon();' Dim OffSetTop As Integer, OffSetLeft As Integer;';' If NotResizingFirstTime = False Then;' OffSetTop = vsbMain.Value;' OffSetLeft = hsbMam.Value;' End If;';' EarOLeft = frmMDI.ActiveFoim.picEar(0).Left + OffSetLeft;' EarOTop = frmMDI.ActιveFoιm.pιcEar(0).Top + OffSetTop;';' EarlLeft = frmMDI.ActiveForm.picEar(l).Left + OffSetLeft;' EarlTop = frmMDI.ActιveForm.pιcEar(l).Top + OffSetTop;';' Ear2Left = frmMDI.ActiveForm.picEar(2).Left + OffSetLeft;' Ear2Top = frmMDI.ActιveForm.pιcEar(2).Top + OffSetTop;';' Ear3Left = frmMDI.ActιveForm.pιcEar(3).Left + OffSetLeft;' Ear3Top = frmMDI.ActιveForm.pιcEar(3).Toρ + OffSetTop;';' Ear4Left = frmMDI.ActιveForm.ριcEar(4).Left +
OffSetLeft;' Ear4Top = frmMDI.ActiveForm.picEar(4).Top + OffSetTop;';';'End Sub;'Publιc Sub UCIVert();' Dim offsetx As Integer, offsety As Integer;' OperationMode = "VerticalPerspective";' If NotDistortFirstTime = False Then;' RecreateObject ObjectDιscπptιon(Me.Tag, CurrentObj(Me.Tag)).ObjectIndex, frmMDI.ActiveForm;' UnselectObject Me;' frmMDI.ldEditlmageBuffer.Bitmap = frmMDI.ldObjectBuffer.Bitmap;' frmMDI.ldEditMaskBuffer.Bitmap = Me.ldImageMask(CurrentObj(Me.Tag)).Bιtmap;' NotDistortFirstTime = Tme;' ResetEars 3, fπrMDI.ActiveFoπn.ldImageObject(Cun:entObj(frrnMDI.ActiveForm.Tag)).Left, fπr_MDI.ActιveForm.ldImageObject(Cun:entObj(fπrιMDI.ActiveForm.Tag)).Top, frrnMDI.ActιveFoι ldImageObject(CuιτentObj(fιmMDI.ActiveFoιm.Tag)).Wιdth, fnr_MDI.ActiveFoιτn.ldImageObject(CurrentObj(fιτr_MDI.ActiveForm.Tag)).Heιght, Me;' frmMDI.ActiveForm.SetEarScrollPosition;' End If;' 'adjust to possible scroll bars;' hsbMam Change,' vsbMain Change;' QuickCompose Me;' QuicklmtiateScrollBars Me;' Me.Refresh,' pιcEar(O). Zorder,' pιcEar(l).Zorder;' pιcEar(2). Zorder;' pιcEar(3).Zorder;' GetDistortPomts Me;' 'Reset center axis for perspective;' If hsbMain. Visible = Tme Then offsetx = hsbMam.Value;' If vsbMam. Visible = Tme Then offsety = vsbMain.Value,' PerspectiveCenterX = ((pιcEar(O).Left + ((pιcEar(3).Left - pιcEar(O).Left) / 2)) + (pιcEar(O) Width / 2)) ' (TopRight.X - ((TopRight.X - TopLeft.X) / 2)) * Screen.TwipsPerPixelX;' PerspectiveCenterY = ((pιcEar(O).Top + ((pιcEar(l).Top
- pιcEar(O).Top) / 2)) + (pιcEar(O).Heιght / 2));' PerspectiveCenterX = PerspectiveCenterX - offsetx,' PerspectiveCenterY = PerspectiveCenterY - offsety;' InvertLme Me;';'End Sub;;;Pubhc Sub replaceObjectFromNet(X As Single, Y As Single, psFilelD As Steing, Index As Integer); Screen.MousePointer = vbHourglass; frmNetTransfer.fileMask = "M" & psFilelD & ".jpg"; frmNetTransfer.fileSprite = "S" & psFilelD & " jpg"; frmNetTransfer.fileText = "X" & psFilelD & ".txt", frmNetTransfer.DisplayMode = vaExplorer, frmNetTransfer.Show 1 ; Screen.MousePomter = vbDefault; If Not gDownloadSuccess Then; frmMDI. ssBottom(l). Caption = va cap DownloadCalnceled; vaPιcture(Index).BorderStyle = 0, If EnorState.Number <> 0 Then; MsgBox ErrorState.Descnption, vbOKOnly, VaTitle; End If; Else; frmMDI.ssBottom(l).Caρtιon = va cap Applyinglmage; If Me.vaPιcture(Index).DropType = EZ NON Then; X = (X / Screen TwipsPerPixelX) + Me.vaPιcture(Index)Left, Y = (Y / Screen.TwipsPerPixelY) + Me.vaPιcture(Index) Top, ldMaskTransferBuffer.ScaleMode = 3; Me.Compose VA_COMPOSE_LOAD_NEW; Me.VA LoadObject (X), (Y), Me vaPιcture(ObjectZorderl. Selectedlndex). ObjectName = netObjectlnfo.Product ' IltemName, Me.vaPιcture(ObjectZorderl .Selectedlndex). DatabaselD = 0; Me.vaPιcture(ObjectZorderl .Selectedlndex). CD Volumn = netObjectlnfo.URL '"None"; Me.vaPιcture(ObjectZorderl.SelectedIndex).ComρanyName = netObjectlnfo. Company ' "Downloaded"; Me.vaPιcture(ObjectZorderl. Selectedlndex). Scalelnches = netObjectlnfo.Scalelnches; Else; If InternetAmmate <> "NA" And vaPιcture(Index).DropType < EZ_PAT Then 'animation, vaPιcture(Index). DropType = (Int(vaPιcture(Index). DropType / 10) * 10); 'take out the group from this object since it is animation.; End If, DropAction Index, Me; Dim DType As Single; DType = Me.vaPιcture(Index).DropType; If DType Mod 10 = 0 Then; Me.vaPιcture(Index).ObjectName = netObjectlnfo Product ' IltemName; Me. vaPιcture(Index). DatabaselD = 0; Me. vaPιcture(Index). CDVolumn = netObjectlnfo.URL '"None"; Me.vaPιcture(Index).CompanyName = netObjectlnfo. Company ' "Downloaded"; Me. vaPιcture(Index). Scalelnches = netObjectlnfo.Scalelnches; Else; Dim Dte As Integer, n As Integer; For Dte = 1 To ObjectZorderl. Count; n = ObjectZorderl.GetZOder(Dte); If vaPιcture(n). DropType = DType Then; Me.vaPιcture(n). ObjectName = netObjectlnfo.Product ' IltemName; Me.vaPιcture(n).DatabaseID = 0; Me.vaPιcture(n). CD Volumn = netObjectlnfo.URL '"None"; Me.vaPιcture(n).CompanyName = netObjectlnfo.Company ' "Downloaded"; Me.vaPιcture(n).ScaleInches = netObjectlnfo.Scalelnches; End If; Next Dte; End If; End If; UpdateShoppingList; Screen.MousePointer = vbDefault; End If;End Sub;Pubhc Sub getObjectFromNet(X As Smgle, Y As Single, psFilelD As Steing); Screen.MousePomter = vbHourglass; frmNetTransfer.fileMask = "M" & psFilelD & ".jpg"; frmNetTransfer.fileSprite = "S" & psFilelD & ".jpg"; frmNetTransfer.fileText = "X" & psFilelD & ".txt"; frmNetTransfer.DisplayMode = vaExplorer; InternetAmmate = "NA"; frmNetTransfer.Show 1 ; Screen MousePomter = vbDefault, If Not gDownloadSuccess Then, frmMDI. ssBottom(l). Caption = va cap DownloadCalnceled; If EnorState.Number <> 0 Then; MsgBox ErrorState.Descπption; End If; Else; frmMDI. ssBottom(l). Caption = va cap Applyinglmage, ldMaskTransferBuffer.ScaleMode = 3; Me.Compose VA_COMPOSE_LOAD_NEW; Me.VA LoadObject ((X) - (Me.ldMaskTransferBuffer.Bitmap Width / 2)), ((Y) - (Me.ldMaskTransferBuffer.BitmapHeight / 2)),
Me vaPιcture(Me. ObjectZorderl. Selectedlndex). ObjectName = netObjectlnfo Product ' IltemName, Me.vaPιcture(Me ObjectZorderl. SelectedIndex).DatabaseID = 0;
Me.vaPιcture(Me.ObjectZorderl .SelectedIndex).CDVolumn = netObjectlnfo.URL '"None"; Me. vaPιcture(Me. ObjectZorderl. Selectedlndex). CompanyName = netObjectlnfo. Company ' "Downloaded"; Me vaPιcture(Me. ObjectZorderl .Selectedlndex). Scalelnches = netObjectlnfo.Scalelnches; UpdateShoppmgList; End
If;End Sub;Publιc Sub makeFrameRect(psLme Width As Single); Dim varSingle As Single, n%; Compose VA COMPOSE ALL 'Send image of all objects to IdScreen; IdScreen.ZOrder 0 'Show the IdScreen; ImtiateScrollBars, ImtializeMagicZoom; OperationMode = VA DRAWRECT 'Set global variable to the region to be created, ' IdScreen.Zorder 0 'Show the IdScreen, ' ImtiateScrollBars; Dirty = Tme;End Sub;Pubhc Sub DoL eQ, Dim relStartX As Single, relStartY As Single, relEndX As Single, relEndY As Single; With frmMDI.ActiveForm. vaPιcture(frmMDI.ActιveForm.ObjectZorderl. Selectedlndex); frmMDI. picDistort. ScaleMode = 3; frmMDI.picDistortBuffer.ScaleMode = 3; frmMDI.picDistort.DrawWidth = 10; frmMDI.picDistortBuffer.Draw Width = 10; frmMDI.picDistort.AutoSize = Tme; frmMDI.picDistortBuffer. AutoSize = Tme; frmMDI.picDistort.ForeColor = RGB(0, 0, 0); frmMDI.picDistortBuffer.ForeColor = RGB(255, 255, 255), fimMDI.picDistortBuffer.Picture = .Sprite; frmMDI.picDistort.Picture = .Mask; relStartX = Left + StartX; relStartY =
.Top + StartY; relEndX = Left + EndX; relEndY = .Top + EndY; frmMDI picDistort.Line (relStartX, relStartY)- (relEndX, relEndY); frmMDI.picDistortBuffer.Line (relStartX, relStartY)-(relEndX, relEndY); .Sprite = frmMDI.picDistortBuffer.Image; .Mask = frmMDI.picDistort.Image; .RepamtConserve frmMDI. ActiveForm.picComposite. hDC, eft, .Top; .Refresh; If frmMDI.ActiveForm.ObjectZorderl. Selectedlndex <> frmMDI.ActiveForm.ObjectZorderl .Toplndex Then; frmMDI.ActiveForm.picComposite.Cls: fimMDI.ActiveForrn.picBackgroundBuffer.Cls; frmMDI.ActiveForm.picScreen.Refresh; frmMDI.ActiveForm.Compose VA_COMPOSE_LOAD_NEW; frmMDI.ActiveForm.SendToFront; End If; .DropType = EZ PAT; End With; ApplyPatternToObject; frmMDI.picDistort.DrawWidth = 1 ; frmMDI.picDistortBuffer.DrawWidth = l;End Sub;;Public Property Get shopObjects() As ShoppingLst; Set shopOb ects = m_shopObjects;End Property;Pubhc Property Set shopObjects(ByVal vNewValue As ShoppingLst),
Set m shopObjects = vNewValue;End Property;Pubhc Property Get shopGlued() As ShoppingLst; Set shopGlued = m_shopGlued;End Property;Pubhc Property Set shopGlued(ByVal vNewValue As ShoppingLst); Set m_shopGlued = vNewValue;End Property;Publιc Property Get shopAdded() As ShoppingLst; Set shopAdded = m_shopAdded;End Property;Pubhc Property Set shopAdded(ByVal vNewValue As ShoppingLst); Set m shopAdded = vNewValue;End Property ;Publιc Sub GetGluedItems(flname As Steing, ThisForm As FrmMam); Dim psProdld As Integer, psProdNm As Steing, psCompNm As String; Dim psUmt As Steing, psUmts As Integer, psPπce As Currency, Dim psVol As Steing, psldx As String, psTempIdx As Steing; Dim ObjectHolder As SListltem, n%, m%; Dim db As Database, rs As Recordset; On Enor Resume Next; Set db = OpenDatabase(flname); Set rs = db.OpenRecordset("GluedLιst", dbOpenDynaset); rs.MoveLast; If rs.RecordCount > 0 Then; rs.MoveFirst; Do While Not rs.EOF; Set ObjectHolder = New SListltem; psProdld = rs("ProductID"); psProdNm = rs("ProducfName"); psCompNm = rs("CompanyName"), psU t = rs("Umt"); psUmts = rs("NumberOfUnιts"); psPπce = rs("UmtPrιce"); psVol = rs("Volumn"); Set ObjectHolder = ThιsForm.shopGlued.Add(psProdId, psProdNm, psCompNm, psU t, psUmts, psPπce, psVol, psldx, psTempIdx); Set ObjectHolder = Nothing; rs.MoveNext; Loop; End If; rs.Close; db.Close;End Sub;'Parse the steing to load all images for an anιmatιon;'anιmateparse=stemg from database to parse, wsize and hsize = size after droρped,fetchsource 1=CD 2=InternetD&D;Pubhc Sub NewAmmation(AnιmateParse As Steing, ammationWsize As
Integer, ammationHsize As Integer, Oblndex As Integer, FetchSource As Integer);Dιm AcumSteing As Steing, TimeFactor As Stemg;Dιm r As Integer, num As Integer, Amlndex As Integer, AddMe As Integer, Numlndex As Integer;ReDιm AmmateSpπte(l To l),ReDιm AnιmateMask(l To l);ReDιm TιmeFactorAnay(l To l);num = 1 ;NumIndex = 0;lf FetchSource = 2 Then 'internet teansferr; frmNetTransfer.DisplayMode = vaAmm, frmNetTransfer.Show;End IftFor r = 1 To Len(AnrmateParse); If Mιd(AnmιateParse, r, 1) = "," Or r =
Len(AmmateParse) Then; frmMDI.ssBottom(l). Caption = frmMDI.ssBottom(l) Caption + " »"; If r = Len(AnιmateParse) Then AcumSteing = AcumSteing + Mιd(AnιmateParse, r, 1) 'get last char; If Rιght(AcumStπng, 1) = "F" Or Left(AcumStπng, 1) = "T" Then 'flip; 'MsgBox AcumSteing; If Rιght(AcumStπng, 1) = "F" Then; Amlndex = Val(Left( AcumStemg, (Len( AcumSteing) - 2))); ReDim Preserve AmmateSprite(l To num); ReDim Preserve AnιmateMask(l To num); ldSpπteTransferBuffer.SetPicture AnimateSpnte(Anilndex); ldMaskTransferBuffer.SetPicture AnιmateMask( Amlndex); If Mιd( AcumStemg, Len( AcumStemg) - 1, 1) = "H" Then 'Horizontal Flip; ldSpπteTransferBuffer.Reverse; ldMaskTransferBuffer.Reverse; End If; If Mιd(AcumStπng, Len(AcumStπng) - 1, 1) = "V" Then 'Vertical Flip; ldSpπteTransferBuffer.Flip; ldMaskTransferBuffer.Fhp; End If; Set AnιmateSpπte(num) = ldSpπteTransferBuffer.GetPicture; Set AmmateMask(num) = IdMaskTransferBuffer. GetPicture; AddMe = 1; Else 'Time factor; TimeFactor = Rιght( AcumStemg, Len(AcumStemg)
- 1); AddMe = 0 'Don't increment; Numlndex = Numlndex + 1; ReDim Preserve TιmeFactorAnay(l To Numlndex), TimeFactorAnay(Numlndex) = Val(TιmeFactor); 'MsgBox TimeFactor Array (Numlndex); End If; Else 'search image; 'MsgBox AcumSteing; ReDim Preserve AnimateSpnte(l To num); ReDim Preserve AnrmateMask(l To num); If r <> 1 Then GetAnmationlmage AcumSteing, animation Wsize, ammationHsize, Me, FetchSource; Set AnιmateSpπte(num) = ldSpπteTransferBuffer.GetPicture; Set AmmateMask(num) = ldMaskTransferBuffer.GetPicture; 'MsgBox
AnιmateSpπte(num). Height; AddMe = 1; End If; num = num + AddMe; AcumStemg = ""; Else; AcumSteing = AcumSteing + Mιd(AnιmateParse, r, 1); End IftNext r;If FetchSource = 2 Then Unload frmNetTransfer 'ιnternet;If num > 0 Then 'Bring the slider; With vaPicture(Oblndex); Shder3D.Top = .Top + .Height; Shder3D.Left = (Left + (.Width / 2)) - (Shder3D.Wιdth / 2); End With; Shder3D.Max = num - 2; Shder3D.SelStart = 0; Shder3D.Vιsιble = Tme; Slιder3D.ZOrder;End If;End Sub;;Pubhc Sub UpdateShoppmgLιst(); Dim psProdld As Integer, psProdNm As Stemg, psCompNm As Steing; Dim psUmt As String, psUmts As Integer, psPrice As Currency; Dim psVol As String, psldx As Stemg, psTempIdx As Stemg; Dim ObjectHolder As SListltem, n%, m%; Set shopObjects = New ShoppingLst;; For m% = 1 To (ObjectZorderl. Count); n% = ObjectZorderl .GetZOder(m%); If Not vaPιcture(n%). IsShadow And Not vaPιcture(n%).IsText Then; Set ObjectHolder = New SListltem; psProdld = vaPιcture(n%). DatabaselD; psProdNm = vaPιcture(n%). ObjectName; psCompNm = vaPicture(n%) CompanyName, psUmt = vaPιcture(n%).ShopUnιt; psUmts = vaPιcture(n%).ShopNumberOfUnιt; psPrice = vaPιcture(n%).ShopUmtPπce; psVol = vaPιcture(n%). CD Volumn; psldx = vaPιcture(n%).Index; psTempIdx = ""; Set ObjectHolder = shopObjects.Add(psProdId, psProdNm, psCompNm, psUnit, psUmts, psPrice, psVol, psldx, psTempIdx, Trιm(Ste(n%))); shopObjects(Tnm(Ste(n%))).ObjectLιstType = va Objectltem; End If; Next m%;End Sub;
FRMMain VERSION 5.00;Object = "{00080003-B1BA-11CE-ABC6-F5B2E79D9E3F}#8.0#0"; "LTOCX80N.OCX";Object = " {3BBB0644-76C2-l lDl-B64C-0060976C7537}#7.0#0"; "VAPιc ocx";Object = " {3BBB0635-76C2-11D1-B64C-0060976C7537}#7.0#0", "VAOrder.ocx";Object = " {6B7E6392-850A-101B-AFC0- 4210102A8DA7}#1.2#0"; "COMCTL32.0CX";Begιn VB.Form FrmMain; Caption = "Forml "; ChentHeight = 5475, ChentLeft = 2805; ChentTop = 1845, ChentWidth = 7830; Icon = "Project.frx":0000; KeyPreview = -1 'Tme;
LmkTopic = "Forml"; MDIChild = -1 'Tme; Mouselcon = "Project.frx":030A; ScaleHeight = 5475; ScaleWidth = 7830; Visible = 0 'False; Begin VB.Timer AmmationTimer; Enabled = 0 'False; Left = 7080; Top = 3240; End; Begm VB.Timer tenrSpray; Enabled = 0 'False; Interval = 50; Left = 6360; Top = 3240; End; Begin LeadLib.Lead IdScreen; Height = 2310; Left = 0; Tablndex = 9; TabStop = 0 'False; Top = 0; Width = 3315; _Versιon = 524288; _ExtentX = 5847; ExtentY = 4075, _StockProps = 229; BackColor = 16777215; BegmProperty Font {0BE35203-8F91-11CE-
9DE3-00AA004BB851 } ; Name = "MS Sans Serif; Size = 8.25; Charset = 0; Weight = 400; Underlme = 0 'False; Italic = 0 'False; Steikethrough = 0 'False; EndProperty; AutoRepaint = 0 'False; AutoScroll = 0 'False; BackErase = 0 'False; ScaleHeight = 154; ScaleWidth = 221; DataField = ""; BitmapDataPath = ""; AnnDataPath = ""; AutoSize = -1 'Tme; Begm VB.Line LnVGnd; BorderColor = &H00000000&; DrawMode = 10 'Mask Pen; Index = 0, Visible = 0 'False; XI = 900; X2 = 900; Yl = 1275; Y2 = 600; End; Begin VB.Line LnHGπd; BorderColor = &H00000000&;
DrawMode = 10 'Mask Pen; Index = 0; Visible = 0 'False; XI = 915; X2 = 2535; Yl = 1575; Y2 = 1575; End; End; Begin VB.CommandButton cmdScrollCorner; Height = 255; Left = 5175; Tablndex = 8; TabStop = 0 'False; Top = 825; Width = 255; End; Begin VB.Timer tmrRestartKeyMove; Enabled = 0 'False; Interval = 200; Left = 4110; Top = 1305; End; Begm VB.HScrollBar hsbMam; Height = 255; LargeChange = 10; Left = 4335; SmallChange = 10; Tablndex = 7; Top = 390; Visible = 0 'False; Width = 1095; End; Begin VB.VScrollBar vsbMain; Height = 735;
LargeChange = 25; Left = 4710; SmallChange = 10; Tablndex = 6; Top = 780; Visible = 0 'False; Width = 255; End, Begin LeadLib.Lead IdMaskTransferBuffer; Height = 1455; Left = 120; Tablndex = 5; TabStop = 0 'False; Top = 4440; Visible = 0 'False; Width = 1575; Version = 524288; _ExtentX = 2778; ExtentY = 2566; _StockProps = 229; BackColor = 16777215; BegmProperty Font {OBE35203-8F91-l lCE-9DE3-OOAA004BB851}; Name = "MS Sans Serif; Size = 8.25; Charset = 0; Weight = 400; Underlme = 0 'False; Italic = 0 'False; Steikethrough = 0 'False; EndProperty; ScaleHeight = 97; ScaleWidth = 105; DataField = ""; BitmapDataPath = ""; AnnDataPath = "", End, Begin LeadLib.Lead IdSpriteTransferBuffer; Height = 1215; Left = 1800, Tablndex = 4, TabStop = 0 'False, Top = 4440, Visible = 0 'False; Width = 1215; _Versιon = 524288, _ExtentX = 2143; _ExtentY = 2143; StockProps = 229, BackColor = 16777215; BegmProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851 }, Name = "MS Sans Serif; Size = 8.25; Charset = 0; Weight = 400; Underline = 0 'False; Italic = 0 'False; Steikethrough = 0 'False;
EndProperty; ScaleHeight = 81; ScaleWidth = 81 ; DataField = ""; BitmapDataPath = ""; AnnDataPath = ""; End, Begin VAOrder.ObjectZorder ObjectZorderl; Height = 2295; Left = 4080; Tablndex = 3; TabStop = 0 'False, Top = 1800; Visible = 0 'False; Width = 1455; _ExtentX = 2566; _ExtentY = 4048; End; Begin VB.PictureBox picComposite; Appearance = 0 'Flat; AutoRedraw = -1 'Tme; AutoSize = -1 'Tme; BackColor = &H80000005&; BorderStyle = 0 'None; ForeColor = &H80000008&; Height = 765; Left = 4560; ScaleHeight = 765; ScaleWidth =
1215; Tablndex = 2; TabStop = 0 'False; Top = 4320; Visible = 0 'False; Width = 1215; End; Begin VB.PictureBox picScreen; Appearance = 0 'Flat; AutoSize = -1 'Tme; BackColor = &H80000005&; BorderStyle = 0 'None, ForeColor = &H80000008&; Height = 4230; Left = -15; OLEDropMode = 1 'Manual; ScaleHeight = 282; ScaleMode = 3 'Pixel, ScaleWidth = 393; Tablndex = 0; Top = 0; Width = 5895; Begin ComctlLib.Shder Shder3D; Height = 255; Left = 1440, Tablndex = 12, Top = 3360; Visible = 0 'False; Width = 1695; _ExtentX = 2990; _ExtentY = 450,
Figure imgf000109_0001
=
327682; BorderStyle = 1; LargeChange = 1; SelStart = 1; TickStyle = 3; Value = 1; End; Begm VB.PictureBox picRuler; AutoRedraw = -1 'Tme; BackColor = &H0000FFFF&; DragMode = 1 'Automatic; Height = 285; Left = 5100; ScaleHeight = 225; ScaleWidth = 225; Tablndex = 11; Top = 1185; Visible = 0 'False; Width = 285; End; Begm VAPic.vaPicture vaPicture; Height = 960; Index = 0; Left = 345; Tablndex = 10; TabStop = 0 'False; Top = 3000; Visible = 0 'False; Width = 870; _ExtentX = 1535; _ExtentY = 1693; AutoRedraw = -1 'Tme; HandleColor = 65535;
GroupHandleColor= 16776960; OLEDropMode = 1 ; End; End; Begm VB.PictureBox picBackgroundBuffer; Appearance = 0 'Flat; AutoRedraw = -1 'Tme; AutoSize = -1 'Tme; BackColor = &H80000005&; BorderStyle = 0 'None; ForeColor = &H80000008&; Height = 825; Left = 3240; ScaleHeight = 55; ScaleMode = 3 'Pixel; ScaleWidth = 80; Tablndex = 1 ; TabStop = 0 'False, Top = 4320; Visible = 0 'False; Width = 1200; End; Begin VB.Menu mnuFile; Caption = "cd&File"; HelpContextlD = 61; Tag = "3950"; Begm VB.Menu mnuNew; Caption = "cd&New -
Mam Menu..."; HelpContextlD = 300; Shortcut = ΛN; Tag = "3951"; End; Begin VB.Menu MenuProject2; Caption = "cdOpen Pro&ject..."; HelpContextlD = 63; Shortcut = Λ0; Tag = "3952"; End; Begm VB.Menu MnuOpenChp; Caption = "cdOpen from Clip&board"; HelpContextlD = 81; Tag = "3953"; End; Begm VB.Menu MenuOpenScanner; Caption = "cd&Open from Scanner/ Camera..."; HelpContextlD = 82; Tag = "3954"; End; Begm VB.Menu mnuOpenlnternetDB; Caption = "cdOpen Internet Ca&talog..."; HelpContextlD = 244; Tag = "3955"; End; Begin
VB.Menu mnuUserDBa; Caption = "cdOpen &User Database"; HelpContextlD = 1036; Tag = "3956"; Visible = 0 'False; End; Begin VB.Menu menudivl; Caption = "-"; End; Begin VB.Menu mnuClose; Caption = "cd&Close"; HelpContextlD = 83; Tag = "3957"; End; Begin VB.Menu shne; Caption = "-"; End; Begin VB.Menu MenuSave; Caption = "cd&Save Project"; HelpContextlD = 84; Shortcut = ΛS; Tag = "3958"; End; Begin VB.Menu MenuSaveProject, Caption = "cdSave Project &As .."; HelpContextlD = 85; Shortcut = ΛA; Tag = "3959"; End; Begm VB.Menu mnuSOB; Caption = "cdSave Object to Database", Enabled = 0 'False, Tag = "3970"; Visible = 0 'False, End; Begin VB.Menu mnuAdd, Caption = "cdSave Object to &User Database"; Tag = "3971 "; End, Begin VB.Menu mnuLine; Caption = "-"; HelpContextlD = 31 ; End; Begin VB.Menu MnuOpen; Caption = "cd&Import..."; HelpContextlD = 64; Tag = "3972", End, Begin VB Menu mnuDxfMain; Caption = "cdlmport &DXF"; Visible = 0 'False, End; Begin VB.Menu mnuSaveAs; Caption = "cd&Export..."; HelpContextlD = 86; Tag = "3973"; End; Begin
VB.Menu impsep; Caption = "-"; End; Begin VB.Menu MnuSetupl; Caption = "cdP&rmt Setup. "; HelpContextlD = 94; Tag = "3974"; End, Begin VB.Menu mnuPrmt; Caption = "cd&Prmt.. "; HelpContextlD = 92; Shortcut = ΛP; Tag = "3975"; End; Begin VB.Menu mnuQuickPπnt; Caption = "cd&Quick Print"; HelpContextlD = 255, Tag - "3976"; End; Begin VB.Menu mnuSeρ23; Caption = "-"; End; Begin VB.Menu mnuShop; Caption = "cdShopping &Lιst..."; HelpContextlD = 237; Tag = "3977"; End; Begin VB.Menu mnuSep44; Caption = "-"; End; Begin VB.Menu mnuFilel; Caption = "cdl"; HelpContextlD = 190, Tag = "3978"; Visible = 0 'False; End; Begin VB Menu mnuFιle2; Caption = "cd2"; HelpContextlD = 190; Tag = "3979"; Visible = 0 'False; End; Begm VB.Menu mnuFιle3; Caption = "cd3"; HelpContextlD = 190, Tag = "3980"; Visible = 0 'False; End; Begin VB.Menu mnuFιle4; Caption = "cd4"; HelpContextlD = 190; Tag = "3981"; Visible = 0 'False; End; Begin VB.Menu mnusep; Caption = "-"; HelpContextlD = 48; Index = 1 ; End; Begin VB.Menu mnuExit; Caption = "cdE&xit"; HelpContextlD = 292; Tag = "3982"; End;
End; Begm VB.Menu mnuEdit; Caption = "cd&Edit"; HelpContextlD = 104; Tag = "3983"; Begm VB.Menu mnuUndo; Caption = "cd&Undo"; Enabled = 0 'False; HelpContextlD = 106; Shortcut = ΛZ; Tag = "3984"; End; Begm VB.Menu mnuSepperl; Caption = "-"; End; Begin VB.Menu mnuCopy; Caption = "cd&Copy Special"; HelpContextlD = 107; Shortcut = ΛC; Tag = "3985"; End; Begin VB.Menu mnuPaste; Caption = "cd&Paste Special"; HelpContextlD = 108; Shortcut = ΛV; Tag = "3986"; End; Begin VB.Menu mnuPspecial; Caption = "cdPaste Into
&Object"; HelpContextlD = 109; Tag = "3987"; Begm VB.Menu MnuForce; Caption = "cd&Force-fit mto Rectangle"; HelpContextlD = 110; Tag = "3988"; End; Begin VB.Menu MnuBest; Caption = "cd&Proportional-fit mto Rectangle"; HelpContextlD = 111 ; Tag = "3989"; End; Begin VB.Menu mnuPasteDistortVert; Caption = "cd&Distort Horizontal"; Tag = "3990"; End; Begm VB.Menu mnuPasteDistortHoriz; Caption = "cdDistort &Vertιcal", Tag = "3991"; End; End; Begin VB.Menu CPsep; Caption = "-"; End, Begm VB.Menu mnuWcopy,
Caption = "cdCopy to Windows Clip&board"; HelpContextlD = 112; Tag = "3992"; End; Begin VB.Menu mnuWinPaste; Caption = "cdPaste from &Wmdows Clipboard"; HelpContextlD = 113; Shortcut = ΛW; Tag = "3993"; End; Begm VB.Menu seperator; Caption = "-"; End; Begin VB.Menu mnuGlue; Caption = "cd&Glue Object..."; HelpContextlD = 115; Shortcut = ΛG; Tag = "3994"; End; Begin VB.Menu mnuDelete; Caption = "cd&Delete Object..."; HelpContextlD = 114; Tag = "3995"; End; Begin VB.Menu sFind; Caption = "-"; End; Begm VB.Menu mnufind; Caption = "cdSearch CD-RO&M Database..."; HelpContextlD = 251; Shortcut = ΛF; Tag = "3996"; End; Begin VB.Menu sepglue; Caption = "-"; End; Begin VB.Menu mnuEyedropper; Caption = "cdE&yedropper ", HelpContextlD = 299, Tag = "3997"; Begin VB.Menu mnuEyePattern; Caption = "cdPattern Color"; Tag = "3998"; End; Begin VB.Menu mnuEyeOpacity; Caption = "cdOpacity Color"; Tag = "3999", End; End; Begm VB.Menu MenuPattem; Caption = "cd&Select As Pattern"; HelpContextlD = 116; Tag = "4000"; End; Begm VB.Menu mnuFill; Caption = "cdF&ill With Current Pattern"; HelpContextlD = 117; Tag = "4001 "; Begin VB.Menu mnuPatterriFillNormal; Caption = "cd&Normal Fill"; Shortcut = ΛL; Tag = "4002", End; Begin VB.Menu mnuPatternFillDistortVert, Caption = "cd&Distort Horizontal"; Tag = "4003"; End; Begin VB.Menu mnuPatternFillDistortHoπz; Caption = "cdDistort &Vertιcal"; Tag = "4004"; End; End; Begin VB.Menu MnuErase, Caption = "cdSee-through &Erase..."; HelpContextlD = 118; Tag = "4005"; Begin VB.Menu MnuEraseTrans; Caption
= "&Translucent"; Tag = "4006"; End; Begin VB.Menu MnuEraseSohd; Caption = "&Sohd", Tag = "4007"; End, End; End; Begin VB.Menu mnuNewView; Caption = "&cdVιew"; Tag = "4008"; Begin VB.Menu MnuNewProduct; Caption = "cd&Product Information"; Tag = "4009"; End; Begin VB.Menu mnuObjlst, Caption = "cd&Object List"; Tag = "4010", End; Begin VB.Menu MnuGnd; Caption = "cd&Show Grid", Tag = "4011"; End; Begin VB.Menu mnuNewZoom, Caption = "cd&Zoom"; Tag = "4012"; Begin VB.Menu mnuZoomin; Caption = "cd&In"; Tag =
"4013"; End; Begin VB.Menu mnuZoomout; Caption = "cd&Out"; Tag = "4014"; End; End; Begm VB.Menu mnuNewDatabaseC; Caption = "cd&Database Categories", Tag = "4015"; End; Begin VB.Menu mnuNewVideos; Caption = "cd&Videos"; Tag = "4016"; End; Begm VB.Menu mnNewVendor; Caption = "cd&Vendor", Tag = "4017"; End; Begin VB.Menu mnuBnghmess; Caption = "cd&Ammation"; Tag = "4018"; End; End, Begin VB.Menu mnulmage; Caption = "cd&Image"; HelpContextlD = 119; Index = 119; Tag = "4019"; Begin VB.Menu mnuNewPosition; Caption = "cd&Positiomng"; Tag = "4020"; Begin VB.Menu MnuNewSendToBack; Caption = "cdSend To &Back"; Tag = "4021"; End; Begin VB.Menu MnuNewSendToFront; Caption = "cdSend To &Front"; Tag = "4022"; End; Begin VB.Menu mnuNewSendPrev, Caption = "cdSend To &Prevιous Position"; Tag = "4023"; End; End; Begin VB.Menu MnuCreate; Caption = "cd&Create"; Tag = "4024"; Begin VB.Menu mnuFh; Caption = "cd&Rectangle"; HelpContextlD = 380; Tag = "4025"; End; Begin VB.Menu mnuScDoorS; Caption = "cd&Polygon",
HelpContextlD = 381; Tag = "6895"; End; Begin VB.Menu mnuElhpse; Caption = "cd&Ellipse"; Tag = "4027"; End; Begin VB.Menu mnuShadows; Caption = "cdShado&ws .."; HelpContextlD = 133; Tag = "4028", End; Begm VB.Menu MnuNewDraw; Caption = "cd&Drawings"; Tag = "4029"; End; End; Begin VB.Menu mnEffects; Caption = "cdEffec&ts"; HelpContextlD = 134; Tag = "4030"; Begm VB.Menu mnuEffectMixer; Caption = "cd&Mixer"; Tag = "4031 "; End; Begin VB.Menu mnuEffectBnghttiess; Caption = "cd&Bπghtness"; Tag = "4032"; End; Begin VB.Menu mnuEffectConteast; Caption = "cd&Conteast"; Tag = "4033"; End; Begin VB.Menu mnuEffectSharpness; Caption = "cd&Sharpness"; Tag = "4034"; End; Begin VB.Menu mnuEffectHue; Caption = "cd&Hue"; Tag = "4035"; End; Begin VB.Menu mnuEffectSaturation; Caption = "cdS&aturation"; Tag = "4036"; End; Begin VB.Menu mnuEffectsChannel; Caption = "cdCha&nnels"; Tag = "4037"; End; Begin VB.Menu mnuEffectTransparency; Caption = "cd&Ghost"; Tag = "4038"; End; Begm VB.Menu mnuEffectColor; Caption = "cdRGB Overlay"; Tag =
"4039"; End; Begin VB.Menu MnuSharp; Caption = "cdPaint With &Opacιty"; HelpContextlD = 124; Tag = "4040"; End; End; Begm VB.Menu mnuNewTransforms; Caption = "cd&Transforms"; Tag = "4041 "; Begin VB.Menu mnuPerspective; Caption = "cd&Pe spective"; HelpContextlD = 126; Tag = "4042"; Begin VB.Menu MnuPer; Caption = "cd&Hoπzontal", Tag = "4043"; End; Begm VB.Menu mnuNewPersVert; Caption = "cd& Vertical"; Tag = "4044"; End; End; Begin VB.Menu mnuEffectRotation; Caption = "cd&Rotate"; Tag = "4045"; End; Begm VB.Menu mnuMirror; Caption = "cdF&hp"; HelpContextlD = 129; Tag = "4046"; Begin VB.Menu mnuMirrorHorz; Caption = "cd&Honzontal"; HelpContextlD = 129, Tag = "4047"; End; Begin VB.Menu mnuMirrorVert, Caption = "cd&Vertical"; HelpContextlD = 129; Tag = "4048"; End; End; Begin VB.Menu mnuSkew; Caption = "cdS&kew..."; HelpContextlD = 178; Tag = "4049"; End; End; Begin VB.Menu MnuNewProperties; Caption = "cd&Properties", Tag = "4050"; Begin VB.Menu mnuResizePattemTo, Caption = "cd&Percentage Scaled:"; HelpContextlD = 257; Tag =
"4051"; End; Begin VB.Menu mnmuNewEasySub; Caption = "cd&Substitution"; Tag = "4052"; Begin VB.Menu mnuNewHP; Caption = "cd&Hight Proportional"; Tag = "4053", End; Begin VB.Menu mnuNewWP; Caption = "cd& Width Proportional"; Tag = "4054"; End; Begin VB.Menu mnuNewFF; Caption = "cd&Frorce Fit"; Tag = "4055"; End; Begin VB.Menu mnuNewScalePat; Caption = "cd&Scaled Pattern", Tag = "4056"; End, Begin VB.Menu mnuNewSP; Caption = "cdStandard &Pattern", Tag = "4057"; End; Begin VB.Menu mnuNewNone;
Caption = "cd&None"; Tag = "4058"; End; End, Begin VB.Menu mnuNewTransl; Caption = "cd&Translucent"; Tag = "4059"; Begin VB.Menu mnuZap, Caption = "cd&On"; Tag = "4060"; End; Begin VB.Menu mnuoff; Caption = "cdO&ff ; Tag = "4061 ", End; End; Begin VB.Menu mnuNewAnti, Caption = "cd&Anti-Ahasing "; Tag = "4062"; Begin VB.Menu mnuIsInterpolationOn; Caption = "cd&On"; Tag = "4063"; End; Begin VB.Menu mnuIsInterpolationOff; Caption = "cd&Off ; Tag = "4064"; End, End; End; End; Begm VB.Menu MnuProject;
Caption = "cd&Project"; HelpContextlD = 140; Tag = "4065"; Begin VB.Menu mnuDoor; Caption = "cd&Tape Measure"; HelpContextlD = 325; Tag = "4066"; End; Begin VB.Menu mnuResizeProject; Caption = "cdResize Pro&ject"; HelpContextlD = 294; Tag = "4067"; End; Begin VB.Menu mnuBackgroundAdjust; Caption = "cd&Background Adjustments"; HelpContextlD = 141; Tag = "4069"; End; Begin VB.Menu mnuSelect; Caption = "cd&Select Source..."; HelpContextlD = 221 ; Tag = "4070"; End; Begm VB.Menu mnuChangeDB; Caption =
"cd&Change CD-ROM..."; HelpContextlD = 143; Tag = "4071"; End; Begm VB.Menu mnuProgram; Caption = "cdProgram &Optιons..."; HelpContextlD = 144; Tag = "4072"; End; End; Begin VB.Menu mnu Wmdow; Caption = "cd& Window"; HelpContextlD = 147; Tag = "4073"; WindowList = -1 'Tme; Begin VB.Menu mnuCascade; Caption = "cd&Cascade"; HelpContextlD = 148; Tag = "4074"; End; Begin VB.Menu mnuTileHoπzontal; Caption = "cdTile &Hoπzontal"; HelpContextlD = 149; Tag = "4075"; End; Begin VB.Menu mnuTileVertical; Caption = "cdTile
&Vertιcal"; HelpContextlD = 150; Tag = "4076"; End; Begm VB.Menu mnuArrangelcon; Caption = "cd&Anange Icons"; HelpContextlD = 151; Tag = "4078"; End; End; Begin VB.Menu mnuHelp; Caption = "cd&Help"; HelpContextlD = 54; Tag = "4079"; Begin VB.Menu mnuManual2; Caption = "cd&On-lme Manual"; HelpContextlD = 55; Tag = "4080"; End; Begin VB.Menu mnumdex2; Caption = "cdHelp &Index"; HelpContextlD = 56; Tag = "4081 "; End; Begin VB.Menu sep5; Caption = "-"; End; Begin VB.Menu mnuscnit; Caption = "cd& Video Tutorials";
HelpContextlD = 58; Tag = "4082"; End; Begin VB.Menu hlsep; Caption = "-"; End; Begin VB.Menu mnuquιck2; Caption = "cd&Techmcal Support"; HelpContextlD = 275; Tag = "4083"; End; Begm VB.Menu mnuVideoHow; Caption = "cd&Product Registration"; HelpContextlD = 275; Tag = "4084"; End; Begm VB.Menu h2sep; Caption = "- "; End; Begin VB.Menu mnuabout2; Caption = "cd&About The Product"; HelpContextlD = 189; Tag = "4085"; End; End;End;Attnbute VB Name = "FrmMam"; Attribute VB GlobalNameSpace = False; Attribute VB Creatable = False;Attπbute VB_PredeclaredId = True,Attribute VB_Exposed = False,
FRMMDI ; Dim CurrentVendor As Stemg;Dιm CurrentCategory As Stπng;Dιm CunentSubCategoryld As Integer;Dιm Loading As Boolean;Dιm ExitEvent As Boolean;Dιm AllStnps As Boolean;Dιm Buttonlndex As Integer;Dιm PSwitch As Boolean;Pubhc TintFlagl As BooleanjPubhc TmtFlag2 As Boolean;Pubhc TmtFlag3 As
Boolean;Dιm But Rect As Integer;Dιm But_Poly As Integer;Dιm But Persp As Integer;Dιm va capJBal But ShowTools As Stemg;Dιm va_cap_Bal_But_HιdeTools As Strmg;Pubhc Sub OpenNew();On Error Resume Next; 'If UBound(FormState) = 20 Then; ' For I = 1 To 20; ' If FormState(ι).Deleted = Tme Then GoTo IsFreeForm; ' Next I; ' DisplayErrorMessage VA CLOSEWINDOW, vblnformation, VaTitle; ' Exit Sub; 'End Ift'IsFreeForm:; Screen.MousePointer = vbDefault; If Check_Resources(MιnResourceReq + 9, False) Then;
HideAnySteips; frmNew.Show 1 , ShowAnySteips; Else; DisplayErrorMessage VA_CANT & Chr(13) & VA_CANT1 & Chr(13) & VA_CANT2 & Chr(13) & VA_CANT3, vblnformation, VaTitle; End IftEnd Sub;Pubhc Sub patch2(butt As Integer, catval As Integer); CurrentSubCategoryld = catval; btnDB Click butt;End SubjPubhc Function DataSearch() As Boolean;'RIC keep this in mmd for company's names;'where RItemName like """ & cmbCompany.Text & """");Dιm I, d As Integer;Dιm DataReteeived As Stemg, MySQL As Stπng;Dιm TableSte As
Stπng;On Enor GoTo DataSearchEnor;d = CDVolumnChange() 'get database name from CD;DataSearch = Tme 'return value;Loadιng = True;If DBase = "Not Valid" Then Exit Functιon;Datal. DatabaseName = DBPath & DBase;Data2.DatabaseName = DBPath & DBase; 'VENDOR; If Pro Version = Tme Then; Data 1. RecordSource = "Select Distinct Name from Company order by name"; 'Data 1. RecordSource = "Select Member from FamilyJVΪember"; Else; For I = 1 To UBound(VahdFamιlyMembers); MySQL = MySQL &
"FM_SubCategorys.Family_Member = '" & VahdFamιlyMembers(ι) & '" Or "; Next I; MySQL = Left(MySQL, Len(MySQL) - 4); enter = 0; DataReteeived = va_cap_AHProductLines; cmbVendor.Addltem DataReteeived, enter; cmbVendor.Text = va_cap_AllProductLmes; CunentVendor = """" & cmbVendor.Text & ' "; GoTo Cat;
'Data 1. RecordSource = "SELECT DISTINCT ProductDetail.RItemName FROM FM_SubCategorys INNER JOIN ProductDetail ON FM SubCategorys.ItemID = ProductDetail.ItemID WHERE " & MySQL; End If; Data 1.Refresh,
Datal.Recordset.MoveLast; Datal.Recordset.MoveFirst; cnt = Datal.Recordset.RecordCount; If cnt o 0 Then; enter = 0; DataReteeived = va_cap_AHProductLines; cmbVendor.Addltem DataReteeived, enter; enter = enter + 1 ; Datal.Recordset.MoveNext 'BUG the first record has NULL and gives an error, change below to 1 to cnt when fixed; For l = 1 To cnt - 1 'See above bug for -1 explanation; DataReteeived = Data l.Recordset( "Name"); If DataReteeived o "" And Left$(DataRetreιved, 1) o "*" Then; cmbVendor.Addltem DataReteeived, enter; enter = enter + 1; End If;
Datal.Recordset.MoveNext; Next I; ExitEvent = Tme; cmbVendor.Text = va_cap_AUProductLιnes 'When set it calls combo *B; ExitEvent = False; CurrentVendor = """" & cmbVendor.Text & " ; Else; TableSte = VA VEND; GoTo
DataSearchEnor 'no venders; End If;Cat:; 'CATEGORY; cmbCategoπes.Clear; If ProVersion = Tme Then;
Data 1. RecordSource = "Select Distinct CategoryName, Categoryld, DataBase from Category where Categoryld <> 19000 order by DataBase, CategoryName"; Else; Data 1. RecordSource = "SELECT DISTINCT Category CategoryName, Category CategorylD, Category DataBase FROM FM SubCategorys INNER JOIN Category ON FM_SubCategorys Category = Category CategoryName WHERE " & MySQL & " order by Category Database, Category CategoryName", End If, Datal Refresh, Datal Recordset MoveLast, Datal Recordset MoveFirst, cnt = Datal Recordset RecordCount, If cnt <> 0 Then, enter = 0, For 1 = 1 To cnt, DataReteeived = Datal Recordset("CategoryName"), cmbCategories Addltem DataReteeived, enter, cmbCategories ItemData(cnter) = Datal Recordset("CategoryId"), enter = enter + 1 , Datal Recordset MoveNext, Next l, ' cmbCategories Text = cmbCategories Lιst(0), CurrentCategory = """" & cmbCategories Text & """", cmbCategories Listlndex = 0, Else, TableSte = VA CAT, GoTo DataSearchError 'no categories, End IftLoading = False,'cmbCategoπes_Clιck,Exιt Functιon,DataSearchEnor , If Err Number = 94 Then Resume Next 'is null,If Err Number <> 0 Then, gMsg = va Enor Enor & Ste(En Number) & va_Enor_WasGeneratedBy _, & Err Source &
Chr(13) & Err Description & Chr(13) & " (DataSearch)", DisplayErrorMessage gMsg, vbCritical, VaTitle, DataSearch = False 'problem opening return value,Else, DisplayErrorMessage VA_NOITEMS & TableSte, vblnformation, VaTιtle,End If,Screen MousePomter = vbDefault,Exιt Functιon,End Functιon,'Pubhc Sub InιtιateARectangle(),' If Check_Resources(MιnResourceReq, False) Then,' Screen MousePomter = vbHourglass,' SetCreateMode 0,' Screen MousePomter = vbDefault,' Else,' DisplayEnorMessage VA_CANT & Chr(13) & VA_CANT1 & Chr(13) &
VA CANT2 & Chr(13) & VA CANT3, vblnformation, VaTitle,' End If,'End Sub,Pubhc Sub PlayVιdeo(Vnumber As Integer),Dιm l As Long, On Enor Resume Next,ι = Vnumber - 100 'all videos that play automatically must start at 101, If VaCollectιon(ι) status Then, frmAvi Vιdιo2Play = Vnumber, frmAvi Show 1, If frmAvi Vιdιo2Play = -99 Then, VaCollectιon(ι) status = False, End If,End If,End Sub,Sub PushButt(Index As Integer, dowmndex As Integer),On Error Resume Next,'EZbutt(downιndex) Top = EZbutt(Index) Top,'EZbutt(downιndex) Left =
EZbutt(Index) Left,'EZbutt(downmdex) Visible = Tme,'EZbutt(downmdex) Zorder 0,EZbutt(downindex) Visible = Not EZbutt( dowmndex) Vιsιble,QuιckPlay "Button2 wav",DoEvents,End Sub,Pubhc Sub QuιckPlay(WavName As Stπng),On Error Resume Next,If VaCollectιon("13") status Then, With frmMDI mmcVoice, Command = "Close", Filename = App Path & "\" & WavName, Command = "Open", Command = "Play",End Wιth,End If,'MsgBox VaCollectιon(" 13") status,End Sub,Sub RetreatButtons(),Dιm pos As Integer,'for now until we see what people thιnk,Exιt Sub,pos = 5415,vabtnl(19) Left = pos,vabtnl(20) Left = pos,vabtnl(21) Left = pos,vabtnl(10) Left = pos,vabtnl(l 1) Left = pos,vabtnl(12) Left = pos,vabtnl(16) Left = pos, vabtn 1(24) Left = pos,vabtnl(26) Left = pos,vabtnl(27) Left = pos,vabtnl(22) Left = ρos,vabtnl(19) Visible = False,vabtnl(20) Visible = False,vabtnl(21) Visible = False,vabtnl(10) Visible = False,vabtnl(l 1) Visible = False,vabtnl(12) Visible = False,vabtnl(16) Visible = False,vabtnl(24) Visible = False,vabtnl(26) Visible = False,vabtnl(27) Visible =
False,vabtnl(22) Visible = False,vabtnl(25) ZOrder,Bal_But = va_cap_Bal_But_ShowTools,End Sub,Sub SpreadButtons(),'for now to see what people thmk.Exit Sub,Dιm r As Integer, rr As Integer, btn As Integer,Drm A As Integer,For r = 1 To 11, Select Case r, Case 1, btn = 19, Case 2, btn = 20, Case 3, btn = 21, Case 4, btn = 10, Case 5, btn = 11, Case 6, btn = 12, Case 7, btn = 16, Case 8, btn = 24, Case 9, btn = 26, Case 10, btn = 27, Case 11, btn = 22, Case Else, End Select, A = vabtnl(btn) Left, vabtnl(btn) Visible = Tme, For n = 0 To 330 * (r) Step 55 '((340 / 2) * (r - 1)); vabtnl(btn).Left = A + n; Next rr;Next r;Bal_But = va_cap_Bal_But_HιdeTools;'vaBtnl(25) Visible = False;End Sub;'Publιc Sub PaιntWιthColor(ThιsColor As Long);'On Error Resume Next;';'If CunentObj(frmMDI.ActιveForm.Tag) <> 0 Then;' Screen.MousePointer = vbHourglass,' UnselectObject frmMDI.ActiveForm;' RecreateObject CunentObj(frmMDI.ActιveForm.Tag), frmMDI.ActiveForm;' frmMDI.ldEditlmageBuffer.Bitmap = frmMDI.ldObjectBuffer.Bitmap;' frmMDI.ldTwain.Bitmap = frmMDI.ldObjectBuffer.Bitmap 'makes it the same size;' frmMDI.ldTwam.Fill ThisColor,' frmMDI.ldTwam.UnderlayType = UNDERLAY_STRETCH;' frmMDI.ldTwam.Underlay = frmMDI.ldObjectBuffer.Bitmap;' frmMDI.ldObjectBuffer.Bitmap = frmMDI.ldTwain.Bitmap;' SelectObjects(frmMDI.ActιveForm) = CurrentObj(frmMDI.ActιveForm.Tag);' RecreateObject CurrentObj(frmMDI.ActιveForm.Tag), frmMDI.ActiveForm,' SelectObjects(frmMDI.ActιveForm) =
CurrentObj(frrnMDI.ActιveForm.Tag);' RecreateObject CurrentObj(frmMDI.ActiveFoim. Tag), frmMDI.ActiveForm;' UnselectObject frmMDI.ActiveForm;' Screen.MousePointer = vbDefault;'Else;' DisplayEnorMessage VA_NOTSELECTED, vblnfoπnation, VaTιtle;'End Ift'End Sub;'Opens a strip and loads images to ιt,'ιf strip has been created then it just shows it and updates;'the subcategory information is kept in an array for each strip, 'this way the strip is independent and and contains all information for ιts;'own functioning. Index is 0,1, or 2 dependmg on user button pressed;Pubhc Sub btnDB_Chck(Index As Integer);Dιm cnt As Integer;Dιm CorrectionAspect As Sιngle;Dιm bmove As Integer; Static HEst As Integer;Dιm Passlt As Boolean;Dιm Region Values As Stπng;Dιm va_Error_Regιon_NoProducts As Stπng;va_Error_Regιon_NoProducts = LoadResStnng(6301) ' "No products found for this region. ";If Index = 3 Then 'user database only; PlayFile DBPath & "user.wav"; frmUserDatase.Show; 'btndb(Index).Left = btndb(Index).Left - bmove; 'btndb(Index).Top = btndb(Index).Top - bmove; Exit Sub;End If;On
Error Resume Next;'About 2% for the USER DB no check needed and was interfering with opening DB strip below check see;'If Not Check_Resources(MmResourceReq + 9, False) Then;' DisplayErrorMessage VA CANT & Chr(13) & VA_CANT1 & Chr(13) & VA_CANT2 & Chr(13) & VA_CANT3, vblnformation, VaTitle;' Exit Sub;'End Iftbmove = 25;b db(Index).Left = btndb(Index).Left + bmove;bmdb(Index).Top = btndb(Index).Top + bmove;If StπpOpened(Index + 1) = False And Not Check_Resources(MιnResourceReq + 9, False) Then; DisplayErrorMessage
VA CANT & Chr(13) & VA CANT1 & Chr(13) & VA_CANT2 & Chr(13) & VA_CANT3, vblnformation, VaTitle; btndb(Index).Left = btndb(Index).Left - bmove; btndb(Index).Top = btndb(Index).Top - bmove; Exit Sub;End IftPlayFile DBPath & "filecab.wav";If CD VolumnChange Then; HideAllDBForm; If DBase <> "Not Valid" Then, gMsg = VA_CHANGECD; Else; gMsg = VA VOLUMN; End If; DisplayErrorMessage gMsg, vblnformation, VaTitle; btndb(Index).Left = btndb(Index).Left - bmove; btndb(Index).Top = btndb(Index).Top - bmove;
QuickDB.Form Load; QuickDB.Show; Exit Sub;End If;On Enor GoTo btnDBEnor;LoadιngStπp = Tme 'prevents from gomg mto the change event of the scroll m stπp;Screen.MousePoιnter = vbHourglass;frmMDI.pιcPostIt2. Visible = False;frmMDI.ssBottom(l). Caption = "";'selects all information on subcategory needed for the stπp;'Datal. RecordSource = "Select ItemName,RItemName, ID from ProductDetail where ItemlD = " & CuπentSubCategoryld & " order by ManufactureOrder, RItemName";If CunentVendor = """All Product Lines""" Then, VStrrng = "";Else; VStπng = " and RItemNaine = " & CurrentVendor;End If;If UseRegions = False Then, Datal. RecordSource = "Select ItemName,RItemName, ID , ProductDetail.IsSubComp, Animation from ProductDetail where ItemID = " & CurrentSubCategoryld & VStπng & " order by ManufactureOrder, RItemName, ItemName ";Else; Region Values = QuιckDB.GetRegιons("ProductDetaιl.ItemID = " & CurrentSubCategoryld & VStnng & " And "); If Region Values = "None Selected" Then, DisplayErrorMessage va_Enor_Regιon_NoSelect, vblnformation, VaTitle; LoadingStπp = False; btndb(Index).Left = btndb(Index).Left - bmove; btndb(Index).Top = btadb(Index).Top - bmove; Screen.MousePointer = vbDefault; QuickDB.mnuRegions Click; Exit Sub; End If, Datal. RecordSource = "SELECT distinct ProductDetail.ItemName, ProductDetail.RItemName, ProductDetail.ID, ProductDetail.IsSubComp, ProductDetail.Ammation FROM ProductByRegion RIGHT JOIN ProductDetail ON ProductByRegion.ProductID = ProductDetail.ID WHERE ((ProductDetail.ItemID = " & CunentSubCategoryld &
VStnng & " And ProductByRegion.RegionID Is Null)) OR ((" & RegionValues & "));"; 'Datal. RecordSource = "SELECT ProductDetail.ItemName, ProductDetail.RItemName, ProductDetail.ID, Region. RegionlD, Region.Region, ProductByRegion.ProductID FROM (ProductByRegion RIGHT JOIN Region ON ProductByRegion.RegionID = Region.RegionID) LEFT JOIN ProductDetail ON ProductByRegion.ProductID = ProductDetail.ID Where " & Region Values;End IftDatal Refresh;Datal .Recordset.MoveLast;Datal .Recordset.MoveFιrst;cnt =
Datal .Recordset.RecordCount;'Load strip anay with the information reteeivedjlf cnt <> 0 Then; ReDim DBObjectArray(l To cnt); For I = 1 To cnt; DBObjectArray(ι).DBProductName = Datal. Recordset("ItemName"), DBObjectAπay(ι).DBCompanyName = Datal.Recordset("RItemName"); DBObjectArray(i).DBProductID = Datal.Recordset("ID"); DBObjectArray(ι).ιsSubComp = Datal. Recordset("IsSubComp"); DBObjectArray(ι).VP Animation = Datal .Recordset("Animation");' MsgBox DBObjectArray(ι).VP Animation;
Datal.Recordset.MoveNext; Next I; 'loads or shows strip form; Passlt = False 'boolean; SteipCount = Index + 1; If SteipCount > HEst Then 'static; HEst = SteipCount; Passlt = Tme; End If; If StπpOpened( SteipCount) = False And Passlt Then; ReDim Preserve DBForm(StπpCount); Else; DBForm(StπpCount).Form_Load; End If, DBForm(StπpCount).WιndowState = 0; If StπpOpened( SteipCount) = False Then; DBForm(StrrpCount).Left = 5900 + (930 * SteipCount); DBForm(StnpCount).Top = 610 '1455; End If; Dim nod As Integer, currentaode As Integer 'get subcategory; For nod = 1 To QuickDB.TreeViewl .Nodes.Count; If QuickDB. Tree Vie wl .Nodes(nod). Selected Then, currentnode = nod; Exit For; End If; Next nod; 'If QuickDB.TreeViewl .Visible Then; ' If currentaode <> 0 Then; ' DBForm(SterpCount). Caption = QuιckDB.TreeVιewl.Nodes(currentnode).Text ' SteipCount & ": " & DBObjectArray(l).DBProductName; ' Else; ' DBForm(StnpCount).Captιon = SteipCount & ": " & DBObjectAπay(l).DBProductName; ' End If; 'Else; ' If QuickDB.cmbtest.Text <> "" Then; '
DBFoιm(StπpCount).Caρtιon = SteipCount & ": " & QuickDB.cmbtest.Text; ' Else; DBForm(StπpCount).Captιon = SteipCount & ": " & DBObjectArray(l).DBProductName; ' End If; 'End If; DBFoιm(StπpCount).Tag = SteipCount; DBForm(StπpCount).Show; DBForm(StrιpCount).vsbStπp.Max = cnt; DBForm(StnpCount).vsbSteip. Value = 1; DBForm(StnpCount).vsbStπp.Tag = SteipCount; DBForm(SteιpCount).Lιnel .Y2 = 1500; DBFoιm(StnpCount).Lme2.Yl = 1500, DBForm(StπpCount).Lme2 Y2 = 1500; StπpOpened(StπpCount) = Tme; StπpShowιng(StπpCount) = Tme, DBForm(SteιpCount).vaThumb.DatabaseName = DBPath & DBase, DBForm(StnpCount).vaThumb.Refresh; DBForm(StπpCount).vaThumb.dtaFιeld = ""; For 1 = 0 To 5 'clear all bitmaps; DBForm(StπpCount).ldstnp(ι). Visible = False; DBForm(SteιpCount).pιcPostIt(ι). Visible = False; Next l, 'loads first 6 thumbnails bitmaps; For I = 1 To cnt, DBForm(StnρCount).vaThumb RecordSource = "Select Thumb,RItemName from ProductDetail where ID = " & DBObjectAπay(ι).DBProductID,
DBForm(StnpCount).vaThumb.Refresh; DBForm(SterpCount) vaThumb.dtaField = "Thumb"; DBForm(StnρCount).vaThumb.Refresh; Me.ldlmportBuffer.Bitmap = DBForm(StπpCount).vaThumb Bitmap; DBForm(StπpCount).ldstnp(ι - l).Pιcture = Me.ldlmportBuffer.GetPicmre; DBForm(StπpCount) ldstnp(ι -T)Left = DBForm(StπpCount).ιmgBack(ι - l).Left + ((DBForm(StnpCount).ιmgBack(ι - l).Wιdth / 2) - (DBForm(StπpCount).ldsteιp(ι - l).Wιdth / 2)); DBForm(SteιpCount).ldsteιp(ι - l).Top =
DBForm(StπpCount).mιgBack(ι - l).Top + ((DBForm(StπpCount).ιmgBack(ι - 1) Height / 2) - (DBForm(SteιpCount).ldsteιp(ι - l).Heιght / 2)) + 1; DBForm(StπpCount).ldstπp(ι - l).Vιsιble = Tme, DBForm(StπpCount).ldstπp(ι - l).ZOrder, If l = 6 Then Exit For; Next ι;skrp21ogo.; 'loads the Logo (This section is repeated in frmsteip, when time allows make as one routine in a module; DBForm(StnpCount) vaLogo DatabaseName = DBPath & DBase; DBFoim(SterpCount).vaLogo.Refresh; DBForm(StπpCount) vaLogo.dtaField = "",
DBForm(StnpCount).vaLogo.RecordSource = "Select Logo from Company where Name = " & """" &
DBObjectArray(l).DBCompanyName & ' ', DBForm(SteipCount).vaLogo.Refresh;
DBForm(StπpCount).vaLogo.dtaFιeld = "Logo"; DBForm(StrrpCount).vaLogo.Refresh; DBForm(StπpCount).ldLogo.Bιtmap = DBForm(StπpCount).vaLogo.Bιtmap; DBForm(StπpCount).ldLogo.ScaleMode = 3 ' 09/12/97 DEH needs to be set to Pixels for the DstHeight/Width settings; With DBForm(StnpCount); If .ldLogo.Bitmap Width > . IdLogo. BitmapHeight Then; CorrectionAspect = .ldLogo.Scale Width / .ldLogo.Bitmap Width; .IdLogo.DstWidth = .IdLogo.Scale Width; .IdLogo.DstHeight = .ldLogo.BitmapHeight * ConectionAspect 'leave this one; 'IdLogo.Resize = Tme; If .IdLogo.DstHeight > .IdLogo. ScaleHeight Then; CorrectionAspect = .IdLogo. ScaleHeight / .IdLogo.DstHeight; .IdLogo.DstHeight = .IdLogo. ScaleHeight; .IdLogo.DstWidth = .IdLogo.DstWidth * CorrectionAspect; 'IdLogo.Resize = Tme; End If; Else,
ConectionAspect = .IdLogo. ScaleHeight / .ldLogo.BitmapHeight; .IdLogo.DstHeight = .IdLogo. ScaleHeight; .IdLogo.DstWidth = .ldLogo.Bitmap Width * CorrectionAspect 'leave this one; 'IdLogo.Resize = Tme; If .IdLogo.DstWidth > .IdLogo. Scale Width Then; ConectionAspect = .IdLogo.ScaleWidth / .IdLogo.DstWidth; .IdLogo.DstWidth = .IdLogo.ScaleWidth; .IdLogo.DstHeight = .IdLogo.DstHeight * ConectionAspect; 'IdLogo.Resize = Tme; End If; End If; End With; DBForm(StπpCount).ldLogo.DstLeft = (DBForm(StπpCount).ldLogo.ScaleWιdth /
2) - (DBForm(StπpCount).ldLogo.DstWιdth / 2); DBForm(StπpCount).ldLogo.DstTop = (DBForm(StπpCount).ldLogo.ScaleHeιght / 2) - (DBForm(StπpCount).ldLogo.DstHeιght / 2);
DBForm(StπpCount).ldLogo.ForceRepaιnt ' 09/04/97 DEH Changed from VBX to OCX;
DBForm(StπpCount).vaLogo.Bιtmap = 0 'because it's set read only m the data conteol;Else; DisplayEnorMessage VA NOITEMS & VA_PRODUCTS, vblnfoπnation, VaTιtle;End If;btndb(Index).Left = btndb(Index)Left - bmove;btadb(Index).Top = btadb(Index).Top - bmove;Screen.MousePointer = vbDefault;LoadingSteip = False;Exit Sub;btnDBError:;If Err = 3061 Then; Datal. RecordSource = "Select ItemName,RItemName, ID from ProductDetail where ItemID = " & CurrentSubCategoryld & VSteing & " order by ManufactureOrder, RItemName, ItemName"; Resume;End If;If Err = 3265 Then Resume Next 'Field not found;If Err.Number = 94 Then Resume Next 'is null;If Err.Number o 0 Then; If UseRegions Then; If Err = 3021 Then; DisplayErrorMessage va_Error_Region_NoProducts, vblnformation, VaTitle; LoadingSteip = False; Else; gMsg = va_Error_Error & Str(Err.Number) & va_Error_WasGeneratedBy _; & Err.Source & Chr(13) & Err.Description & Chr(13) & " (btnDB_Click)"; DisplayErrorMessage gMsg, vbCritical, VaTitle; LoadingSteip = False; End If; Else; gMsg = va Error Error & Ste(Err.Number) & va_Error_WasGeneratedBy _; & Err.Source & Chr(13) & Err.Description & Chr(13) & " (btnDB Click)"; DisplayErrorMessage gMsg, vbCritical, VaTitle; Resume; LoadingSteip = False; End
IftEnd If;btndb(Index).Left = btndb(Index).Left - bmove;btndb(Index).Top = btndb(Index).Top - bmove;Screen.MousePointer = vbDefault;Exit Sub;End Sub;Private Sub btnDB_DragDrop(Index As Integer, Source As Control, X As Single, Y As Single); Dim i As Integer; For i = 1 To Highestlndex(frmMDI.ActiveForm.Tag); If ObjectDiscription(frmMDI.ActiveForm.Tag, i).Deleted <> Tme Then; If frmMDI.ActiveForm.ldImageObject(i).BorderStyle = 1 Then frrnMDI.ActiveFoιm.ldImageObject(i).BorderStyle = 0;
End If; Next i;End Sub;Private Sub btnDB_MouseMove(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single);' If Index < 3 Then;' PresentBalloon 200, vaBlnl;' Else;' PresentBalloon 201, vaBlnl;' End IftEnd Sub;'Changes subcategory to the new category just selected;Private Sub cmbCategories_Click();Dim i As Integer, MySQL As String, L As Integer 'rick;On Error GoTo cmbCategoriesError;If ExitEvent = Tme Then Exit Sub;If CD VolumnChange Then; HideAllDBForm; If DBase o "Not Valid" Then; gMsg = VA_CHANGECD; Else; gMsg =
VA VOLUMN; End If; DisplayErrorMessage gMsg, vblnformation, VaTitle; Exit Sub;End IftCurrentCategory = '"
& cmbCategories.Text & """";cmbsubcategories.Clear;Screen.MousePointer = vbHourglass;If CurrentVendor = """All Product Lines""" Then 'All Product Lines; If Pro Version = Tme Then; Datal. RecordSource = "Select Distinct SubCategoryName.SubCategoryld from SubCategory where CategoryName = " & CurrentCategory & " Order by SubCategoryName"; Else; MySQL = ""; For i = 1 To UBound(ValidFamilyMembers); MySQL = MySQL &
"FM_SubCategorys.Family_Member = '" & ValidFamilyMembers(i) & '" AND FM_SubCategorys.Category = " & CurrentCategory & " Or "; Next i; MySQL = Left(MySQL, Len(MySQL) - 4); Datal. RecordSource = "SELECT DISTINCT SubCategory.SubCategoryName, SubCategory. SubCategorylD FROM SubCategory INNER JOIN FM_SubCategorys ON (FM_SubCategorys.Category = SubCategory.CategoryName) AND (SubCategory.SubCategoryName = FM_SubCategorys.SubCategory) WHERE " & MySQL ' & " AND
FM_SubCategorys.Category = " & CurrentCategory; End If; Datal. Refresh; 'cmbSubCategories.Clear; Datal.Recordset.MoveLast; Datal.Recordset.MoveFirst; cnt = Datal.Recordset.RecordCount; If cnt o 0 Then; enter = 0; For i = 1 To cnt; DataReteeived = Datal. Recordset("SubCategoryName"); cmbsubcategories.Addltem DataReteeived, enter; cmbsubcategories.ItemData(cnter) = Datal. Recordset("SubCategoryId"); enter = enter + 1; Datal.Recordset.MoveNext; Next i; 'cmbSubCategories.TEXT = cmbSubCategories.List(O); 'cmbSubCategoπes.Listlndex = 0; 'CurrentSubCategoryld = cmbSubCategoπes.ItemData(cmbSubCategoπes. Listlndex) + cmbCategories. ItemData(cmbCategoπes. Listlndex), Else, DisplayErrorMessage VA NOITEMS & VA_SUBCAT, vblnformation, VaTitle, End IftElse 'vendor selected; If Pro Version = Tme Then, Datal. RecordSource = "Select DISTINCT ItemJD from ProductDetail where ItemID >= " & cmbCategoπes.ItemData(cmbCategoπes.LιstΙndex) & " and ItemID < " &
(cmbCategories.ItemData(cmbCategories.Listlndex) + 1000) & " and RItemName = " & CurrentVendor; Datal. Refresh; Datal.Recordset.MoveLast 'Move recordset to end to get recordcount; Datal.Recordset.MoveFirst; 'Since he makes two sqls and uses one to loop through the other I am putting the first in an array.; Dim RCounts As Integer, RCounts = Datal.Recordset.RecordCount; ReDim TempArr(l To RCounts) As Integer 'added by rick to capture next, For l = 1 To RCounts 'rick, TempAπ(ι) = Datal.Recordset("ItemID") 'rick; Datal Recordset.MoveNext;
Next l 'rick, enter = 0; For l = 1 To RCounts ' array V here; Datal. RecordSource = "Select distinct SubCategoryName, SubCategorylD from SubCategory where SubCategorylD = " & Rιght$(TempArr(ι), 3) & " and CategoryName = " & CurrentCategory; Datal Refresh; Datal.Recordset.MoveLast ove recordset to end to get recordcount, Datal.Recordset.MoveFirst; If Datal.Recordset.RecordCount = 0 Then GoTo blowout; 'I AM HERE; For L = 0 To cmbsubcategones. ListCount - 1; If Tπm$(Datal .Recordset("SubCategoryName")) = cmbsubcategones. Lιst(L) Then
GoTo blowout; Next L; 'cmbSubCategoπes.Addltem Trim$(Datal.Recordset("SubCategoryName")); 'cmbSubCategoπes.ItemData(cmbSubCategoπes.NewIndex) = cmbCategories. ItemData(cmbCategoπes. Listlndex) + Datal. Recordset("SubCategoryID"); DataReteeived = Datal. Recordset("SubCategoryName"); cmbsubcategoπes.Addltem DataReteeived, enter; cmbsubcategoπes.ItemData(cnter) = Datal .Recordset("SubCategoryId"); enter = enter + 1 ;blowout:; Next I; Else; MySQL = ""; For I = 1 To
UBound(VahdFamilyMembers); MySQL = MySQL & "FM SubCategorys.Family vlember = '" & ValιdFamιlyMembers(ι) & '" AND ProductDetail.RItemName = " & CurrentVendor & " AND FM_SubCategorys.Category = " & CurrentCategory & " Or "; Next I; MySQL = Left(MySQL, Len(MySQL) - 4); Datal . RecordSource = "SELECT DISTINCT SubCategory.SubCategoryName, SubCategory. SubCategorylD FROM ProductDetail INNER JOIN (SubCategory INNER JOIN FM SubCategorys ON (FM_SubCategorys.Category =
SubCategory.CategoryName) AND (SubCategory.SubCategoryName = FM SubCategorys. SubCategory)) ON ProductDetail.ItemlD = FM_SubCategorys.ItemID Where " & MySQL '& " AND ProductDetail.RItemName = " & CurrentVendor & " AND FM SubCategorys.Category = " & CurrentCategory; Datal . Refresh; Datal.Recordset.MoveLast 'Move recordset to end to get recordcount; Datal.Recordset.MoveFirst; cmbsubcategones. Clear; For I = 1 To Datal.Recordset.RecordCount; DataReteeived =
Datal .Recordset("SubCategoryName"); cmbsubcategoπes.Addltem DataReteeived, enter; cmbsubcategones. ItemData(cnter) = Datal. Recordset("SubCategoryId"); enter = enter + 1; Datal.Recordset.MoveNext; Next i; End If;End If; cmbsubcategones. Text = cmbsubcategones. Lιst(0); cmbsubcategones. Listlndex = 0; CunentSubCategoryld = cmbsubcategones. ItemData(cmbsubcategoπes. Listlndex) + cmbCategoπes.ItemData(cmbCategorιes.LιstΙndex); Screen.MousePomter = 0;Exιt Sub;'SELECT DISTINCT SubCategory SubCategoryName, SubCategory.SubCategorylD FROM SubCategory INNER JOIN (FM_SubCategorys INNER JOIN ProductDetail ON FM SubCategorys.ItemID = ProductDetail.ItemID) ON SubCategory.SubCategoryName = FM_SubCategorys.SubCategory WHERE ((ProductDetaιl.RItemName="Classιc Lamp Posts") AND (FM_SubCategorys.Famιly_Member="Landscape") AND (FM_SubCategorys.Category="Landscapιng"));;'Venders, '"SELECT DISTINCT ProductDetail.RItemName FROM
FM SubCategorys INNER JOIN ProductDetail ON FM_SubCategorys.ItemID = ProductDetail.ItemID WHERE ((FM_SubCategorys.Famιly_Member="Landscape" Or FM_SubCategorys.Farmly_Member="Objects"))";'Categorys, '"SELECT DISTINCT FM SubCategorys. Category FROM FM SubCategorys INNER JOIN ProductDetail ON FM SubCategorys.ItemID = ProductDetail.ItemID WHERE ((FM_SubCategorys.FamιlyJvIember="Landscape" Or FM_SubCategorys.Famιly_Member="Objects"));"; 'Vender; '"SELECT DISTINCT FM SubCategorys Category,
ProductDetail.RItemName FROM FM SubCategorys INNER JOIN ProductDetail ON FM SubCategorys.ItemID = ProductDetail.ItemID WHERE ((FM_SubCategorys.Famιly_Member="Landscape") AND (ProductDetaιl.RItemName="Classιc Lamp Posts"));";'Subcategory; '"SELECT DISTINCT FM SubCategorys.SubCategory, FM_SubCategorys.Category FROM FM SubCategorys INNER JOIN ProductDetail ON FM_SubCategorys.ItemID = ProductDetail.ItemID WHERE ((FM_SubCategorys.Famιly_Member="Landscape"
Or FM_SubCategorys.FamιlyJvlember="Objects") AND (FM_SubCategorys. Category- Objects"));"; 'Vender; '"SELECT DISTINCT FM SubCategorys.SubCategory FROM FM SubCategorys INNER JOIN ProductDetail ON FM SubCategorys.ItemID = ProductDetail.ItemID WHERE ((FM_SubCategorys.Category="Landscapιng") AND (FM_SubCategorys.Famιly_Member="Landscape") AND (ProductDetail.RItemName- 'Classic Lamp Posts "));";cmbCategoπesEπor:;If Eπ.Number = 94 Then Resume Next 'is null.If En.Number o 0 Then; gMsg = va Error Error & Ste(Err.Number) & va_Enor_WasGeneratedBy _; & Err.Source & Chr(13) & Err.Description & Chr(13) & " (cmbCategoπes_chck)"; DisplayErrorMessage gMsg, vbCritical, VaTιtle;End IftScreen.MousePomter = vbDefault;Exιt Sub;End Sub;Pπvate Sub cmbCategoπes_DragDrop(Source As Control, X As Smgle, Y As Single); Dim l As Integer; For l = 1 To HιghestΙndex(frmMDI.ActιveForm.Tag); If ObjectDiscπptιon(frmMDI.ActιveForm.Tag, ι).Deleted <> Tme Then; If frmMDI.ActιveForm.ldImageObject(ι).BorderStyle = 1 Then fimMDI.ActiveForm.ldImageObject(i).BorderStyle = 0; End If; Next ι;End Sub;Pπvate Sub cmbSubCategoπes_Chck();'assιgns current sub category;On Error Resume Next;If CDVolumnChange Then; HideAllDBForm; If DBase <> "Not Valid" Then; gMsg = VA_CHANGECD; Else; gMsg = VA VOLUMN; End If; DisplayErrorMessage gMsg, vblnformation, VaTitle; Exit Sub;End IftScreen.MousePo nter = vbHourglass;CurrentSubCategoryId = cmbsubcategones. ItemData(cmbsubcategones.Listlndex) + cmbCategories. ItemData(cmbCategoπes.LιstIndex);'MsgBox CurrentSubCategoryId;Screen.MousePoιnter = 0;End Sub;Pπvate Sub cmbSubCategoπes_DragDrop(Source As Conteol, X As Single, Y As Smgle); Dim l As Integer; For I = 1 To HιghestΙndex(frmMDI.ActιveForm.Tag); If ObjectDιscπptιon(fπr_MDI.ActιveForm.Tag, ι).Deleted <> Tme Then; If frmMDI.ActiveForm.ldImageObject(i).BorderStyle = 1 Then frπ_MDI.ActιveForm.ldImageObject(i).BorderStyle = 0; End If; Next ι;End Sub;Pnvate Sub cmbVendor_Clιck();Dιm l As Integer, X As Byte;Dιm MySQL As Stπng;Dιm va_msg_Searchmg As Strmg;va_msg_Searchmg =
LoadResStπng(6365) ' "Searching the database for all products belonging to the selected product hne.";On Enor
GoTo CmbVendorEπor;If CD VolumnChange Then; HideAllDBForm; If DBase <> "Not Valid" Then; gMsg = VA_CHANGECD; Else; gMsg = VA VOLUMN; End If; DisplayErrorMessage gMsg, vblnformation, VaTitle; btndb(Index).Left = btndb(Index).Left - bmove; btadb(Index).Top = btndb(Index) Top - bmove; Exit Sub;End If, frmMessage.Show; frmMessage.Labell. Caption = va_msg_Searchmg; Screen MousePomter = vbHourglass,
DoEvents,CunentVendor = ' & cmbVendor.Text & """";'CATEGORY;cmbCategoπes.Clear;If CunentVendor =
"""All Product Lines ' Then; If Pro Version = Tme Then; Datal . RecordSource = "Select Distinct CategoryName,
Categoryld, DataBase from Category order by database, CategoryName", Else; MySQL = ""; For 1 = 1 To UBound(VahdFamιlyMembers); MySQL = MySQL & "FM_SubCategorys.FamιlyJVlember = '" &
VahdFamιlyMembers(ι) & '" Or "; Next I; MySQL = Left(MySQL, Len(MySQL) - 4); Datal . RecordSource = "SELECT DISTINCT Category.CategoryName, Category.CategorylD, Category.DataBase FROM FM_SubCategorys INNER JOIN Category ON FM SubCategorys.Category = Category.CategoryName WHERE " & MySQL & " order by Category. database, Category.CategoryName"; End IftElse 'change here; If Pro Version = Tme Then; Datal .RecordSource = "Select DISTINCT ItemID from ProductDetail where RItemName like " & CunentVendor,
Datal. Refresh; Datal.Recordset.MoveLast 'Move recordset to end to get recordcount; Datal.Recordset.MoveFirst; For l = 0 To Datal.Recordset.RecordCount - 1 ; MySQL = MySQL & " or CategorylD = " &
(CInt(Datal.Recordset("ItemID") / 1000)) * 1000; Datal.Recordset.MoveNext; Next I; MySQL = Rιght$(MySQL, Len(MySQL) - 3); Datal. RecordSource = "Select Distmct CategoryName, Categoryld, DataBase from Category where " & MySQL & " order by database, CategoryName"; Else; MySQL = ""; For I = 1 To
UBound(ValιdFamιlyMembers); MySQL = MySQL & "FM SubCategorys.Family Member = '" & ValιdFamιlyMembers(ι) & '" and ProductDetail.RItemName like " & CurrentVendor & " Or "; Next I; MySQL = Left(MySQL, Len(MySQL) - 4); Datal. RecordSource = "SELECT DISTINCT Category.CategoryName, Category.CategorylD, Category.DataBase FROM Category INNER JOIN (FM_SubCategorys INNER JOIN ProductDetail ON FM_SubCategorys. ItemID = ProductDetail.ItemID) ON Category.CategoryName =
FM SubCategorys.Category WHERE " & MySQL & " order by Category.DataBase, Category.CategoryName"; End
If;End IftDatal .Refresh;Datal .Recordset.MoveLast;Datal .Recordset.MoveFιrst;cnt =
Data l .Recordset.RecordCount;If cnt <> 0 Then; enter = 0; For l = 1 To cnt; DataReteeived =
Datal. Recordset("CategoryName"); cmbCategoπes.Addltem DataReteeived, enter; cmbCategoπes.ItemData(cnter) = Datal .Recordset("CategoryId"); enter = enter + 1 ; Datal .Recordset.MoveNext; Next i, cmbCategoπes.Text = cmbCategoπes.Lιst(O); CurrentCategory = " & cmbCategoπes.Text & """"; cmbCategoπes.Listlndex = 0;Else,
TableSte = VA_CAT; GoTo CmbVendorEπor 'no categories ;End IftLoadrng = False;'cmbCategoπes_Chck;Unload frmMessage;Screen.MousePomter = 0;Exιt Sub;CmbVendorError:;If Err.Number = 94 Then Resume Next 'is nulljlf Err.Number <> 0 Then; gMsg = va Error Error & Ste(Err.Number) & va_Error_WasGeneratedBy _; & En.Source & Chr(13) & En.Descπption & Chr(13) & " (cmb Vendor)"; DisplayEnorMessage gMsg, vbCritical, VaTιtle;Else, DisplayEnorMessage VA NOITEMS & TableSte, vblnformation, VaTιtle;End IftScreen.MousePointer = vbDefault;Unload fπnMessage;Exιt Sub;End Sub;Pπvate Sub cmbVendorJDragDrop(Source As Control, X As Single, Y As Single), Dim l As Integer, For l = 1 To HιghestIndex(frmMDI.ActιveForm Tag); If ObjectDιscπptιon(frmMDI ActiveForm.Tag, ι).Deleted <> Tme Then, If frmMDI.ActiveForm.ldImageObject(i).BorderStyle = 1 Then frmMDI.ActιveForm.ldImageObject(ι).BorderStyle = 0;
End If; Next ι,End Sub, Private Sub cmbVendor_GotFocus(),On Error Resume Next, Dim d As Integer; Dim DataReteeived As Steing; Dim TableSte As Steing; If CD VolumnChange Then; HideAllDBForm, If DBase <> "Not Valid" Then; gMsg = VA_CHANGECD, Else; gMsg = VA VOLUMN; End If; DisplayErrorMessage gMsg, vblnformation, VaTitle; btndb(Index)Left = btadb(Index).Left - bmove; btndb(Index).Top = btndb(Index).Top - bmove, Exit Sub; End If; If VendorFilled = False Then; frmMessage.Show; DoEvents; If ProVersion = Tme Then;
Datal. RecordSource = "Select Distinct Name from Company order by Name"; Datal. Refresh; Datal.Recordset.MoveLast; Datal .Recordset.MoveFirst; cnt = Datal.Recordset.RecordCount; cmbVendor.Clear; If cnt <> 0 Then; enter = 0; DataReteeived = va cap AHProductLines; cmbVendor.Addltem DataReteeived, enter, enter = enter + 1; Datal.Recordset.MoveNext 'BUG the first record has NULL and gives an error, change below to 1 to cnt when fixed, For 1 = 1 To cnt - 1 'See above bug for -1 explanation; DataReteeived = Datal. Recordset("Name"); If
DataReteeived <> "" And Left$(DataReteeιved, 1) <> "*" Then; cmbVendor.Addltem DataReteeived, enter; enter = enter + 1; End If; Datal.Recordset.MoveNext; Next I; cmbVendor.Text = va cap AUProductLines; CunentVendor = """" & cmbVendor.Text & """"; VendorFilled = Tme; Unload frmMessage; Else; TableSte = VA VEND; 'GoTo CmbVendorError 'no venders; End If; Else; For l = 1 To UBound(ValιdFamιlyM embers); MySQL = MySQL & "FM SubCategorys.Family Member = '" & VahdFamιlyMembers(ι) & "' Or "; Next I; MySQL = Left(MySQL,
Len(MySQL) - 4); Datal. RecordSource = "SELECT DISTINCT ProductDetail.RItemName FROM FM SubCategorys INNER JOIN ProductDetail ON FM SubCategorys.ItemID = ProductDetail.ItemID WHERE " & MySQL & " order by ProductDetail.RItemName"; Datal. Refresh; Datal.Recordset.MoveLast, Datal.Recordset.MoveFirst; cnt = Datal.Recordset.RecordCount; cmbVendor.Clear; If cnt <> 0 Then; enter = 0; DataReteeived = va_cap_AHProductLines; cmbVendor.Addltem DataReteeived, enter; enter = enter + 1 ,
Datal.Recordset.MoveNext 'BUG the first record has NULL and gives an error, change below to 1 to cnt when fixed; For i = 1 To cnt - 1 'See above bug for -1 explanation; DataReteeived = Datal. Recordset("RItemName"); If DataReteeived <> "" And Left$(DataReteeιved, 1) <> "*" Then; cmbVendor.Addltem DataReteeived, enter; enter = enter + 1 ; End If; Datal.Recordset.MoveNext; Next I; cmbVendor.Text = va_cap_AllProductLrnes; CunentVendor = """" & cmbVendor.Text & '"; VendorFilled = Tme; Unload frmMessage; Else; TableSte = VA VEND; 'GoTo
CmbVendorError 'no venders; End If; End If; End If;End Sub;Pπvate Sub
Data2_Reposιtιon();'ldDBbuffer.ForceRepamt ' 09/04/97 DEH Changed from VBX to OCX;End Sub;Pπvate Sub
Data2_Vahdate(Actιon As Integer, Save As Integer) ;ldDBbuffer.DataChanged = False;End Sub;Pπvate Sub EZbutt_DragDrop(Index As Integer, Source As Conteol, X As Single, Y As Single) ;MDIForm_DragDrop Source, X, Y;End Sub;'Pubhc Sub EZbutt_MouseDown(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Smgle);'Select Case Index;'Case 0 'rect,' PushButt Index, 3;' If Optιonl(O) Then AutoScaleType = EZ ANY PROP,' If Optιonl(l) Then AutoScaleType = EZ ANY PROP2;' If Optιonl(2) Then AutoScaleType = EZ_ANY;' frmMDI.ActiveForm.CancelPendingMode;' frmMDI.InitiateARectanglej'Case 1 'poly;' PushButt Index, 4;' If Optιon2(0) Then AutoScaleType = EZ_PAT;' If Optιon2(l) Then AutoScaleType = EZ PAT NO,' frmMDI.ActιveForm.CancelPendmgMode,' frmMDI.InitiateAPolygon;'Case 2 'pers h,' PushButt Index, 5;' If
Optιon3(0) Then EZTag = EZ PAT;' If Optιon3(l) Then EZTag = EZ_PAT_NO,' If Optιon3(2) Then EZTag = EZ ANY,' frmMDI.ActiveForm.CancelPendingMode,' EZHorzObj;'Case 6 'pers v,' PushButt Index, 7;' If Optιon3(0) Then EZTag = EZ PAT;' If Optιon3(l) Then EZTag = EZ_PAT_NO;' If Optιon3(2) Then EZTag = EZ ANY;' frmMDI.ActiveForm CancelPendmgMode;' EZVertιcalObj;'Case 8 'switch v - h;' If Not PSwitch Then EZbutt(6). Zorder Else EZbutt(2).Zorder;' PSwitch = Not PSwitch;' QmckPlay "Button2.wav";' Exit Sub;'case 9; '
QuickPlay "Button2 wav", ' DoEvents; ' Pιcture2. Visible = Not Pιcture2.Visιble; ' DoEvents; ' Exit Sub;'Case 10 'door;' PushButt Index, 11,' AutoScaleType = -55;' frmMDI.ActiveForm.CancelPendingMode;' frrnMDI.InιtιateARectangle;'Case 13 'video;' PushButt Index, 12,' frmAvi.UserSelects = Tme;' frmAvi Show l;'Case 14 'CD;' PushButt Index, 15;' Q ckDB.IsDB = False;' QuιckDB.Show;'Case 16, 17, 18, 19, 20, 21 'groups;' Dim I As Integer;' For I = 1 To HιghestΙndex(frmMDI.ActιveForm.Tag);' If ObjectDιscπptιon(frmMDI.ActιveForm.Tag, ι).Deleted <> Tme Then;' frmMDI.ActiveForm.ldImageObject(i).BorderStyle = 1 ;' End If;' Next ι;' EZbutt(Index).Tag = "GROUP" & Chr(65 + Index - 16);' EZbutt(Index).Drag 1 ;' QuickPlay "Button5.wav";'Case 22, 23;' TmtFlagl = Not TmtFlagl;' EZbutt(Index). Zorder 1;' QuickPlay "Button5.wav";' Exit Sub;'Case 24, 25;' TmtFlag2 = Not TιntFlag2;' EZbutt(Index).Zorder 1 ;' QuickPlay "Button5.wav";' Exit Sub;'Case 26, 27; ' TιntFlag3 = Not TmtFlag3;' EZbutt(Index).Zorder 1 ;' QuickPlay "Button5.wav";' Exit Sub;'Case Else;'End Select;'ButtonIndex = Index 'global to release button;'Tιmerl .Enabled = True;'End Sub;Pubhc Sub Image l_Clιck();On Error Resume Next;PlayFιle DBPath & "search.wav";FrmSearch.Show;End Sub;Pπvate Sub Image l_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) ;'PresentBalloon 303, vaBlnl ;End Sub;Pπvate Sub Image2_DragDrop(Source As Conteol, X As Single, Y As Single) ;MDIForm_DragDrop Source, X, Y;End Sub;Pπvate Sub Image3_MouseDown(Button As Integer, Shift As Integer, X As Smgle, Y As Single); frmMDI.ActiveForm.DrawGnd;End Sub;Pnvate Sub
Image3_MouseUp(Button As Integer, Shift As Integer, X As Smgle, Y As Single); frmMDI.ActiveForm ldCompositionBuffer.ZOrder 1 ;End Sub;Pπvate Sub Image4_DragDrop(Source As Conteol, X As Single, Y As Single) ;MDIForm_DragDrop Source, X, Y;End Sub;Pπvate Sub Label l_DragDrop(Index As Integer, Source As Conteol, X As Single, Y As Single) ;MDIForm_DragDrop Source, X, Y;End Sub;Pubhc Sub Label l_MouseDown(Index As Integer, Button As Integer, Shift As Integer, X As Smgle, Y As Sιngle);Dιm I As
Integer;Dιm Presslndex As Integer;On Error GoTo ToolbarError;Dιm r As Integer, Continuar As Boolean;'If ChildForms < 1 Then Exit Sub;frmMDI.ActιveForm.CancelPendιngMode;Select Case Index;Case 3; QuickPlay "Button5.wav"; mnuNew_Clιck; Exit Sub;Case 0 'rect; Screen.MousePointer = vbHourglass; DoEvents; HideAnySteips; PushButt Index, 17; Presslndex = 17; If But Rect = 1 Then; PlayVideo 101; AutoScaleType = EZ ANY PROP; End If; If Butjtect = 2 Then; PlayVideo 102 ; AutoScaleType = EZ_ANY_PROP2 ; End If; If But Rect = 3 Then, PlayVideo 103, AutoScaleType = EZ ANY, End If, HideAnySteips, frmMDI ActiveForm CancelPendmgMode, frmMDI ActiveForm MakeRegon VA RECTANGLE 'Initiate a rectangle, Case 1 'poly, Screen MousePomter = vbHourglass, DoEvents, HideAnySteips, PushButt Index, 18, Presslndex = 18, If But Poly = 1 Then, PlayVideo 104, AutoScaleType = EZ PAT, End If, If But Poly = 2 Then, PlayVideo 105, AutoScaleType = EZ_PAT_NO, End If, If But Poly = 2 Then, PlayVideo 105, AutoScaleType =
EZ PAT NO, End If, HideAnySteips, frmMDI ActiveForm CancelPendmgMode, AutoScaleLast = AutoScaleType, SeeThroughSohd = Tme 'right click menu has solid see through, frmMDI ActiveForm MakeRegon VA_POLYGON 'Initiate a polygon,Case 2 'NEW H PERSPECTIVE", frmMDI ActiveForm MnuPer Chck.Case 26 'NEW V Perspective", frmMDI ActiveForm mnuNewPersVert_Chck,Case 4 'NEW LAYERING", frmMDI ActiveForm mnuObjlst Click.Case 5 'CLEAN UP PERSON", OrganιzeAnyStnps,'Case 2 'pers h & v,'
HideAnySteips,' PushButt Index, 19,' Presslndex = 19,' If But Persp = 1 Or But Persp = 4 Then,' If But Persp = 1 Then PlayVideo 108,' EZTag = EZ_PAT,' End If,' If But_Persp = 5 Or ButJPersp = 2 Then,' If But Persp = 5 Then PlayVideo 107,' EZTag = EZ PATJNO,' End If,' HideAnySteips,' frmMDI ActiveForm CancelPendmgMode,' frmMDI ActiveForm MakeRegon VA POLYGON 'Initiate a polygon,' 'frmMDI ImtιateAPolygon,'Case 2 'pers h & v,' HideAnySteips,' PushButt Index, 19,' Presslndex = 19,' If But Persp = 1 Or But Persp = 4 Then,' If But Persp = 1
Then PlayVideo 108,' EZTag = EZ PAT,' End If,' If But Persp = 5 Or But Persp = 2 Then,' If But Persp = 5 Then PlayVideo 107,' EZTag = EZ_PATJNO,' End If,' If But Persp = 3 Or But Persp = 6 Then,' If But_Persp = 3 Then PlayVideo 106,' EZTag = EZ_ANY,' End If,' frmMDI ActiveForm CancelPendmgMode,' HideAnySteips,' If But Persp < 4 Then EZHorzObj Else EZVertιcalObj,'Case 6 'pers v,' PushButt Index, 7,' If Optιon3(0) Then EZTag = EZ_PAT; If Optιon3(l) Then EZTag = EZ PATJNO,' If Optιon3(2) Then EZTag = EZ ANY,' frmMDI ActiveForm CancelPendmgMode,' EZVertιcalObj,'Case 8 'switch v - h,' If Not PSwitch Then EZbutt(6) Zorder Else EZbutt(2) Zorder,' PSwitch = Not PSwitch,' QuickPlay "Button2 wav",' Exit Sub.Case 9, QuickPlay "Button2 wav", DoEvents, Pιcture2 Visible = Not Pιcture2 Visible, DoEvents, Exit Sub.Case 10 'tape, Screen MousePomter = vbHourglass, PushButt Index, 11, Presslndex = 11, AutoScaleType = -55, HideAnySteips, PlayVideo 110, frmMDI ActiveForm CancelPendmgMode, frmMDI ActiveForm MakeRegon VA RECTANGLE
'Initiate a rectangle,Case 13 'video, HideAnySteips, PushButt Index, 12, frmAvi Show 1, ShowAnyStπρs,Case 14 'CD, PushButt Index, 15, Presslndex = 15, If QuickOpened Then Unload QuickDB 'unloads, QuickDB IsDB = False, GetFamilyMembers 'needed in case names changed and CD was not ready, QuickDB Show 'reload, 'attempt to get everything back in place, For I = 1 To 3, If SteιpShowιng(ι) = Tme Then, SetWmdowPos DBForm(ι) hWnd, HWNDJTOPMOST, 0, 0, 0, 0, NOMOVE_NOSIZE, End If, Next l, If DBSearch Then, SetWmdowPos
FrmSearch hWnd, HWNDJTOPMOST, 0, 0, 0, 0, NOMOVEJNOSTZE, End If, If QuickOpened Then SetWmdowPos QuickDB hWnd, HWNDJTOPMOST, 0, 0, 0, 0, NOMOVEJNOSIZE, OrgamzeAnyStπps,Case 16, 17, 18, 19, 20, 21 'groups, EZbutt(16) Visible = False, Select Case Index, Case 16, EZbutt(16) Top = 3075, EZbutt(16) Left = 150, Case 17, EZbutt(16) Top = 2910, EZbutt(16) Left = 270, Case 18, EZbutt(16) Top = 2775, EZbutt(16) Left = 405, Case 19, EZbutt(16) Top = 2685, EZbutt(16) Left = 600, Case 20, EZbutt(16) Top = 2625, EZbutt(16) Left = 795, Case Else, End Select, If Index <> 21 Then 'no hi-hte for this yet, PushButt Index, 16, Presslndex = 16, End If, Labell(Index) Tag = "GROUP" & Chr(65 + Index - 16), Labell(Index) Drag 1 , QuickPlay "Button5 wav",Case 22, TmtFlagl = Not TmtFlagl , EZbutt(Index) Visible = Not EZbutt(Index) Visible, QuickPlay "Button5 wav", PlayVideo 109, ShowAnySteips, Labell(22) ZOrder 0, Exit Sub,Case 24, TmtFlag2 = Not TιntFlag2, EZbutt(Index) Visible = Not EZbutt(Index) Visible, QuickPlay "Button5 wav", PlayVideo 109, ShowAnySteips, Labell(24) ZOrder 0, Exit
Sub,'Case 26,' TιntFlag3 = Not TιntFlag3,' EZbutt(Index) Visible = Not EZbutt(Index) Visible,' QuickPlay "Button5 wav",' PlayVideo 109,' ShowAnySteips,' Exit Sub,Case Else,End Select,ButtonIndex = Presslndex 'global to release button.'If Index <> 21 Then Timerl Enabled = Tme, If Index <> 21 And Index <> 2 And Index <> 26 And Index <> 4 And Index <> 5 Then Timerl Enabled = Tme, Exit Sub,ToolbarError ,If En Number <> 0 Then, If En Number = 91 Then Exit Sub 'user too early for operations, gMsg = va_Eπor_Eπor & Ste(Eπ Number) & va Enor WasGeneratedBy _, & En Source & Chr(13) & Err Description & Chr(13) & " (Toolbar)", gMsg = Chr(13) & Chr(13) & gMsg, DisplayErrorMessage gMsg, vblnformation, VaTιtle,End If,Exιt Sub,End Sub,Pπvate Sub Label2_Chck(Index As Integer),On Error Resume Next,QuιckPlay "Button4 wav", Select Case Index,Case 0, But Rect = But_Rect + 1, If But Rect > 3 Then But Rect = 1, Select Case But Rect, Case 1, EZbutt(4) Visible = False, EZbutt(O) Visible = False, EZbutt(2) Visible = Tme, EZbutt(2) ZOrder, Case 2, EZbutt(O) Visible = False,
EZbutt(2) Visible = False, EZbutt(4) Visible = Tme, EZbutt(4) ZOrder, Case 3, EZbutt(4) Visible = False, EZbutt(2) Visible = False, EZbutt(O) Visible = Tme, EZbutt(O) ZOrder, Case Else, End Select, DoEvents, Label 1(0) ZOrder,Case 1, But_Poly = But Poly + 1, If But Poly > 2 Then But Poly = 1, Select Case But Poly, Case 1, EZbutt(5) Visible = False, EZbutt(6) Visible = Tme, EZbutt(6) ZOrder, Case 2, EZbutt(6) Visible = False, EZbutt(5) Visible = Tme, EZbutt(5) ZOrder, Case Else, End Select, DoEvents, Labell(l) ZOrder,Case 2, But_Persp =
But_Persp + 1, If But Persp > 6 Then But Persp = 1, If But Persp = 6 Then EZbutt(8) ZOrder 1, If But_Persp = 3 Then EZbutt(8) ZOrder, Label2(2) ZOrder, EZbutt(13) Visible = False, EZbutt(lO) Visible = False, EZbutt(14) Visible = False, EZbutt(3) Visible = False, EZbutt(7) Visible = False, EZbutt(l) Visible = False, Select Case But Persp, Case 1, EZbutt(13) Visible = Tme, EZbutt(13) ZOrder, Case 2, EZbutt(lO) Visible = Tme, EZbutt(lO) ZOrder, Case 3, EZbutt(14) Visible = Tme, EZbutt(14) ZOrder, Case 4, EZbutt(3) Visible = Tme,
EZbutt(3) ZOrder, Case 5, EZbutt(7) Visible = Tme, EZbutt(7) ZOrder, Case 6, EZbutt(l) Visible = Tme, EZbutt(l) ZOrder, Case Else, End Select, DoEvents, Labell(2) ZOrder.Case Else.End Select,End Sub,Pπvate Sub Label2_DragDrop(Index As Integer, Source As Conteol, X As Smgle, Y As Smgle),MDIFoιm_DragDrop Source, X, Y,End Sub .Private Sub ldEdιtImageBuffer_ReadyStateChange(Ready State As Long),' ' Pamt the image when loadmg is complete ,' If ReadyState = READYSTATE COMPLETE Then,' IdEditlmageBuffer AutoSetRects = Tme,'
IdEditlmageBuffer PaintSizeMode = PAINTSIZEMODEJFIT,' IdEditlmageBuffer ForceRepamt,' InternetlmageReady = Tme,' If InternetMaskReady = Tme Then,' 'MsgBox "Both are ready to load, masked loaded first",' 'frmDownload Commandl(l) ForeColor = RGB(255, 0, 0),' frniDownload Commandl(l) Visible = Tme,' frmDownload Command2 BackColor = 12648384,' frmDownload Command2 ForeColor = 0,' frmDownload Command2 Caption = "Download Ready '",' frmDownload Apply = Tme,' frmDownload Commandl Click (1),' End If,',' End If;End Sub;Pπvate Sub ldEdιtMaskBuffer_ReadyStateChange(ReadyState As Long),' ' Paint the image when loading is complete.;' If ReadyState = READYSTATE COMPLETE Then,' IdEditMaskBuffer.AutoSetRects = Tme;' IdEditMaskBuffer.PaintSizeMode = PAINTSIZEMODE FIT;' IdEditMaskBuffer.ForceRepamt,' IntemetMaskReady = Tme;' If InternetlmageReady = Tme Then;' 'MsgBox "Both are ready to load, image finished first",'
'frmDownload.Commandl(l).ForeColor = RGB(255, 0, 0);' frmDownload.Commandl(l). Visible = Tme;' frmDownload.Command2.BackColor = 12648384,' frmDownload.Command2.ForeColor = 0;' frmDownload.Command2. Caption = "Download Ready !";' frmDownload.Apply = Tme;' frmDownload.Commandl Chck (1);' End If;' End If;';End Sub;Pπvate Sub ldPattern_Chck();Dιm tc As Single; On Enor GoTo ldPatternError; PlayFile DBPath & "curntpat.wav";' 'cdDialogl. ShowColor,' 'tc = cdDialogl. Color;' tc =
ChooseColor(O);' If tc = -1 Then Err.Raise 32755;' frmMDI.ldPattern.Fill tc;' PatName = "Solid Color." & Str$(tc),' PatID = 0;' PatVolumn = "None";' PatCompany = "None";';' frmMDI ldPattern.ForceReparnt '- — 09/04/97 DEH Changed from VBX to OCX; frmColorPicker.pickerMode = vaCPEyePattern; frmColorPicker.Show, ' frmMDI.ldPattern.Fill tc;' PatName = "Solid Color:" & Ste$(tc);' PatID = 0;' PatVolumn = "None",' PatCompany = "None"; Exit Sub;ldPatternEπor; If Err.Number <> 32755 Then 'not cancel; gMsg = va Error Enor &
Str(Eπ.Number) & va Enor WasGeneratedBy _; & En.Source & Chr(13) & Eπ.Descπption & Chr(13) & " (ldPatternjChck)"; DisplayEnorMessage gMsg, vbCritical, VaTitle; End If;Exιt Sub;End Sub;Pnvate Sub ldPattern_DragDrop(Source As Conteol, X As Single, Y As Sιngle);If Left(Source.Tag, 4) = "DATA" Then 'drop database object to this form or conteol; Source.Drag vbEndDrag; CreateObjectFromDB X, Y, CInt(Mιd(Source.Tag, 6)), frmMDI.ActiveForm; SelectCuπentObjectAsPattern; frmMDI.ActiveForm.DeleteVAObject frmMDI.ActiveForm.ObjectZorderl. Selectedlndex; DropResizePattem frmMDI.ActiveFormjEnd IftEnd Sub;Pπvate Sub ldPattern_MouseMove(Button As Integer, Shift As Integer, X As Smgle, Y As Sιngle);Dιm va_cap_CuπentPattern_colon As Steιng;va_cap_CuπentPattern_colon = LoadResSterng(2401) ' "Cunent Pattern-
";frmMDI.ssBottom(l).Captιon = va_cap_CurrentPattern_colon & PatCompany & " - " & PatName ,'PresentBalloon 100, vaBln2;End Sub;Pπvate Sub ldtwaιn_Change();'Dιm va Error BitmapChanged As
Stπng;'va_Eπ-or_BιtmapChanged = LoadResStπng(6302) ' "Bitmap changed";'DιsplayEπorMessage va_Eπor_BιtmapChanged,End Sub;Pπvate Sub ldUndelay_Chck(); On Error GoTo ldUndelayEnor, cdDialogl. ShowColor; CurrentUnderlay = cdDialogl . Color; frmMDI.ldUndelay.Fill CurrentUnderlay; frmMDI.ldUndelay.ForceRepamt '- — 09/04/97 DEH Changed from VBX to OCX; frmMDI.vabtn2.BackColor = CunentUnderlay; 'MsgBox "" & CunentUnderlay; Exit Sub;ldUndelayEπor:;Exιt Sub;End Sub;Pnvate Sub ldUndelay_MouseMove(Button As Integer, Shift As Integer, X As Smgle, Y As Smgle);' frmMDI vaBln2.TEXT = "This color is used by the Pamt operatιon";End Sub;Prιvate Sub MDIForm_Clιck();On Error Resume Next; If QuickOpened Then SetWmdowPos QuickDB. hWnd, HWNDJTOPMOST, 0, 0, 0, 0, NOMOVE JNOSIZE; For I = 1 To 3; If StnpShowmg(ι) = Tme Then; SetWmdowPos DBForm(ι).hWnd, HWNDJTOPMOST, 0, 0, 0, 0, NOMOVE JNOSIZE; End If; Next I; If DBSearch Then; SetWmdowPos FrmSearch.hWnd, HWNDJTOPMOST, 0, 0, 0, 0, NOMOVE NOSIZE; End IftEnd Sub;Pπvate Sub MDIForm_DragDrop(Source As Control, X As Single, Y As Sιngle);On Enor Resume Next; If Left(Source.Tag, 4) = "DATA" Then 'drop database object to this form or conteol, Source.Drag vbEndDrag; Me.SetFocus; If Mιd(Source Tag, 5, 1) = "1 " Then OpenBackgroundFromDB CInt(Mιd(Source.Tag, 6)); 'Implement this later user and internet, 'If Mιd(Source.Tag, 5, 1) = "2" Then, ' CreateObjectUserDB, ' frmUserDatase.Show; 'End If; 'If Mιd(Source.Tag, 5, 1) = "3" Then CreateObjectlnternetDB,
Screen.MousePointer = vbDefault; Exit Sub; End If, If Source.Tag = "COPYME" Then 'D D paste, Dim n As Integer, Source.Tag = ""; frmMDI.ActiveForm. CancelPendmgMode; n = fιmMDI.ldObjectBuffer.SetPιcture(Source.Sprιte); n = frmMDI.ldObjectBuffer.Copy(COPY_EMPTY + COPY_DIB); MnuMOpenC Chck; Source.Drag 2; Exit Sub; End If; 'If Left(Source.Tag, 4) = "DATA" Then 'attempt to drag database object to this form or conteol; ' Source.Drag vbEndDrag; ' Dim I As Integer; ' For I = 1 To HιghestΙndex(frmMDI.ActιveForm.Tag); ' If
ObjectDιscπρtιon(frmMDI.ActιveForm.Tag, ι).Deleted <> Tme Then; ' If frmMDI.ActiveForm ldImageObject(ι).BorderStyle = 1 Then frmMDI.ActiveForm.ldlmageObject(i) BorderStyle = 0, ' End If; ' Next I; ' Exit Sub; 'End If; If Left(Source.Tag, 5) = "GROUP" Then 'drop database object to this form or conteol; Source.Drag vbEndDrag; Exit Sub; End If; ' inhibit drawing program from droppmg to the mdiform; If OperationMode = "DrawProg" Then; Exit Sub; End If;' Source. Move Source. Left, Source. Top; 'ObjectsTouching
Source. top, Source. top + Source.Height, Source. left, Source. left + Source Width, Me; 'Regenerate objects;' Regenerate frmMDI.ActiveForm; 'Select cunent object;' UnselectObject frmMDI.ActiveForm;' RecreateObject CurrentObj(frmMDI.ActιveForm.Tag), frmMDI.ActiveForm,' SelectObjects(frmMDI.ActiveForm) = CurrentObj(frmMDI.ActιveForm.Tag); 'Set ZOrder;' Source. Zorder 0: frmMDI.ActiveForm.hsbMain.Zorder 0: frmMDI.ActiveForm. vsbMain. Zorder 0: frmMDI.ActiveForm.cmdScrollComer.Zorder 0; 'Release mouse cursor;'; 'Leave operation; ' OperationMode = "Moving"; Screen.MousePointer = vbDefault;End Sub;Pπvate Sub MDIForm_Load();Dιm c As Long;On Error Resume Next; Screen.MousePomter = vbHourglass; loadFormConteolCaps Me; If Pro Version Then mnuImportDXF. Visible = Tme; ShowBalloons = Tme; loadFormToolTips Me; va_cap_BalJBut_ShowTools = LoadResStemg(6455) ' "Show more tools and features..."; va_caρ_Bal_But_HιdeTools = LoadResStπng(6456) ' "Hide tools and features..."; App.helpfile = DBPath &
"vahelp.hlp"; But_Rect = 1 ; But_Poly = 1; But Persp = 1 ; TmtFlagl = Tme; TιntFlag2 = Tme; TιntFlag3 = Tme, Pιcture2.Visible = False; Pιcture3. Visible = False; FirstSearcH = Tme; DBSearch = False; EnableCheckResources = Tme 'check for resources is enabled; MinResourceReq = 20 '% of resource; ColorLevel; Me.WindowState = 2; ImtiateSound; Me.Pιcture2.Heιght = 480; ListLastProjects Me; ShowHideButtons False; RetreatButtons; SeiBaloonStπngs; Datal. Exclusive = SmgleUser; Datal. Refresh; Data2.Exclusιve = SmgleUser; Data2.Refresh;
Data3.Exclusive = SmgleUser; Data3.Refresh; 'New interface toolbar; EZbutt(4). ZOrder; EZbutt(6).ZOrder, EZbutt(13).ZOrder; DoEvents; Labell(0).ZOrder; Labell(l).ZOrder; Labell(2).ZOrder; Label2(0). ZOrder; Label2(l).ZOrder; Label2(2).ZOrder; Labell(10).ZOrder; EZbutt(l l).ZOrder; EZbutt(l l).Vιsible = Tme; EZbutt(10).Vιsιble = False; EZbutt(14).Vιsιble = False; EZbutt(3). Visible = False; EZbutt(7).Vιsιble = False; EZbutt(l). Visible = False; 'load from res file; Image4. Picture = LoadResPιcture(303, vbResBitmap), Dim I As Integer; For l = 0 To frmMDI.Controls Count - 1 ; If frmMDI.Conteols(ι).Name = "EZbutt" Then; frmMDI.Conteols(ι).Pιcture = LoadResPιctare(200 + frmMDI.Conteols(ι).Index, vbResBitmap); End If; Next I; If MagicZoom Then frmZoomPreview.Hide 'load w/o displaying; AutoScaleLast = EZ_PAT; Screen.MousePointer = 0; 'PlayFile DBPath & "Welcome.wav"; End Sub;Pπvate Sub MDIForm_OLEDragDrop(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Sιngle);On Error Resume Next; Screen.MousePointer = vbHourglass; picInternetDDrop.Picture = LoadPιcture(Data.Fιles(l)); 'DoEvents, frmMDI. ldTwam. SetPicture picInternetDDrop, OpenMode = "DataBase"; Dim NewForm As New FrmMain; NewForm Show; Screen.MousePomter = vbDefault;End
Sub;Pπvate Sub MDIForm_Resιze(); On Error GoTo MDIFormJtesize Error; Dim l, ' 01/02/98 DEH Added to remove or minimize forms if app is minimized; If Me.WindowState = 1 Then; If ObjectListLoaded Then Unload fimObjectList; If QuickOpened Then QuickDB. WmdowState = 1 ;' For I = 1 To DBForm.Count,'
DBForm(ι). WmdowState = 1;' Next I; End If; If frmMDI.WmdowState <> 1 Then; For I = 0 To Forms.Count - 1; If Forms(ι).MDIChιld = Tme And Forms(ι).Vιsιble = Tme And Forms(ι) WmdowState = vbNormal Then, Forms(ι).Top = 0; Forms(ι).Left = 0; ' ImtiateScrollBars Forms(ι); 'Else; ' Forms(ι). WmdowState = 0; End Iftnexthne:; Next I; Else; On Enor GoTo MDIForm_Resrze_EπOr2; For l = 0 To Forms.Count - 1; If Forms(ι) MDIChild = False And Forms(ι) Visible = Tme Then; Forms(ι) WmdowState = 1; End If;nextlιne2:, Next I; End IftExit
Sub;MDIForm_Resιze_Eπor:; GoTo nextlme; Resume Next;MDIForm_Resιze_Error2:; GoTo nextlιne2; Resume Next;End Sub;Pπvate Sub MDIForm_Unload(Cancel As Integer); On Error Resume Next; 'Remove temp undo file from disk; Kill GalleryPath & "\" & "VA*.tvp"; Kill GalleryPath & "\" & "VA*.ldb"; If CheckTimes Then; If Not CheckCode Then; DaysLeft = DaysLeft - 1; frmPCode.Show 1; End If; End If; If CheckDate = Tme Then; If Not CheckExpirationDate Then End; End If; ' please uncomment for production Unload frmCDDatabase, mmc Voice. Command = "Close"; Dim Element As Variant, FCnt As Integer; FCnt = Forms.Count - 1; For Element = FCnt To 0 Step -1 ; If Forms(Element).Name o Me.Name Then; 'MsgBox Forms(Element).Caption; Unload Forms(Element); End If; Next Element; End;End Sub;Pubhc Sub MenuProject_Chck();"use this as the one to call;On Enor Resume Next;' If UBound(FormState) = 20 Then,' For I = 1 To 20;' If FormState(i). Deleted = Tme Then GoTo IsFreeForm;' Next ι;' DisplayEnorMessage VA_CLOSEWTNDOW, vblnformation, VaTitle;' Exit Sub;' End
Ift'IsFreeForm:;';' If Check_Resources(MιnResourceReq + 9, False) Then; OpenMode = "Project"; Dim NewForm As New FrmMam; NewForm.Show; Screen.MousePointer = vbDefault;' Else;' DisplayEnorMessage VA CANT & Chr(13) & VA_CANT1 & Chr(13) & VA_CANT2 & Chr(13) & VA CANT3, vblnformation, VaTitle;' End IftEnd Sub;Publιc Sub menuScan_Click(); On Error Resume Next; 'If UBound(FormState) = 20 Then; ' For l = 1 To 20; ' If FormState(ι).Deleted = Tme Then GoTo IsFreeForm; ' Next I; ' DisplayErrorMessage VA XOSEWINDOW, vblnformation, VaTitle; ' Exit Sub; 'End Ift'IsFreeForm:; Screen.MousePomter = vbDefault; If Check_Resources(MιnResourceReq + 9, False) Then; HideAnySteips; OpenMode = "Twain"; GetlmageFromTwam; ShowAnySteips; Else; DisplayErrorMessage VA_CANT & Chr(13) & VA_CANT1 & Chr(13) & VA CANT2 & Chr(13) & VA CANT3, vblnformation, VaTitle; End IftEnd Sub;Pubhc Sub menusource_Clιck(); HideAnySteips; Screen.MousePomter = vbDefault; GetTwainSource; ShowAnySteips ;End Sub;Pπvate Sub MnuCueCartas_Clιck();End Sub;Pπvate Sub Mnuabout_Chck(), Screen.MousePointer = vbHourglass; AboutScreen = Tme; frmAbout.Show l;End Sub;Pπvate Sub mnuCompactDB_ Chck(); Dim OldDB As Stemg, NewDB As Stemg, Dim va_cap_Dιalog_CompactFrom As Steing; Dim va_caρ_Dιalog_CompactInto As Steing, Dim va msg MustCompact As String; va_capJDιalog_CompactFrom = LoadResStπng(6400) ' "Project to Compact From"; va cap Dialog Compactlnto = LoadResStπng(6401) ' "Project to Compact Into"; va_msg_MustCompact
= LoadResStπng(6366) ' "You must compact to a new database."; On Error GoTo mnuCompactDB_ChckEnor; cdDialogl. CancelError = Tme; cdDialogl. Filter = "Project|*.vap|All|*.*"; cdDialogl.DialogTitle = va cap Dialog CompactFrom; cdDialogl. DefaultExt = "*.vap"; cdDialogl. ShowOpen, OldDB = cdDialogl Fιlename;GetSaveDB:; cdDialogl.DialogTitle = va_cap_Dιalog_CompactInto; cdDialogl. ShowSave; NewDB = cdDialogl. Filename; 'Make sure not compacting to same db; If OldDB = NewDB Then, MsgBox va msg MustCompact; GoTo GetSaveDB; End If; Screen.MousePomter = vbHourglass; DBEngine. CompactDatabase OldDB, NewDB 'Compact; Screen.MousePointer = vbDefault;Exιt Sub;mnuCompactDB_ChckEπor:; If Err = 32755 Then; Exit Sub; Else; Resume Next; End If;End Sub;Pπvate Sub mnuExιt_Chck(); Unload Me; End;End SubjPπvate Sub mnuFιlel_Clιck(), Dim NewForm As New FrmMain; On Enor Resume Next, OpenMode = "OpenFromMenu"; MenuProjectName = mnuFilel .Caption; NewForm.Show;End
SubjPπvate Sub mnuFιle2_Chck();Dιm NewForm As New FrmMain; On Error Resume Next; OpenMode = "OpenFromMenu"; MenuProjectName = mnuFιle2. Caption; NewForm.Show;End Sub;Pπvate Sub mnuFile3_Chck();Dim NewForm As New FrmMain; On Error Resume Next; OpenMode = "OpenFromMenu"; MenuProjectName = mnuFιle3. Caption; NewForm.Show;End Sub;Pπvate Sub mnuFιle4_Clιck();Dιm NewForm As New FrmMam; On Error Resume Next; OpenMode = "OpenFromMenu"; MenuProjectName = mnuFιle4. Caption;
NewForm.Show;End Sub;Pubhc Sub mnuImportDXF_Chck();Dim DXFFileName As Stemg; On Enor Resume Next; HideAnySteips; With CDιalog2; .DefaultExt = "DXF"; .DialogTitle = "Open DXF File"; .Filter = "DXF (*.dxf)|*.dxf , .ShowOpen; DXFFileName = .Filename; End With; If DXFFileName <> "" Then; 'MsgBox ApphcationPath & "\dxf2bmp VAunvweιo85" & DXFFileName; dummy = ShellExecute(frmMDI.hWnd, "Open", ApphcationPath & "\dxf2bmp.exe", " VAunvweιo85" & DXFFileName, "", 1); 'MsgBox "Wait Until The DXF Convertion program shows up. After completmg the Convertion process click OK"; MnuOpen Click; End IftEnd Sub;Pnvate Sub mnuIndex_Chck();Dιm lOK As Integer;Drm dwData As Long;On Enor Resume Next; If Check_Resources(MιnResourceReq + 9, False) Then; Dim l As Integer; For i = 1 To 3; If SteιpShowιng(ι) = Tme Then; DBForm(i). WmdowState = 1; End If; Next i; dwData& = 0; lOK = RunWmMacro(Me.hWnd, helpfile, HELPJPTNDER, ByVal dwData&); Else; DisplayEnorMessage VA_CANT & Chr(13) & VA CANT1 & Chr(13) &
VA_CANT2 & Chr(13) & VA_CANT3, vblnformation, VaTitle; End IftEnd Sub;Pπvate Sub mnumanual_Clιck();Dιm lOK As Integer;Dιm dwData As Long;On Enor Resume Next; If Check_Resources(MmResourceReq + 9, False) Then; Dim l As Integer; For I = 1 To 3; If StπpShowιng(ι) = Tme Then; DBForm(ι). WmdowState = 1; End If; Next I; dwData& = 0; lOK = RunWιnMacro(Me.hWnd, helpfile, HELPJTOPIC, dwData&); Else; DisplayEnorMessage VA_CANT & Chr(13) & VA_CANT1 & Chr(13) & VA CANT2 & Chr(13) & VA_CANT3, vblnformation, VaTitle, End If;End Sub;Publιc Sub MnuMOpenC_Chck(), On Error Resume Next; If UBound(FormState) = 20 Then; For 1 = 1 To 20, If FormState(ι).Deleted = Tme Then GoTo IsFreeForm; Next I; DisplayEnorMessage VA CLOSEWINDOW, vblnformation, VaTitle; Exit Sub; End I lsFreeForm:; If Check_Resources(MιnResourceReq + 9, False) Then, If frmMDI ldTwaιn.Paste(PASTE ISREADY) <> 0 Then; OpenMode = "Clipboard"; Dim NewForm As New FrmMain,
NewForm.Show; Else; DisplayEnorMessage VA NOCLIP, 64, VaTitle, End If; Else; DisplayEnorMessage VA_CANT & Chr(13) & VA_CANT1 & Chr(13) & VA_CANT2 & Chr(13) & VA_CANT3, vblnformation, VaTitle, End IftEnd Sub, Public Sub mnuNew_Clιck();On Error Resume Next;MDIForm_Chck 'case they lost top most. Need for returning from mam menu. ;'HideAnySteips;frmHome. Show l;If Not InBetween Then ShowAnySteips ;End Sub;Pubhc Sub MnuOpen_Chck(); Dim I As Integer; On Error Resume Next; 'If UBound(FormState) = 20 Then; ' For l = 1 To 20; ' If FormState(ι).Deleted = Tme Then GoTo IsFreeForm; ' Next I; ' DisplayErrorMessage VA CLOSEWINDOW, vblnformation, VaTitle; ' Exit Sub; 'End Ift'IsFreeForm:; Screen.MousePomter = vbDefault; If Check_Resources(MιnResourceReq + 9, False) Then; HideAnySteips; OpenMode = "File"; frmlmport.Show 1; ShowAnySteips; Else; DisplayErrorMessage VA_CANT & Chr(13) & VA CANT1 & Chr(13) & VA_CANT2 & Chr(13) & VA_CANT3, vblnformation, VaTitle; End IftEnd Sub;Pπvate Sub mnuProg_Clιck(); frmOptιonsDιalog.Show;End Sub;Pπvate Sub ι_ιnuReρaιrDB_Chck(); On Error Resume Next; frmRepair.Show l ;End Sub;Pπvate Sub mnuserveιce_Chck();Dιm lOK As Integer,Dιm place As Long;On Enor Resume Next; If Check_Resources(MιnResourceReq + 9, False) Then; Dim l As Integer; For l = 1 To 3; If StπpShowιng(ι) = Tme Then; DBForm(ι).WιndowState = 1; End If; Next I; place& = 18; lOK = RunWmMacro(Me.hWnd, helpfile, HELP PLACE, place&); Else; DisplayEnorMessage VA CANT & Chr(13) & VA CANT1 & Chr(13) &
VA_CANT2 & Chr(13) & VA CANT3, vblnformation, VaTitle; End IftEnd SubjPπvate Sub mnutour_Chck();frmAvi.Show l;End Sub;Pπvate Sub mnuVιdeoHowtoTo_Chck();Dιm lOK As Integer;Dιm place As Long;On Enor Resume Next; If CheckJResources(MιnResourceReq + 9, False) Then; Dim I As Integer; For I = 1 To 3; If StnpShowιng(ι) = Tme Then; DBForm(ι).WιndowState = 1; End If; Next I; PlayFile DBPath & "HowTo.wav"; place& = 1027; lOK = RunWinMacrofMe.hWnd, helpfile, HELP_PLACE, place&); Else;
DisplayEnorMessage VA_CANT & Chr(13) & VA CANT1 & Chr(13) & VA_CANT2 & Chr(13) & VA_CANT3, vblnformation, VaTitle; End IftEnd Sub;Pπvate Sub Option l_Chck(Index As Integer),'EZbutt_MouseDown 0, 0, 0, 0, 0;End Sub;Pπvate Sub Optionl _DragDrop(Index As Integer, Source As Conteol, X As Single, Y As Sιngle);MDIForm_DragDrop Source, X, Y;End Sub;Pπvate Sub Optιon2_Clιck(Index As Integer);'EZbutt_MouseDown 1, 0, 0, 0, 0;End Sub;Pπvate Sub Optιon2_DragDrop(Index As Integer, Source As
Conteol, X As Smgle, Y As Single) ;MDIForm_DragDrop Source, X, Y;End Sub;Pπvate Sub Oρtιon3_Chck(Index As Integer);'If PSwitch Then EZbuttjMouseDown 6, 0, 0, 0, 0 Else EZbutt_MouseDown 2, 0, 0, 0, 0;End Sub;Pπvate Sub Optιon3_DragDrop(Index As Integer, Source As Conteol, X As Smgle, Y As Srngle);MDIForm_DragDrop Source, X, Y;End Sub;Pπvate Sub pbInfoCD_Chck(), frmMDI.ActiveForm.CancelPendmgMode; frmMDI.ActιveForrn.MnuNewProduct_Clιck;End Sub;Pπvate Sub pbInfoNet_Chck(); frmMDLActiveForm CancelPendmgMode; fιmMDI.ActιveForm.MnuNewProduct_Clιck;End Sub;Pπvate Sub pιcDrop_DragDrop(Source As Conteol, X As Single, Y As Single);' Dim 1 As Integer,' For 1 = 1 To HιghestΙndex(fιmMDI.ActιveForm.Tag),' If ObjectDiscription(frmMDI ActiveForm. Tag, 1). Deleted <> Tme Then;' If frmMDI.ActιveForm.ldImageObject(ι).BorderStyle = 1 Then frmMDI.ActiveForm.ldlmageObject(i). BorderStyle = 0;' End If;' Next ι;End Sub;Pπvate Sub Picture l_DragDrop(Source As Conteol, X As Single, Y As Single);' Dim I As
Integer;' For I = 1 To HιghestΙndex(frmMDI.ActιveForm.Tag);' If ObjectDιscπptιon(frmMDI.ActιveForm.Tag, ι).Deleted <> Tme Then;' If frmMDI. ActiveForm ldImageObject(ι).BorderStyle = 1 Then fιτnMDI.ActιveFoιm.ldImageObject(ι).BorderStyle = 0;' End If;' Next ι;End Sub;Pπvate Sub Pιcture2_DragDrop(Source As Control, X As Single, Y As Single);' Dim I As Integer;' For I = 1 To HighestIndex(frmMDI. ActiveForm. Tag);' If ObjectDιscπptιon(frmMDI. ActiveForm.Tag, ι).Deleted <> Tme Then,' If frmMDI.ActiveForm.ldlmageObject(i). BorderStyle = 1 Then frmMDI.ActiveForm.ldlmageObject(i). BorderStyle = 0,' End If;' Next ι;End Sub;Pπvate Sub Pιcture3_DragDrop(Source As Conteol, X As Smgle, Y As Sιngle);MDIForm_DragDrop Source, X, Y;End SubjPπvate Sub ssBottomJDragDrop(Index As Integer, Source As Control, X As Single, Y As Single);' Dim I As Integer;' For l = 1 To HighestIndex(frmMDI.ActiveForm Tag);' If ObjectDιscπptιon(frmMDI.ActιveForm.Tag, ι).Deleted <> Tme Then;' If frmMDI.ActιveForm.ldImageObject(ι).BorderStyle = 1 Then frmMDI.ActiveForm.ldlmageObject(i). BorderStyle = 0,' End If;' Next ι;End Sub;Pπvate Sub ssBottom_MouseMove(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single); 'If Index = 1 Then PresentBalloon 102, vaBln2;End Sub;Pπvate Sub ssdrop_DragDrop(Source As Control, X As Single, Y As Single);' Dim i As Integer;' For I = 1 To HιghestIndex(fιmMDI.ActιveForm.Tag);' If ObjectDιscnptιon(frmMDI. ActiveForm.Tag, ι).Deleted <> Tme Then;' If fπnMDI.ActιveForm.ldImageObject(ι).BorderStyle = 1 Then frmMDI.ActιveForm.ldImageObject(ι).BorderStyle = 0;' End If;' Next ι;End SubjPπvate Sub ssdrop_MouseMove(Button As Integer, Shift As Integer, X As Smgle, Y As Single);' PresentBalloon 103, vaBln2;End Sub;Pπvate Sub SSPanell_DragDroρ(Index As Integer, Source As Conteol, X As Single, Y As Smgle);'MDIForm_DragDrop Source, x, Y;End Sub;Pπvate Sub Timerl_Timer();'EZbutt(ButtonIndex).Zorder 0;EZbutt(ButtonIndex).Vιsιble = Not
EZbutt(ButtonIndex).Vιsible;Tιmerl. Enabled = False;'EZbutt(9).Zorder;End Sub;'Pπvate Sub vaBlnl_ShowPopup(CtlName As Steing, hWnd As Integer, HelpContextlD As Long, ShowPopup As Integer, MouseX As Integer, MouseY As Integer);'ShowPopup = ShowBalloons;'Select Case CtlName;'Case "cmb Vendor";' vaBlnl.Text = BalJVen;'Case "cmbCategories";' vaBlnl.Text = Bal_Cat;'Case "cmbsubcategones";' vaBlnl.Text = Bal_Sub;'Case Else;'End Select;';';;'End Sub;';'Pπvate Sub vaBln2_ShowPopup(CtlName As Steing, hWnd As Integer,
HelpContextlD As Long, ShowPopup As Integer, MouseX As Integer, MouseY As Integer);'ShowPopup = ShowBalloons;'End Sub;Pubhc Sub vaBtal_Chck(Index As Integer);Dιm TempMode As Stemg;Dιm X;Dιm bmove As Integer;bmove = 25;If Index <> 99 Then 'vendor; vabtnl (Index). Left = vabtnl(Index)Left + bmove, vabtal(Index).Top = vabtnl (Index). Top + bmove;End If;If ChildForms > 0 And Index o 22 And Index <> 25 Then frmMDI.ActiveForm. CancelPendιngMode;If TalkToMe Then ButtonTalk Index;On Error Resume Next ' is this the best ???;Select Case Index;Case 0 'new; mnuNew_Click;Case 1 ' copy; frmMDI.ActiveForm.mnuCopy_Click;Case 7 ' paste; frmMDI. ActiveForm.mnuPaste_Click;Case 18 'delete; frmMDI. ActiveForm.mnuDelete_Click;Case 2 'zoom in; fi _rιMDI.ActiveFoπn.nmuZoomin_Click;Case 3 'zoom out; frmMDI.ActiveForm.mnuZoomout_Click;Case 14 'select pattern; frmMDI. ActiveForm.MenuPattern_Click;Case 15 'fill pat; f_τnMDI.ActiveFoιm.mnuPatteπ_FillNormal_Click;Case 5 'fill dist h; f_mMDI.Act_veForm._m_uPatternF_l_DistortHoriz_Click;Case 17 'fill dist v; frmMDI.ActiveForm.n uPatternFillDistortVert_Click;Case 4 'paint opacity; fπ_ιMDI.ActiveFo_m.MnuSharp_Click;Case 13 'see thru; frmMDI. ActiveForm.MnuEraseTrans_Click;Case ό 'drawing; frmMDI.ActiveForm.mnuDrawTools_Click;Case 20 'rotate; frmMDI.ActiveForm.mnuEffectRotation_Click;Case 9 'shadow; fπnMDI.ActiveForm.mnuShadows_Click;Case 8
'grid; frmMDI. ActiveForm.MnuGrid_Click;Case 21 'Brightness and other effects; frmMDI. ActiveForm.mnuEffectBrightness_Click;Case 19 'before-after; '2 B in pie mentaljCase 10; frmMDI.ActiveForm.mnuMirrorHorz_Click;Case 99 'CD Call this one from the menu instead UNDER VIEW; If ReLoading Then 'user changed CD; ReLoading = False; vabtal(Index).Left = vabtnl (Index). Left - bmove; vabtnl(Index).Top = vabtnl (Index). Top - bmove; Exit Sub; End If; If CDState Then 'showing or not; CDState =
False; Picture2. Height = 480; Else; Screen.MousePointer = vbHourglass; If Not DBOpen Then; ssBottom(l).Caption = VA OPENDBFIRSTTIME; If DataSearch() Then; DBOpen = Tme 'it has been opened; CDState = Tme; Picture2. Height = 840; Else; DBOpen = False 'failed; CDState = Tme; 'vaBtnl (index). Value = False; End If; ssBottom(l).Caption = ""; Else; CDState = Tme; Picture2.Height = 840; End If; Screen.MousePointer = vbDefault; End If;Case Else; 'DisplayErrorMessage "Button has no code yet";End Select;'Case 1 'open project;'
'MenuProject_Click;'Case 2 'save project;' 'frmMDI.ActiveForm.MenuSave_Click;'Case 3 'print;' 'frrnMDI.ActiveForm.mnuPrint_Click;'Case 4 'polygon;' 'AutoScaleType = EZ_PAT;' 'frmMDI.ActiveForm.MakeRegon VA POLYGON 'Initiate a polygon;'Case 5 'rect;' 'AutoScaleType = EZ ANY PROP;' 'frmMDI.ActiveFoιm.MakeRegon VA RECTANGLE 'Initiate a rectangle;'Case 6 'adjustments;' 'frmMDI.ActiveForm.MnuConteast_Click;'Case 7 'capture twain;' 'menuScan_Click;'Case 8 'fill;' 'X =
SetUndoObj(frmMDI.ActiveForm, CunentObj(frmMDI.ActiveForm.Tag), "Undo Last Fill");' ΑpplyPatternToObject;'Case 9 'select pattern;' 'SelectCuπentObjectAsPattern;'Case 10 ' flip side;' 'DoEffectToObject 2;'Case 11 ' flip updown;' 'DoEffectToObject l;'Case 12 'rotate;' 'frmMDI.ActiveForm.mnuRotate_Click;'Case 13 'Paint into object with preview;' 'frrr_MDI.Act_veForm.MnuSharp_Click;'Case 14 'copy;' 'CopyToOurClipboard;'Case 15 'paste;' 'frmMDI.ActiveForm.mnuPaste_Click;'Case 16;' 'frmMDI.ActiveForm.mnuErase_Click;'Case 17 'delete;'
'frmMDI.ActiveForm.mnuDelete_Click;'Case 19 'resize;' 'frmMDI. ActiveForm.mnuReSize_Click;'Case 20 'prop, resize;' 'frmMDI.ActiveFoιm.MenuProportional_Click;'Case 21;' 'frrnMDI.ActiveForm.mnuPerspective_Click;'Case 24 ' draw;' ' is a child form open?;' 'If Check_Resources(MinResourceReq + 7, False) Then;' ' If IsChildFormOpen(frmMDI.ActiveForm) Then;' ' Screen.MousePointer = vbHourglass;' ' ' get object selected;' ' results = IsObjectSelected(frmMDI.ActiveForm);' ' ' was a object selected?;' ' If results > 0 Then;' ' send this object;' ' ObjectNumber = results;' ' Else;' ' ' send the background instead,' ' ObjectNumber = -1," End If,' ' TempMode = OperationMode,' ' OperationMode = "DrawProg",' ' HideAnySteips,' ' Regenerate frmMDI.ActiveForm,' ' frmDraw.Show 1 ,' ' Unload frmDraw,' ' ShowAnySteips;' ' OperationMode = TempMode,' ' frmMDI.Show;' ' FormState(frmMDI.ActιveForm Tag) Dirty = Tme;' ' End If,' 'Else;' ' DisplayEnorMessage VA CANT & Chr(13) & VA_CANT1 & Chr(13) & VA_CANT2 & Chr(13) & VA_CANT3, vblnformation, VaTitle;' 'End Ift'Case 25;" If
ShdeButtons Then;" ReteeatButtons;" ShdeButtons = False;" Else;" SpreadButtons;" ShdeButtons = Tme;" End If;'Case 26 'zoom m;' 'Screen.MousePomter = vbHourglass,' 'If fimMDI.ActiveForm.picScreen. Width > 16000 Or fimMDI.ActiveForm.picScreen.Height > 16000 Then;' ' DisplayEnorMessage VA_NOZOOM, vblnformation, VaTitle;' 'Else,' ' Zoomit 2, frmMDI.ActiveForm;' 'End If;' 'Screen.MousePomter = vbDefault;'Case 27 'zoom out,' 'Screen.MousePomter = vbHourglass,' 'If frmMDI.ActiveForm.Zoom > 0 Then;' ' Zoomit 0.5, frmMDI.ActiveForm
'check for minimum;' 'Else;' ' DisplayEnorMessage VA NOZOOMSMALL, vblnformation, VaTitle,' 'End If,' 'Screen.MousePomter = vbDefault;'Case Else; 'DisplayErrorMessage "Button has no code yet";'End Select;vabtnl(Index).Left = vabtnl(Index).Left - bmove;vabtnl(Index).Top = vabtal(Index).Top - bmove;'Pιcture2 SetFocus 'This is supposed to avoid having to click twice in a button. Does it work9 NO!;'ShrmkAllTempBuffers 'Here as a test;End Sub;Pπvate Sub vaBtal_DragDrop(Index As Integer, Source As
Conteol, X As Single, Y As Single);' Dim l As Integer;' For l = 1 To HιghestΙndex(frmMDI.ActιveForm.Tag);' If ObjectDiscπptιon(frmMDI. ActiveForm.Tag, ι).Deleted <> Tme Then;' If fimMDI.ActiveForm.ldlmageObject(i). BorderStyle = 1 Then frmMDI.ActiveForm.ldlmageObject(i). BorderStyle = 0;' End If;' Next ι;End Sub;Pπvate Sub vaBtal_MouseDown(Index As Integer, Button As Integer, Shift As Integer, X As Smgle, Y As Single); If OperationMode = VA MOVING Then; If Index = 25 Then; frmMDI.ActiveForm.DrawGπd;
PlayFile DBPath & "grid. wav"; End If; If Index = 19 Then; Dim n%; frmMDI.ActiveForm.picScreen.AutoRedraw = Tme; frmMDI.ActiveForm.picScreen.Cls; For n% = 1 To fπnMDI.ActiveForm.ObjectZorderl. Count; fπnMDI.ActιveFonn.vaPιcture(frmMDI.ActιveForm.ObjectZorderl.GetZOder(n%))Nιsιble = False; Debug.Prmt n%, frmMDI.ActιveForm.ObjectZorderl.GetZOder(n%); Next n%; frmMDI.ActiveFoπn.picScreen.AutoRedraw = False, End If; End IftEnd Sub;Pπvate Sub vaBtalJvlouseMove(Index As Integer, Button As Integer, Shift As Integer, X As
Single, Y As Smgle);'PresentBalloon Index, vaBlnl ;End Sub;Pπvate Sub vaBtnl_MouseUp(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single); If OperationMode = VA MOVING Then; If Index = 25 Then; frmMDI. ActiveForm.ldCompositionBuffer.ZOrder 1; End If; If Index = 19 Then; Dim n%; For n% = frmMDI.ActiveForm.ObjectZorderl. Count To 1 Step -1; fιmMDI.ActιveFoιm.vaPιcture(frrnMDI.ActιveForm.ObjectZorderl .GetZOder(n%)).Vιsιble = Tme; Next n%; End If; End If;End Sub;Pπvate Sub vaBtiι2_Chck(); On Enor GoTo vaBtn2_ChckError; PlayFile DBPath & "pamtcol.wav"; frmColorPicker.pickerMode = vaCPPicker; frmColorPicker.Show;' 'cdDialogl. ShowColor;' 'CurrentUnderlay = cdDialogl. Color;' CurrentUnderlay = ChooseColor(O);' If CurrentUnderlay = -1 Then Err.Raise 32755;' frmMDI.ldUndelay.Fill CunentUnderlay;' frmMDI.ldUndelay.ForceRepaint ' 09/04/97 DEH Changed from VBX to OCX;' frmMDI.vabbι2.BackColor = CunentUnderlay,' sgBox "" & CurrentUnderlay; Exit Sub;vaBtn2_ClιckError:; If Err.Number <> 32755 Then 'not cancel, gMsg = va Error Error & Str(Err.Number) & va Error WasGeneratedBy _; & En.Source & Chr(13) & En.Descnption & Chr(13) & " (vaBtn2_Chck)"; DisplayErrorMessage gMsg, vbCritical, VaTitle; End IftExit Sub;End Sub;'Pubhc Sub InιtιateAPolygon();' If Check_Resources(MmResourceReq, False) Then;' Screen.MousePomter = vbHourglass;' SetCreateMode 1 ,' Screen.MousePointer = vbDefault;' Else;' DisplayErrorMessage VA CANT & Chr(13) & VA_CANT1 & Chr(13) &
VA_CANT2 & Chr(13) & VA CANT3, vblnformation, VaTitle,' End If;'End Sub;Pπvate Sub vaBtn2_DragDrop(Source As Conteol, X As Single, Y As Single),' Dim I As Integer;' For I = 1 To HιghestΙndex(frmMDI.ActιveForm.Tag);' If ObjectDιscπptιon(fπr_MDI.ActιveFoιm.Tag, ι).Deleted o Tme Then;' If frmMDI.ActiveForm.ldlmageObject(i) BorderStyle = 1 Then frmMDI.ActiveForm.ldlmageObject(i). BorderStyle = 0,' End If;' Next ι;End Sub;Pπvate Sub vaBta2_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As
Sιngle),'PresentBalloon 101, vaBln2;End Sub;
FRMMdi VERSION 5.00;Object = "{00080003-B1BA-11CE-ABC6-F5B2E79D9E3F}#8.0#0", "LTOCX80N.OCX";Object = " {F9043C88-F6F2-101A-A3C9-08002B2F49FB}#1.1#0"; "COMDLG32.0CX";Object = "{C1A8AF28-1257-101B-8FB0-0020AF039CA3}#1.1#0"; "MCI32.0CX";Object = "{0BA686C6-F7D3-101A- 993E-0000C0EF6F5E}#1.0#0"; "THREED32.0CX";Ob ect = "{3C72FAB1-2AB1-11D1-B0A8-
0060976C76C4}#2.0#0"; "VA_DBBF.OCX";Object = "{6B7E6392-850A-101B-AFCO-4210102A8DA7}#1.2#0"; "COMCTL32.0CX";Begm VB.MDIForm frmMDI; Appearance = 0 'Flat; BackColor = &H007798B4&; Caption = "MDIForml"; ChentHeight = 6585; ChentLeft = -555; ChentTop = 1695; ChentWidth = 11880; HelpContextlD = 25; Icon = "frmmdi.frx":0000, LmkTopic = "MDIForml "; OLEDropMode = 1 'Manual; WmdowState = 2 'Maximized; Begin VB.PictureBox Pιcture3; Align = 3 'Align Left; BackColor = &H007798B4&; BorderStyle = 0 'None; Height =
5265; Left = 0; ScaleHeight = 5265; ScaleWidth = 1260; Tablndex = 31; Top = 825; Width = 1260; Begin VB.Timer Timerl; Enabled = 0 'False; Interval = 250; Left = 1485; Top = 3150; End; Begin VB.Label Label 1; Alignment = 2 'Center; BackStyle = 0 'Transparent; Height = 345; Index = 5; Left = 675; Tablndex = 60; ToolTipText = "6732", Top = 2220; Width = 450; End; Begin VB.Label Labell; Alignment = 2 'Center; BackStyle = 0 'Transparent; Height = 345; Index = 4; Left = 240; Tablndex = 59; ToolTipText = "6729"; Top = 2220, Width = 420; End, Begin VB.Label
Labell, BackStyle = 0 'Transparent; Height = 585; Index = 10; Left = 360, Tablndex = 50; Top = 3540; Width = 570; End; Begm VB.Label Labell; BackStyle = 0 'Transparent; Height = 570; Index = 13; Left = 240; Tablndex = 49; Top = 5025; Width = 840; End; Begm VB.Label Labell; Alignment = 2 'Center; BackStyle = 0 'Transparent; Draglcon = "frmmdi.frx":030A; Height = 210; Index = 16; Left = 120; Tablndex = 47; Top = 3045; Width = 225; End; Begin VB.Label Labell ; Alignment = 2 'Center; BackStyle = 0 'Transparent; Draglcon = "frmmdι.frx":0614; Height = 240,
Index = 17, Left = 225; Tablndex = 46; Top = 2850; Width = 225; End; Begin VB.Label Labell; Alignment = 2 'Center, BackStyle = 0 'Transparent; Draglcon = "frmmdi.frx":091E; Height = 210; Index = 18; Left = 390; Tablndex = 45; Top = 2715; Width = 225; End; Begin VB.Label Labell; Alignment = 2 'Center; BackStyle = 0 'Transparent; Draglcon = "frmmdι.frx":0C28; Height = 210; Index = 19; Left = 555; Tablndex = 44, Top = 2640; Width = 255; End; Begin VB.Label Labell; Alignment = 2 'Center; BackStyle = 0 'Transparent; Draglcon = "frmmdi.frx":0F32; Height = 210, Index = 20, Left = 780, Tablndex = 43, Top = 2610; Width = 195; End; Begin VB.Label Labell , Alignment = 2 'Center; BackStyle = 0 'Transparent; Draglcon = "frmmdι.frx".123C; Height = 225; Index = 21; Left = 60; Tablndex = 42; Top = 3285; Width = 165, End, Begin VB.Label Labell , BackStyle = 0 'Transparent, Height = 780; Index = 14; Left = 300; Tablndex = 48; Top = 4200, Width = 630, End; Begin VB.Image EZbutt; Height = 540, Index = 2; Left = 390; Steetch = -1 'Tme; Top = 435; Width = 600; End; Begin VB.Image EZbutt; Height = 510; Index
= 0; Left = 405; Steetch = -1 'Tme, Top = 435; Width = 600, End; Begin VB.Label Labell ; BackStyle = 0 'Transparent; Height = 240; Index = 9, Left = 0; Tablndex = 51; ToolTipText = "6735"; Top = 0; Width = 1275; End, Begin VB.Label Labell ; BackStyle = 0 'Transparent; Height = 180, Index = 22; Left = 435; Tablndex = 34; Top = 240; Width = 810; End; Begin VB.Image EZbutt; Height = 285; Index = 8, Left = 1980; Steetch = -1 'Tme; Top = 3795; Width = 345; End; Begin VB.Image EZbutt; Height = 135; Index = 24; Left = 435; Steetch = -1 'Tme, Top =
1050; Visible = 0 'False; Width = 720; End; Begin VB.Image EZbutt; Height = 120; Index = 26; Left = 1860, Steetch = -1 'Tme; Top = 3645; Visible = 0 'False, Width = 705; End; Begin VB.Image EZbutt; Height = 330, Index = 11; Left = 570; Steetch = -1 'Tme; Top = 4005, Visible = 0 'False; Width = 540; End; Begin VB.Image EZbutt; Height = 510, Index = 14, Left = 1875; Steetch = -1 'Tme, Top = 3930, Width = 600; End; Begin VB.Image EZbutt; Height = 435; Index = 15; Left = 600, Steetch = -1 'Tme, Top = 4380; Visible = 0 'False; Width = 585; End; Begin VB.Image
EZbutt; Draglcon = "frmmdi.frx":1546; Height = 135; Index = 16, Left = 1560; Steetch = -1 'Tme; Top = 2775; Width = 165; End; Begin VB.Image EZbutt; Draglcon = "frmmdι.frx": 1850; Height = 135; Index = 17; Left = 990; Steetch = -1 'Tme; Top = 390; Width = 150; End; Begin VB.Label Labell ; BackStyle = 0 'Transparent; Height = 180; Index = 24; Left = 435; Tablndex = 41; Top = 1035; Width = 825; End; Begm VB.Label Label2; BackStyle = 0 'Transparent; Height = 270; Index = 0; Left = 0; Tablndex = 40; Top = 300; Width = 390; End; Begin VB.Label Label2; BackStyle
= 0 'Transparent; Height = 270; Index = 1, Left = 0; Tablndex = 39; Top = 1080; Width = 390; End; Begin VB.Label Label2; Caption = "2 - 2", Height = 270; Index = 2; Left = 1980; Tablndex = 38; Top = 2850, Width = 420, End; Begin VB.Image EZbutt; Height = 510; Index = 4; Left = 420; Steetch = -1 'Tme; Top = 420; Visible = 0 'False; Width = 510; End; Begm VB.Image EZbutt; Height = 525; Index = 5; Left = 375; Steetch = -1 'Tme; Top = 1215; Visible = 0 'False; Width = 645; End; Begin VB.Image EZbutt; Height = 510; Index = 6; Left = 390; Steetch = -1 'Tme; Top =
1215; Width = 585, End; Begin VB.Image EZbutt; Draglcon = "frmmdι.frx":lB5A; Height = 150; Index = 18; Left = 990; Steetch = -1 'Tme; Top = 1185; Width = 150, End; Begin VB.Image EZbutt; Height = 525; Index = 10; Left = 1815; Steetch = -1 'Tme; Top = 4290; Width = 630; End; Begin VB.Image EZbutt; Height = 510; Index = 13; Left = 1875; Steetch = -1 'Tme; Top = 4560; Width = 540; End; Begin VB.Image EZbutt; Draglcon = "frmmdι.frx":lE64; Height = 120; Index = 19; Left = 2160; Steetch = -1 'Tme; Top = 3330; Width = 150; End; Begin VB.Image EZbutt;
Height = 540; Index = 1 ; Left = 1785; Steetch = -1 'Tme; Top = 4920; Width = 600; End; Begin VB.Image EZbutt; Height = 480; Index = 7; Left = 1740; Steetch = -1 'Tme; Top = 5265; Visible = 0 'False; Width = 600; End; Begm VB.Image EZbutt; Height = 510; Index = 3; Left = 1725; Steetch = -1 'Tme; Top = 5610; Visible = 0 'False; Width = 570; End; Begm VB.Label Labell ; Alignment = 2 'Center; BackStyle = 0 'Transparent; Height = 360; Index = 2, Left = 240; Tablndex = 37; ToolTipText = "6734"; Top = 1845; Width = 420; End; Begin VB.Label Labell; BackStyle = 0 'Transparent, Height = 630, Index = 1, Left = 420, Tablndex = 36, Top = 1140, Width = 840, End, Begin VB Label Labell , BackStyle = 0 'Transparent, Height = 630, Index = 0, Left = 420, Tablndex = 35, Top = 375, Width = 810, End, Begin VB Label Labell, Alignment = 2 'Center, BackStyle = 0 'Transparent, Height = 360, Index = 26, Left = 675, Tablndex = 33, ToolTipText = "6733", Top = 1845, Width = 450, End, Begin VB Label Labell , BackStyle = 0 'Transparent, Height = 1305, Index = 3, Left = 0, Tablndex = 32, Top = 4230, Width = 300, End, Begin VB Image
EZbutt, Height = 120, Index = 22, Left = 450, Steetch = -1 'Tme, Top = 285, Visible = 0 'False, Width = 705, End, Begm VB Image Image4, Height = 5610, Left = 0, Steetch = -1 'Tme, Top = 0, Width = 1260, End, End, Begin VB PictureBox Pιcture2, Align = 1 'Align Top, BackColor = &H00FFFFFF&, ForeColor = &HOOO0OOOO&, Height = 825, HelpContextlD = 328, Left = 0, ScaleHeight = 765, ScaleWidth = 11820, Tablndex = 2, Top = 0, Width = 11880, Begin vaDBbuffer valmageBuffer valmageBufferl, Height = 1815, Index = 0, Left = 4815, Tablndex = 53,
Top = 1335, Width = 1395, JBxtentX = 2461, JExtentY = 3201, hWnd = 4092, PixelO = -2147483648, ReadOnly = - 1 'Tme, TwamBits = -1, TwainFlags = 3, TwaιnFrameHeιght= - 1 , TwamFrameLeft = -1, TwainFrameTop = -1 , TwainFrame Width = -1 , TwainMaxPages = -1, TwamPixelType = -1, TwainRes = -1 , End, Begin LeadLib Lead ldProjectMask, Bindings = "frmmdi frx" 216E, Height = 375, Left = 8280, Tablndex = 20, Top = 960, Width = 375, Version = 524288, ExtentX = 661, ExtentY = 661 , StockProps = 229, BegmProperty Font {0BE35203-8F91-
11CE-9DE3-00AA004BB851 } , Name = "MS Sans Serif, Size = 8 25, Charset = 0, Weight = 400, Underline = 0 'False, Italic = 0 'False, Steikethrough = 0 'False, EndProperty, ScaleHeight = 25, ScaleWidth = 25, DataField = "Mask", BitmapDataPath = "", AnnDataPath = "", End, Begin LeadLib Lead ldProjectlmage, Bindings = "frmmdi frx" 217E, Height = 375, Left = 7800, Tablndex = 19, Top = 960, Width = 375, _Versιon = 524288, _ExtentX = 661 , _ExtentY = 661 , _StockProps = 229, BegmProperty Font {0BE35203-8F91-11 CE-9DE3-
00AA004BB851}, Name = "MS Sans Serif, Size = 8 25, Charset = 0, Weight = 400, Underline = 0 'False, Italic = 0 'False, Steikethrough = 0 'False, EndProperty, ScaleHeight = 25, ScaleWidth = 25, DataField = "Image", BitmapDataPath = "", AnnDataPath = "", End, Begin LeadLib Lead ldDBbuffer, Bmdings = "frmmdi frx" 218E, Height = 375, Left = 2160, Tablndex = 18, Top = 960, Width = 1455, JVersion = 524288, _ExtentX = 2566, ExtentY = 661, _StockProps = 229, BeginPropeity Font {0BE35203-8F91-11CE-9DE3-00AA004BB851 } , Name =
"MS Sans Serif, Size = 8 25, Charset = 0, Weight = 400, Underlme = 0 'False, Italic = 0 'False, Steikethrough = 0
'False, EndProperty, ScaleHeight = 25, ScaleWidth = 97, DataField = """Thumb , BitmapDataPath = "",
AnnDataPath = "", End, Begm VB Data Data3, Caption = "Data3", Connect = "Access", DatabaseName = "", DefaultCursorType= 0 'DefaultCursor, DefaultType = 2 'UseODBC, Exclusive = 0 'False, Height = 300, Left = 6525, Options = 0, ReadOnly = 0 'False, RecordsetType = 1 'Dynaset, RecordSource = "", Top = 975, Width = 1185, End,
Begin VB Data Data2, Caption = "Data2", Connect = "Access", DatabaseName = "", DefaultCursorType= 0 'DefaultCursor, DefaultType = 2 'UseODBC, Exclusive = 0 'False, Height = 300, Left = 360, Options = 0, ReadOnly = -1 'Tme, RecordsetType = 1 'Dynaset, RecordSource = "", Top = 1140, Width = 1140, End, Begin VB Data Datal, Caption = "Datal", Connect = "Access", DatabaseName = "", DefaultCursorType= 0 'DefaultCursor, DefaultType = 2 'UseODBC, Exclusive = 0 'False, Height = 300, Left = 300, Options = 0, ReadOnly = -1 'Tme, RecordsetType = 1 'Dynaset, RecordSource = "", Top = 840, Width = 1140, End, Begin VB ComboBox cmbsubcategones, BackColor = &H00FFC0C0&, Height = 315, Left = 5160, Sorted = -1 'Tme, Style = 2 'Dropdown List, Tablndex = 15, ToolTipText = "7133", Top = 435, Width = 2130, End, Begin VB ComboBox cmbCategories, BackColor = &H00FFC0C0&, Height = 315, Left = 3030, Style = 2 'Dropdown List, Tablndex = 14, ToolTipText = "7132", Top = 435, Width = 2130, End, Begin VB ComboBox cmb Vendor, BackColor = &H00FFC0C0&, Height = 315, Left = 60,
Sorted = -1 'Tme, Style = 2 'Dropdown List, Tablndex = 13, ToolTipText = "7131", Top = 435, Width = 2955, End, Begin VB CommandButton Commandl, Caption = "<> ", Height = 270, Left = 13455, Tablndex = 9, Top = 1245, Width = 435, End, Begin VB Image pblnfoCD, Height = 345, Left = 8040, Picture = "frmmdi frx" 219E, Top = 60, Visible = 0 'False, Width = 840, End, Begin VB Lme Lmel , BorderColor = &H00FFC0C0&, BorderWidth = 2, Index = 3, XI = 6705, X2 = 6705, Yl = 45, Y2 = 375, End, Begin VB Line Lmel, BorderColor = &H00FFC0C0&,
BorderWidth = 2, Index = 2, XI = 4275, X2 = 4275, Yl = 45, Y2 = 375, End, Begm VB Lme Lmel , BorderColor = &H00FFC0C0&, BorderWidth = 2, Index = 1 , XI = 2550, X2 = 2550, Yl = 45, Y2 = 375, End, Begin VB Line Lmel, BorderColor = &H00FFC0C0&, BorderWidth = 2, Index = 0, XI = 615, X2 = 615, Yl = 45, Y2 = 375, End, Begin VB Image btadb, Height = 300, Index = 2, Left = 7935, Picture = "frmmdi frx" 297A, Steetch = -1 'Tme, ToolTipText = "7126", Top = 435, Visible = 0 'False, Width = 270, End, Begin VB Image btadb, Height = 300, Index
= 1, Left = 7620, Picture = "frmmdi frx" 302A, Steetch = -1 'Tme, ToolTipText = "7126", Top = 435, Visible = 0 'False, Width = 270, End, Begin VB Image btadb, Height = 300, Index = 0, Left = 7305, Picture = "frmmdi frx" 36DA, Steetch = -1 'Tme, ToolTipText = "7126", Top = 435, Width = 270, End, Begm VB Image vabtnl, Height = 330, Index = 21, Left = 4365, Picture = "frmmdi frx" 3D8A, ToolTipText = "7112", Top = 45, Visible = 0 'False, Width = 345, End, Begin VB Image vabtal , Height = 345, Index = 20, Left = 5880, Picture =
"frmmdi frx" 437E, ToolTipText = "7121", Top = 60, Width = 345, End, Begin VB Image vabtal, Height = 345, Index = 19, Left = 7590, Picture = "frmmdi frx" 499E, ToolTipText = "7136", Top = 30, Width = 345, End, Begin VB Image vabtal, Height = 345, Index = 18, Left = 1455, Picture = "frmmdi frx" 4F46, ToolTipText = "7108", Top = 30, Width = 345, End, Begin VB Image vabtal, Height = 345, Index = 17, Left = 3480, Picture = "frmmdi frx" 55A6, ToolTipText = "6720", Top = 30, Visible = 0 'False, Width = 345, End, Begin VB Image vabtnl , Height = 345, Index
= 15, Left = 3105, Picture = "frmmdi frx" 5A06, ToolTipText = "7114", Top = 30, Visible = 0 'False, Width = 345, End, Begm VB Image vabtnl, Height = 345, Index = 14, Left = 2730, Picture = "frmmdi frx" 5EAA, ToolTipText = "7113", Top = 30, Visible = 0 'False, Width = 345, End, Begm VB Image vabtal, Height = 345, Index = 13, Left = 5070, Picture = "frmmdi frx" 63EA, ToolTipText = "7122", Top = 45, Width = 345, End, Begm VB Image vabtnl, Height = 345, Index = 10, Left = 6270, Picture = "frmmdi frx" 688A, ToolTipText = "7119", Top = 45, Visible = 0
'False, Width = 345, End, Begm VB Image vabtal, Height = 345, Index = 9, Left = 6810, Picture = "frmmdi frx" 6D0A, ToolTipText = "6723", Top = 45, Width = 345, End, Begin VB Image vabtnl, Height = 345, Index = 8, Left = 7170, Picture = "frmmdi frx" 71A2, ToolTipText = "7115", Top = 45, Width = 345, End, Begm VB Image vabtal, Height = 345, Index = 7, Left = 1065, Picture = "frmmdi frx" 769E, ToolTipText = "7107", Top = 30, Width = 345, End, Begin VB Image vabtal, Height = 345, Index = 6, Left = 5445, Picture = "frmmdi frx" 7CAE, ToolTipText = "7123", Top = 45, Width = 345, End, Begin VB Image vabtal , Height = 345, Index = 5, Left = 3855, Picture = "frmmdi frx" 819E, ToolTipText = "6721", Top = 45, Visible = 0 'False, Width = 345, End, Begin VB Image vabtal, Height = 345, Index = 4, Left = 4725, Picture = "frmmdi frx" 879A, ToolTipText = "6722", Top = 45, Visible = 0 'False, Width = 345, End, Begin VB Image vabtal, Height = 345, Index = 3, Left = 2145, Picture = "frmmdi frx" 8D36, ToolTipText = "7125", Top = 30, Width = 345, End, Begin VB Image vabtnl, Height = 345,
Index = 2, Left = 1815, Picture = "frmmdi frx" 916A, ToolTipText = "7124", Top = 30, Width = 345, End, Begin VB Image vabtal, Height = 345, Index = 1, Left = 690, Picture = "frmmdi frx" 95CE, ToolTipText = "7106", Top = 30, Width = 345, End, Begm VB Image vabtnl , Height = 345, Index = 0, Left = 90, Picture = "frmmdi frx'( 9A26, ToolTipText = "7100", Top = 30, Width = 435, End, Begm VB Image pblnfoNet, Height = 345, Left = 8040, Picture = "frmmdi frx" A0D6, Top = 60, Visible = 0 'False, Width = 840, End, End, Begm VB PictureBox Picture 1, Align = 2
'Align Bottom, BackColor = &H0OFFC0C0&, Height = 495, HelpContextlD = 25, Left = 0, ScaleHeight = 29, ScaleMode = 3 'Pixel, ScaleWidth = 788, Tablndex = 1, Top = 6090, Width = 11880, Begin LeadLib Lead ldTransparentBuffer, Height = 435, Left = 7980, Tablndex = 61, Top = 1620, Width = 615, JVersion = 524288, ExtentX = 1085, ExtentY = 767, StockProps = 229, BegmProperty Font {0BE35203-8F91-11CE-9DE3- 00AA004BB851 } , Name = "MS Sans Serif, Size = 8 25, Charset = 0, Weight = 400, Underline = 0 'False, Italic = 0
'False, Steikethrough = 0 'False, EndProperty, ScaleHeight = 29, ScaleWidth = 41 , DataField = "", BitmapDataPath = "", AnnDataPath = "", End, Begin VB PictureBox picSprayPattern, Appearance = 0 'Flat, AutoRedraw = -1 'Tme, BackColor = &H00FFFFFF&, BorderStyle = 0 'None, ForeColor = &H80000008&, Height = 480, Left = 4500, ScaleHeight = 32, ScaleMode = 3 'Pixel, ScaleWidth = 32, Tablndex = 58, Top = 1440, Visible = 0 'False, Width = 480, End, Begin VB PictureBox picSprayMask, Appearance = 0 'Flat, AutoRedraw = -1 'Tme, BackColor =
&H00FFFFFF&, BorderStyle = 0 'None, FiUStyle = 0 'Solid, ForeColor = &H00000000&, Height = 480, Left = 3900, ScaleHeight = 32, ScaleMode = 3 'Pixel, ScaleWidth = 32, Tablndex = 57, Top = 1440, Visible = 0 'False, Width = 480, End, Begin VB PictureBox picIntemetDDrop, Height = 525, Left = 5325, ScaleHeight = 465, ScaleWidth = 630, Tablndex = 56, Top = 555, Width = 690, End, Begin LeadLib Lead IdShadowBuffer, Height = 615, Left = 3840, Tablndex = 55, Top = 600, Width = 1215, Version = 524288, ExtentX = 2143, ExtentY = 1085, StockProps =
229, BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851} , Name = "MS Sans Seπf , Size = 8 25, Charset = 0, Weight = 400, Underline = 0 'False, Italic = 0 'False, Steikethrough = 0 'False, EndProperty, ScaleHeight = 41, ScaleWidth = 81, DataField = "", BitmapDataPath = "", AnnDataPath = "", End, Begin LeadLib Lead IdShadow, Height = 495, Left = 2400, Tablndex = 54, Top = 600, Width = 1215, JVersion = 524288, _ExtenfX = 2143, ExtentY = 873, _StockProps = 229, BeginProperty Font {OBE35203-8F91-11CE-9DE3-OOAA004BB851 } , Name =
"MS Sans Serif, Size = 8 25, Charset = 0, Weight = 400, Underlme = 0 'False, Italic = 0 'False, Steikethrough = 0 'False, EndProperty, ScaleHeight = 33, ScaleWidth = 81, DataField = "", BitmapDataPath = "", AnnDataPath = "", End, Begm LeadLib Lead ldlmportBuffer, Height = 1215, Left = 720, Tablndex = 52, Top = 720, Visible = 0 'False, Width = 1215, JVersion = 524288, ExtentX = 2143, _ExtentY = 2143, JStockProps = 229, BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851 }, Name = "MS Sans Serif, Size = 8 25, Charset = 0, Weight = 400, Underline = 0 'False; Italic = 0 'False; Steikethrough = 0 'False; EndProperty; ScaleHeight = 81; ScaleWidth = 81 , DataField = ""; BitmapDataPath = ""; AnnDataPath = ""; End; Begin LeadLib.Lead IdObjectBuffer; Height = 495; Left = 10140; Tablndex = 30; Top = 720; Width = 495; JVersion = 524288; JExtentX = 873; ExtentY = 873, StockProps = 229; BegmProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851} ; Name = "MS Sans Serif; Size = 8.25; Charset = 0; Weight = 400; Underline = 0 'False; Italic = 0 'False; Steikethrough = 0 'False, EndProperty;
ScaleHeight = 33; ScaleWidth = 33; DataField = ""; BitmapDataPath = "", AnnDataPath = "", End, Begin LeadLib.Lead IdEditlmageBuffer; Height = 495, Left = 8835, Tablndex = 29, Top = 570; Width = 495, JVersion = 524288; _ExtentX = 873; _ExtentY = 873; StockProps = 229; BegmProperty Font {0BE35203-8F91-11CE-9DE3- 00AA004BB851 }; Name = "MS Sans Serif; Size = 8.25; Charset = 0; Weight = 400; Underline = 0 'False; Italic = 0 'False; Steikethrough = 0 'False; EndProperty; ScaleHeight = 33; ScaleWidth = 33; DataField = "", BitmapDataPath =
""; AnnDataPath = ""; End; Begin LeadLib.Lead IdEditMaskBuffer; Height = 495; Left = 9585, Tablndex = 28, Top = 585, Width = 495; Version = 524288; JExtentX = 873, ExtentY = 873, StockProps = 229; BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851 }; Name = "MS Sans Serif, Size = 8.25; Charset = 0; Weight = 400; Underline = 0 'False; Italic = 0 'False; Steikethrough = 0 'False, EndProperty; AutoScroll = 0 'False; ScaleHeight = 33; ScaleWidth = 33; DataField = ""; BitmapDataPath = ""; AnnDataPath = ""; End; Begin LeadLib.Lead ldTwain; Height
= 495; Left = 7680; Tablndex = 25; Top = 1050; Width = 495; JVersion = 524288; _ExtentX = 873; _ExtentY = 873 StockProps = 229; BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851 } ; Name = "MS Sans Serif Size = 8.25; Charset = 0; Weight = 400; Underline = 0 'False; Italic = 0 'False; Steikethrough = 0 'False; EndProperty: ScaleHeight = 33; ScaleWidth = 33; DataField = ""; BitmapDataPath = ""; AnnDataPath = ""; End; Begm LeadLib.Lead ldMaskClipboard; Height = 495; Left = 7095; Tablndex = 24; Top = 1050; Width = 495; Version =
524288; ExtentX = 873; JExtentY = 873; _StockProps = 229; BeginProperty Font {0BE35203-8F91-11CE-9DE3- 00AA004BB851}; Name = "MS Sans Serif; Size = 8.25; Charset = 0, Weight = 400; Underline = 0 'False; Italic = 0 'False; Steikethrough = 0 'False; EndProperty; ScaleHeight = 33; ScaleWidth = 33; DataField = ""; BitmapDataPath = ""; AnnDataPath = ""; End; Begin LeadLib.Lead IdSnapshotBuffer; Height = 495; Left = 6480; Tablndex = 23; Top = 1005; Width = 495; JVersion = 524288; JExtentX = 873; _ExtentY = 873; _StockProps = 229; BeginProperty Font
{0BE35203-8F91-11CE-9DE3-OOAA004BB851 } ; Name = "MS Sans Serif; Size = 8.25; Charset = 0; Weight = 400; Underline = 0 'False; Italic = 0 'False; Steikethrough = 0 'False; EndProperty; ScaleHeight = 33; ScaleWidth = 33; DataField = ""; BitmapDataPath = ""; AnnDataPath = ""; End; Begin LeadLib.Lead ldOuthneBuffer; Height = 495; Left = 7110; Tablndex = 22; Top = 480; Width = 495; JVersion = 524288; JExtentX = 873; _ExtentY = 873; StockProps = 229; BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851}; Name = "MS Sans Serif;
Size = 8.25; Charset = 0; Weight = 400; Underline = 0 'False; Italic = 0 'False; Steikethrough = 0 'False; EndProperty; ScaleHeight = 33; ScaleWidth = 33; DataField = ""; BitmapDataPath = ""; AnnDataPath = ""; End; Begm LeadLib.Lead ldlmageChpBoard; Height = 495; Left = 6465; Tablndex = 21; Top = 480; Width = 495; Version = 524288; JExtentX = 873; JExtentY = 873; StockProps = 229; BeginProperty Font {0BE35203-8F91-11CE-9DE3- 00AA004BB851 }; Name = "MS Sans Serif; Size = 8.25; Charset = 0; Weight = 400; Underline = 0 'False; Italic = 0 'False, Steikethrough = 0 'False, EndProperty, ScaleHeight = 33, ScaleWidth = 33, DataField = "", BitmapDataPath = "", AnnDataPath = "", End, Begin VB PictureBox picDistortBuffer, AutoRedraw = -1 'Tme, BackColor = &H00FFFFFF&, BorderStyle = 0 'None, Height = 165, Left = 8490, ScaleHeight = 11, ScaleMode = 3 'Pixel, ScaleWidth = 23, Tablndex = 12, Top = 900, Visible = 0 'False, Width = 345, End, Begin VB PictureBox picDistortSize, AutoRedraw = -1 'Tme, BackColor = &H00FFFFFF&, BorderStyle = 0 'None, FiUStyle = 0 'Solid,
Height = 165, Left = 8490, ScaleHeight = 11, ScaleMode = 3 'Pixel, ScaleWidth = 21, Tablndex = 11, Top = 690, Visible = 0 'False, Width = 315, End, Begin VB PictureBox picDistort, AutoRedraw = -1 'Tme, BackColor = &H00FFFFFF&, BorderStyle = 0 'None, Height = 195, Left = 8490, ScaleHeight = 13, ScaleMode = 3 'Pixel, ScaleWidth = 23, Tablndex = 10, Top = 1110, Visible = 0 'False, Width = 345, End, Begm VB PictureBox pιcFram2, Height = 375, Left = 30, ScaleHeight = 21, ScaleMode = 3 'Pixel, ScaleWidth = 27, Tablndex = 6, Top = 30, Width =
465, Begin LeadLib Lead ldPattern, Height = 375, Left = 0, Tablndex = 26, ToolTipText = "7128", Top = 15, Width = 450, JVersion = 524288, JSxtenfX = 794, JExtentY = 661, StockProps = 229, BeginProperty Font {0BE35203- 8F91-11CE-9DE3-OOAA004BB851 }, Name = "MS Sans Serif, Size = 8 25, Charset = 0, Weight = 400, Underline = 0 'False, Italic = 0 'False, Steikethrough = 0 'False, EndProperty, AutoScroll = 0 'False, ScaleHeight = 25, ScaleWidth = 30, DataField = "", BitmapDataPath = "", AnnDataPath = "", End, End, Begin VB PictureBox picSimple,
BorderStyle = 0 'None, Height = 285, Left = 11160, Picture = "frmmdi frx" A8B2, ScaleHeight = 285, ScaleWidth = 135, Tablndex = 5, Top = 510, Visible = 0 'False, Width = 135, End, Begin VB PictureBox picFramel, Height = 375, Left = 8700, ScaleHeight = 21, ScaleMode = 3 'Pixel, ScaleWidth = 29, Tablndex = 4, Top = 1455, Width = 495, Begin LeadLib Lead ldUndelay, Height = 375, Left = 0, Tablndex = 27, Top = 0, Width = 495, Version = 524288, _ExtentX = 873, _ExtentY = 661, StockProps = 229, BeginProperty Font {0BE35203-8F91-11CE-9DE3-
00AA004BB851 }, Name = "MS Sans Serif, Size = 8 25, Charset = 0, Weight = 400, Underlme = 0 'False, Italic = 0 'False, Steikethrough = 0 'False, EndProperty, ScaleHeight = 25, ScaleWidth = 33, DataField = "", BitmapDataPath = "", AnnDataPath = "", End, End, Begm VB PictureBox picDXFbuffer, Appearance = 0 'Flat, AutoRedraw = -1 'Tme, AutoSize = -1 'Tme, BackColor = &H0000C000&, BorderStyle = 0 'None, DataField = """Picture""", DataSource = Datal ', ForeColor = &H80000008&, Height = 375, Left = 10680, ScaleHeight = 1 659, ScaleMode = 0 'User,
ScaleWidth = 25, Tablndex = 0, Top = 780, Visible = 0 'False, Width = 375, End, Begm Threed SSPanel vabtn2, Height = 345, Left = 525, Tablndex = 7, ToolTipText = "7129", Top = 45, Width = 315, JVersion = 65536, ExtentX = 556, ExtentY = 609, StockProps = 15, BackColor = 16761024, BeginProperty Font {0BE35203-8F91-11CE- 9DE3-00AA004BB851 } , Name = "MS Sans Serif, Size = 8 25, Charset = 0, Weight = 400, Underlme = 0 'False, Italic = 0 'False, Steikethrough = 0 'False, EndProperty, End, Begin Threed SSPanel ssBottom, Height = 405, Index =
1, Left = 2715, Tablndex = 8, ToolTipText = "7130", Top = 15, Width = 9210, JVersion = 65536, _ExtenfX = 16245, ExtentY = 714, StockProps = 15, BackColor = 16761024, BeginProperty Font {0BE35203-8F91-11CE-9DE3- 00AA004BB851 } , Name = "MS Sans Serif, Size = 8 25, Charset = 0, Weight = 400, Underlme = 0 'False, Italic = 0 'False, Steikethrough = 0 'False, EndProperty, BevelOuter = 1 , Alignment = 1 , Begm VB PictureBox pιcPostIt2, BackColor = &HO0COCOCO&, BorderStyle = 0 'None, Height = 240, Left = 45, Picture = "frmmdi frx" AA5C, ScaleHeight = 240; ScaleWidth = 150, Tablndex = 16; Top = 75; Visible = 0 'False; Width = 150; End; End; Begm Threed.SSPanel ssDrop; Height = 405; Left = 870, Tablndex = 17; ToolTipText = "7134", Top = 15; Width = 1815, Version = 65536; ExtentX = 3201, ExtentY = 714; StockProps = 15; ForeColor = 16744576; BackColor = 16777215, BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851 } , Name = "MS Sans Serif; Size = 8.25; Charset = 0; Weight = 700, Underline = 0 'False; Italic = 0 'False; Steikethrough = 0 'False, EndProperty;
BevelOuter = 1; Alignment = 1, Begin VB.Image PicAmmation; Height = 345; Left = 1455; Picture = "frmmdι.frx":AC94; Top = 30; Visible = 0 'False; Width = 345; End; Begin VB.Image PicShadow; Height = 345; Left = 1470; Picture = "fimmdi.frx":B2A0; Top = 30; Visible = 0 'False; Width = 345; End; Begin VB.Image PicAnti; Height = 345; Left = 1080; Picture = "frmmdι.frx":B738; Top = 30; Visible = 0 'False; Width = 345; End; Begin VB.Image PicTransperant; Height = 345; Left = 720; Picture = "frmmdι.frx":BAD0; Top = 30, Visible = 0 'False;
Width = 345; End; Begin VB.Image PicDrop; Height = 345; Left = 45; Picture = "frmmdι.frx":BF48; Top = 30, Visible = 0 'False; Width = 345; End, End; Begin MSComDlg.CommonDialog CDιalog2; Left = 120; Top = 600; ExtentX = 847; ExtentY = 847; Version = 327681 ; End; Begin MSComDlg.CommonDialog cdDialogl; Left = 9285; Top = 1125; JExtentX = 847, _ExtentY = 847, JVersion = 327681, CancelError = -1 'Tme; Filter = "*.vap"; ImtDir = "/gallery"; End; Begin MCI.MMConteol mmc Voice; Height = 324, Left = 9240; Tablndex = 3, Top = 1440,
Visible = 0 'False; Width = 3540, ExtentX = 6244; JExtentY = 582; JVersion = 327681; PlayEnabled = -1 'Tme; AutoEnable = 0 'False; Shareable = -1 'Tme, DeviceType = ""; FileName = ""; End; Begin ComctlLib.ImageList ImageListl; Left = 1740; Top = 555; JExtentX = 1005; ExtentY = 1005; BackColor = -2147483643; ImageWidth = 23; ImageHeight = 23; MaskColor = 12632256; Version = 327682; BegmProperty Images {0713E8C2-850A-101B- AFC0-4210102A8DA7}; NumListlmages = 6; BegmProperty Listlmagel {0713E8C3-850A-101B-AFC0-
4210102A8DA7}; Picture = "frmmdi.frx":C344; Key = ""; EndProperty; BeginProperty Lιstlmage2 {0713E8C3- 850A-101B-AFC0-4210102A8DA7} ; Picture = "frmmdι.frx":C9BE; Key = ""; EndProperty; BeginProperty Lιstlmage3 {0713E8C3-85OA-101B-AFC0-4210102A8DA7}; Picture = "frmmdι.frx":D038; Key = ""; EndProperty; BeginProperty Lιstlmage4 {0713E8C3-850A-101B-AFC0-4210102A8DA7}; Picture = "frmmdι.frx":D6B2; Key = ""; EndProperty; BeginProperty Lιstlmage5 {0713E8C3-850A-101B-AFC0-4210102A8DA7}; Picture =
"frmmdi.frx":DD2C; Key = ""; EndProperty; BegmProperty Listlmageό {0713E8C3-850A-101B-AFC0- 4210102A8DA7} ; Picture = "frmmdi.frx":E3A6; Key = ""; EndProperty; EndProperty; End; End; Begin VB.Menu mnuFile; Caption = "cd&File"; Tag = "2450"; Begin VB.Menu mnuNew; Caption = "cd&New - Mam Menu..."; HelpContextlD = 300; Shortcut = ΛN; Tag = "2451"; End; Begin VB.Menu MenuProject; Caption = "cdOp&en Project..."; HelpContextlD = 63; Shortcut = Λ0; Tag = "2452"; End; Begm VB.Menu MnuMOpenC; Caption =
"cdOpen from Clip&board"; HelpContextlD = 81; Tag = "2453"; End; Begm VB.Menu menuScan; Caption = "cdOpen from &Scanner/ Camera"; HelpContextlD = 82; Tag = "2454"; End; Begin VB.Menu mnusep; Caption = "-", End; Begin VB.Menu mnuOpen; Caption = "cd&Import..."; HelpContextlD = 64; Tag = "2455"; End; Begin VB.Menu mnuImportDXF; Caption = "cdlmport &DXF"; Visible = 0 'False; End; Begin VB.Menu mnuDBUtihtys, Caption = "cdProject &Utιhtιes"; Enabled = 0 'False; HelpContextlD = 272; Tag = "2456"; Visible = 0 'False; Begm VB.Menu mnuCompactDB; Caption = "cdCompact Project"; HelpContextlD = 273; Tag = "2457"; End; Begin VB.Menu mnuRepairDB; Caption = "cdRepair Project"; HelpContextlD = 274; Tag = "2458"; End; End; Begin VB.Menu mnusepopt; Caption = "-"; End; Begin VB.Menu mnuProg; Caption = "cdProgram &Optιons"; Enabled = 0 'False; HelpContextlD = 144; Tag = "2459", Visible = 0 'False; End; Begin VB.Menu menusource, Caption = "cdSelect &Twaιn Source"; HelpContextlD = 142; Tag = "2460", End; Begm VB.Menu mnusepmdi, Caption = "-";
End; Begm VB.Menu mnuFilel; Caption = "1", HelpContextlD = 190; Tag = "2461 "; Visible = 0 'False; End; Begin VB.Menu mnuFιle2; Caption = "2"; HelpContextlD = 190; Tag = "2462"; Visible = 0 'False; End, Begin VB.Menu mnuFιle3; Caption = "3"; HelpContextlD = 190; Tag = "2463"; Visible = 0 'False; End; Begm VB Menu mnuFιle4; Caption = "4"; HelpContextlD = 190; Tag = "2464"; Visible = 0 'False; End; Begin VB.Menu mnusep24; Caption = "- "; End; Begin VB.Menu mnuExit, Caption = "cdE&xit"; HelpContextlD = 292; Tag = "2465"; End, End; Begin
VB.Menu mnuHelp; Caption = "cd&Help"; Tag = "2466"; Begin VB.Menu mnumanual; Caption = "cd&On-lme Manual"; HelpContextlD = 55; Tag = "2467"; End; Begin VB.Menu mnulndex; Caption = "cd&Index"; HelpContextlD = 56; Tag = "2468"; End; Begin VB.Menu hlsep; Caption = "-"; End; Begin VB.Menu mnuserveice; Caption = "cd&Scan-It Service", HelpContextlD = 58, Tag = "2469"; End; Begin VB.Menu h2sep, Caption = "-"; End; Begin VB.Menu mnutour; Caption = "cdVideo &Lιbrary"; HelpContextlD = 181 , Tag = "2470"; End; Begin
VB.Menu mnuVideoHowtoTo; Caption = "cd& Video How-To's"; HelpContextlD = 1027; Tag = "2471"; End; Begin VB.Menu h3sep; Caption = "-"; End; Begin VB.Menu Mnuabout; Caption = "cd&About The Product"; HelpContextlD = 189; Tag = "2472"; End; End;End;Atteιbute VB_Name = "fιmMDI";Attπbute VB GlobalNameSpace = FalsejAttπbute VB Creatable = FalsejAtteibute VB Predeclaredld = True; Attribute VBJExposed = False;
FRMNetTrans f er ; Dim dlfile As Integer;Dιm Hold$;Dιm m_Spπte As Stπng;Dιm mJMask As StemgjDim mJText As Steing;Dim mJThumb As Stemg;Dιm m_OperatιonComplete As Boolean;Dιm netlnfo() As StemgjDim mJDownloadComplete As Boolean;Dιm m Success As Boolean;Dιm m_dιsplayMode As vaTransferMode;Dιm m_RemoteHost As Sterng;Dιm m_Dιr As Stemg;Dim mJMainURL As Stπng;Dmι m_IndexFιle As Stπng;Dιm mJFormLoaded As Boolean;Dιm va_net_UserCancel As String ' "Operation Canceled by User";Drm va_net_Connected As Stemg ' "Connected";Dιm va_net_Error As Steing ' "The following Enor Occured:
";Dιm va net TransferComplete As Stemg ' "Transfer Complete";Dιm va_net_GettιngImage As Steing '
"Retrieving Image...";Dιm va_net_GettιngText As Stemg ' "Retrieving Product Information...";Drm va_net_GettιngList As Stemg ' "Retrieving Cunent Company Lιst...";Dιm va_net_Connectιng As Stemg ' "Connecting.. ";Dιm va_net_SendmgRequest As Stemg ' "Sending Request..";Dιm va net lmageTransfered As
Stemg ' "Image Transfer Complete";Dιm va_net_InfoTransfered As Stemg ' "Information Transfer
Complete";Dιm va netJWait As Steing ' "Please Waιt....";Dιm va netJFileNotFound As Stemg ' "The image you have attempted to download could not be found. It may not be an authorized image. Please contact the manufacturer ";Dιm va_net_TransferError As String ' "File Transfer Error";Dιm va_net_Ready As Steing ' "Ready. .";Dιm va net AOLMessage As Steing ' "If you are usmg AOL, another Onlme Service, or Dial-up Networking, you will need to launch that application to connect to the Internet before you can access this feature Launch the application then minimize it. Click the button at the Right when you have your connection established. ";Dιm va_net_LANMessage As Steing ' "If you have a persistant Internet connection (LAN, Tl, etc) and do NOT need to launch your dial-up Networking connection, click the button at the Rιght.";Dιm va_net_BrowserLaunch As Steing ' "If you normally connect to the Internet by launching your browser, click the button to the Rιght.";Pubhc Property Let DownloadComplete(ByVal vNewData As Boolean); mJDownloadComplete
= vNewData;End Property;Pπvate Function hostConnect() As Boolean; ' If the socket is connected, disconnect it,
If Winsockl. State <> 0 Then;' Wmsockl. State = 0; Wmsockl. Close; End If, ' Connect; Winsockl Connect; '
Wait; txtStatus.Text = va_net_Connectιng; DoEvents; Do While Not Winsockl . State = sckConnected; If Not Winsockl. State = sckError Then; DoEvents, Else; hostConnect = False; Exit Function, End If; Loop, hostConnect =
Trae;End Functιon;Pπvate Sub cbImageLιst_Chck();' If Not m FormLoaded Then Exit Sub; Winsockl.LocalPort = 0, m rhumb = lstTextBuffer.Lιst(cbImageLιst Listlndex); Wmsockl. RemoteHost = Tπm(mJRemoteHost);
Winsockl. RemotePort = 80; DoEvents; If hostConnect() Then; txtStatus.Text = va net Connected; DoEvents '
Make sure that txtStatus is updated; bool = gefThumbnaιl(); End If;End Sub;Pπvate Sub cbUrlLιst_Clιck();' If Not m FormLoaded Then Exit Sub; Winsockl LocalPort = 0; m RemoteHost = m MamURL; m lndexFile =
Trιm(Me.lstPhstBuffer.Lιst(cbUrlLιst.LιstIndex)); pbUpdate_Chck;End Sub;Pπvate Sub Form_Load(), m_FormLoaded = False; Me. Left = Screen.Width / 2 - Me.Width / 2; Me.Top = Screen.Height / 2 - Me.Height / 2, m_DownloadComρlete = False; m_Success = False; EnorState.Number = 0; m MamURL = "www.showoff.com"; If m_dιsplayMode = vaHidden Then Me.Visible = False; loadFormConteolCaps Me; If m_dιsplayMode = vaExplorer Or m_dιsplayMode = vaAmm Then; If m displayMode <> vaAmm Then; Timerl . Interval = 2000; Timerl. Enabled =
Tme; Else; Timerl. Enabled = False; End If; Me.Height = 825; m RemoteHost = m MamURL; Else; Timerl .Enabled = False; Me.Height = 2670; bool = getURLLιst(); m_RemoteHost = m MamURL; If m_dιsplayMode o vaHidden
Then Me.cbUrlList.Listlndex = 0; DoEvents; End If;va_net_UserCancel = LoadResStπng(6501) ' "Operation
Canceled by User";va_net_Connected = LoadResStemg(6502) ' "Connected" ;va_net_Error = LoadResStπng(6503) ' "The following Error Occured: ";va_net_TransferComplete = LoadResStrrng(6504) '
"Transfer Complete";va_net_GettingImage = LoadResStπng(6505) ' "Retrieving Image... ";va_net_GettmgText =
LoadResStπng(6506) ' "Retrieving Product Information... ";va_net_GettingCompany List = LoadResStemg(6507) '-
— "Retrieving Cunent Company Lιst...";va_net_GettιngLιst = LoadResSterng(6508) ' "Retrieving Product
List...";va_net_Connecting = LoadResStemg(6509) ' "Connecting...";va_net_SendιngRequest = LoadResSterng(6510) ' "Sending Request. ";va_net_ImageTransfered = LoadResStπng(6511) ' "Image
Transfer Complete";va_net_InfoTransfered = LoadResStπng(6512) ' "Information Transfer
Complete ";va_netJWaιt = LoadResStπng(6513) ' "Please Waιt....";va_net_FιleNotFound = LoadResStemg(6514)
' "The image you have attempted to download could not be found. It may not be an authorized image Please contact the manufacturer. ";va_net_TransferEnor = LoadResStemg(6515) ' "File Transfer Error" ;va_net_Ready = LoadResStπng(6516) ' "Ready...";va_net_Closed = LoadResStnng(6517) ' "Closed" ;va_net_BadImage = LoadResStemg(6518) ' "Unable to retrieve Image Please try again later"; If m displayMode = vaExplorer Or m displayMode = vaAmm Then txtStatus.Text = va net Wait Else txtStatus.Text = va_net_Ready, If m_dιsplayMode = vaAmm Then Me.Visible = False; DoEvents; m FormLoaded = True;End Sub;Pπvate Sub Form_Unload(Cancel As Integer); Dim NewObjectHeight As Single; Dim NewObjectWidth As Single; Dim szObject As Single; If m displayMode = vaExplorer Then; If m Success Then; frmMDI.ActiveForm ldMaskTransferBuffer.Bitmap =
Me.ldMask.Bitmap; frmMDI.ActiveForm.ldSpπteTransferBuffer.Bitenap = Me.ldSpπte.Bitmap; ' Forml. imgMask.Picture = ldMask.GetPicture; ' Forml .lmgSpπte.Picture = ldSpπte GetPicture; psText = ""; netObjectlnfo.Product = Me.lstTextBuffer Lιst(O); netObjectlnfo.Company = Me.lstTextBuffer.Lιst(l); netObjectlnfo.URL = Me.lstTextBuffer.Lιst(2); netObjectlnfo.Scalelnches = 0; If Me.lstTextBuffer.ListCount >= 4 Then; If IsNumeπc(Me.lstTextBuffer.Lιst(3)) Then; netObjectlnfo.Scalelnches =
CLng(Val(Me.lstTextBuffer.Lιst(3))); If netObjectlnfo.Scalelnches <> 0 And frmMDI.ActiveForm.DoorSizeH <> 0 Then; NewObjectHeight = 0; NewObjectWidth = 0; szObject = netObjectlnfo.Scalelnches / 84 '84 is the standard of the object; NewObjectHeight = frmMDI.ActiveForm DoorSizeH * szObject; NewObjectWidth = (NewObjectHeight / frmMDI. ActiveForm.ldSpπteTransferBuffer.BitmapHeight) * frmMDI.ActiveForm.ldSpπteTransferBuffer.Bitmap Width; fimMDI.ActiveForm.ldSpπteTransferBuffer.Size
NewObjectWidth, CΙnt(NewObjectHeιght), GeneralResizeMode; frmMDI.ActiveForm.ldMaskTransferBuffer.Size NewObjectWidth, CΙnt(NewObjectHeιght), GeneralResizeMode; End If; End If; End If; gDownloadSuccess = Tme; ErrorState. Number = 0; ' Forml. txtlnfo.Text = netObjectlnfo.Product & vbCrLf; ' Forml. txtlnfo.Text = Forml. txtlnfo. Text & netObjectlnfo.Company & vbCrLf; ' Forml. txtlnfo.Text = Forml. txtlnfo.Text & netObjectlnfo.URL; Else; gDownloadSuccess = False; End If; End If; Screen.MousePointer = vbDefault;End
SubjPπvate Sub ιmgThumbnaιlJvIouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single); Labell. Caption = parseFιlename(m Thumb), Labell. Tag = "NETDROP"; Labell. Drag;' Unload Me;End Sub;Pπvate Sub pbClose_Click(); Wmsockl. Close; txtStatus.Text = va ne serCancel; m_DownloadComplete = Tme; m Success = False; Unload Me;End Sub;Pπvate Sub pbGet_Chck(); Wmsockl. RemoteHost = Tnm(m RemoteHost); Winsockl. RemotePort = 80; DoEvents; If hostConnect() Then; txtStatus.Text = va_net_Connected; DoEvents '
Make sure that txtStatus is updated; If getMask() Then; txtStatus.Text = va_netJImageTransfered; DoEvents '
Make sure that txtStatus is updated; m Success = Tme; Else; m Success = False; End If; Else; m_Success = False; End If; If Not m Success Then GoTo EndofTheLme;' Wmsockl. Close; While Wmsockl. State <> 0, DoEvents; Wend; Winsockl.LocalPort = 0; DoEvents; If hostConnect() Then; txtStatus.Text = va_net_Connected; DoEvents ' — - Make sure that txtStatus is updated; If getSpπte() Then;' txtStatus.Text = "Sprite Transfered"; m_Success = Tme;
Else; m Success = False; End If; Else; m_Success = False; End If; If Not m Success Then GoTo EndofTheLme;' Winsockl. Close; While Winsockl. State <> 0; DoEvents; Wend; Wmsockl. LocalPort = 0; DoEvents, If hostConnect()
Then; txtStatus.Text = va_net_Connected; DoEvents ' Make sure that txtStatus is updated; If getText() Then; txtStatus.Text = va net lnfoTransfered; DoEvents ' Make sure that txtStatus is updated; m_Success = Tme; Else; m Success = False; End If; Else; m Success = False; End IftEndofTheLine:; txtStatus.Text = va net TransferComplete; DoEvents ' Make sure that txtStatus is updated,' Winsockl . Close, m DownloadComplete = Tme, Unload Me;End SubjPπvate Sub pbUpdate_Chck(),' Winsockl Close, DoEvents, Winsockl. RemoteHost = m RemoteHost; Wmsockl. RemotePort = 80; DoEvents; If hostConnect() Then, txtStatus.Text = va net Connected; DoEvents ' Make sure that txtStatus is updated, If getLιst() Then; txtStatus.Text = va_net_TransferComplete; DoEvents; End If; End IftEnd Sub;Pπvate Sub Timerl JTιmer();
Timerl. Enabled = False, GetIt;End Sub;Pnvate Sub Wmsockl Close(); Winsockl . Close; txtStatus.Text = "Closed", m OperationComplete = True;End Sub;Pπvate Sub Wmsockl_DataArπval(ByVal bytesTotal As Long); Dim steData As Steing; Winsockl. GetData steData; Print #dlfile, steData; Hold$ = Hold$ & steData;End Sub;Pπvate Sub' Wmsockl _Eπor(ByVal Number As Integer, Description As Steing, ByVal Scode As Long, ByVal Source As Stemg, ByVal helpfile As String, ByVal HelpContext As Long, CancelDisplay As Boolean); ErrorState Number = Number,
ErrorState.Description = Description; EnorState.Source = Source; m_DownloadComplete = Tme, m Success = False, Unload Me;End Sub;Pπvate Function getSpπte() As Boolean; Dim strRequest As Steing; m OperationComplete =
False; ' Open file to catch the data; dlfile = FreeFile; Open "temp.tmp" For Output As dlfile, ' Send the
Request, txtStatus.Text = va_net_SendmgRequest, DoEvents ' Make sure that txtStatus is updated; strRequest = "GET /temp/" & m Spπte & " HTTP/1.0" & Chr(lO) & Chr(lO); Winsockl. SendData strRequest, '- — Wait; txtStatus.Text = va_net_GettιngImage; DoEvents ' Make sure that txtStatus is updated; Do While Not m_OperatιonComplete; DoEvents; Loop; ' Parse the data; If parselmage() Then;' picSpπte.Picture =
LoadPicture("tmp.jpg"); n% = ldSpπte.Load("tmp.jpg", 0, 0, 1); getSpnte = Tme; Else; getSpnte = False; End IftEnd Functιon;Pπvate Function getMask() As Boolean; Dim strRequest As Steing; m OperationComplete = False; ' Open File to catch the data; dlfile = FreeFile; Open "temp.tmp" For Output As dlfile; ' Send the Request; txtStatus.Text = va net SendingRequest; DoEvents ' Make sure that txtStatus is updated; strRequest = "GET
/temp/" & mJMask & " HTTP/1.0" & Chr(lO) & Chr(lO); Winsockl. SendData strRequest; '- — Wait; txtStatus.Text = va_net_GettιngImage; DoEvents ' Make sure that txtStatus is updated; Do While Not m_OperatιonComplete;
DoEvents; Loop; ' Parse the data; If parselmage() Then;' picMask.Picture = LoadPιcture("tmρ.jpg"); n% = ldMask.Load("tmp.jpg", 0, 0, 1); getMask = Tme; Else; getMask = False; End If;End Functιon;Pπvate Function getText() As Boolean; Dim strRequest As Steing; m OperationComplete = False; ' Open file to catch the data; dlfile = FreeFile; Open "temp.tmp" For Output As dlfile; ' Send the request; txtStatus.Text = va_net_SendιngRequest; DoEvents ' Make sure that txtStatus is updated; strRequest = "GET /temp/" & mJText &
" HTTP/1.0" & Chr(lO) & Chr(lO); Wmsockl. SendData strRequest; ' Wait; txtStatus.Text = va nejGettingText; DoEvents ' Make sure that txtStatus is updated; Do While Not m_OperatιonComplete; DoEvents; Loop; '
Parse the data; If parseText() Then; For n% = 0 To UBound(netlnfo); X% = InSte(netInfo(n%), "***START***"); If X% = 0 And netInfo(n%) <> "" Then lstTextBuffer.Addltem netInfo(n%); Next n%; getText = Tme; Else; getText = False; End IftEnd Functιon;Publιc Property Get fileSprite() As Steing; fileSpnte = m_Spπte;End Property;Pubhc Property Let fileSpπte(ByVal vNewValue As Steing); m_Spπte = vNewValue;End Property;Pubhc Property Get fιleMask() As Steing; fileMask = m_Mask;End Property;Publιc Property Let fileMask(ByVal vNewValue As Steing); mjvfask = vNewValue;End Property.Pubhc Property Get fileText() As Steing; fileText = m_Text;End Property;Pubhc Property Let fileText(ByVal vNewValue As Steing); mJText = vNewValue;End Property;Pπvate Function parselmage() As Boolean; Dim imageHolder As Stemg, ' Close the Catch File; Close #dlfile, ' Open the Temp file; dlfile = FreeFile; Open "temp.tmp" For Input As dlfile; n = 0; Do While Not EOF(dlfile); Line Input #dlfile, tenp$; ' Get the actual File size. This will be the size of the image file; If InSte(tmp$, "Content-Length:") <> 0
Then; X% = InStr(tmp$, ":"); n = Val(Rιght$(tmp$, Len(tmp$) - (X% + 1))); Exit Do; End If; Loop; Close #dlfile, '— — If the file size is not 0 and the data downloaded is more than the, ' file size, then you probably got it all; If
Len(Hold$) > n And n > 0 Then; ' Strip the Header, imageHolder = Rιght$(Hold$, n), ' Write the Image; dlfile
= FreeFile; Open "tmp.jpg" For Binary As dlfile; Put #dlfile, , imageHolder; Close #dlfile; parselmage = Tme; Else; If InSte(Hold$, "404 File Not Found") o 0 Then, ErrorState. Number = 404; ErrorState.Description = va_netJFιleNotFound; EnorState.Source = "parselmage";' MsgBox va_net_FιleNotFound, vbCritical, va_net_TransferError; Else; ErrorState.Number = 2404, ErrorState.Description = LoadResStπng(6821) ' "Unable to retrieve Image. Please try again later"; ErrorState.Source = "parselmage";' MsgBox "Unable to retrieve Image. Please try again later"; End If; parselmage = False; End If;End Functιon;Pπvate Function parseText() As Boolean, Dim textHolder As Steing; Close #dlfile; dlfile = FreeFile; Open "temp.tmp" For Input As dlfile; Do While Not
EOF(dlfile); Lme Input #dlfile, tmp$, X% = InStr(tmp$, "***START***"); If X% <> 0 Then Exit Do; Loop; If EOF(dlfile) Then; Close #dlfile; parseLine tmp$, netInfo(); If UBound(netlnfo) > 0 Then; parseText = Tme; Else; parseText = False, End If; Else; n% = 0; ReDim netInfo(n%); Do While Not EOF(dlfile); Line Input file, tmp$; n% = n% + 1 ; ReDim Preserve netInfo(n%); netInfo(n%) = tmp$; Loop; Close #dlfile; If n% > 0 Then; parseText = Tme, Else; parseText = False; End If; End If;' Close #dlfile;';' dlfile = FreeFile;' Open "temp.tmp" For Input As dlfile; frmMDI.ActiveForm.IntemetAnimate = Tnm(netInfo(UBound(netInfo)));End Functιon;Pubhc Property Get DownloadComplete() As Boolean; DownloadComplete = m_DownloadComplete;End Property;Pubhc Property Get Success() As Boolean; Success = m_Success;End PropertyjPπvate Sub parseLme(psText As Steing, psAπay() As Steing); Dim counter As Integer; ReDim psArray(O); X% = 0, Do While X% < Len(psText); n% = X% + 1 ; X% = InSte(X% + 1, psText, Chr(lO)); If X% = 0 Then Exit Do; cut$ = Mιd$(psText, n%, X% - n%); counter = counter + 1 ;
ReDim Preserve psArray(counter); psAnay(counter) = cut$; Loop;End Sub;Publιc Sub Getlt(); DoEvents; If m Spπte <> "" And m_Mask o "" And m Text <> "" Then pbGet_Chck;End Sub;Pubhc Property Get DιsplayMode() As vaTransferMode; DisplayMode = m_dιsplayMode;End Property;Publιc Property Let DιsplayMode(ByVal vNewValue As vaTransferMode); m_dιsplayMode = vNewValue;End Property;Pπvate Function getLιst() As Boolean; Dim strRequest As Steing; m_OperatιonComplete = False; ' Open file to catch the data; dlfile = FreeFile; Open
"temp.tmp" For Output As dlfile; ' Send the request; txtStatus.Text = va_net_SendmgRequest; DoEvents '
Make sure that txtStatus is updated; strRequest = "GET /temp/" & m ndexFile & " HTTP/1.0" & Chr(lO) & Chr(lO),
Wmsockl. SendData strRequest; ' Wait; txtStatus.Text = va_net_GettιngLιst; DoEvents ' Make sure that txtStatus is updated; Do While Not m OperationComplete; DoEvents; Loop; ' Parse the data; If parseText() Then; For n% = 0 To UBound(netlnfo); X% = InStr(netInfo(n%), "***START***"); If X% = 0 Then IstTextBuffer.Addltem netInfo(n%), Next n%; bool = parseProductInfo(), getList = Tme; Else; getList = False; End If;End Functιon;Pπvate
Function getThumbnaιl() As Boolean; Dim strRequest As Steing; m OperationComplete = False, ' Open file to catch the data; dlfile = FreeFile; Open "temp.tmp" For Output As dlfile, ' Send the Request; txtStatus.Text = va_net_SendmgRequest; DoEvents ' Make sure that txtStatus is updated; strRequest = "GET " & mJThumb & " HTTP/1.0" & Chr(lO) & Chr(lO); Winsockl. SendData strRequest; ' Wait; txtStatus.Text = va_net_GettιngImage;
DoEvents ' Make sure that txtStatus is updated, Do While Not m OperationComplete; DoEvents; Loop; '
Parse the data, If parselmage() Then; lmgThumbnail.Picture = LoadPιcture("tmp.jpg"); Labell . Caption = m Thumb; getThumbnail = Tme; Else; getThumbnail = False; End If;End Functιon;Pπvate Function parseProductlnfoQ As Boolean; Me.lstTextBuffer.Clear; cblmageList.Clear, For n% = 1 To UBound(netlnfo) - 1; X% = InSte(netInfo(n%), ","); If X% <> 0 Then; FName$ = Left(netInfo(n%), X% - 1); dnameS = Rιght$(netInfo(n%), Len(netInfo(n%)) -
X%); If Left$(dname$, 1) = Chr(34) Then dnameS = Rιght$(dname$, Len(dnameS) - 1); If Rιght$(dname$, 1) = Chr(34) Then dnameS = Left$(dname$, Len(dnameS) - 1); If Left$(FName$, 1) = Chr(34) Then FNameS = Rιght$(FName$, Len(FNameS) - 1); If Rιght$(FName$, 1) = Chr(34) Then FNameS = Left$(FName$, Len(FNameS) - 1); If rn Dir <> "" Then FNameS = m_Dιr & FNameS; IstTextBuffer Addltem FNameS, Me.cblmageList.Addltem dnameS; End If, Next n%;End Functιon;Pπvate Function getURLLιst() As Boolean, Dim strRequest As String;'
Winsockl. Close; DoEvents; Winsockl. RemoteHost = "www.showoff.com"; Winsockl. RemotePort = 80; If Not hostConnect() Then; getURLList = False, Exit Function; End If; m OperationComplete = False; ' Open file to catch the data; dlfile = FreeFile; Open "temp.tmp" For Output As dlfile; ' Send the request; txtStatus.Text = va_net_SendιngRequest; DoEvents ' Make sure that txtStatus is updated; strRequest = "GET /temp/cindex.txt" & " HTTP/1.0" & Chr(lO) & Chr(lO); Winsockl. SendData strRequest, ' Wait; txtStatus.Text = va_net_GettιngLιst;
DoEvents ' Make sure that txtStatus is updated; Do While Not m_OperatιonComplete; DoEvents, Loop; '
Parse the data; If parseText() Then; For n% = 0 To UBound(netlnfo); X% = InSte(netInfo(n%), "***START***"); If X% = 0 Then IstTextBuffer.Addltem netInfo(n%); Next n%; bool = parseUrlLιst(); getURLList = Tme; Else; getURLList = False; End IftEnd Functιon;Pπvate Function parseUrlLιst() As Boolean; Me.lstUrlBuffer.Clear; ' File Structure:; ' Company Name, URL, Product Information File; ' ex The Foo Company, www.fooco.com,
10000007.1st; For n% = 1 To UBound(netlnfo); X% = InSte(netInfo(n%), ","); If X% <> 0 Then; FNameS = Left(netInfo(n%), X% - 1); dnameS = Rιght$(netInfo(n%), Len(netInfo(n%)) - X%); X% = InSte(dname$, ","); If X% <> 0 Then; ιdx$ = Rιght$(dname$, Len(dnameS) - X%); dnameS = Left$(dname$, X% - 1); End If; If Left$(FName$, 1) = Chr(34) Then FNameS = Rιght$(FName$, Len(FNameS) - 1); If Rιght$(FName$, 1) = Chr(34) Then FNameS = Left$(FName$, Len(FNameS) - 1); If Left$(dname$, 1) = Chr(34) Then dnameS = RightS (dnameS, Len(dnameS) - 1),
If Rιght$(dname$, 1) = Chr(34) Then dnameS = Left$(dname$, Len(dnameS) - 1); X% = InSte(dname$, "/"); If X% <> 0 Then; mJDir = Rιght$(dname$, Len(dnameS) - (X% - 1)); dnameS = Left$(dname$, X% - 1); End If; IstUrlBuffer.Addltem dnameS; cbUrlList.Addltem FNameS; IstPlistBuffer.Addltem ιdx$; End If; Next n%;End FunctionjPubhc Property Get maιnURL() As Steing; mainURL = m_MaιnURL;End Property;Pubhc Property Let maιnURL(ByVal vNewValue As Steing); mJVIainURL = vNewValue;End Property;Pπvate Function parseFιlename(psText As Steing) As Steing; X% = InSte(psText, "."); If X% <> 0 Then; psText = Left$(psText, X% - 1); End If, X% = InSte(psText, "/"); Do While X% <> 0 And X% < Len(psText); psText = Rιght$(psText, Len(psText) - X%); X% = InSte(psText, "/"); Loop; If Len(psText) > 7 Then; psText = Rιght$(psText, 7); End If, parseFilename = psText;End Functιon;Publιc Function search VahdateURL(psURL As Steing) As Boolean; If Not hostConnectO Then; searchValidateURL = False; Exit Function; End If; If Not getURLLιst() Then, searchValidateURL = False; Exit Function; End If; If Me.lstUrlBuffer.ListCount > 0 Then; tempS = parseURL(psURL); For n% = 0 To lstUrlBuffer.ListCount - 1; If InSte(lstUrlBuffer.Lιst(n%), tempS) <> 0 Then; searchValidateURL = Tme; Exit Function; End If; Next n%; End If; searchValidateURL = False;End Functιon;Publιc Function SearchCompanyLιst(psText As Steing) As Boolean;' boolDummy = getURLLιst(); For n% = 0 To lstUrlBuffer.ListCount - 1 ; If InSte(lstUrlBuffer.Lιst(n%), psText) <> 0 Then; SearchCompanyList = Tme, cbUrlList.Listlndex = n%, Exit For; Else; SearchCompanyList = False; End If; Next n%;End Function.Pubhc Function GetAnιmatιonFrame(psFιle As Steing) As Boolean; m_Mask = "M" & psFile & ".jpg"; m_Sρπte = "S" & psFile & ".jpg"; m_dιsplayMode = vaAmm; Me.Visible = Tme; DoEvents; GetAnimationFrame = False; Winsockl. RemoteHost = Trιm(m RemoteHosf); Winsockl. RemotePort = 80; DoEvents; If hostConnect() Then, txtStatus.Text = va net Connected; DoEvents ' Make sure that txtStatus is updated; If getMask() Then; txtStatus.Text = va net lmageTransfered, DoEvents ' Make sure that txtStatus is updated, m Success = Tme;
Else; m Success = False, End If; Else; m Success = False; End If; If Not m_Success Then GoTo EndofTheLineAnim; ' Winsockl. Close; While Winsockl. State <> 0; DoEvents; Wend; Winsockl.LocalPort = 0; DoEvents; If hostConnect() Then; txtStatus.Text = va_net_Connected; DoEvents ' Make sure that txtStatus is updated; If getSpπteO Then; ' txtStatus.Text = "Sprite Transfered"; m_Success = Tme; Else; m_Success = False; End If; Else; m Success = False; End If, If Not m Success Then GoTo EndofTheLineAnim; ' Wmsockl. Close; While Wmsockl. State <> 0; DoEvents; Wend; Winsockl.LocalPort = 0; GetAnimationFrame = Tme; frrnMDI.ActιveForm.ldSρrιteTransferBuffer.Bιtmap = Me.ldSprιte.Bιtmap; frmMDI.ActiveForm.ldMaskTransferBuffer.Bitmap = Me.ldMask.Bιtmap;EndofTheLιneAnιm:; txtStatus.Text = va_net_TransferComplete; DoEvents ' Make sure that txtStatus is updated;' Wmsockl. Close; m_DownloadComplete = Tme; Me.Visible = False;End Function;
FRMNetTreansfer VERSION 5.00;Object = "{00080003-B1BA-11CE-ABC6-F5B2E79D9E3F}#8.0#0"; "LTOCX80N.OCX";Object = "{248DD890-BB45-11CF-9ABC-0080C7E7B78D}#1.0#0"; "MSWINSCK.OCX";Begιn VB.Form frmNetTransfer; Caption = "Internet Transfer Status"; ClientHeight = 2235; ChentLeft = 60; ChentTop = 345; ChentWidth = 5010; LmkTopic = "Forml"; ScaleHeight = 2235; ScaleWidth =
5010; StartUpPosition = 3 'Windows Default; Tag = "6819"; Begm VB.LisfBox lstPhstBuffer; Height = 1035; Left = 1260; Tablndex = 10; Top = 4500; Width = 1155; End; Begin LeadLib.Lead ldSpπte; Height = 1095; Left = 60; Tablndex = 8; Top = 3360; Width = 1095; JVersion = 524288; _ExtentX = 1931; JExtentY = 1931; StockProps = 229; BeginProperty Font {OBE35203-8F91-11CE-9DE3-OOAA004BB851} ; Name = "MS Sans Serif; Size = 8.25, Charset = 0; Weight = 400; Underline = 0 'False; Italic = 0 'False; Steikethrough = 0 'False; EndProperty, AutoScroll = 0 'False, ScaleHeight = 73, ScaleWidth = 73, DataField = "", BitmapDataPath = "", AnnDataPath = "", AutoSize = -1 'Tme, End, Begin VB ComboBox cbUrlList, Height = 315, Left = 60, Style = 2 'Dropdown List, Tablndex = 7, Top = 540, Width = 3495, End, Begin VB ListBox IstUrlBuffer, Height = 1035, Left = 2460, Tablndex = 6, Top = 4500, Width = 1155, End, Begm VB ComboBox cblmageList, Height = 315, Left = 60, Style = 2 'Dropdown List, Tablndex = 5, Top = 900, Width = 3495, End, Begin VB CommandButton pbUpdate, Caption = "Update List", Height = 315,
Left = 3780, Tablndex = 4, Tag = "6820", Top = 540, Width = 1155, End, Begin VB Timer Timerl , Enabled = 0 'False, Interval = 1200, Left = 3900, Top = 3480, End, Begin VB ListBox IstTextBuffer, Height = 1035, Left = 60, Tablndex = 3, Top = 4500, Width = 1155, End, Begin VB CommandButton pbGet, Caption = "Get", Height = 315, Left = 3720, Tablndex = 0, Top = 3900, Width = 1155, End, Begin VB CommandButton pbClose, Cancel = -1 'Tme, Caption = "Cancel", Height = 315, Left = 3780, Tablndex = 2, Tag = "5001 ", Top = 60, Width = 1155, End, Begin
VB TextBox txtStatus, BackColor = &H0080C0FF&, BegmProperty Font, Name = "Anal", Size = 9 75, Charset = 0, Weight = 700, Underline = 0 'False, Italic = 0 'False, Steikethrough = 0 'False, EndProperty, ForeColor = &H00FF0000&, Height = 285, Left = 60, Tablndex = 1, TabStop = 0 'False, Top = 60, Width = 3495, End, Begm MSWinsockLib Wmsock Winsockl, Left = 4380, Top = 3480, _ExtentX = 741 , JExtentY = 741, Version = 327681 , End, Begin LeadLib Lead ldMask, Height = 1095, Left = 1320, Tablndex = 9, Top = 3360, Width = 1095, Version =
524288, _ExtentX = 1931, _ExtentY = 1931 , StockProps = 229, BeginProperty Font {0BE35203-8F91-11CE-9DE3- 00AA004BB851 } , Name = "MS Sans Serif, Size = 8 25, Charset = 0, Weight = 400, Underline = 0 'False, Italic = 0 'False, Steikethrough = 0 'False, EndProperty, AutoScroll = 0 'False, ScaleHeight = 73, ScaleWidth = 73, DataField = "", BitmapDataPath = "", AnnDataPath = "", AutoSize = -1 'Tme, End, Begin VB Image lmgThumbnail, BorderStyle = 1 'Fixed Smgle, Height = 1155, Left = 3720, Steetch = -1 'Tme, Top = 1020, Width = 1215, End, Begin VB Label
Labell, Draglcon = "frmNet frx" 0000, Height = 255, Left = 3780, Tablndex = 11, Top = 1680, Width = 1155, End,End, Attribute VBJName = "frmNetTransfer" .Attribute VB GlobalNameSpace = False,Attnbute VB_Creatable = False,Attπbute VB Predeclaredld = True .Attribute VB Exposed = False, FRMSubComp ; Option Exphcιt,Publιc TabSteipCollection As New Collectιon,Dιm NumberOflmages As Integer 'number of images in this form.Pubhc Sourceld As Integer 'what the user select from dbstπp,Dιm SkipScroll As
Boolean 'avoid double events,Pπvate OnOpen As Boolean,Dιm va_cap_ComposιtιonArea As Sterng,Dim va cap lmage As Stπng,Dιm va_btn_ItemLιst As Stπng,Dιm va_cap_Item As Stπng,Dιm va cap DragObjectOntoProject As Sterng,Dιm va_cap_name_colon As Steing.Dim va cap manufacturer colon As Strιng,Dιm va_cap_address_colon As Stπng,Dιm va_cap_cιty_colon As Stπng,Dιm va_cap_state_colon As Stπng,Dιm va_cap_zιp_colon As Stπng.Dim va_cap_phone_colon As Sterng.Dim va cap extension colon As
Stemg,Dιm va cap fax colon As Stπng,Dιm va_cap_emaιl_colon As Stπng,Dιm va_cap_homepage_colon As Stπng,Pπvate ApplyMode As Boolean,Pπvate SMode As Integer,Pubhc Sub ImtιalιzeBackGroundImage(bmWιdth
As Integer, bmHeight As Integer), On Enor Resume Next, ' 09/04/97 DEH Changed from VBX to OCX,' piclmage CreateBits = 24,' piclmage Create Width = bm Width,' piclmage CreateHeight = bmHeight,' piclmage CreateBitmap = Tme, piclmage CreateBitmap bmWidth, bmHeight, 24, piclmage Fill RGB(255, 255, 255);End Sub,'Get all assocciated ιtems;Sub GetRelatedObjects(), 'create ιnstance;Dιm r As Integer, cnt As Integer, 1 As Integer, ob As Integer;Dιm db As Database, rs As Recordset;'On Error Resume Next just for testing (rick) remember to remstιtute;For r = 0 To NumberOfZorders; Dim Newlnstance As New TabStπp; Newlnstance. Initiahze values frmMDI, Me, NumberOflmages; Newlnstance. TopImageStπp = 0, TabStπpCollection.Add Newlnstance, CSte(r); Set Newlnstance = Nothιng;Next r;For ob = 0 To NumberOfZorders, cnt = 0; frmMDI. Datal. RecordSource = "SELECT AssociatedObjects.ProductID, AssociatedObjects.TopPos, AssociatedObjects.LeftPos, AssociatedObjects.Type FROM ProductDetail INNER JOIN AssociatedObjects ON ProductDetail.ID = AssociatedObjects.AssociatedProductID WHERE ProductDetail.ID = " & CompObjectID & " AND AssociatedObjects. Zorder = " & ob + 1 & " order by productdetail. ItemName,"; frmMDI. Datal .Refresh; frmMDI.Data 1.Recordset.MoveLast; frmMDI Data 1.Recordset.MoveFirst; cnt = frmMDI.Datal .Recordset.RecordCount; oad strip array with the information refreived; If SmgleUser = Tme Then, Set db = OpenDatabase(frmMDI. Datal. DatabaseName, dbDriverNoPrompt, SmgleUser); Else; Set db = OpenDatabase(frmMDI.Datal. DatabaseName); End If; If cnt <> 0 Then, TabStπpCollectιon(CSte(ob)).RedιmAπay cnt 'redim array; For I = 1 To cnt; Set rs = db.OpenRecordset("SELECT productdetail.ItemName, SubCategory.SubCategoryName FROM SubCategory INNER JOIN productdetail ON (SubCategory.CatID = productdetail CategorylD) AND (SubCategory.SubCategorylD = productdetaιl.SubcategoryID)WHERE productdetail.ID = " & frmMDI.Datal.Recordset("ProductID")); TabStπρCollectιon(CSte(ob)).AssιgnToArray I, rsC'ItemName"), frmMDI.Datal.Recordset("ProductID"), frmMDI.Datal.Recordset("LeftPos"), frmMDI.Datal. Recordset("TopPos"), 0; frmMDI.Data l.Recordset.MoveNext; Next I; SSTabl.TabCaptιon(ob) = rsC'SubCategoryName"); End If; GenerateColors 0, CSte(ob) 'COLOR;Next ob;'Get ready to show and show first tab;VScrolll.Max = TabStπpCollectιon("0").TotalImages - l;TabStnpCollectιon("0").ImageSelect = 0;TabStπpCollectιon("0").ShowItems;rs.Close;db.Close;Inιtιalιze_Color 'COLOR;End Sub;Pnvate Sub Check l_Chck(); Composelmages -1; piclmage. ForceRepaιnt;End Sub;Pnvate Sub chkFullView_Chck(); Composelmages -1; piclmage. ForceRepaιnt;End Sub;Pπvate Sub cmdImportInfo_Chck();Dιm lOK As Integer;Dnn place As Long;On Error Resume Next;place = 1067;ιOK = RunWmMacro(Me.hWnd, helpfile, HELP_PLACE, place);End Sub;Pπvate Sub cmdInfo_Chck(); On Enor Resume Next; If cmdlnfo.Caption = va_cap_Image Then; cmdlnfo.Caption = va_btn_ItemLιst; chkFullView.Visible = Tme; Checkl .Visible = Tme; Istlnfo.Visible = False; cmdPrint. Visible = False; cmdSave.Visible = False; chkFence.Visible = Tme; Else; cmdlnfo.Caption = va cap lmage, Istlnfo.Visible = Tme; Istlnfo.ZOrder; cmdPrmt.Move Commandl(2)Left, Command 1(2). Top, Commandl (2).Wιdth, Commandl(2).Height; cmdPrmt. Visible = Tme; cmdPrmt.ZOrder; cmdSave.Move Commandl (1). Left,
Commandl(l).Top, Commandl(l).Wιdth, Commandl (1). Height; cmdSave.Visible = True; cmdSave.ZOrder; chkFence.Visible = False; chkFullView. Visible = False; Checkl. Visible = False; WhatDoIHave; End IftEnd Sub;Pπvate Sub cmdPrmt_Chck(); Dim I As Integer; On Error Resume Next; Screen MousePomter = vbHourglass; Printer.Prmt 'Skip a space; For I = 0 To TabSteipCoUection.Count + 4; Prmter.Prmt lstlnfo.List(i) 'Pπnt listbox; Next I; Printer EndDoc 'Send mfo to printer; Screen.MousePointer = vbDefault;End Sub;Pπvate Sub cmdSave_Chck(); Dim Fnum As Integer, 1 As Integer; Const OFN OVERWRITEPROMPT = &H2&; On Enor GoTo cmdSaveError,
Me.Hide; Fnum = FreeFile; fπ__MDI.CDιalog2.DιalogTιtle = LoadResStemg(6872) ' "Save As", frmMDI.CDιalog2.Flags = OFN DVERWRITEPROMPT; frmMDI.CDιalog2.CancelError = Tme, frmMDI.CDιalog2.Fιlter = "Text|*.txt|All|*.*"; frmMDI.CDιalog2.Actιon = 2; Me.Show; Screen.MousePointer = vbHourglass; Open frmMDI CDιalog2. Filename For Output As Fnum; For l = 0 To TabSteipCoUection.Count + 4;
Print #Fnum, lstlnfo.List(i); Next I; Close Fnum; frmMDI. CDιalog2.CancelError = False; Screen.MousePointer = vbDefault;Exιt Sub;cmdSaveError:; If En = 32755 Then; Err = 0; frmMDI.CDιalog2.CancelError = False; Me.Show; Screen.MousePointer = vbDefault; Exit Sub; Else; Resume Next; End If;End SubjPπvate Sub cmdTry_Chck(); Dim AspectRatio As Single; On Enor Resume Next; Me Move Screen Width - 9650, Screen.Height - 7300, 9600, 6750; piclmage. Move piclmage. Left, piclmage Top, piclmage. Width * 2, picImage.Height * 2, SSPanel5. Width =
SSPanel5.Wιdth + (pidmage.Width / 2); SSPanel5.Height = SSPanel5.Heιght + (picImage.Height / 2); cmdTry.ZOrder 1; Commandl(3).ZOrder 1; SSPanel3(l).Wιdth = SSPanel3(l).Wιdth * 2 - 10; pidmage.Size ldMask(l).BιtmapWιdth, ldMask(l).BιtenapHeιght, RESIZE NORMAL; 'picImage.DstWidth = piclmage. Bitmap Width; 'picImage.DstHeight = picImage.BitmapHeight; Me.Caption = va_cap_ComposιtιonArea; ApplyMode = False; chkFence.Move 8100, 2160, 1455, 375; SSPanel2.Move 4 * 15, 404 * 15, 391 * 15, 23 * 15;
HScrolll .Move 287 * 15, 407 * 15, 105 * 15; HScrolll Value = 0; HScrolll_Change; If
TabStπpCollectιon(CSte(SSTabl.Tab)).ColorTotalImages < 21 Then; HScrolll. Visible = False; Else; HScrolll. Visible = Tme; End If; Composelmages -1; picImage.ForceRepaint; If chkFuHView.Value = 1 Then; 'resize image; piclmage. ScaleMode = vbTwips; If (picImage.BitmapHeight / picImage.Height) > (picImage.Bitmap Width / pidmage.Width) Then; ' picImage.DstHeight = picImage.Height; AspectRatio = picImage.BitmapHeight / picImage.Height; ' picImage.DstWidth = picImage.Bitmap Width / AspectRatio; piclmage. Size piclmage. Bitmap Width / AspectRatio, picImage.Height, RESIZE NORMAL; Else; 'picImage.DstWidth = pidmage.Width; AspectRatio = piclmage. Bitmap Width / pidmage.Width; 'picImage.DstHeight = picImage.BitmapHeight / AspectRatio; pidmage.Size piclmage Width, picImage.BitmapHeight / AspectRatio, RESIZE NORMAL; End If,' If (picImage.BitmapHeight / picImage.Height) > (piclmage. Bitmap Width / pidmage.Width) Then,' picImage.DstHeight = picImage.Height;' AspectRatio = picImage.BitmapHeight / picImage.Height;' picImage.DstWidth = picImage.Bitmap Width / AspectRatio;' Else;' picImage.DstWidth = pidmage.Width;' AspectRatio = picImage.Bitmap Width / pidmage.Width;' picImage.DstHeight = picImage.BitmapHeight / AspectRatio;' End If; pidmage.ScaleMode = SMode; End If; picImage.ForceRepaint ' 09/04/97 DEH Changed from VBX to OCX;End Sub;Pπvate Sub Command l_Chck(Index As Integer);Dιm lOK As Integer;Dιm place As Long;On Error Resume Next;Select Case Index;Case 2 'apply; ResιzeForm;Case 1, 3 'cancel; ShowAnySteips; ApplyMode = False, Unload Me;Case 0 'help; place = 1068; iOK = RunWιnMacro(Me.hWnd, helpfile, HELP PLACE, place);Case Else;End Select;End Sub;Pπvate Sub Form_Load();frmMDI.ssBottom(l). Caption = "Loadmg a Composite Image, please wait..." 'David Look here;va_cap_ComρosιtιonArea = LoadResStπng(6054) ' "Composition Area";va_capJImage = LoadResSterng(6053) ' "Image" ;vaJbta_ItemLιst = LoadResStπng(5010) ' "&Item Lιst";va_cap_Item = LoadResStπng(6055) ' "Item ";va_capJDragObjectOntoProject = LoadResStemg(6056) ' "Drag Object onto
Project" ;va_cap_name_colon = LoadResStπng(6150);va_cap_manufacturer_colon = LoadResStπng(6151);va_cap_address_colon = LoadResStemg(6152);va_cap_cιty_colon = LoadResStπng(6153);va_cap_state_colon = LoadResStnng(6154);va_cap_zιp_colon = LoadResStπng(6155);va_cap_phone_colon = LoadResStπng(6156);va_cap_extensιon_colon =
LoadResStnng(6157);va_cap_fax_colon = LoadResStnng(6158);va_cap_emaιl_colon = LoadResStemg(6159);va_cap_homepage_colon = LoadResStπng(6160);On Error GoTo Form_Load_Error;Datal. ReadOnly = SmgleUser; SMode = vbPιxels;loadFormConteolCaps Me,Me.Icon - fιmMDI.Icon;Me.Captιon = va_cap_ComposιtιonArea;Me.Wιdth = 640 * Screen.TwιpsPerPιxelX;Me.Heιght = 450 * Screen.TwιpsPerPιxelY;Me.Move Screen Width / 2 - Me.Width / 2, Screen.Height / 2 - Me.Height / 2;SetWmdowPos
Me.hWnd, HWNDJTOPMOST, 0, 0, 0, 0, NOMOVE JNOSIZE;'Exιt Sub;SkιpScroll = False 'avoid double events generated;SSTabl.Tab = 0;SSTab 1. Tabs = NumberOfZorders + l;SSTabl.TabsPerRow = ((NumberOfZorders + 1) / 2) + l j'Exit Sub;NumberOfImages = 6,VScrolll. LargeChange = NumberOflmagesjpicImage. ScaleMode = SMode;GetRelatedObjects;Datal. DatabaseName = DBPath & DBase;GetLogo,LoadImageConteols,OnOpen = True;ComposeImages - 1 ;pιcImage.ForceReρamt;'Set column wιdth,Gπdl.ColWιdth(l) = 3000;Gπdl Rows =
2;Gridl.ColWιdth(0) = Gπdl.ColWιdth(O) * 3;Gπdl.ColWιdth(l) = Gπdl.ColWιdth(l) * 10;If Importantlnfo Then, cmdlmportlnfo. Visible = Tme; chkFence.Visible = Tme;End IftCompOpen = Tme;SSPanel3(l). Caption = TabSteιpCollectιon(CSte(SSTabl.Tab)).DescπptιonSelected;frmMDI.ssBottom(l).Captιon = '''';Screen.MousePomter = vbDefault;Exιt Sub;Form_Load_Error:;If En.Number <> 0 Then; gMsg = va_Error_Error & Str(Eπ.Number) & va_Error_WasGeneratedBy _; & Err.Source & Chr(13) & Err.Description & Chr(13) & " (frmSubComp Load)";
DisplayEnorMessage gMsg, vbCritical, VaTιtle;End IftExit Sub;End Sub;Pπvate Sub Form_Unload(Cancel As Integer);Dιm r As Integer;On Enor Resume Next;For r = 0 To NumberOfZorders; Set TabStnpCollection = Nothmg;Next r;CompOpen = False;ShowAnyStnps;End Sub;'Update color dιsplay;Pπvate Sub HScrolll_Change();On Error Resume Next;If Not SkipScroll Then; TabStπpCollectιon(CStr(SSTabl .Tab)).ColorTopImageStπp = HScrolll ;
TabStπpCollectιon(CSte(SSTabl.Tab)).ColorShowItems;End IftEnd Sub;Pπvate Sub ιmgThumb_MouseDown(Index As Integer, Button As Integer, Shift As Integer, X As Smgle, Y As Single);On Error Resume
Next;Label2_MouseDown Index, 0, 0, 0, 0;End Sub;'Color selectιon;Pnvate Sub Label l_Chck(Index As Integer);Dιm Where As Integer;On Error Resume Next;If TabStπpCollection(CSte(SSTabl.Tab)).ColorTotalImages > 1 Then; Where = Index + HScroll 1.Value; If Where <= HScroll 1.Max Then;
TabSteipCollectιon(CSte(SSTabl.Tab)).ColorImageSelect = Where; SSPanel3(2).Captιon = TabSteιpCollectιon(CStr(SSTabl.Tab)).ColorDescπptιonSelected; ApplyColor
TabStπpCollectιon(CSte(SSTabl.Tab)).ColorIDSelected, SSTabl.Tab; Composelmages -1; picImage.ForceRepaint; End If;End IftEnd Sub;Pπvate Sub Label2_MouseDown(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Sιngle);Dιm Where As Integer;On Enor GoTo Label2_MouseDown_Error; Where = Index + VScroll l .Value,If Where <= VScrolll. Max Then; TabStnpCollectιon(CSte(SSTabl.Tab)).ImageSelect = Where; sgBox Where; 'BOB YOU WILL NEED THIS ID; MsgBox "ID " &
TabStπpCollectιon(CSte(SSTabl.Tab)).IDSelected, MsgBox "X Position " &
TabStnpCollectιon(CSte(SSTabl.Tab)).XSelected; 'MsgBox "Y Position " & TabStπpCollectιon(CSte(SSTabl .Tab)).YSelected; 'MsgBox "Description " &
TabSteιpCollectιon(CSte(SSTabl.Tab)).DescπptιonSelected; 'Selects the colors; GenerateColors Where,
CSte(SSTabl.Tab); SkipScroll = Tme; SSPanel3(2).Captιon =
TabStrιpCollectιon(CStr(SSTabl.Tab)).ColorDescπptιonSelected;
TabStnpCollectιon(CSte(SSTabl.Tab)).ColorTopImageStπp = 0; HScrolll .Value = TabStπpCollectιon(CSte(SSTabl.Tab)).ColorTopImageSteιp;
TabSteιpCollectιon(CSte(SSTabl.Tab)).Co_orImageSelect = 0;
TabSteιpCollectιon(CSte(SSTabl Tab)) ColorShowItems; HScrolll. Max =
TabStπpCollectιon(CSte(SSTabl.Tab)).ColorTotalImages - 1, SkipScroll = False; If
TabStπpCollectιon(CSte(SSTabl.Tab)).ColorTotalImages > 1 Then; ApplyColor TabStπpCollectιon(CStr(SSTabl .Tab)).ColorIDSelected, SSTabl.Tab; Composelmages -1; picImage.ForceRepaint,
Else; Composelmages SSTabl.Tab; picImage.ForceRepaint; End If; SSPanel3(0). Caption = va cap ltem & Where +
1 & va cap of & TabStnpCollectιon(CSte(SSTabl.Tab)).TotalImages; SSPanel3(l).Captιon =
TabStπpCollectιon(CSte(SSTabl.Tab)).DescπptιonSelected;End If;Exιt Sub;Label2_MouseDown_Enor:;If
Err.Number o 0 Then; gMsg = va_Error_Enor & Ste(Err.Number) & va Error WasGeneratedBy _; & En.Source & Chr(13) & Err Description & Chr(13) & " (Label2_MouseDown)"; DisplayErrorMessage gMsg, vbCritical,
VaTιtle;End IftExit Sub;End Sub;Pπvate Sub ldLogo_Chck(); On Error Resume Next; Dim TempDB As Stemg; gProductID = CompObjectID; If Not Check_Resources(MιnResourceReq + 9, False) Then; DisplayEnorMessage
VA_CANT & Chr(13) & VA CANT1 & Chr(13) & VA_CANT2 & Chr(13) & VA_CANT3, vblnformation, VaTitle;
Exit Sub; Else; If CD VolumnChange Then 'Did user pull the CD ?; If DBase <> "Not Valid" Then; gMsg = VA_INFOCD & va_cap_PleaseInsert & TempDB & " CD."; Else; gMsg = VAJVOLUMN; End If,
DisplayErrorMessage gMsg, vblnformation, VaTitle; Unload Me; Exit Sub; End If; FrmSubComp.Hide; frmlnfoProd.Show 1; FrmSubComp.Show; End IftEnd Sub;Pπvate Sub pιcιmage_MouseDown(Button As Integer,
Shift As Integer, X As Smgle, Y As Single); Dim I As Integer, retval As Integer; On Error GoTo pιcιmage_MouseDown_Error; 'If frmMDI.ActiveForm. Tag = 0 Then Exit Sub; If ApplyMode = Tme Then; pidmage.Drag 1; pidmage.Tag = "Comp"; If chkFence.Value = 1 Then; Fenceflag = Tme; Else; Fenceflag = False;
End If; 'Create mask; '- — 09/04/97 DEH Changed from VBX to OCX;' ldMaskBuffer.CreateBits = 24;' ldMaskBuffer. Create Width = picImage.Bitmap Width;' ldMaskBuffer.CreateHeight = picImage.BitmapHeight;' ldMaskBuffer.CreateBitmap = Tme; IdMaskBuffer.CreateBitinap ldMask(0).Bitmap Width, ldMask(0).BitmapHeight,
24; ldMaskBuffer.Fill RGB(255, 255, 255); ldMaskBuffer.ForceRepaint '- — 09/04/97 DEH Changed from VBX to OCX; '- — 09/05/97 DEH Changed from VBX to OCX; Dim mMaskBufferDC As Long, mMaskDC As Long;' ldMaskBuffer.BitmapDC = Tme, mMaskBufferDC = IdMaskBuffer GetBitmapDC, For 1 = 0 To NumberOfZorders, mMaskDC = ldMask(ι).GetBιtmapDC,' ldMask(ι).BιtmapDC = Tme,' RetVal = BιtBlt(ldMaskBuffer BitmapDC, TabStnpCollectιon(CSte(ι)) XSelected, TabStπpCollectιon(CSte(ι)) YSelected, ldMask(ι).Bιtmap Width, ldMask(ι) BitmapHeight, ldMask(ι) BitmapDC, 0, 0, SRCAND), retval = BιtBlt(mMaskBufferDC, TabStnpCollectιon(CSte(ι)).XSelected, TabStπpCollectιon(CSte(ι)) YSelected, ldMask(ι) Bitmap Width, ldMask(ι).BιtmapHeιght, mMaskDC, 0, 0, SRCAND);' ldMask(ι). BitmapDC = False, ldMask(ι).ReleaseBιtmapDC,
Next i,' IdMaskBuffer BitmapDC = False; ldMaskBuffer.ReleaseBitmapDC; IdMaskBuffer ForceRepamt '
09/04/97 DEH Changed from VBX to OCX, 'ldMaskBuffer.Size picImage.Bitmap Width, picImage.BitmapHeight, RESIZE NORMAL; 'IdMaskBuffer ForceRepamt,' For I = 1 To HighestIndex(frmMDI ActiveForm.Tag) 'Bob Check,' If ObjectDιscrιptιon(fιmMDI.ActιveForm Tag, ι).Deleted <> Tme Then,' frmMDI.ActiveForm Idlmageθbject(ι) BorderStyle = 1,' End If,' Next I, End If, SetWmdowPos Me.hWnd, HWNDJTOPMOST, 0, 0, 0, 0, NOMOVE JNOSIZE, Exit Sub,pιcιmage_MouseDown_Error ,If Err Number <> 0 Then; gMsg = va Error Error & Ste(Err.Number) & va Enor WasGeneratedBy _, & En Source & Chr(13) & Err.Description & Chr(13) & " (picimageJMouseDown)"; DisplayErrorMessage gMsg, vbCritical, VaTιtle;End If;Exιt Sub,End Sub;Pπvate Sub SSPanel3_Chck(Index As Integer),Dιm db As Database, Dun rs As Recordset; Dim MySQL
As Steing; On Error GoTo SSPanel3_Clιck_Eπor; If Index = 1 Then, If ApplyMode = Tme Then Exit Sub, 'Toggle off and on, If Gπdl Visible = Tme Then, Gπdl. Visible = False; txtMemo Visible = False, Exit Sub; End If, Set db = OpenDatabase(frmMDI.Datal DatabaseName); MySQL = "SELECT DISTINCTROW ProductDetail.Region, ProductDetail FlowerColor, ProductDetail.FoliageChar, ProductDetail. FohageChange, ProductDetail FmitChar, ProductDetail.Texture, ProductDetail.Form, ProductDetail. GrowthRate, ProductDetail Temp, ProductDetail. Sunlight,
ProductDetail.Moisture, ProductDetail.Soil, ProductDetail.ID, ProductDetail RText, ProductDetail.RModel, ProductDetail.RDescription, ProductDetail RColor, ProductDetail.RSize, ProductDetail RSku, ProductDetail.RMore, ProductDetail.RPattern, ProductDetail.RItemName, " & _, "FιeldLabel.FιeldName8, FieldLabel FιeldName9, FieldLabel.FieldNamelO, FieldLabel.FieldNamel 1, FιeldLabel.FιeldNamel2, FieldLabel FιeldNamel3, FieldLabel.FieldNamel 4, FieldLabel.FieldNamel 5, FieldLabel.FieldNamelO, FieldLabel FιeldNamel7,
FieldLabel.FieldNamel 8, FieldLabel.FieldNamel, " & _; "FieldLabel.Labelld, FieldLabel.FieldNamel, FιeldLabel.FιeldName2, FιeldLabel.FιeldName3, FιeldLabel.FιeldName4, FieldLabel FιeldName5, FιeldLabel.FιeldName6, FιeldLabel.FιeldName7, ProductDetail ItemName, Company .Name, Company Address, Company. City, Company.State, Company .Zip, Company .Phone, Company.ExtensionCo, Company.Fax, Company.EMail, Company. HomePage FROM Company INNER JOIN ((SubCategory INNER JOIN FieldLabel " &
_, " ON SubCategory XabellD = FieldLabel.LabellD) INNER JOIN ProductDetail ON (SubCategory CatID = ProductDetail.CategorylD) AND (SubCategory.SubCategorylD = ProductDetail SubcategorylD)) ON Company .Name = ProductDetail.RItemName where ProductDetail.ID = " & TabStnpCollectιon(CSte(SSTabl.Tab)) IDSelected; Set rs = db.OpenRecordset(MySQL); rs.MoveLast rs.MoveFirst, On Error Resume Next; Screen.MousePomter = vbHourglass; 'fill grid with data; Gndl.Col = 0; Gπdl.Row = 0; Gπdl Text = LoadResStnng(6112) '- — "LABEL", Gndl .Col = 1; Gridl.Row = 0; Gndl.Text = LoadResStemg(6113) '- — "INFORMATION", Gπdl Col = 1; If Tπm(rs("ItemName")) <> "" Then; Gridl.Rows = Gridl.Rows + 1, Gridl.Row = Gridl .Row + 1 , Gπdl Col = 0, Gndl.Text = va_cap_name_colon; Gndl.Col = 1; Gndl.Text = rs("ItemName"), End If; If Tπm(rs("RItemName")) <> "" Then; Gridl.Rows = Gridl.Rows + 1, Gπdl Row = Gridl.Row + 1, Gridl.Col = 0, Gndl.Text = va cap manufacturer colon; Gndl.Col = 1 ; Gπdl Text = rs("RItemName"); End If, If Tπm(rs("Regιon")) <> ""
Then; Gridl.Rows = Gridl .Rows + 1 ; Gridl .Row = Gπdl Row + 1, Gridl.Col = 0; Gπdl Text = rs("FιeldNamel9"); Gndl.Col = 1 , Gndl .Text = rs("Regιon"); End If; If Tπm(rs("RModel")) <> "" Then, Gridl.Rows = Gridl.Rows + 1, Gridl .Row = Gridl.Row + 1; Gridl.Col = 0; Gndl.Text = rs("FιeldNamel"); Gridl .Col = 1; Gndl .Text = - rs("RModel"); End If; If Tπm(rs("RDescπptιon")) <> "" Then; Gridl.Rows = Gridl .Rows + 1; Gridl.Row = Gridl .Row + 1; Gndl .Col = 0; Gndl .Text = rs("FιeldName2"); Gndl.Col = 1 ; Gndl.Text = rs("RDescπptιon"), End
If; If Tπm(rs("RColor")) <> "" Then; Gridl.Rows = Gridl.Rows + 1; Gridl.Row = Gridl .Row + 1 ; Gndl.Col = 0, Gndl .Text = rs("FιeldName3"); Gridl.Col = 1; Gndl .Text = rs("RColor"), End If; If Tπm(rs("RSιze")) <> "" Then, Gridl .Rows = Gridl.Rows + 1; Gridl.Row = Gridl.Row + 1 ; Gridl .Col = 0; Gndl.Text = rs("FιeldName4"); Gndl.Col = 1 , Gndl .Text = rs("RSιze"); End If; If Tπm(rs("RSku")) <> "" Then; Gridl.Rows = Gridl .Rows + 1 , Gridl.Row = Gridl.Row + 1 ; Gndl.Col = 0; Gndl.Text = rs("FιeldName5"); Gridl.Col = 1 ; Gndl.Text = rs("RSku"); End If; If Tπm(rs("RMore")) <> "" Then; Gridl.Rows = Gridl.Rows + 1; Gridl.Row = Gndl.Row + 1; Gndl.Col = 0; Gndl .Text = rs("FιeldName6"); Gndl.Col = 1 ; Gndl .Text = rs("RMore"); End If; If Tπm(rs("RPattern")) <> "" Then; Gridl.Rows = Gridl.Rows + 1 ; Gndl.Row = Gridl.Row + 1; Gndl.Col = 0; Gndl .Text = rs("FιeldName7"); Gridl.Col = 1; Gndl.Text = rs("RPattern"); End If, If Tπm(rs("FlowerColor")) <> "" Then; Gridl.Rows = Gridl.Rows + 1; Gndl.Row = Gndl.Row + 1; Gridl.Col = 0; Gndl.Text = rs("FιeldName8");
Gndl.Col = 1 ; Gndl.Text = rs("FlowerColor"); End If; If Tπm(rs("FohageChar")) <> "" Then; Gridl.Rows = Gridl .Rows + 1; Gndl.Row = Gndl.Row + 1; Gridl.Col = 0; Gridl. Text = rs("FιeldName9"); Gndl.Col = 1; Gndl.Text = rs("FohageChar"); End If; If Tπm(rs("FolιageChange")) <> "" Then; Gridl.Rows = Gndl .Rows + 1 ; Gndl.Row = Gndl.Row + 1; Gridl.Col = 0; Gndl.Text = rs("FιeldNamelO"); Gridl.Col = 1; Gndl.Text = rs("FohageChange"); End If; If Tπm(rs("FruιtChar")) <> "" Then; Gridl.Rows = Gridl.Rows + 1 , Gridl.Row =
Gridl.Row + 1; Gridl.Col = 0; Gndl.Text = rs("FιeldNamel 1"); Gndl.Col = 1; Gndl.Text = rs("FruιtChar"); End If; If Tπm(rs("Texture")) <> "" Then; Gridl.Rows = Gridl.Rows + 1; Gridl.Row = Gridl.Row + 1; Gndl.Col = 0, Gndl .Text = rs("FιeldNamel2"); Gridl.Col = 1; Gndl.Text = rs("Texture"); End If, If Tπm(rs("Form")) <> "" Then; Gridl.Rows = Gridl.Rows + 1; Gndl.Row = Gridl.Row + 1; Gridl.Col = 0; Gndl.Text = rs("FιeldNamel3"); Gridl.Col = 1; Gridl.Text = rs("Form"); End If; If Tπm(rs("GrowthRate")) <> "" Then; Gridl.Rows = Gridl.Rows +
1 ; Gridl .Row = Gridl .Row + 1 ; Gridl .Col = 0; Gridl .Text = rs("FιeldNamel4"); Gridl .Col = 1 ; Gridl .Text = rsC'GrowthRate"); End If; If Tπm(rs("temp")) <> "" Then; Gridl .Rows = Gridl.Rows + 1; Gridl Row = Gridl.Row + 1; Gridl.Col = 0; Gndl.Text = rs("FιeldNamel5"); Gndl.Col = 1; Gridl.Text = rs("temp"); End If; If Tnm(rs("Sunhght")) <> "" Then; Gridl.Rows = Gridl.Rows + 1; Gndl.Row = Gridl.Row + 1; Gndl.Col = 0; Gridl .Text = rs("FιeldNamel6"); Gridl .Col = 1; Gridl.Text = rs("Sunhght"), End If; If Tnm(rs("Moιsture")) <> "" Then, Gπdl Rows = Gndl Rows + 1 , Gndl Row = Gndl Row + 1 , Gndl Col = 0, Gndl Text = rs("FιeldNamel7"), Gndl Col = 1, Gndl Text = rs("Moιsture"), End If, If Tπm(rs("Soιl")) <> "" Then, Gndl Rows = Gndl Rows + 1, Gndl Row = Gndl Row + 1 , Gndl Col = 0, Gndl Text = rs("FιeldNamel8"), Gndl Col = 1, Gndl Text = rs("Soιl"), End If, 'If Tπm(Datal Recordset("Name")) <> "" Then, ' Gndl Rows = Gndl Rows + 1, ' Gndl Row = Gndl Row + 1 , ' Gndl Col = 0, ' Gndl Text = "Company Name ", ' Gndl Col = 1 , ' Gndl Text = Datal Recordset("Name"), 'End
If, If Tπm(rs("Address")) <> "" Then, Gndl Rows = Gndl Rows + 1, Gndl Row = Gndl Row + 1, Gndl Col = 0,
Gndl Text = va_cap_address_colon ' "Address ", Gndl Col = 1 , Gndl Text = rs("Address"), End If, If
Tπm(rs("Cιty")) <> "" Then, Gndl Rows = Gndl Rows + 1 , Gndl Row = Gndl Row + 1 , Gπdl Col = 0, Gndl Text = va_cap_cιty_colon '- — "City ", Gndl Col = 1, Gndl Text = rs("Cιty"), End If, If Tπm(rs("State")) <> "" Then, Gndl Rows = Gndl Rows + 1 , Gndl Row = Gndl Row + 1 , Gndl Col = 0, Gndl Text = va_cap_state_colon '
"State ", Gndl Col = 1 , Gndl Text = rs("State"), End If, If Tπm(rs("Zιp")) <> "" Then, Gridl Rows = Gndl Rows +
1, Gndl Row = Gndl Row + 1, Gndl Col = 0, Gndl Text = va_cap_zιρ_colon ' "Zip ", Gndl Col = 1,
Gndl Text = rs("Zιp"), End If, If Tπm(rs("Phone")) <> "" Then, Gndl Rows = Gndl Rows + 1, Gndl Row = Gndl Row + 1, Gndl Col = 0, Gndl Text = va_cap_phone_colon ' "Phone ", Gndl Col = 1, Gndl Text = rs("Phone"), End If, If Tπm(rs("ExtensιonCo")) <> "" Then, Gndl Rows = Gndl Rows + 1, Gndl Row = Gπdl Row
+ 1, Gndl Col = 0, Gndl Text = va_cap_extensιon_colon ' "Extension ", Gndl Col = 1, Gndl Text = rs("ExtensιonCo"), End If, If Tπm(rs("Fax")) <> "" Then, Gndl Rows = Gndl Rows + 1, Gndl Row = Gndl Row + 1, Gridl Col = 0, Gndl Text = va_cap_fax_colon '- — "Fax ", Gndl Col = 1 , Gridl Text = rs("Fax"), End If, If Tnm(rs("EMaιl")) <> "" Then, Gndl Rows = Gndl Rows + 1, Gndl Row = Gndl Row + 1, Gndl Col = 0, Gndl Text = va_cap_emaιl_colon '- — "EMail ", Gndl Col = 1 , Gndl Text = rs("EMaιl"), End If, If
Tπm(rs("HomePage")) <> "" Then, Gndl Rows = Gndl Rows + 1, Gndl Row = Gndl Row + 1, Gndl Col = 0,
Gndl Text = va cap homepage colon ' "HomePage ", Gπdl Col = 1 , Gndl Text = rs("HomePage"), End If,
'delete extea row, Gndl Rows = Gndl Rows - 1, 'Fill memo if there is mfo, If Not IsNull(rs("RText")) Then, txtMemo = rs("RText"), txtMemo Visible = Tme, 'size grid to fit mfo, Gndl Height = 4515, Else, txtMemo Visible = False, Gndl Height = 5595, End If, Gndl Visible = Tme, End If, Screen MousePomter = 0,Exιt
Sub,SSPanel3_Chck_Error , Exit Sub,End Sub.Pπvate Sub SSTabl_Chck(PrevιousTab As Integer),On Enor GoTo SSTabl_Chck_Error, DoEvents, SkipScroll = Tme, VScrolll Max =
TabStπpCollectιon(CSte(SSTabl Tab)) Totallmages - 1, SkipScroll = False, SSPanel3(l) Caption = TabStnpCollectιon(CSte(SSTabl Tab)) DescπptionSelected, If VScrolll Value = TabStπpCollectιon(CSte(SSTabl Tab)) TopImageStnp Then, VScrolll Change, Else, VScrolll Value =
TabStπpCollectιon(CSte(SSTabl Tab)) TopImageStnp, End If, ' Color, DoEvents, SkipScroll = Tme, HScrolll Max = TabStπpCollectιon(CSte(SSTabl Tab)) ColorTotallmages - 1, SkipScroll = False, If HScrolll Value = TabStnpCollectιon(CSte(SSTabl Tab)) ColorTopImageStπp Then, HScrolll_Change, Else, HScrolll Value = TabStπpCollectιon(CSte(SSTabl Tab)) ColorTopImageStπp, End If, SSPanel3(2) Caption = TabStπpCollectιon(CSte(SSTab 1 Tab)) ColorDescπptionSelected, If TabStπpCollectιon(CStr(SSTabl.Tab)).ColorTotalImages < 21 Then, HScrolll . Visible = False; Else; HScrolll. Visible = Tme; End If, Gndl Visible = False; txtMemo .Visible = False,Exιt Sub,SSTabl_Chck _Error.;If En.Number <> 0 Then; gMsg = va_ErrorJEπor & Ste(Eπ.Number) & va Error WasGeneratedBy _, & En.Source & Chr(13) & Err.Description & Chr(13) & " (SSTabl_Chck)"; DisplayErrorMessage gMsg, vbCritical, VaTιtle;End IftExit Sub;End Sub;Pπvate Sub VScrolll_Change();On Error Resume Next;If Not SkipScroll Then;
TabStπpCollectιon(CStr(SSTabl.Tab)).TopImageStπp = VScrolll,
TabStπpCollectιon(CSte(SSTabl.Tab)).ShowItems; SSPanel3(0).Captιon = va cap ltem & VScrolll + 1 & va_cap_of & TabStnpCollectιon(CSte(SSTab 1.Tab)).TotalImages;End IftSkipScroll = False;End Sub;Pπvate Sub VScrolll ScrollO; On Error Resume Next; SSPanel3(0).Captιon = va cap ltem & VScrolll + 1 & va cap of & TabStπpCollectιon(CSte(SSTab 1.Tab)).TotalImages;End Sub;Publιc Sub ComposeImages(NewImage As Integer),
Dim retval As Integer, l As Integer, Maskhdc As Integer, Spπtehdc As Integer; Dim AspectRatio As Smgle; Dim DatabaseConteolLoaded As Boolean, On Enor GoTo errorComposelmages; Me.MousePomter = 11; If Newlmage >= 0 Then; 'lead Patch; 'get sprite; Load frmMDI.valmageBufferl(l). DatabaseConteolLoaded = Tme 'Patch for lead problem; frmMDI.vaImageBufferl(l).DatabaseName = DBPath & DBase; fimMDI.vaImageBufferl(l).Refresh; frmMDI.vaImageBufferl(l).dtaFιeld = ""; frmMDI.vaImageBufferl(l).RecordSource = "Select image from productdetail where id = " & TabStnpCollectιon(CSte(SSTabl.Tab)).IDSelected; frmMDI.vaImageBufferl(l).Refresh; fπ_ιMDI.vaImageBufferl(l).dtaFιeld = "image"; frmMDI.vaImageBufferl(l).Refresh; ldSρπte(NewImage).Bιtmap = frmMDI. vaImageBufferl(l).Bιtmap; Unload frmMDI.valmageBufferl(l): DatabaseConteolLoaded = False; 'get mask; Load frmMDI.valmageBufferl(l): DatabaseConteolLoaded = Tme 'Patch for lead problem; frmMDI.vaImageBufferl(l).DatabaseName = DBPath &
DBase; frmMDI. vaImageBufferl(l).Refresh; frmMDI.vaImageBufferl(l).dtaField = ""; frmMDI.vaImageBufferl(l).RecordSource = "Select mask from productdetail where id = " & TabSteιpCollectιon(CSte(SSTabl.Tab)).IDSelected; frmMDI.vaImageBufferl(l).Refresh; frmMDI.vaImageBufferl(l).dtaFιeld = "mask"; frmMDI.vaImageBufferl(l).Refresh; ldMask(NewImage).Bιtmap = frmMDI.vaImageBufferl(l).Bιtmap; Unload frmMDI.valmageBufferl(l): DatabaseConteolLoaded = False; 'end lead Patch; 'Get new image user selected; 'Datal. RecordSource = ""; 'Datal. Refresh; 'ldSpπte(NewImage).DataField = va_cap_Image; 'ldMask(NewImage). DataField = "Mask"; 'Datal. RecordSource = "Select image, mask from productdetail where id = " & TabStπpCollectιon(CSte(SSTabl.Tab)).IDSelected; 'Datal. Refresh; ldSpπte(NewImage).ForceRepamt ' 09/04/97 DEH Changed from VBX to OCX; ldMask(NewImage).ForceRepamt ' 09/04/97 DEH Changed from VBX to OCX; 'ldSpπte(NewImage). DataField =
""; 'ldMask(NewImage).DataFιeld = "";' ldSpπte(NewImage).BιtmapBιts = 24;' ldMask(NewImage).BιbnapBιts = 24;'thιs lead stuff was giving me problems, do we need this here ??? Bob ?; 'ldSpnte(NewImage).ColorRes 24, CRPJFIXEDP ALETTE, CRDJNODITHERTNG, 0; 'ldMask(NewImage).ColorRes 24, CRP_FIXEDPALETTE, CRD NODITHERTNG, 0; End If; 'Get background image; InitializeBackGroundlmage ldSpπte(0).Bιtmap Width, ldSpπte(0).BιtmapHeιght; 'Bitblt to screen, '- — 09/05/97 DEH Changed from VBX to OCX; Dun ldMaskDC As Long, ldSpπteDC As Long, pidmageDC As Long;' pidmage.BitmapDC = Tme; pidmageDC = piclmage. GetBittnapDC; For 1 = 0 To NumberOfZorders;' ldMask(ι).BιtmapDC = Tme;' ldSpπte(ι).BιtmapDC = Tme, ldMaskDC = ldMask(ι).GetBιtmapDC, ldSpπteDC = ldSpπte(ι).GetBιtmapDC; retval = BιtBlt(pιdmageDC, TabStπpCollectιon(CStr(ι)).XSelected, TabStπpCollectιon(CSte(ι)).YSelected, ldSpπte(ι).BιtmapWιdth, ldSpπte(ι).BιtmapHeιght, ldMaskDC, 0, 0, SRCAND); retval = BιtBlt(picImageDC,
TabSteιpCollectιon(CSte(ι)).XSelected, TabStπpCollectιon(CSte(ι)).YSelected, ldSpπte(ι).BιtmapWιdth, ldSpπte(ι).BιtmapHeιght, ldSpπteDC, 0, 0, SRCPamt);' ldMask(ι).BιtmapDC = False;' ldSpπte(ι) BitmapDC = False; ldMask(ι).ReleaseBιtmapDC; ldSpπte(ι).ReleaseBιtmapDC; Next i;' pidmage.BitmapDC = False, picImage.ReleaseBitmapDC; piclmage. ScaleMode = vbTwips; If chkFullView. Value = 1 Or ApplyMode = Tme Then; 'resize image; If (picImage.BitmapHeight / picImage.Height) > (picImage.Bitmap Width / piclmage Width)
Then; ' picImage.DstHeight = picImage.Height; AspectRatio = picImage.BitmapHeight / picImage.Height; ' picImage.DstWidth = piclmage. Bitmap Width / AspectRatio; pidmage.Size picImage.Bitmap Width / AspectRatio, picImage.Height, RESIZE NORMAL; Else; 'picImage.DstWidth = pidmage.Width; AspectRatio = piclmage. Bitmap Width / pidmage.Width; 'picImage.DstHeight = picImage.BitmapHeight / AspectRatio, pidmage.Size pidmage.Width, picImage.BitmapHeight / AspectRatio, RESIZE NORMAL; End If; End If, picImage.ScaleMode = SMode; If Checkl. Value = 1 Then pidmage.Reverse ' 09/08/97 DEH Changed from VBX to OCX; ' picImage.ForceRepaint ' 09/04/97 DEH Changed from VBX to OCX; Gndl. Visible = False; txtMemo. Visible = False; Me.MousePomter = l;Exιt Sub;errorComposeImages:; If DatabaseConteolLoaded Then Unload frmMDI. valmageBufferl (1) 'left created;Exιt Sub;End Sub;Pubhc Sub LoadImageControls(); Dim l As Integer; Dun DatabaseConteolLoaded As Boolean; Dim DatabaseControlLoaded2 As Boolean; On Enor GoTo
EπorLoadlmage; For I = 1 To NumberOfZorders; Load ldSpπte(ι): ldSpπte(ι). ScaleMode = SMode; Load ldMask(ι). ldMask(i).ScaleMode = SMode; 'For testing; ' ldSpπte(ι).Vιsιble = Tme; ' ldMask(ι).Vιsιble = Tme, ' ldSpπte(ι).Top = ldSpnte(ι - l).Top + ldSpπte(ι - l).Heιght; ' ldMask(ι).Top = ldMask(ι - l).Top + ldMask(ι - l).Heιght, Next I; Load frmMDI. valmageBufferl (1): DatabaseConteolLoaded = Tme 'Patch for lead problem; Load frmMDI.vaImageBufferl(2): DatabaseConteolLoaded2 = Tme 'Patch for lead problem; For I = 0 To
NumberOfZorders; 'lead Patch; 'get sprite; frmMDI.vaImageBufferl(l).DatabaseName = DBPath & DBase; frmMDI.vaImageBufferl(l).Refresh; frmMDI.vaImageBufferl(l).dtaFιeld = ""; frmMDI.valmageBufferl (l).RecordSource = "Select unage from productdetail where id = " & TabStnpCollectιon(ι + l).IDSelected; fπr_MDI.vaImageBufferl(l).Refresh; frmMDI. vaImageBufferl(l).dtaFιeld = "image"; fιmMDI.vaImageBufferl(l).Refresh; ldSpπte(i).Bιtmap = frmMDI.vaImageBufferl(l).Bιtmap; 'Unload frmMDI.valmageBufferl(l): DatabaseConteolLoaded = False; 'get mask; 'Load frmMDI. valmageBuffer 1(2): DatabaseConteolLoaded = Tme 'Patch for lead problem; frmMDI.valmageBufferl (2). DatabaseName = DBPath & DBase; frmMDI.vaImageBufferl(2).Refresh; frmMDI.vaImageBufferl(2).dtaFιeld = "", frmMDI.valmageBufferl (2). RecordSource = "Select mask from productdetail where id = " & TabStnpCollectιon(ι + l).IDSelected; frmMDI.vaImageBufferl(2).Refresh; frmMDI.vaImageBufferl(2).dtaFιeld = "mask"; frmMDI.vaImageBufferl(2) Refresh; ldMask(ι).Bιtmaρ = frmMDI.vaImageBufferl(2) Bitmap; 'end lead Patch,' Datal . RecordSource = "";' Datal. Refresh,' ldSpπte(ι) DataField = "Image",' ldMask(ι).DataFιeld = "Mask",' Datal .RecordSource = "Select image, mask from productdetail where id = " & TabStnρCollectιon(ι + l).IDSelected,' Datal. Refresh; ldSpπte(ι). ForceRepamt '- — 09/04/97 DEH Changed from VBX to OCX; ldMask(ι).ForceRepamt '— .. 09/04/97 DEH Changed from VBX to OCX; ldSpπte(ι).DataFιeld = ""; ldMask(ι).DataFιeld = "";' ldMask(ι).BιtmapBιts = 24;' ldSpπte(ι).BιtmapBιts = 24; 'ldSpπte(ι).ColorRes 24, CRP FIXEDPALETTE, CRDJNODITHERTNG, 0; 'ldMask(ι).ColorRes 24, CRPJFIXEDPALETTE, CRD NODITHERING, 0; If TabStπpCollectιon(CSte(ι)).ColorTotalImages > 1 Then, ApplyColor TabStnpCollectιon(CSte(ι)) ColorlDSelected, I, End If; Next I; Unload frmMDI.valmageBufferl (1): DatabaseConteolLoaded = False, Unload frmMDI. valmageBuffer 1(2): DatabaseConteolLoaded2 = False;Exιt Sub;ErrorLoadImage:; MsgBox En Description;
If DatabaseConteolLoaded Then Unload frmMDI.valmageBufferl(l) 'left created; If DatabaseControlLoaded2 Then Unload frmMDI.valmageBufferl (2) 'left created;Exιt Sub;End Sub;Pubhc Sub ResιzeForm(); Dim AspectRatio As Single; On Error Resume Next; Gπdl.Visible = False; txtMemo Visible = False; 'Resize controls, SSPanel3(l).Wιdth = (SSPaneB(l). Width \ 2) + 5, If Len(SSPanel3(l).Captιon) > 30 Then SSPanel3(l).Captιon = Left(SSPanel3(l).Captιon, 30) & "..."; SSPanel5. Width = SSPanel5.Width - (pidmage.Width / 2), SSPanel5. Height =
SSPanel5. Height - (picImage.Height / 2); piclmage. Move pidmage.Left, pidmage.Top, pidmage.Width / 2, picImage.Height / 2; cmdTry.Left = pidmage.Left + pidmage.Width + 150 '* 15; Commandl (3).Left = cmdTry.Left; ' Me.Move Screen. Width - ((cmdTry.Left + cmdTry. Width + 25) * Screen.TwipsPerPixelX), Screen.Height - ((picImage.Height + pidmage.Top + 100) * Screen TwipsPerPixelY), (cmdTry.Left + cmdTry. Width + 10) * Screen.TwipsPerPixelX, (picImage.Height + pidmage.Top + 28) * Screen.TwipsPerPixelY; Me.Move Screen. Width -
((cmdTry.Left + cmdTry. Width + 100)), Screen.Height - ((picImage.Height + pidmage.Top) + 1000), (cmdTry.Left + cmdTry. Width + 100), (picImage.Height + pidmage.Top + 800); cmdTry.ZOrder; Commandl (3).ZOrder; SSPanel2.Move Commandl(3)Left, Commandl(3).Top + Commandl(3).Heιght + 5, 74 * 15, 45 * 15; HScrolll.Move Commandl(3)Left + 1, Command 1(3). Top + Command l(3).Heιght + ((5 + 23) * 15), 72 * 15; HScrolll .Value = 0; HScrolll_Change; If TabSteιpCollectιon(CSte(SSTabl .Tab)).ColorTotalImages < 6 Then;
HScrolll .Visible = False; SSPanel2.Heιght = 23 * 15; Else; HScrolll. Visible = Tme; End If, chkFence.Move cmdTry.Left, SSPanel2.Top + SSPanel2.Heιght + 125; Me.Caption = va_cap_DragObjectOntoProject; pidmage.ScaleMode = vbTwips; 'resize image; If (picImage.BitmapHeight / picImage.Height) > (picImage.Bitmap Width / pidmage.Width) Then; ' picImage.DstHeight = picImage.Height; AspectRatio = picImage.BitmapHeight / picImage.Height; ' picImage.DstWidth = picImage.Bitmap Width / AspectRatio; pidmage.Size picImage.Bitmap Width / AspectRatio, picImage.Height, RESIZE NORMAL; Else; 'picImage.DstWidth = pidmage.Width; AspectRatio = picImage.Bitmap Width / pidmage.Width; 'picImage.DstHeight = picImage.BitmapHeight / AspectRatio; pidmage.Size pidmage.Width, picImage.BitmapHeight / AspectRatio, RESIZEJNTORMAL; End If,' If (picImage.BitmapHeight / picImage.Height) > (picImage.Bitmap Width / pidmage.Width) Then;' picImage.DstHeight = picImage.Height;' AspectRatio = picImage.BitmapHeight / picImage.Height;' picImage.DstWidth = picImage.Bitmap Width / AspectRatio;' Else,' picImage.DstWidth = pidmage.Width,' AspectRatio = piclmage. Bitmap Width / pidmage.Width;' picImage.DstHeight = picImage.BitmapHeight / AspectRatio,' End If, piclmage. ScaleMode = SMode; piclmage. ForceRepamt ' 09/04/97
DEH Changed from VBX to OCX; ApplyMode = True;End Sub,'Inιtιahzes the color selectιon;Sub Inιtιalιze_Color();On Error Resume Next;SkιpScroll = Tme; SSPanel3(2). Caption =
TabSteιpCollectιon("0").ColorDescπptιonSelected; TabStπpCollectιon("0").ColorTopImageStπp = 0; TabStnpCollection("0").ColorShowItems; TabStπpCollectιon("0").ColorShowNumber = 20; HScrolll . LargeChange = 20; HScrolll . Max = TabStnpCollection("0").ColorTotalImages - l;SkιpScroll = False;End Sub;'Place the colors in the color selector for this Image-(ThιsOne) Tab-(ThιsObject);Sub GenerateColors(ThιsOne As Integer, ThisObject As Stπng);Dιm Colors Value As Long;Dιm CountDBColors As Integer;Dιm db As Database;Dιm rs As Recordset; On
Error GoTo GenerateColorsError; If SmgleUser = Tme Then; Set db = OpenDatabase(frmMDI.Datal. DatabaseName, dbDriverNoPrompt, SmgleUser); Else; Set db = OpenDatabase(frmMDI.Datal. DatabaseName); End If; Set rs = db.OpenRecordset("SELECT * FROM ObjectColors WHERE ProductID = " & TabStπpCollectιon(ThιsObject).IDSelected & " ORDER BY ID asc"); rs.MoveLast rs.MoveFirst; If rs.RecordCount < 2 Then; CountDBColors = 1 ; Else; CountDBColors = rs.RecordCount, End If;
TabStπpCollectιon(ThιsObject).ColorRedιmAnay CountDBColors; If CountDBColors <> 1 Then 'assign all colors to anay; Dim Colld As Integer 'substitute with loading array; For Colld = 1 To CountDBColors; TabStπpCollectιon(ThιsObject).ColorAssιgnToArray Colld, rs("Descπptιon"), rs("Color"), rs("Bπghtaess"), rsC'Conteast"), rs.MoveNext; Next Colld; End If; TabStnpCollectιon(ThιsObject).ColorShowNumber = 20; TabStπpCollectιon(ThιsObject).ColorTopImageStπp = 0; TabStπpCollectιon(ThιsObject).ColorImageSelect = 0; If
TabSteipCollectιon(CSte(SSTabl.Tab)).ColorTotalImages < 21 Then; HScrolll .Visible = False; Else; HScrolll. Visible = Tme; End If, Gndl .Visible = False; txtMemo. Visible = False;Exιt Sub;GenerateColorsError:; ' MsgBox En & Error; Resume Next;End Sub;Publιc Sub CreateFromComp(X As Single, Y As Smgle, ThisForm As Form);Dιm md As Integer, retval As Integer;On Error GoTo CreateFromCompError; If Not Check_Resources(MιnResourceReq, False) Then, DisplayEnorMessage VA_CANT & Chr(13) & VA_CANT1 & Chr(13) & VA_CANT2 & Chr(13) &
VA_CANT3, vblnformation, VaTitle; Exit Sub; End If; Dim changedfull As Byte; Screen.MousePomter = vbHourglass; With ThisForm; ApplyMode = False; If chkFullView. Value = 1 Then, chkFull View. Value = 0; changedfull = 1; End If; Composelmages -1; ApplyMode = Tme; ' picImage.ForceRepaint; .IdSpriteTransferBuffer.Bitmap = FrmSubComp.picImage. Bitmap; .ldSpnteTransferBuffer.Size FrmSubComp.ldMask(0).BitmapWidth, FrmSubComp.ldMask(0).BitmapHeight, RESIZE_RESAMPLE;
.ldSpπteTransferBuffer.ForceRepaint; .ldMaskTransferBuffer.Bitmap = FrmSubComp.ldMaskBuffer.Bitmap; .Compose VA_COMPOSE_LOAD_NEW; .VAJLoadObject ((X) - (.ldMaskTransferBuffer.BitmapWidth / 2)), ((Y) - (.ldMaskTransferBuffer.BitmapHeight / 2)); .vaPιcture(.ObjectZorderl .SelectedIndex).RepaιntConserve .picComposite.hDC, .vaPιcture(. ObjectZorderl .Selectedlndex). Left, .vaPιcture(. ObjectZorderl .Selectedlndex). Top; .vaPιcture(.ObjectZorderl.SelectedIndex).ObjectName = CompTempDBProductName; .vaPιcture(.ObjectZorderl .Selectedlndex) .DatabaselD = CompObjectID, .vaPιcture(. ObjectZorderl. Selectedlndex). CD Volumn = CompDBase 'don't touch this one,
.vaPιcture(. ObjectZorderl .Selectedlndex). CompanyName = CompDBCompany; '.ShoppιngLιst.add(ComρObjectID, CompTempDBProductName, CompDBCompany, "", 1, 0, CompDBase, "", ""), If changedfull = 1 Then; chkFull View. Value = 1; End If; Composelmages -1; picImage.ForceRepaint; End With;' ind =
LoadObject(frmMDI.ActiveForm); frmMDI.ActιveForm.ldImageObject(ιnd).Top = 10;' fπnMDI.ActιveForm.ldImageObject(md).Left = 10,' frmMDI.ldObjectBuffer.Bitmap = FrmSubComp.pidmage.Bitmap;' RetVal = SetPιxelBιts(frmMDI.ldObjectBuffer, FormState(frmMDI.ActιveForm.Tag).BMBιts);';' frmMDI.ActiveForm.ldImageMask(ind).Bitmap = FrmSubComp.ldMaskBuffer.Bitmap; RetVal = SetPιxelBιts(frmMDI.ActιveForm.ldImageMask(md), FormState(frmMDI.ActιveForm.Tag).BMBιts);';' If FrmSubComp. Checkl .Value = 1 Then,' frmMDI.ActιveForm.ldImageMask(md).Reverse '- — 09/08/97 DEH Changed from VBX to OCX,' frmMDI.ActιveForm.ldImageMask(ιnd).ForceRepaιnt '- — 09/04/97 DEH Changed from VBX to OCX;' End If;',' frmMDI.ActιveForm.ldImageMask(ιnd).ForceRepaιnt ' 09/04/97 DEH Changed from VBX to OCX;';' SelectObjects(frmMDLActιveFoπn) = md;' UnselectObject frmMDI.ActiveForm;; NewPartTouchlt frmMDI.ActιveForm.ldImageObject(md).Top, fιmMDI.ActιveFo_m.ldImageObject(md).Top + frmMDI.ActiveForm.ldlmageObject(ind). Height, frmMDI.ActιveForm.ldImageObject(ιnd).Left, fnnMDI.ActiveForm.ldImageObject(md).Left + frmMDI.ActiveForm.ldlmageObject(ind). Width, CurrentObj(frmMDI.ActιveForm.Tag), frmMDI.ActiveForm, Tme;' NewRegenerate frmMDI.ActiveForm;';' CurrentObj(frmMDI.ActιveFoπn.Tag) = 0;' UnselectObject frmMDI.ActiveForm;'
CurrentObj(frmMDI.ActιveForm.Tag) = md;' SelectObjects(frmMDI.ActιveForm) = lndjScreen.MousePornter = vbDefault;Exιt Sub;CreateFromCompEπor:;If Err.Number <> 0 Then; gMsg = va_ErrorJError & Str(Err.Number) & va_ErrorJWasGeneratedBy _; & En.Source & Chr(13) & Err.Description & Chr(13) & " (CreateFromComp)"; DisplayErrorMessage gMsg, vbCritical, VaTιtle;End If; Screen.MousePomter = vbDefault;Exιt Sub;End Sub;Publιc Sub ApplyColor(ColorSelected As Long, TabID As Integer); Dim DestDC As Long, SourceDC As Long, retval As
Integer; Dim SourceDC2 As Long; Dim DatabaseConteolLoaded As Boolean; Dim DatabaseConteolLoaded2 As Boolean; On Enor GoTo ApplyColorError; Screen.MousePointer = vbHourglass; 'lead Patch; 'get sprite; Load frmMDI.valmageBufferl (3): DatabaseConteolLoaded = Tme 'Patch for lead problem; frmMDI.vaImageBufferl(3).DatabaseName = DBPath & DBase; frmMDI.vaImageBufferl(3).Refresh; frmMDI.vaImageBufferl(3).dtaField = ""; frmMDI.vaImageBufferl(3).RecordSource = "Select image from productdetail where id = " & TabSteιpCollectιon(CSte(TabID)).IDSelected; frmMDI.vaImageBufferl(3).Refresh; frmMDI.vaImageBufferl(3).dtaField = "image"; frmMDI.vaImageBufferl(3).Refresh; ldSpπte(TabID).Bιtmap = frmMDI.valmageBufferl (3).Bιtmap; Unload frmMDI.valmageBufferl (3): DatabaseConteolLoaded = False; 'get mask; Load frmMDI. valmageBuffer 1(4): DatabaseControlLoaded2 = Tme 'Patch for lead problem; frmMDI.vaImageBufferl(4).DatabaseName = DBPath & DBase; frmMDI.vaImageBufferl(4).Refresh; frmMDI.valmageBufferl (4).dtaFιeld = "", frmMDI valmageBuffer 1(4) RecordSource = "Select mask from productdetail where id = " & TabStπρCollectιon(CStr(TabID)).IDSelected; frmMDI vaImageBufferl(4).Refresh, frmMDI.vaImageBufferl(4).dtaField = "mask"; frmMDI.vaImageBufferl(4).Refresh, ldMask(TabID).Bιtmap = frmMDI.vaImageBufferl(4).Bιtmap; Unload frmMDI.valmageBufferl (4): DatabaseConteolLoaded2 = False; 'Refresh image to be colored;' Datal. RecordSource = "";' Datal. Refresh;' ldSpπte(TabID).DataFιeld = "Image";' ldMask(TabΙD). DataField = "Mask";' Datal. RecordSource = "Select image, mask from productdetail where id = " & TabSteιpCollectιon(CSte(TabID)).IDSelected;' Datal. Refresh; ldSpπte(TabID).ForceRepamt '- — 09/04/97 DEH Changed from VBX to OCX; ldMask(TabID).ForceRepamt '- — 09/04/97 DEH Changed from VBX to OCX; ldSpπte(TabID).DataFιeld = ""; ldMask(TabID).DataFιeld = "";' ldSpπte(TabID).BιtmapBιts = 24,' ldMask(TabID).BιtmapBιts = 24; 'ldSpπte(TabID).ColorRes 24, CRPJTXEDP ALETTE, CRDJNODITHERING, 0,
'ldMask(TabID).ColorRes 24, CRPJFIXEDPALETTE, CRDJNODITHERING, 0; ldSpπte(TabΙD) mtensity TabStπpCollectιon(CSte(TabID)).ColorIntensιtySelected; ldSpπte(TabID).Conteast
TabStπpCollectιon(CSte(TabID)).ColorConteastSelected; frmMDI.ldTwain.Bitmap = ldSpπte(TabID).Bιtmap 'frmMDI.ldObjectBuffer.Bitmap 'makes it the same size; frmMDI.ldTwain.Fill ColorSelected, 'frmMDI.ldTwam.UnderlayType = UNDERLAY JTILE 'UNDERLAY STRETCH; frmMDI.ldTwam.Underlay ldSpπte(TabID).Bιtmap, UNDERLAY JTILE; ldSpπte(TabID).Fιll RGB(255, 255, 255); DestDC = ldSpπte(TabID).GetBιtmapDC; SourceDC = frmMDI. ldTwain. GetBittnapDC; SourceDC2 = ldMask(TabID).GetBιtmaρDC; retval = BιtBlt(DestDC, 0, 0, ldSpπte(TabID).Bιtmap Width, ldSρπte(TabID).Bιtπ_apHeιght, SourceDC2, 0, 0, SRCINVERT); retval = BιtBlt(DestDC, 0, 0, ldSpπte(TabID).BιtmapWιdth, ldSprite(TabID).BιtmapHeιght, SourceDC, 0, 0, SRCAND) '; ldSprite(TabID).ReleaseBιtenapDC; frmMDI.ldTwam.ReleaseBιtmapDC; ldMask(TabID).ReleaseBιtmaρDC; Sc een.MousePomter = vbDefault;Exιt Sub; ApplyColorError:, If Err.Number <> 0 Then; gMsg = vaJEπor_Error & Str(Err.Number) & va_ErrorJWasGeneratedBy _; & En.Source & Chr(13) & Err.Descnption & Chr(13) & " (ApplyColor)"; DisplayErrorMessage gMsg, vbCritical, VaTitle; If DatabaseControlLoaded Then Unload frmMDI.valmageBufferl (3) 'left created; If DatabaseConteolLoaded2 Then Unload frmMDI.valmageBuffer 1 (4) 'left created;End If;'Resume;Exιt Sub;End Sub;Pubhc Sub WhatDoIHave();' Items I have put together;Dιm l As Long;On Error Resume Next;lstInfo.Clear;lstInfo.Font.Name = "Courier New";lstInfo.AddItem
SubCompanyName;lstInfo.AddItem "";lstInfo.AddItem "DESCRIPTION" & Strrng$((50 - Len("Descπptιon")), " ") & " COLOR";lstInfo.AddItem "";For i = 1 To TabSteipCoUection.Count 'loop through colection; 'If I = 1 Then; ' MsgBox "ID of main Item: " & TabStπpCollectιon(ι).IDSelected; 'End If; lstlnfo.Addltem
TabStπpCollectιon(ι).DescπptιonSelected & Stemg$((50 - Len(TabSteιpCollectιon(ι).DescπptιonSelected)), " ") & " " & TabStπpCollectιon(ι).ColorDescπptιonSelected;Next ι;End Sub;'Get logo and resize ιt;Pubhc Sub GetLogo(); Dim CorrectionAspect As Smgle; Dim DatabaseControlLoaded As Boolean; On Error GoTo ErrorGetLogo; Lead patch; Load frmMDI.valmageBufferl(l): DatabaseConteolLoaded = Tme 'Patch for lead problem; frmMDI.valmageBufferl (1). DatabaseName = DBPath & DBase; fπ_ιMDI.vaImageBufferl(l).Refresh, frmMDI valmageBufferl (1) dtaField = "", frmMDI valmageBuffer 1(1) RecordSource = "SELECT Company Logo FROM ProductDetail INNER JOIN Company ON ProductDetail RltemName = Company Name WHERE ((ProductDetail ID=" & CompObjectID & ")),", frmMDI valmageBufferl(l) Refresh, frmMDI valmageBufferl(l) dtaField = "Logo", frmMDI valmageBufferl(l) Refresh, IdLogo Bitmap = frmMDI valmageBufferl(l) Bitmap, Unload frmMDI valmageBufferl(l) DatabaseConteolLoaded = False, 'end lead patch,' IdLogo DataField = "Logo",' Datal RecordSource = "SELECT Company Logo FROM ProductDetail INNER JOIN Company ON ProductDetail RltemName = Company Name WHERE ((ProductDetail ID=" & CompObjectID & ")),",' Datal Refresh, IdLogo ForceRepamt '- — 09/04/97 DEH Changed from VBX to OCX, IdLogo DataField = "", IdLogo AutoSetRects = Tme, IdLogo ScaleMode = vbTwips, If (IdLogo BitmapHeight / IdLogo Height) > (IdLogo Bitmap Width / IdLogo Width) Then, IdLogo DstHeight = IdLogo Height, CorrectionAspect =
IdLogo BitmapHeight / piclmage Height, IdLogo DstWidth = IdLogo Bitmap Width / ConectionAspect, Else, IdLogo DstWidth = IdLogo Width, CorrectionAspect = IdLogo Bitmap Width / IdLogo Width, IdLogo DstHeight = IdLogo BitmapHeight / ConectionAspect, End If, IdLogo DstLeft = (IdLogo Width / 2) - (IdLogo DstWidth / 2), IdLogo DstTop = (IdLogo Height 1 2) - (IdLogo DstHeight / 2), 'IdLogo ScaleMode = vbTwips, IdLogo ForceRepamt '- — 09/04/97 DEH Changed from VBX to OCX,Exιt Sub,ErrorGetLogo , If DatabaseConteolLoaded Then Unload frmMDI valmageBufferl(l) 'left created,Exιt Sub,End Sub,
FRMSub Comp VERSION 5 00,Object = "{00080003-B1BA-11CE-ABC6-F5B2E79D9E3F}#8 0#0", "LTOCX80N OCX",Object = "{0BA686C6-F7D3-101A-993E-0000C0EF6F5E}#1 0#0", "THREED32 OCX",Object = "{A8B3B723-0B5A-101B-B22E-00AA0037B2FC}#1 0#0", "GRID32 OCX",Object = "{BDC217C8-ED16-11CD- 956C-0000C04E4COA}#l 1#0", "TABCTL32 OCX",Begιn VB Form FrmSubComp, BackColor = &H00B2D3E1&,
BorderStyle = 1 'Fixed Smgle, Caption = "Forml", ChentHeight = 6405, ClientLeft = 240, ChentTop = 1140, ChentWidth = 9660, ForeColor = &H00000000&, LinkTopic = "Forml ", MaxButton = 0 'False, MinButton = 0 'False, PaletteMode = 1 'UseZOrder, ScaleHeight = 6405, ScaleWidth = 9660, Begin VB CommandButton cmdlmportlnfo, Caption = "I&mportant Information", Height = 495, Left = 8160, Tablndex = 53, Tag = "6849", Top = 3360, Visible = 0 'False, Width = 1215, End, Begin VB CheckBox chkFence, BackColor = &H00B2D3E1&,
Caption = "Apply as fence", Height = 375, Left = 8100, Tablndex = 52, Tag = "6848", Top = 2160, Visible = 0 'False, Width = 1455, End, Begin LeadLib Lead ldSpπte, Height = 315, Index = 0, Left = 8160, Tablndex = 48, Top = 1800, Visible = 0 'False, Width = 195, JVersion = 524288, _ExtentX = 344, JExtentY = 556, _StockProps = 229, BackColor = -2147483633, BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851}, Name = "MS Sans Serif, Size = 8 25, Charset = 0, Weight = 400, Underlme = 0 'False, Italic = 0 'False, Steikethrough = 0 'False,
EndProperty, Appearance = 1, ScaleHeight = 17, ScaleWidth = 9, DataField = "", BitmapDataPath = "", AnnDataPath = "", End, Begin Threed SSPanel SSPanel5, Height = 5745, Left = 45, Tablndex = 46, Top = 300, Width = 5880, JVersion = 65536, JExtentX = 10372, ExtentY = 10134, StockProps = 15, Caption = "SSPanel5", BackColor = 7837876, BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851} , Name = "MS Sans Serif, Size = 8 25, Charset = 0, Weight = 400, Underline = 0 'False, Italic = 0 'False, Steikethrough = 0 'False, EndProperty, Bevellnner = 1 , Begin LeadLib.Lead piclmage; Draglcon = "frmsubco.frx":0000; Height = 5625, Left = 75, Tablndex = 51; Top = 60; Width = 5760; JVersion = 524288; JExtentX = 10160, ExtentY = 9922; StockProps = 229; BeginProperty Font {OBE35203-8F91-11CE-9DE3-OOAA004BB851 }; Name = "MS Sans Serif; Size = 8.25, Charset = 0; Weight = 400; Underline = 0 'False; Italic = 0 'False; Steikethrough = 0 'False, EndProperty; ScaleHeight = 375; ScaleWidth = 384; DataField = ""; BitmapDataPath = ""; AnnDataPath = ""; Begin VB.TextBox txtMemo; Height =
975; Left = 0, MultiLine = -1 'Tme; ScrollBars = 2 'Vertical; Tablndex = 55, Text = "frmsubco.frx":0442; Top = 4680; Visible = 0 'False; Width = 5775; End; Begin MSGnd.Gnd Gndl ; Height = 4695; Left = 0, Tablndex = 54, Top = 0; Visible = 0 'False; Width = 5775, JVersion = 65536; _ExtentX = 10186, JExtentY = 8281 , StockProps = 77; BackColor = 16777215; BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851 }; Name = "MS Sans Serif; Size = 8.25; Charset = 0; Weight = 400; Underline = 0 'False, Italic = 0 'False; Steikethrough = 0 'False,
EndProperty; FixedRows = 0; FixedCols = 0; End; End; End; Begin VB. CommandButton cmdSave; Caption = "cd&Save", Height = 495; Left = 9000; Tablndex = 44; Tag = "5009"; Top = 5220; Visible = 0 'False; Width = 1215, End; Begin VB. CommandButton cmdPrint, Caption = "cd&Prmt"; Height = 495; Left = 9000, Tablndex = 43; Tag = "5007"; Top = 4620; Visible = 0 'False; Width = 1215; End; Begin VB. CommandButton cmdlnfo; Caption = "cd&Item List"; Height = 495; Left = 8160, Tablndex = 41; Tag = "3606"; Top = 4020; Width = 1215, End; Begm
VB.CheckBox Checkl ; BackColor = &H00B2D3E1&; Caption = "cdReverse Image"; Height = 315, Left = 8100; Tablndex = 40; Tag = "3604"; Top = 2880, Width = 1575; End, Begin VB.CheckBox chkFullView; BackColor = &H00B2D3E1&; Caption = "cdFull View"; Height = 315; Left = 8100; Tablndex = 39; Tag = "3605"; Top = 2520; Value = 1 'Checked; Width = 1335; End; Begin VB.Data Datal; Caption = "Datal"; Connect = "Access"; DatabaseName = ""; DefaultCursorType= 0 'DefaultCursor; DefaultType = 2 'UseODBC; Exclusive = 0 'False, Height
= 300; Left = 8190; Options = 0; ReadOnly = 0 'False; RecordsetType = 1 'Dynaset; RecordSource = ""; Top = 1065; Visible = 0 'False; Width = 1155; End; Begin VB HScrollBar HScrolll; Height = 285; Left = 4305; Tablndex = 27; Top = 6105; Width = 1575; End; Begin VB.CommandButton Commandl; Caption = "cd&Apply"; Height = 495; Index = 2; Left = 8175; Tablndex = 19; Tag = "5003"; Top = 4620; Width = 1200; End; Begm VB.CommandButton Commandl; Caption = "cd&Cancel"; Height = 495; Index = 1; Left = 8175; Tablndex = 18; Tag = "5001"; Top =
5220; Width = 1200; End; Begin VB.CommandButton Commandl; Caption = "cd&Help"; Height = 495; Index = 0, Left = 8175; Tablndex = 17; Tag = "5014"; Top = 5820; Width = 1200; End; Begm Threed.SSPanel SSPanell; Height = 5670; Left = 6315; Tablndex = 1; Top = 360; Width = 960; JVersion = 65536; _ExtentX = 1693; _ExtentY = 10001; StockProps = 15; ForeColor = -2147483630; BackColor = 16777215; BeginProperty Font {0BE35203-8F91- 11CE-9DE3-00AA004BB851 } ; Name = "MS Sans Serif; Size = 8.25, Charset = 0; Weight = 400; Underlme = 0
'False; Italic = 0 'False; Steikethrough = 0 'False; EndProperty; BevelOuter = 1; Begin VB. Shape ShpSelector; BorderColor = &H000000C0&; Height = 885, Left = 60; Top = 60; Width = 885; End; Begin VB.Image imgThumb; Height = 825; Index = 5; Left = 75; Top = 4755; Width = 825; End; Begm VB.Image imgThumb; Height = 825; Index = 4; Left = 75; Top = 3825; Width = 825; End; Begin VB.Image imgThumb; Height = 825; Index = 3; Left = 75; Top = 2895; Width = 825; End, Begin VB.Image imgThumb; Height = 825; Index = 2; Left = 75; Top = 1980; Width = 825, End, Begm VB Image imgThumb, Height = 825, Index = 1 , Left = 75, Top = 1035, Width = 825, End, Begm VB Image imgThumb, Height = 825, Index = 0, Left = 75, Top = 105, Width = 825, End, Begin VB Label Label2, BackColor = &H00000000&, Height = 825, Index = 5, Left = 75, Tablndex = 36, Top = 4755, Width = 825, End, Begm VB Label Label2, BackColor = &HOOOO0OOO&, Height = 825, Index = 4, Left = 75, Tablndex = 35, Top = 3825, Width = 825, End, Begin VB Label Label2, BackColor = &H00000000&, Height = 825, Index = 3, Left = 75,
Tablndex = 34, Top = 2895, Width = 825, End, Begin VB Label Label2, BackColor = &H00000000&, Height = 825, Index = 2, Left = 75, Tablndex = 33, Top = 1980, Width = 825, End, Begin VB Label Label2, BackColor = &H0OOOO0OO&, Height = 825, Index = 1, Left = 75, Tablndex = 32, Top = 1035, Width = 825, End, Begin VB Label Label2, BackColor = &HOOO0OOOO&, Height = 825, Index = 0, Left = 60, Tablndex = 31, Top = 120, Width = 825, End, End, Begin Threed SSPanel SSPanel2, Height = 345, Left = 45, Tablndex = 2, Top = 6060, Width = 5865,
Version = 65536, ExtentX = 10345, _ExtentY = 609, StockProps = 15, ForeColor = -2147483630, BackColor = 7837876, BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851 }, Name = "MS Sans Serif, Size = 8 25, Charset = 0, Weight = 400, Underlme = 0 'False, Italic = 0 'False, Steikethrough = 0 'False, EndProperty, Begin VB Shape ShpSelector2, BorderColor = &HOOOOO0FF&, Height = 285, Left = 30, Top = 30, Width = 225, End, Begin VB Label Labell , BackColor = &H00C0FFC0&, Height = 270, Index = 13, Left = 2775, Tablndex = 26, Top = 45,
Width = 195, End, Begin VB Label Labell, BackColor = &H00C0FFFF&, Height = 270, Index = 14, Left = 2985, Tablndex = 25, Top = 45, Width = 195, End, Begin VB Label Labell, BackColor = &H00C0E0FF&, Height = 270, Index = 15, Left = 3195, Tablndex = 24, Top = 45, Width = 195, End, Begin VB Label Labell, BackColor = &H00C0C0FF&, Height = 270, Index = 16, Left = 3405, Tablndex = 23, Top = 45, Width = 195, End, Begin VB Label Labell , BackColor = &HO0FFFFCO&, Height = 270, Index = 17, Left = 3615, Tablndex = 22, Top = 45,
Width = 195, End, Begin VB Label Labell, BackColor = &H00FFC0C0&, Height = 270, Index = 18, Left = 3825, Tablndex = 21, Top = 45, Width = 195, End, Begin VB Label Labell, BackColor = &H00FFC0FF&, Height = 270, Index = 19, Left = 4035, Tablndex = 20, Top = 45, Width = 195, End, Begin VB Label Labell, BackColor = &H00FFC0FF&, Height = 270, Index = 12, Left = 2565, Tablndex = 15, Top = 45, Width = 195, End, Begin VB Label Labell , BackColor = &H00C0C000&, Height = 270, Index = 11 , Left = 2355, Tablndex = 14, Top = 45,
Width = 195, End, Begin VB Label Labell, BackColor = &H0000C000&, Height = 270, Index = 10, Left = 2145, Tablndex = 13, Top = 45, Width = 195, End, Begin VB Label Labell, BackColor = &H0000C0C0&, Height = 270, Index = 9, Left = 1935, Tablndex = 12, Top = 45, Width = 195, End, Begm VB Label Labell, BackColor = &H000040CO&, Height = 270, Index = 8, Left = 1725, Tablndex = 11, Top = 45, Width = 195, End, Begm VB Label Labell, BackColor = &H000000C0&, Height = 270, Index = 7, Left = 1515, Tablndex = 10, Top = 45, Width = 195,
End, Begin VB Label Labell, BackColor = &H00FFC0FF&, Height = 270, Index = 6, Left = 1305, Tablndex = 9, Top = 45, Width = 195, End, Begin VB Label Labell, BackColor = &H00FFC0C0&, Height = 270, Index = 5, Left = 1095, Tablndex = 8, Top = 45, Width = 195, End, Begin VB Label Labell, BackColor = &H00FFFFC0&, Height = 270, Index = 4, Left = 885, Tablndex = 7, Top = 45, Width = 195, End, Begin VB Label Labell, BackColor = &HOOCOC0FF&, Height = 270, Index = 3, Left = 675, Tablndex = 6, Top = 45, Width = 195, End, Begin VB Label Labell, BackColor = &H00C0E0FF&, Height = 270, Index = 2, Left = 465, Tablndex = 5, Top = 45, Width = 195, End, Begin VB Label Labell , BackColor = &H00C0FFFF&, Height = 270, Index = 1 , Left = 255, Tablndex = 4, Top = 45, Width = 195, End, Begin VB Label Labell, BackColor = &H00C0FFC0&, Height = 270, Index = 0, Left = 45, Tablndex = 3, Top = 45, Width = 195, End, End, Begin Threed SSPanel SSPanel3, Height = 270, Index = 0, Left = 6060, Tablndex = 16, Tag = "3601", Top = 0, Width = 1905, JVersion = 65536, JExtentX = 3360, _ExtentY = 476,
StockProps = 15, Caption = "cdltem Count", ForeColor = 128, BackColor = 7837876, BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851 } , Name = "MS Sans Serif, Size = 8 25, Charset = 0, Weight = 400, Underline = 0 'False, Italic = 0 'False, Steikethrough = 0 'False, EndProperty, FloodColor = 7837876, End, Begm VB VScrollBar VScrolll, Height = 5685, Left = 6060, Tablndex = 28, Top = 360, Width = 240, End, Begin Threed SSPanel SSPanel3, Height = 270, Index = 1 , Left = 60, Tablndex = 29, Tag = "3602", Top = 0, Width = 5850,
JVersion = 65536, ExtentX = 10319, ExtentY = 476, StockProps = 15, Caption = "cdltem Description", ForeColor = 128, BackColor = 7837876, BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851} , Name = "MS Sans Serif, Size = 8 25, Charset = 0, Weight = 400, Underline = 0 'False, Italic = 0 'False, Steikethrough = 0 'False, EndProperty, End, Begin Threed SSPanel SSPanel3, Height = 270, Index = 2, Left = 6060, Tablndex = 30, Tag = "3603", Top = 6090, Width = 1890, JVersion = 65536, JExtentX = 3334, ExtentY = 476, StockProps = 15,
Caption = "cdCurrent Color", ForeColor = 128, BackColor = 7837876, BeginProperty Font {0BE35203-8F91-11CE- 9DE3-00AA004BB851 } , Name = "MS Sans Serif, Size = 8 25, Charset = 0, Weight = 400, Underline = 0 'False, Italic = 0 'False, Steikethrough = 0 'False, EndProperty, End, Begin TabDlg SSTab SSTabl , Height = 5670, Left = 7275, Tablndex = 0, Top = 360, Width = 645, ExtentX = 1138, _ExtentY = 10001, Version = 327681, TabOπentation = 3, Tabs = 12, TabsPerRow = 6, TabHeight = 520, ForeColor = 128, BeginProperty Font
{OBE35203-8F91-11CE-9DE3-00AA004BB851}, Name = "Anal", Size = 8 25, Charset = 0, Weight = 400, Underlme = 0 'False, Italic = 0 'False, Steikethrough = 0 'False, EndProperty, TabCaptιon(O) = "Tab 0", TabPιcture(O) = "frmsubco frx" 0448, Tab(0) ConteolEnabled= -1 'Tme, Tab(0) ConteolCount= 0, TabCaptιon(l) = "Tab 1", Tab(l) ConteolEnabled= 0 'False, Tab(l) ConteolCount= 0, TabCaptιon(2) = "Tab 2", Tab(2) ConteolEnabled= 0 'False, Tab(2) ControlCount= 0, TabCaptιon(3) = "Tab 3", Tab(3) ConteolEnabled= 0 'False, Tab(3) ConteolCount= 0,
TabCaptιon(4) = "Tab 4", Tab(4) ConteolEnabled= 0 'False, Tab(4) ConteolCount= 0, TabCaptιon(5) = "Tab 5", Tab(5) ConteolEnabled= 0 'False, Tab(5) ControlCount= 0, TabCaptιon(6) = "Tab 6", TabPιcture(6) = "frmsubco frx" 0464, Tab(6) ControlEnabled= 0 'False, Tab(6) ConteolCount= 0, TabCaptιon(7) = "Tab 7", Tab(7) ConteolEnabled= 0 'False, Tab(7) ConteolCount= 0, TabCaptιon(8) = "Tab 8", Tab(8) ControlEnabled= 0 'False, Tab(8) ConteolCount= 0, TabCaptιon(9) = "Tab 9", Tab(9) ConteolEnabled= 0 'False, Tab(9) ConteolCount= 0,
TabCaptιon(lO) = "Tab 10", Tab(lO) ConteolEnabled= 0 'False, Tab(lO) ConteolCount= 0, TabCaptιon(l l) = "Tab 11", Tab(l 1) ConteolEnabled= 0 'False, Tab(l 1) ConteolCount= 0, End, Begin Threed SSPanel SSPanel4, Height = 1035, Left = 7980, Tablndex = 45, Top = 0, Width = 1515, JVersion = 65536, JExtentX = 2672, ExtentY = 1826, StockProps = 15, Caption = "SSPanel4", BackColor = 7837876, BeginProperty Font {0BE35203-8F91-11CE-9DE3- 00AA004BB851 } , Name = "MS Sans Serif, Size = 8 25, Charset = 0, Weight = 400, Underline = 0 'False, Italic = 0 'False; Steikethrough = 0 'False; EndProperty, Bevellnner = 1 ; Begin LeadLib.Lead IdLogo; Bindings = "frmsubco.frx":0480; Height = 915; Left = 60, Tablndex = 47; Top = 60; Width = 1395; JVersion = 524288, JExtentX = 2461 ; ExtentY = 1614; StockProps = 229; BackColor = 16777215; BeginProperty Font {0BE35203- 8F91-11CE-9DE3-00AA004BB851}; Name = "MS Sans Serif; Size = 8.25; Charset = 0; Weight = 400, Underline = 0 'False; Italic = 0 'False; Steikethrough = 0 'False; EndProperty; Appearance = 1; AutoScroll = 0 'False, ScaleHeight =
57; ScaleWidth = 89; DataField = ""; BitmapDataPath = ""; AnnDataPath = ""; End; End; Begin VB.CommandButton Commandl ; Cancel = -1 'Tme; Caption = "cdClose"; Height = 465; Index = 3; Left = 4740; Tablndex = 38; Tag = "5002"; Top = 1140; Width = 1155; End; Begin VB.CommandButton cmdTry; Caption = "cdTry Again"; Height = 495; Left = 4740; Tablndex = 37; Tag = "3607", Top = 600; Width = 1155; End, Begin VB.ListBox lstlnfo; Appearance = 0 'Flat, BackColor = &H00B2D3E1&; Height = 6465; Left = 0; Tablndex = 42; Top = 0, Visible = 0
'False; Width = 7965; End; Begin LeadLib.Lead ldMask, Height = 315; Index = 0; Left = 8520, Tablndex = 49; Top = 1800; Visible = 0 'False; Width = 195; JVersion = 524288, _ExtentX = 344; ExtentY = 556; _StockProps = 229; BackColor = -2147483633; BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851} ; Name = "MS Sans Serif; Size = 8.25; Charset = 0; Weight = 400; Underlme = 0 'False; Italic = 0 'False; Steikethrough = 0 'False; EndProperty; Appearance = 1, ScaleHeight = 17, ScaleWidth = 9; DataField = ""; BitmapDataPath = ""; AnnDataPath
= ""; End; Begin LeadLib.Lead IdMaskBuffer; Height = 315, Left = 8820; Tablndex = 50; Top = 1800; Visible = 0 'False; Width = 375; JVersion = 524288, ExtentX = 661; ExtentY = 556, _StockProps = 229; BackColor = - 2147483633; BegmProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851 } ; Name = "MS Sans Serif; Size = 8.25; Charset = 0; Weight = 400; Underline = 0 'False; Italic = 0 'False; Steikethrough = 0 'False; EndProperty; Appearance = 1; ScaleHeight = 17; ScaleWidth = 21; DataField = ""; BitmapDataPath = ""; AnnDataPath = "";
End;End;Attπbute VB Name = "FrmSubComp";Attπbute VB GlobalNameSpace = False; Attribute VB Creatable = False; Attribute VB Predeclaredld = True;Atteibute VB Exposed = False;
DatBase ; Attribute VB_Name = "DatBase";Optιon ExphcitjDim retval;Pubhc DBCompany As Stnng;Pubhc DBAmmation As StomgjPubhc VendorFilled As Boolean;Publιc IntemetCatalogFlag As Boolean;Pubhc SaveFilter As Byte;' ;'thιs function copies data from one table to another;'from the frmCopySteuct form;'It demonstrates the use of transactions to speed up thιs;'type of operation;' ;Public Function CopyData(rFromDB As Database, rToDB As Database, rFromName As
Steing, rToName As Stemg) As Integer; On Error GoTo CopyErr; Dim recRecordsetl As Recordset, recRecordset2 As Recordset; Dim I As Integer; Dun nRC As Integer; Dim fid As Field; 'open both recordsets; Set recRecordsetl = rFromDB.OpenRecordset(rFromName); Set recRecordset2 = rToDB.OρenRecordset(rToName); While recRecordsetl .EOF = False; recRecordset2.AddNew; 'this loop copies the data from each field to; 'the new table;' For Each fid In recRecordsetl. Fields; For l = 0 To recRecordsetl. Fields.Count - 1; Set fid = recRecordsetl .Fιelds(ι); recRecordset2(fld.Name).Value = fid. Value; Next; recRecordset2.Update; recRecordsetl. MoveNext; Wend; CopyData = Tme; Exit Functιon;CopyEn:; CopyData = False; If Err = 3078 Then Exit Function; MsgBox Err & Error; Exit Functιon;End Functιon;Pubhc Function CreateUndoDB() As Boolean; Dim MyDatabase As Database, MyTableDef As TableDef, MyField As Field; Dim DatabaseConteol 1 όLoaded As Boolean, DatabaseConteol 17Loaded As Boolean, 'On Error Resume Next; On Error GoTo CreateUndoDBJEπor; Dim gMsg, VaTitle, CreateUndoDB = False; 'Create Database; Set MyDatabase = Workspaces(0).CreateDatabase( GalleryPath & "\" & "VATemp.tmp", dbLangGeneral, dbVersιon20); ' Create new TableDef for project table; Set MyTableDef =
MyDatabase.CreateTableDef("Undo"); ' Add fields to MyTableDef; Set MyField = MyTableDef.CreateFιeld("ID", dbLong); MyField.Attπbutes = dbAutoIncrField; My TableDef. Fields. Append MyField; Set MyField = MyTableDef.CreateFιeld("ObjectName", dbText, 50); MyTableDef.Fields.Append MyField; MyField.AllowZeroLength = Tme; Set MyField = MyTableDef. CreateFιeld(" Sprite", dbLongBinary),
MyTableDef.Fields.Append MyField Set MyField = MyTableDef.CreateFιeld("Mask", dbLongBinary), MyTableDef.Fields.Append MyField: Set MyField = MyTableDef.CreateFιeld("BackGround", dbLongBinary), MyTableDef.Fields.Append MyField Set MyField = MyTableDef. CreateFιeld( "Top", dbDouble), MyTableDef.Fields.Append MyField; Set MyField = MyTableDef.CreateFιeld("Left", dbDouble); MyTableDef.Fields.Append MyField: Set MyField = MyTableDef.CreateFιeld("CD Volumn", dbText, 50); MyTableDef.Fields.Append MyField MyField.AllowZeroLength = Tme; Set MyField =
MyTableDef.CreateFιeld("CompanyName", dbText, 50); MyTableDef.Fields.Append MyField;
MyField.AllowZeroLength = Tme; Set MyField = MyTableDef.CreateFιeld("PerspecCoordXO", dbDouble, 50);
MyTableDef.Fields.Append MyField Set MyField = MyTableDef.CreateFιeld("PerspecCoordYO", dbDouble, 50) MyTableDef.Fields.Append MyField: Set MyField = MyTableDef. CreateFιeld("PerspecCoordXl", dbDouble, 50) MyTableDef.Fields.Append MyField Set MyField = MyTableDef.CreateFιeld("PerspecCoordYl ", dbDouble, 50) MyTableDef.Fields.Append MyField: Set MyField = MyTableDef.CreateFιeld("PerspecCoordX2", dbDouble, 50) MyTableDef Fields.Append MyField: Set MyField = MyTableDef.CreateFιeld("PerspecCoordY2", dbDouble, 50) MyTableDef.Fields.Append MyField: Set MyField = MyTableDef.CreateFιeld("PerspecCoordX3", dbDouble, 50) MyTableDef.Fields.Append MyField Set MyField = MyTableDef.CreateFιeld("PerspecCoordY3", dbDouble, 50) MyTableDef.Fields.Append MyField: Set MyField = MyTableDef. CreateFιeld("PerspecCoordX4", dbDouble, 50) MyTableDef.Fields.Append MyField: Set MyField = MyTableDef.CreateFιeld("PerspecCoordY4", dbDouble, 50), MyTableDef.Fields.Append MyField; Set MyField = My TableDef. CreateFιeld("PerspectιveType", dbDouble); MyTableDef.Fields.Append MyField: Set MyField = MyTableDef.CreateFιeld("DropType", dbDouble); MyTableDef.Fields.Append MyField: Set MyField = MyTableDef. CreateFιeld("ResιzePatPer", dbDouble, 50); MyTableDef.Fields.Append MyField; Set MyField = MyTableDef.CreateFιeld("IsShadow", dbBoolean); MyTableDef.Fields.Append MyField; Set MyField = MyTableDef. CreateFιeld("ShadowIntensity", dbDouble); MyTableDef.Fields.Append MyField; Set MyField = MyTableDef.CreateFιeld("IsTransparent", dbBoolean); MyTableDef.Fields.Append MyField; Set MyField = MyTableDef.CreateFιeld("IsEmbossed", dbBoolean); MyTableDef.Fields.Append MyField; Set MyField = MyTableDef.CreateFιeld("IsInterpolatιon", dbBoolean); MyTableDef.Fields.Append MyField Set MyField = MyTableDef.CreateFιeld("IsText", dbBoolean); MyTableDef.Fields.Append MyField 'Extra fields; Set MyField = MyTableDef.CreateFιeld("DatabaseID", dbText 50); MyTableDef.Fields.Append MyField; MyField AllowZeroLength = Tme; Set MyField = MyTableDef.CreateFιeld("UndoMode", dbText, 50), MyTableDef.Fields.Append MyField, MyField.AllowZeroLength = Tme; Set MyField = MyTableDef.CreateFιeld("SelectedObject", dbBoolean); MyTableDef.Fields.Append MyField; Set MyField = MyTableDef.CreateFιeld("InGroup", dbBoolean); MyTableDef.Fields.Append MyField; Set MyField = MyTableDef.CreateFιeld("Zoom", dbDouble);
MyTableDef.Fields.Append MyField; Set MyField = MyTableDef.CreateFιeld("Index", dbDouble); MyTableDef.Fields.Append MyField; Set MyField = MyTableDef.CreateFιeld("BackLeft", dbDouble), MyTableDef.Fields.Append MyField; Set MyField = MyTableDef CreateFιeld("BackTop", dbDouble); MyTableDef.Fields.Append MyField; 'Add table def to database; MyDatabase.TableDefs Append MyTableDef; 'Close database; MyDatabase.Close; Const DB SEC DBOPEN = &H2&; Dim My Workspace As Workspace, MyTable As
Document, myDB As Document; 'Set database security; Set MyDatabase = DBEngιne.Workspaces(0).OρenDatabase(GalleryPath & "\" & "VATemp.tmp"); Set myDB = MyDatabase. Contaιners("Databases").Documents("MSysDB"); Set MyTable = MyDatabase. Contaιners("Tables").Documents("Undo"); MyTable.UserName = "Users"; MyTable.Permissions = dbSecNoAccess; MyTable.UserName = "Admins", MyTable.Permissions = dbSecNoAccess; MyTable.UserName =
"Guests"; MyTable.Permissions = dbSecNoAccess; myDB.UserName = "Admins"; myDB. Permissions = Not DB SEC DBOPEN; myDB.UserName = "Users"; myDB. Permissions = Not DB SECJDBOPEN; myDB.UserName = "Guests"; myDB.Permissions = Not DB SEC DBOPEN; 'Return tme if success; CreateUndoDB = True;Exιt Functιon;CreateUndoDB_Error:; If DatabaseControll όLoaded = Tme Then; Unload frmMDI. vaΙmageBufferl(lό): DatabaseControll όLoaded = False; End If; If DatabaseConteol 17Loaded = Tme Then; Unload frmMDI.valmageBufferl (17): DatabaseConteol 17Loaded = False; End If; frmMDI.MousePointer = vbDefault; CreateUndoDB = False; MsgBox En & Enor; Exit Functιon;End Functιon,'Gets image from the database and places it in the buffer for 3D ammation;'IDstrrng=parsed ID, size = image size after drop, fsource = 1 cd database 2=ιnternet D&D;Sub GetAnιnatιonImage(IDSteing As Steing, animationWsize As Integer, ammationHsize As Integer, TForm As Form, fSource As Integer);Dιm DatabaseConteolLoaded As Boolean;Dιm va_msg_No3D As Stemg;va_msgJNo3D =
LoadResStrmg(6881) ' "Some or all of the components of this image were not downloaded successfully.
Component Images may not display correctly" ;On Enor GoTo GetAnιmatιonError;If fSource = 1 Then 'from Database; Load frmMDI. valmageBufferl (1): DatabaseConteolLoaded = Tme 'Patch for lead problem; frmMDI.vaImageBufferl(l).DatabaseName = DBPath & DBase 'sprite; frmMDI.vaImageBufferl(l).Refresh; frmMDI.vaImageBufferl(l).dtaField = ""; frmMDI. vaImageBufferl(l).RecordSource = "Select Image from
ProductDetail where ID = " & IDStπng; frmMDI. vaImageBufferl(l).Refresh; frmMDI.valmageBufferl(l) dtaField = "Image"; frmMDI.vaImageBufferl(l).Refresh; TForm.ldSpπteTransferBuffer.Bitmap = frmMDI.valmageBufferl(l). Bitmap; TForm.ldSpπteTransferBuffer.Size animationWsize, ammationHsize, RESIZE NORMAL; 'Set AmmateS = Tform.ldSpriteTransferBuffer.GetPicture; Unload frmMDI.valmageBufferl(l): DatabaseConteolLoaded = False; Load frmMDI.valmageBufferl(l): DatabaseConteolLoaded = Tme 'Patch for lead problem; frmMDI.vaImageBufferl(l).DatabaseName = DBPath & DBase 'sprite, frmMDLvaImageBufferl(l).Refresh; frmMDI.vaImageBufferl(l).dtaFιeld = ""; frmMDI. vaImageBufferl(l).RecordSource = "Select Mask from ProductDetail where ID = " & IDStemg; frmMDI.vaImageBufferl(l).Refresh; frmMDI.valmageBufferl(l) dtaField = "Mask", frmMDI.vaImageBufferl(l).Refresh; TForm.ldMaskTransferBuffer.Bitmap = frmMDI.vaImageBufferl(l).Bitmap,
TForm ldMaskTransferBuffer.Size animationWsize, ammationHsize, RESIZE NORMAL, 'Set AmmateM = Tform.ldMaskTransferBuffer.GetPicture; Unload frmMDI.valmageBufferl(l): DatabaseConteolLoaded = False;End If;If fSource = 2 Then 'internet, If frmNetTransfer.GetAnιmationFrame(IDStemg) Then 'success and resize; TForm.ldSpπteTransferBuffer.Size animationWsize, ammationHsize, RESIZE NORMAL; TForm.ldMaskTransferBuffer.Size animationWsize, ammationHsize, RESIZE NORMAL; Else; GoTo
GetAnimationError 'failed; End IftEnd IftExit Sub;GetAnιmatιonError:;MsgBox va_msgJNo3D;If DatabaseConteolLoaded Then 'if there is an enor unload conteol; Unload frmMDI. valmageBuffer 1(1), DatabaseConteolLoaded = False;End If;Exιt Sub;End Sub;'Adds current object to user database;Sub AddToUserDB(UserObjectName As Steing, CurrentForm As Foπn);Dιm Selectedlndex As Integer, n%;Dιm va Error lmageTooSmall As Strmg;va_Error_ImageTooSmall = LoadResStemg(6318) ' "Image is too small for
User database. Create a larger outline around the object and use See-through Erase to trim unwanted area ";On Enor GoTo AddToUserDBError;If frmMDI.ActiveForm.ObjectZorderl. Selectedlndex <> 0 Then ' if an object is selected; Screen.MousePointer = vbHourglass; 'unselect cunent object; Selectedlndex = frmMDI. ActiveForm.ObjectZorderl . Selectedlndex; 'Patch for small images;' If frmMDI.ldObjectBuffer.Bitmap Width < 9 Or frmMDI. ldObjectBuffer.BitmapHeight < 16 Then;' Screen.MousePointer = vbDefault;' DisplayEnorMessage va Error lmageTooSmall, vblnformation, VaTitle;' Exit Sub,' End If; With frmMDI; .Data3.DatabaseName = GalleryPath & "\" & UserDatabase 'App.Path & "\gallery\" & "user2.mdb"; .Data3. RecordSource = "ProductDetail"; .Data3.Refresh, 'save background; .Data3. Recordset. AddNew; .Data3.Recordset("ItemName") = UserObjectName; n% = .ldProjectImage.SetPιcture(frmMDI.ActιveForm.vaPιcture(SelectedIndex). Sprite); .ldProjectlmage.ForceRepamt ' 09/04/97 DEH Changed from VBX to OCX; retval =
SetPιxelBιts(.ldProjectImage, frmMDI.ActiveForm.BMBits); .ldProjectlmage.DataSaveBits = 24 'frmMDI.ActiveForm.BMBits '24; .ldProjectlmage.DataSaveFormat = FILE_JFIF; .ldProjectlmage.DataSaveQuahty = 2; n% = .ldProjectMask.SetPιcture(frmMDI.ActιveForm.vaPιcture(SelectedIndex).Mask); .ldProjectMask.ForceRepamt ' 09/04/97 DEH Changed from VBX to OCX; .ldProjectMask.DataSaveBits = 24 'FormState(fπ__MDI.ActιveForm.Tag).BMBιts '24; .ldProjectMask.DataSaveFormat = FILE JFIF,
.ldProjectMask.DataSaveQuahty = 2; .ldProjectMask.ForceRepamt ' 09/04/97 DEH Changed from VBX to OCX;
'update and close; .Data3.Recordset.Update; .Data3.Recordset.Qose '; .Data3. DatabaseName = "";
.Data3. RecordSource = ""; .Data3.Refresh; If UserDBForm Then ListUserDBItems 'update look of items m form; End
With; Screen.MousePointer = vbDefault;Else; DisplayErrorMessage VA NOTSELECTED, vblnformation, VaTιtle;End IftExit Sub;AddToUserDBEnor: ;If Err.Number <> 0 Then; gMsg = va_Error_Error & Ste(En.Number) & va Eπor WasGeneratedBy _; & En Source & Chr(13) & Err.Description & Chr(13) & " (AddToUserDB)", DisplayErrorMessage gMsg, vbCritical, VaTιtle;End IftScreen.MousePomter = vbDefault;Exιt Sub;End Sub;'Check for same cd or was it changed;'Database name is changed to the new volumn;Functιon CDVolumnChange() As Boolean;Dun TempDB As Stnng;On Error GoTo CD VolumnChangeError;CD VolumnChange = False, TempDB = DBase;Close #l;Open DBPath & "volumn.txt" For Input As #1; Input #1, DBase;Close #l ;If DBase o TempDB
Then; CD VolumnChange = Tme 'database changed;End IftExit Functιon;CDVolumnChangeEnor., CDVolumnChange = Tme 'not important; DBase = "Not Valid"; If En.Number <> 0 Then; gMsg = ""; If En.Number = 53 Then; gMsg = VAJ OLUMN, End If; gMsg = gMsg & va_Error_Enor & Ste(En.Number) & va Error WasGeneratedBy _; & Err.Source & Chr(13) & Err.Description & Chr(13) & " (CDVolumnChange)"; DisplayEnorMessage gMsg, vbCritical, VaTitle; End If; Close #l;Exιt Functιon;End Functιon;'Creates an object dragged from DB or Double Chcked;'XY position to drop, Product ID;Sub CreateObjectFromDB(X As Single, Y As Single, Prodldent As Integer, ThisForm As Form); Dim ind As Integer, Dim SzFactor As Single, szObject As Single, NewObjectHeight As Single, NewObjectWidth As Single; Dim SzStrmg As String; Dim DatabaseConteolLoaded As Boolean; On Enor GoTo CreateObjectFromDBError, If Not Check_Resources(MιnResourceReq, False) Then, DisplayEnorMessage VA_CANT & Chr(13) & VA_CANT1 & Chr(13) & VA_CANT2 & Chr(13) & VA_CANT3, vblnformation, VaTitle, Exit Sub; End If; Screen.MousePointer = vbHourglass; Load frmMDI. valmageBufferl (1)- DatabaseConteolLoaded = Tme 'Patch for lead problem; frmMDI.valmageBufferl (1). DatabaseName = DBPath & DBase; frmMDI.vaImageBufferl(l).Refresh; frmMDI.vaImageBufferl(l).dtaField = ""; frmMDI. valmageBufferl (1). RecordSource = "Select Image,SιzeFactor,ObjectScale from ProductDetail where ID = " & Prodldent; frπιMDI.vaImageBufferl(l).Refresh; frmMDI.vaImageBufferl(l).dtaFιeld = "Image", frmMDI.vaImageBufferl(l).Refresh; SzStrmg = frmMDI.valmageBufferl (l).Recordset("SιzeFactor"); If Not IsNull(frmMDI.vaImageBufferl(l).Recordset("ObjectScale")) Then szObject = fιmMDI.vaImageBufferl(l).Recordset("ObjectScale"); If SzStrmg = "1" Then; SzFactor = 1; Else; SzFactor = CInt(Left(SzSteιng, 1)) / CInt(Mιd(SzStπng, 3)); End If; ThisForm.ldSpπteTransferBuffer.Bitmap = frmMDI. valmageBufferl (1). Bitmap; Unload frmMDI. valmageBufferl (1): DatabaseConteolLoaded = False;
NewObjectHeight = 0; NewObjectWidth = 0; If szObject <> 0 And ThisForm.DoorSizeH <> 0 Then 'Object autoscalmg, SzFactor = 1 'no extea resizing below please; szObject = szObject / 84 '84 is the standard of the object; NewObjectHeight = ThisForm.DoorSizeH * szObject; NewObjectWidth = (NewObjectHeight / ThιsForm.ldSpπteTransferBuffer.BιtmapHeιght) * ThisForm.ldSpπteTransferBuffer.Bitmap Width; ThisForm.ldSpnteTransferBuffer.Size NewObjectWidth, CΙnt(NewObjectHeιght), GeneralResizeMode; End If; If
SzFactor o 1 Then; ThisForm.ldSpπteTransferBuffer.Size ThisForm.ldSpπteTransferBuffer.Bitmap Width * SzFactor, ThisForm. ldSpnteTransferBuffer.BitmapHeight * SzFactor, GeneralResizeMode; End If; Load frmMDI.valmageBufferl(l): DatabaseConteolLoaded = Tme; frmMDI.vaImageBufferl(l).DatabaseName = DBPath & DBase; frmMDI.vaImageBufferl(l).Refresh; fπr_MDI.vaImageBufferl(l).dtaFιeld = ""; frmMDI.vaImageBufferl(l).RecordSource = "Select Mask,Masked from ProductDetail where ID = " & Prodldent; frmMDI valmageBufferl(l) Refresh, frmMDI.valmageBufferl(l) dtaField = "Mask", frmMDI vaImageBufferl(l).Refresh; If frmMDI valmageBufferl(l) Recordset("Masked") = Tme Then 'has mask, ThιsForm.ldMaskTransferBuffer.Bιtmap = frmMDI.valmageBufferl (l).Bιtmap, Else 'if not mask create it, this code is unchecked yet; ThisForm.ldMaskTransferBuffer CreateBitmap ThisForm.ldSpπteTransferBuffer Bitmap Width, ThιsForm.ldSpπteTransferBuffer.BιtmaρHeιght, ThisForm BMBits, ThisForm IdMaskTransferBuffer Fill 0, End If; If
NewObjectHeight <> 0 Then 'Object autoscalmg, ThisForm. IdMaskTransferBuffer. Size ThisForm.ldSpπteTransferBuffer.Bitmap Width, ThisForm ldSpπteTransferBuffer.BitmapHeight, GeneralResizeMode; End If, If SzFactor <> 1 And frmMDI vaImageBufferl(l).Recordset("Masked") = Tme Then, ThisForm ldMaskTransferBuffer.Size ThisForm ldMaskTransferBuffer.Bitmap Width * SzFactor, ThisForm ldMaskTransferBuffer.BitmapHeight * SzFactor, GeneralResizeMode, End If, Unload frmMDI. valmageBufferl (1)- DatabaseConteolLoaded = False, ThisForm.ldMaskTransferBuffer.ScaleMode = 3, ThisForm Compose VA COMPOSE LOADJNEW; ThisForm VA LoadObject ((X) -
(ThisForm ldMaskTransferBuffer.Bitmap Width / 2)), ((Y) - (ThisForm ldMaskTransferBuffer.BitmapHeight / 2)), 'assign information; ThisForm vaPιcture(ThιsForm ObjectZorderl. Selectedlndex) ObjectName = TempDBProductName; ThιsForm.vaPιcture(ThιsForm ObjectZorderl .SelectedIndex).DatabaseID = Prodldent,
ThisForm vaPιcture(ThιsForm ObjectZorderl Selectedlndex). CDVolumn = DBase, ThιsForm.vaPιcture(ThιsForm.ObjectZorderl. Selectedlndex) CompanyName = DBCompany; ThisForm. vaPιcture(ThιsForm ObjectZorderl. Selectedlndex). Scalelnches = szObject * 84, ThisForm.UpdateShopprngList; If DBAmmation <> "" Then 'Animate this one; frmMDI.ssBottom(l) Caption = LoadResSterng(6858) ' "Loading multiple images"; ThisForm.NoOneButMe 'Only this object will have the ddd property set; ThisForm vaPιcture(ThιsForm. ObjectZorderl. SelectedIndex).DDD = DBAmmation, ThisForm.Ammationlndex = ThisForm ObjectZorderl. Selectedlndex, ThisForm New Animation DBAmmation, CInt(ThιsForm.ldSpnteTransferBuffer.Bιtmap Width), CΙnt(ThιsForm.ldSpπteTransferBuffer.BιtmapHeιght), ThιsForm.ObjectZorderl.SelectedIndex, 1, DBAmmation = ""; frmMDI.ssBottom(l).Captιon = ""; End If, Screen.MousePomter = vbDefault; Exit Sub,CreateObjectFromDBEπor:, If Err = 3061 Then, frmMDI.valmageBufferl(l) RecordSource = "Select Image from ProductDetail where ID = " & Prodldent; frmMDI.vaImageBufferl(l).Refresh; Resume Next; End If; If Err = 3265 Then; SzStrmg = 1; Resume Next; End If; If En = 13 Then; Resume; End If, If Err.Number <> 0 Then; gMsg = va_Error_Error & Ste(Err .Number) & vaJErrorJ asGeneratedBy _; & Err.Source & Chr(13) & Err.Description & Chr(13) & " (CreateObjectFromDB)"; DisplayErrorMessage gMsg, vbCritical, VaTitle; If DatabaseConteolLoaded Then Unload frmMDI.valmageBufferl(l)
'left created, End If; Screen.MousePointer = vbDefault; Exit Sub;End Sub;'Creates object from the current item m user database;Sub CreateObjectUserDB(X As Single, Y As Smgle, ThisForm As Form);Dιm md As Integer;On Enor GoTo CreateObjectUserDBError;If Not Check_Resources(MrnResourceReq, False) Then; DisplayErrorMessage VA_CANT & Chr(13) & VA_CANT1 & Chr(13) & VA CANT2 & Chr(13) & VA_CANT3, vblnformation, VaTitle, Exit Sub;End If, With ThisForm; Screen.MousePomter = vbHourglass; .IdSpriteTransferBuffer.Bitmap = frmUserDatase ldUserlmage.Bitmap; ldMaskTransferBuffer.Bitmap = frmUserDatase.ldUserMask.Bitmap, "Fix for tini objects, must be done m the save; If frmUserDatase. ldUserlmage.BitmapWidth < 9 Or frmUserDatase. ldUserlmage.BitmapHeight < 16 Then; .ldMaskTransferBuffer.Size frmUserDatase. ldUserlmage.BitmapWidth, frmUserDatase. ldUserlmage.BitmapHeight, RESIZE NORMAL, ' frmMDI. ActiveForm. ldlmageMask(ind). Resize Width = frmUserDatase. ldUserlmage.Bitmap Width; ' frmMDI.ActιveForm.ldImageMask(md).ResιzeHeιght = frmUserDatase.ldUserlmage.BitmapHeight; ' frmMDI.ActιveForm.ldImageMask(ιnd).Resιze = Tme; '; ' ' 09/05/97 DEH Changed from VBX to OCX, Dim
ImageMaskDC As Long, UserMaskDC As Long; ImageMaskDC = .ldMaskTransferBuffer.GetBitmapDC; UserMaskDC = frmUserDatase.ldUserMask.GetBitmapDC; ' ImageMaskDC = frmMDLActiveForm.ldImageMask(md).GetBitmapDC; ' UserMaskDC = frmUserDatase.ldUserMask.GetBitmapDC; retval = BitBlt(ImageMaskDC, 0, 0, .ldMaskTransferBuffer.Bitmap Width, .ldMaskTransferBuffer.BitmapHeight, UserMaskDC, 0, 0, SRCCOPY), .ldMaskTransferBuffer.ReleaseBitmapDC; frmUserDatase IdUserMask.ReleaseBittnapDC; End If, .Compose VA_COMPOSE_LOADJNEW, VA LoadObject ((X) - (.ldMaskTransferBuffer.Bitmap Width / 2)), ((Y) - (.ldMaskTransferBuffer.BitmapHeight / 2)); 'assign information; vaPιcture(. ObjectZorderl. Selectedlndex). ObjectName = frmUserDatase. cmbUser.Text;
.vaPιcture(.ObjectZorderl.SelectedIndex).DatabaseID = 0; .vaPιcture(. ObjectZorderl. Selectedlndex). CDVolumn = ""
'don't touch this one; .vaPιcture(. ObjectZorderl. Selectedlndex). CompanyName = LoadResStemg(6859) ' "User";
.vaPιcture(. ObjectZorderl. Selectedlndex). Scalelnches = 0; .UpdateShoppιngLιst;End Wιth;Screen.MousePoιnter = vbDefault;Exιt Sub;'EARLY EXIT;' ind = LoadObject(frmMDI.ActιveForm);' frmMDI.ActιveForm.ldImageObject(md).Toρ = 10;' frmMDI.ActιveForm.ldImageObject(ιnd)Left = 10;' frmMDI.ldObjectBuffer.Bitmap = frmUserDatase. ldUserlmage.Bitmap;' RetVal = SetPιxelBιts(fιmMDI.ldObjectBuffer, FormState(frmMDI.ActιveFoπn.Tag).BMBιts);;; frmMDI.ActiveFoim.ldImageMask(ind).Bitmap = frmUserDatase. ldUserMask.Bitmap;' RetVal = SetPιxelBιts(frmMDI.ActιveForm.ldImageMask(md), FormState(frmMDI.ActιveForm.Tag).BMBιts);';' If frmUserDatase.ldUserlmage.Bitmap Width < 9 Or frmUserDatase.ldUserlmage.BitenapHeight < 16 Then;' frmMDI.ActιveForm.ldImageMask(md).Resιze Width = frmUserDatase. ldUserlmage.Bitmap Width;' frmMDI.ActiveForm.ldImageMask(ind).ResizeHeight = frmUserDatase.ldUserImage.BitmapHeight; fιmMDI.ActιveForm.ldIrnageMask(_nd).Resιze = Tme;';' ' 09/05/97 DEH Changed from VBX to OCX;' Dun
ImageMaskDC As Long, UserMaskDC As Long;' ImageMaskDC = frmMDI.ActiveForm.ldImageMask(md).GetBitmapDC; UserMaskDC = frmUserDatase.ldUserMask.GetBitmapDC;'
RetVal = BitBlt(ImageMaskDC, 0, 0, frmMDI.ActιveForm.ldImageMask(md).Bιtmaρ Width, frmMDI.ActιveForm.ldImageMask(ιnd).BιtmapHeιght, UserMaskDC, 0, 0, SRCCOPY);' frmMDI.ActiveForm.ldImageMask(ind).ReleaseBitenapDC; frmUserDatase. IdUserMask.ReleaseBittnapDC;' End If;',' frmMDI.ActιveForm.ldImageMask(md).ForceRepaint '- — 09/04/97 DEH Changed from VBX to OCX;';' SelectObjects(frmMDI.ActiveForm) = ind;' UnselectObject frmMDI.ActiveForm;' '*B*;' NewPartTouchlt frmMDI. ActιveForm.ldImageObject(ιnd).Top, frmMDI.ActiveForm.ldlmageObject(md) Top + frmMDI.ActιveForm.ldImageObject(ιnd).Heιght, frmMDI.ActiveForm.ldImageObject( ind). Left, frmMDI.ActιveForm.ldImageObject(md)Left + frmMDI.ActiveForm.ldlmageObject(ind) Width, CurrentObj(frmMDI.ActιveForm.Tag), frmMDI ActiveForm, Tme;' NewRegenerate frmMDI.ActiveForm,' '*B*;' CurrentObj(frmMDI.ActιveForm.Tag) = 0;' UnselectObject frmMDI.ActiveForm;'
CurrentObj(frmMDI.ActιveForm.Tag) = ind;' SelectObjects(frmMDI.ActιveForm) = md,',' ObjectDιscπptιon( frmMDI.ActiveForm. Tag, CurrentObj(frmMDI.ActιveFoιm.Tag)).Name = frmUserDatase. cmbUser.Text,' ObjectDιscπptιon(frmMDI.ActιveForm.Tag, CuιτentObj(frmMDI.Act-veForm.Tag)).ID = 0;' ObjectDιscπptιon(frmMDI.ActιveForm.Tag, CurrentObj(frmMDI.ActιveForm.Tag)) Volumn = "None";Screen.MousePoιnter = vbDefault;Exιt
Sub;CreateObjectUserDBEnor:;If En.Number <> 0 Then, gMsg = va_Error_Error & Str(Err.Number) & va Error WasGeneratedBy _; & Err.Source & Chr(13) & Err.Description & Chr(13) & " (CreateObjectUserDB)"; DisplayErrorMessage gMsg, vbCritical, VaTιtle;End IftScreen. MousePomter = vbDefault;Exιt Sub;End Sub, 'Deletes the current item m the user database;Sub DeleteUserItem();Dιm response As Integer;On Error GoTo DeleteUserItemError;response = DιsplayMsgboxFunctιons(VA_DELUSER, vbYesNo, VaTitle), If response = vbYes
Then; Screen.MousePointer = vbHourglass; With frmMDI, .Data3.DatabaseName = GalleryPath & "\" & UserDatabase ' App.Path & "\gallery\" & "user2.mdb" 'put this in mam; .Data3.RecordSource = "Select ID, Itemname,Image,Mask from ProductDetail where ID = " & CurrentUserltem; .Data3. Refresh; .Data3.Recordset.MoveFιrst; If .Data3.Recordset("ItemName") <> "Window - Sample" Then 'hard coded; .Data3.Recordset.Delete; Else; DisplayEnorMessage VA_CANTDELETE; End If; .Data3.Recordset.Oose;
.Data3.DatabaseName = ""; .Data3.RecordSource = ""; .Data3.Refresh; End With; Screen.MousePointer = vbDefault; LιstUserDBItems;End IftExit Sub;DeleteUserItemError:;If Err.Number <> 0 Then; gMsg = vaJErrorJEnor & Ste(Err.Number) & va_Error_WasGeneratedBy _; & Err.Source & Chr(13) & Err.Description & Chr(13) & " (DeleteUserltem)"; DisplayErrorMessage gMsg, vbCritical, VaTιtle;End If;Screen.MousePornter = vbDefault;Exιt Sub;End Sub;'Hιdes all Database forms if they are open;Sub HιdeAllDBForm();Dιm I As Integer;On Error Resume
Next;frmMDI.mmcVoice.Command = "Close" 'stop WAVS from CD;HιdeStπps;ReLoadιng = False;DBOpen = False 'will open the new database next tιme;'frmMDI.vaBtnl(18). Value = False 'cd actually goes back m recursive to false;CDState = False;frmMDI.Pιcture2.Heιght = 450;fπnMDI.cmbVendor.Clear;fπnMDI.cmbCategorιes.Clear;frrnMDI.cmbsubcategones.Clear;If QuickOpened Then QuιckDB.cmbtest.Clear;GetFamιlyMembers 'for compatibility with old DB and old method of db access; VendorFilled
= False;End Sub;'Only hides them;Sub HιdeAnyStnps();On Error Resume Next;Dιm l As Integer; For I = 1 To 3; If SteipShowmg(ι) = Tme Then; DBForm(ι).Hιde; End If; Next I; If DBSearch Then FrmSearch.Hide; If ObjectListLoaded = Tme Then frmObjectList.Hide; If QuickOpened Then QuickDB.Hide; If UserDBForm Then frmUserDatase.Hide; If IntemetCatalogFlag Then frmlnternetDB.Hide; If pEffectsActive Then frmEffects.Hide; If pDropperActive Then frmColorPicker.Hide; If pTextActive Then frmText.Hide; If CompOpen = Tme Then FrmSubComp.Hιde;End Sub;'Hιdes any opened stπps;Sub HιdeStπps();Dιm 1 As Integer;On Error Resume Next;For 1 = 1 To 3; If StπpShowιng(ι) = Tme Then; Unload DBForm(ι); End IftNext ι;End Sub;'Lιst the items in the user database;Sub LιstUserDBItems();Dιm NumberOfRecords As Integer, I As Integer;On Error GoTo LιstUserDBItemsError;Screen.MousePoιnter = vbHourglass;Wιth frmMDI; .Data3 DatabaseName = GalleryPath & "\" & UserDatabase ' App.Path & "\gallery\" & "user2.mdb" 'put this in main; '.Data3.RecordSource =
"ProductDetail"; .Data3. RecordSource = "Select ID, Itemname,Image,Mask from ProductDetail order by Itemname", ,Data3.Refresh, .Data3.Recordset.MoveLast, .Data3 Recordset.MoveFirst; NumberOfRecords = .Data3.Recordset.RecordCount; If NumberOfRecords > 0 Then; frmUserDatase. cmbUser.Clear; For I = 0 To NumberOfRecords - 1; frmUserDatase. cmbUser.Addltem .Data3.Recordset("ItemName"), I; frmUserDatase.cmbUser.ItemData(ι) = .Data3.Recordset("ID") 'PUT IN; If I <> NumberOfRecords - 1 Then
.Data3.Recordset.MoveNext; Next I; End If, .Data3. Recordset. Close, .Data3. DatabaseName = ""; Data3. RecordSource = ""; .Data3. Refresh; frmUserDatase.cmbUser.Text = frmUserDatase.cmbUser.Lιst(O), CunentUserltem = frmUserDatase. cmbUser.ItemData(O), 'MsgBox CurrentUserltem; ShowUserImage;End Wιth;Screen.MousePomter = vbDefault;Exιt Sub;ListUserDBItemsError:;If Err.Number <> 0 Then, gMsg = va_Error_Error & Str(Err.Number) & va Error WasGeneratedBy _; & Err.Source & Chr(13) & En.Descπption &
Chr(13) & " (ListUserDBItems)"; DisplayErrorMessage gMsg, vbCritical, VaTιtle;End IftScreen.MousePomter = vbDefault;Exιt Sub;End Sub;'Allows user to change the name of an item m user db;Sub ModifyUserItem();Dιm UserObjectName As Steing, xtra As Stnng;On Error GoTo ModifyUserItemError;xtea = VA_EXAMPl;Do; UserObjectName = InputBox(VAJNAME & xtea, VaTitle, frmUserDatase.cmbUser.Text); xtea = VA_CHARNEED; If UserObjectName = "" Then Exit Sub 'cancel;Loop Until Len(UserObjectName) < 50;Screen.MousePoιnter = vbHourglass; With frmMDI; .Data3.DatabaseName = GalleryPath & "\" & UserDatabase ' App.Path & "\gallery\" & "user2.mdb" 'put this m main; .Data3. RecordSource = "Select ID, Itemname,Image,Mask from ProductDetail where ID = " & CurrentUserltem; .Data3.Refresh; .Data3.Recordset.MoveFirst; If .Data3.Recordset("ItemName") o "Window - Sample" Then 'hard coded; .Data3.Recordset.Edit; .Data3.Recordset("ItemName") = UserObjectName; .Data3.Recordset.Update; Else; DisplayEnorMessage VA_CANTMODIFY; End If; .Data3.Recordset.Close;
.Data3.DatabaseName = ""; .Data3.RecordSource = ""; .Data3.Refresh;End With; Screen.MousePomter = vbDefault;LιstUserDBItems;Exιt Sub;ModιfyUserItemEπor:;If En.Number <> 0 Then; gMsg = vaJΞπor Eπor & Ste(Err.Number) & va Error WasGeneratedBy _; & En.Source & Chr(13) & Err.Description & Chr(13) & " (ModifyUserltem)"; DisplayErrorMessage gMsg, vbCritical, VaTιtle;End IftScreen.MousePointer = vbDefault;Exιt Sub;End Sub;'Opens an image as background to a project;Sub OpenBackgroundFromDB(ImageIDdB As Integer);Dιm
DatabaseConteolLoaded As Boolean;On Enor GoTo OpenBackgroundFromDBError; Screen.MousePointer = vbHourglass; Load frmMDI. valmageBufferl(l): DatabaseConteolLoaded = Tme 'Patch for lead problem; frmMDI.vaImageBufferl(l).DatabaseName = DBPath & DBase; frmMDI. vaImageBufferl(l).Refresh; frmMDI.vaImageBufferl(l).dtaFιeld = ""; frmMDI.vaImageBufferl(l).RecordSource = "Select Image from ProductDetail where ID = " & ImagelDdB; frmMDI.vaImageBufferl(l).Refresh; frmMDI.valmageBufferl (1). dtaField = "Image"; frmMDI. valmageBufferl (1). Refresh; frmMDI ldTwain.Bitmap = frmMDI.valmageBufferl (1). Bitmap; OpenMode = "DataBase"; Dim NewForm As New FrmMam, NewForm.Show, Unload frmMDI. valmageBuffer 1(1)- DatabaseControlLoaded = False, Screen.MousePointer = vbDefault;Exιt Sub;OpenBackgroundFromDBEπor:; If En.Number <> 0 Then; gMsg = va ErrorJError & Str(Eπ.Number) & va_Error_WasGeneratedBy _; & En.Source & Chr(13) & Err.Description & Chr(13) & " (CreateObjectFromDB)",
DisplayEnorMessage gMsg, vbCritical, VaTitle; If DatabaseConteolLoaded Then Unload frmMDI valmageBufferl (1) 'left created, End If; Screen.MousePointer = vbDefault;Exιt Sub;End Sub;'Opens the background only for a project;'Returns tme if successful;Functιon OpenProjectBackground(flname As Stemg, DoToForm As Form) As Boolean; Dim ind As Integer, r As Integer, TotalObjects As Integer; Dim va cap OpeningProjectBackgmd As Steing; Dim DatabaseConteolLoaded As Boolean; va_cap_OpenmgProjectBackgrnd = LoadResStemg(6161) ' "Opening project background"; On Error GoTo OpenPro ectBackgroundError; Screen.MousePomter = vbHourglass; frmMDI. ssBottom(l). Caption = va_cap_OpenιngProjectBackgrnd; With frmMDI; 'open database project; Load frmMDI. valmageBufferl (10): DatabaseControlLoaded = Tme 'Patch for lead problem; .vaImageBufferl(10).DatabaseName = flname; .valmageBufferl (lO).Refresh; .valmageBufferl(lO). dtaField = ""; valmageBufferl (10). RecordSource = "Project"; .valmageBufferl(lO). Refresh; .valmageBufferl (10). dtaField =
"Image"; .valmageBufferl (10). Refresh; .ldlmportBuffer.Bitmap = .vaTmageBufferl(10).Bιtmap; DoToForm.picScreen.Picture = .ldlmportBuffer.GetPicture; DoToForm.DoorSizeH =
.vaImageBufferl(10).Recordset("top"); DoToForm.DoorSrzeW = .vaImageBufferl(10).Recordset("left"), Unload .valmageBufferl(lO): DatabaseConteolLoaded = False; End With; Screen.MousePomter = vbDefault; OpenProjectBackground = True;Exιt Functιon;OpenProjectBackgroundError:; If Err = 3024 Then; gMsg = va_Error_Eπor & Str(Err .Number) & va_Eπor_WasGeneratedBy _; & Err.Source & Chr(13) & Eπ.Descπption & Chr(13) & " (OpenProjectBackground)"; DisplayErrorMessage gMsg, vbCritical, VaTitle; OpenProjectBackground = False; If DatabaseConteolLoaded Then; Unload frmMDI.valmageBufferl(lO); DatabaseConteolLoaded = False; End If; Screen.MousePointer = 0; Exit Function; End If; If Err.Number <> 0 Then; gMsg = va ErrorJEnor & Ste(Err.Number) & va Enor WasGeneratedBy _; & En.Source & Chr(13) & Err.Description & Chr(13) & "
(OpenProjectBackground)"; DisplayErrorMessage gMsg, vbCritical, VaTitle; End If; On Error Resume Next; 'release dataconteol else stays in this project; Unload frmMDI.valmageBufferl(lO): DatabaseConteolLoaded = False; Screen.MousePointer = vbDefault; OpenProjectBackground = False; Exit Functιon;End Functιon;'Opens a project;'Flname is the name of the project, ;'Returns tme if all OK;Functιon OpenProjectItems(flname As Stemg, DoToForm As Form) As Boolean;Drm md As Integer, r As Integer, TotalObjects As Integer, pixcolor As Long, X As
Integer, Y As Integer;Dιm TempN As Stπng;Dιm SHDC As Long, MHDC As Long, Return Value As Long;Dιm DatabaseControll OLoaded As Boolean, DatabaseControll lLoaded As Boolean, LoadOldProject As Boolean;Dιm va_msg_01dVersιonl As Steing, va_msg_01dVersιon2 As Stemg;va_msg_01dVersιonl = LoadResStnng(6860) '
"This project was created with an earlier version. ";va_msg_01dVersιon2 = LoadResStπng(6861) ' "When savmg the project it will be saved with the new format";'OPEN PROJECT;'READ FIRST RECORD AND PUT IN BACKGROUND;'LOOP THROUGH ALL LOAD AND PLACE\;'ASSING ALL ATTRIBUTES;On Error GoTo OpenProjectltemsError; Screen.MousePointer = vbHourglass; Dim va cap InsertingObject As String, Dim va_cap_LoadmgProjecfWιndow As Steing; va cap LoadingProjectWmdow = LoadResStnng(6085) ' "Loadmg project window"; va_cap_InsertιngObject = LoadResStrmg(6084) ' "Inserting object "; With frmMDI; 'open database project; Load frmMDI.valmageBufferl (10): DatabaseControll OLoaded = Tme 'Patch for lead problem,
.valmageBufferl (10). DatabaseName = flname; .vaImageBufferl(10).Refresh; .vaImageBufferl(10).dtaFιeld = "", .vaImageBufferl(10).RecordSource = "Select * from Project"; .vaImageBufferl(10).Refresh; .vaImageBufferl(10).dtaFιeld = "Image"; .vaImageBufferl(10).Refresh; Load frmMDI.valmageBufferl(l l)- DatabaseControll lLoaded = Tme 'Patch for lead problem; valmageBufferl (11). DatabaseName = flname, valmageBufferl (1 l).Refresh; .valmageBufferl (1 l).dtaFιeld = ""; .valmageBufferl (11). RecordSource = "Select Mask from Project", .vaImageBufferl(l l).Refresh; .valmageBufferl (l l).dtaFιeld = "Mask"; .valmageBufferl(l l). Refresh, .vaImageBufferl(10).Recordset.MoveLast; .vaImageBufferl(10).Recordset.MoveFιrst; .vaImageBufferl(l l).Recordset.MoveLast; .valmageBufferl (11). ecordset.MoveFirst; On Error GoTo LoadOldProject; If IsNull(.vaImageBufferl(10).Recordset("IsShadow")) Then; 'Check to see if field is m database; End IftDoEvents; On Error GoTo OpenProjectltemsError; TotalObjects =
.valmageBufferl (lO).Recordset.RecordCount - 1; If TotalObjects > 0 Then; For r = 1 To TotalObjects; .ssBottom(l). Caption = va_cap_InsertιngObject & r & va_cap_of & TotalObjects; .valmageBuffer 1 ( 10).Recordset.MoveNext; .valmageBuffer 1 ( 11 ).Recordset.MoveNext; DoToForm.ldSpπteTransferBuffer.Bιtmap = .vaImageBufferl(10).Bιtmap; DoToForm.ldMaskTransferBuffer.Bitmap = .vaImageBufferl(l l).Bιtmap; Load m an old project, need to resize the sprite; If LoadOldProject = Tme Then;
DoToForm.ldSpπteTransferBuffer.Size DoToForm.ldMaskTransferBuffer.Bitmap Width,
DoToForm.ldMaskTransferBuffer.BιtmapHeιght, RESIZE_NORMAL; SHDC = .vaImageBufferl(10).GetBιtmapDC; MHDC = DoToForm.ldSpπteTransferBuffer.GetBιtmapDC; RetumValue = SteetchBlt(MHDC, 0, 0, DoToForm IdSpriteTransferBuffer.Bitmap Width, DoToForm.ldSpπteTransferBuffer.BitmapHeight, SHDC, 0, 0, DoToForm.ldSpπteTransferBuffer.Bιtmaρ Width, DoToForm.ldSpriteTransferBuffer.BitmapHeight, SRCCOPY),
.vaImageBufferl(10).ReleaseBιtmapDC; DoToForm.ldSpnteTransferBuffer.ReleaseBitmapDC; End If; DoToForm. Compose VA_COMPOSE_LOAD_NEW; If LoadOldProject Then; DoToForm. VAJLoadObject .vaImageBufferl(10).Recordset("Left") - 8, .vaImageBufferl(10).Recordset("Top") - 8; DoToForm.vaPιcture(DoToForm.ObjectZorderl.SelectedIndex).RepaιntConserve DoToForm.pιcComposite.hDC, DoToForm. vaPιcture(DoToForm. ObjectZorderl .SelectedIndex).Left,
DoToForm.vaPιcture(DoToForm.ObjectZorderl .Selectedlndex). Top; Else; If Not IsNull(.vaImageBufferl(10).Recordset("ExteaDoublel ")) Then; DoToForm. VA_LoadObject .valmageBufferl ( 10).Recordset("Left"), .valmageBuffer 1( 10).Reeordset("Top"), .vaImageBufferl(10).Recordset("ExteaDoublel"); Else; DoToForm. VA LoadObject .vaImageBufferl(10).Recordset("Left"), .vaImageBufferl(10).Recordset("Top"); End If; End If; TempN = ""; If Not IsNull( valmageBufferl (10) Recordset("Company")) Then, TempN = valmageBufferl(lO) Recordset("Company"), If Left(TempN, 3) = "+++" Then, DoToForm vaPιcture(DoToForm ObjectZorderl Selectedlndex) DropType = CInt(Mιd(TempN, 4, 2)), TempN = Mιd(TempN, 6), End If, End If, DoToForm vaPιcture(DoToForm ObjectZorderl Selectedlndex) CompanyName = TempN, DoToForm vaPιcture(DoToForm ObjectZorderl Selectedlndex) ObjectName = valmageBuffer 1 ( 10) Recordset("ItemName"),
DoToForm vaPιcture(DoToForm ObjectZorderl Selectedlndex) DatabaselD = valmageBufferl (10) Recordset("ID"), If Not IsNull( valmageBufferl (10) Recordset("Volume")) Then DoToForm vaPιcture(DoToForm ObjectZorderl Selectedlndex) CDVolumn = valmageBufferl(lO) Recordset("Volume"), If Not IsNull( valmageBufferl (10) Recordset("ResιzePercent")) Then
DoToForm vaPιcture(DoToForm ObjectZorderl Selectedlndex) ResizePatPer = valmageBufferl (10) Recordset("ResιzePercent"), 'Display button, If r = TotalObjects Then, Dim LinkSt As String, LinkSt = valmageBufferl (10) Recordset("Volume"), If LinkSt <> "User" And LinkSt <> "None" And LinkSt <> "" And valmageBufferl(lO) Recordset("ID") <> 0 Then, frmMDI pblnfoNet Visible = False, frmMDI pblnfoCD Visible = Tme, Elself LinkSt <> "" Then, frmMDI pblnfoCD Visible = False, frmMDI pblnfoNet Visible = Tme, Else, frmMDI pblnfoCD Visible = False, frmMDI pblnfoNet Visible = False, End If, End If, If LoadOldProject = False Then, DoToForm vaPιcture(DoToForm ObjectZorderl Selectedlndex) DropType = valmageBufferl (10) Recordset("Type"),
DoToForm vaPιcture(DoToForm ObjectZorderl Selectedlndex) PerspectiveType = valmageBufferl (10) Recordset("PerspectιveType"),
DoToForm vaPιcture(DoToForm ObjectZorderl Selectedlndex) PerspecCoordXO = vaImageBufferl(10) Recordset("0X"),
DoToForm vaPιcture(DoToForm ObjectZorderl Selectedlndex) PerspecCoordYO = vaImageBufferl(10) Recordset("0Y"), DoToForm vaPιcture(DoToForm ObjectZorderl Selectedlndex) PerspecCoordXl = vaImageBufferl(10) Recordset("lX"),
DoToForm vaPιcture(DoToForm ObjectZorderl Selectedlndex) PerspecCoordYl = vaImageBufferl(10) Recordset("lY"),
DoToForm vaPιcture(DoToForm ObjectZorderl Selectedlndex) PerspecCoordX2 = valmageBufferl(lO) Recordset("2X"),
DoToForm vaPιcture(DoToForm ObjectZorderl Selectedlndex) PerspecCoordY2 = vaImageBufferl(10) Recordset("2Y"),
DoToForm vaPιcture(DoToForm ObjectZorderl Selectedlndex) PerspecCoorcDG = vaImageBufferl(10) Recordset("3X"), DoToForm vaPιcture(DoToForm ObjectZorderl Selectedlndex) PerspecCoordY3 = .valmageBufferl (10).Recordset("3Y");
DoToForm. vaPιcture(DoToForm.ObjectZorderl.SelectedIndex).PerspecCoordX4 = vaImageBufferl(10).Recordset("4X"),
DoToForm.vaPιcttιre(DoToForm. ObjectZorderl. Selectedlndex). PerspecCoordY4 = .vaImageBufferl(10).Recordset("4Y"); Else,
DoToForm. vaPιcture(DoToForm.ObjectZorderl. Selectedlndex). PerspectiveType =
.vaImageBufferl(10).Recordset("Type"); Select Case
DoToForm. vaPιcture(DoToForm.ObjectZorderl . Selectedlndex). PerspectiveType; Case 1 ,
DoToForm vaPιcture(DoToForm. ObjectZorderl. Selectedlndex). PerspectiveType = 2; DoToForm. vaPιcture(DoToForm.ObjectZorderl .Selectedlndex). PerspecCoordXO =
.vaImageBufferl(10).Recordset("0X") * 2;
DoToForm.vaPιcture(DoToForm.ObjectZorderl.SelectedIndex).PerspecCoordY0 =
.valmageBufferl (10).Recordset("0Y"),
DoToForm. vaPιcture(DoToForm. ObjectZorderl. Selectedlndex). PerspecCoordXl = .valmageBufferl (lO).Recordset('' IX") * 2,
DoToForm. vaPιcture(DoToForm. Obj ectZorder 1.Selectedlndex) .PerspecCoord Y 1 = vaImageBufferl(10).Recordset("lY");
DoToForm. vaPιcture(DoToForm.ObjectZorderl.SelectedIndex).PerspecCoordX2 =
.vaImageBufferl(10).Recordset("2X") * 2; DoToForm. vaPιcture(DoToForm. ObjectZorderl .SelectedIndex).PerspecCoordY2 = vaImageBufferl(10).Recordset("2Y");
DoToForm. vaPιcture(DoToForm.ObjectZorderl.SelectedIndex).PersρecCoordX3 =
.vaImageBufferl(10).Recordset("3X") * 2;
DoToForm. vaPιcture(DoToForm.ObjectZorderl. Selectedlndex). PerspecCoordY3 = .vaImageBufferl(10).Recordset("3Y");
DoToForm. vaPιcture(DoToForm. Obj ectZorder 1. Selectedlndex) .PersρecCoordX4 =
.vaImageBufferl(10).Recordset("4X") * 2;
DoToForm. vaPιcture(DoToForm. Obj ectZorder 1. Selectedlndex) .PersρecCoordY4 =
.vaImageBufferl(10).Recordset("4Y"); Case 2; DoToFoιm.vaPιcture(DoToForm. ObjectZorderl. Selectedlndex). PerspectiveType = 1;
DoToForm vaPιcture(DoToForm.ObjectZorderl .SelectedIndex).PerspecCoordXO =
.vaImageBuffe l(10).Recordset("0X");
DoToForm. vaPιcture(DoToForm. ObjectZorderl. Selectedlndex). PerspecCoordYO =
.valmageBufferl (10).Recordset("0Y") * 2, DoToForm. vaPιcture(DoToForm.ObjectZorderl. Selectedlndex). PerspecCoordXl = .vaImageBufferl(10).Recordset("lX");
DoToForm. vaPιcture(DoToForm.ObjectZorderl.SelectedIndex).PerspecCoordYl =
.vaImageBufferl(10).Recordset("lY") * 2,
DoToForm vaPιcture(DoToForm.ObjectZorderl .SelectedIndex).PerspecCoordX2 = .vaImageBufferl(10).Recordset("2X"),
DoToForm.vaPιcture(DoToForm.ObjectZorderl .SelectedIndex).PerspecCoordY2 =
.vaImageBufferl(10).Recordset("2Y") * 2;
DoToForm.vaPιcture(DoToForm.ObjectZorderl . Selectedlndex). PersρecCoordX3 =
.vaImageBufferl(10).Recordset("3X"); DoToForm. vaPιcture(DoToForm.ObjectZorderl .SelectedIndex).PerspecCoordY3 =
.vaImageBufferl(10).Recordset("3Y") * 2;
DoToForm.vaPιcture(DoToForm.ObjectZorderl .SelectedIndex).PerspecCoordX4 =
.valmageBufferl (10).Recordset("4X");
DoToForm. vaPιcture(DoToForm. ObjectZorderl. SelectedIndex).PerspecCoordY4 = .valmageBufferl (10).Recordset("4Y") * 2; Case Else; 'Do nothing; End Select, End If;
DoToForm vaPιcture(DoToForm. ObjectZorderl .Selectedlndex). IsShadow =
.valmageBufferl (10) Recordset("IsShadow");
DoToForm. vaPιcture(DoToForm.ObjectZorderl. Selectedlndex). Shadowlntensity =
.valmageBuffer 1 ( 10).Recordset("ShadowIntensity"); DoToForm. vaPιcture(DoToForm. ObjectZorderl .Selectedlndex). IsTransparent =
.valmageBufferl (10).Recordset("IsTransρarent");
DoToForm. vaPιcture(DoToForm. ObjectZorderl. Selectedlndex). IsEmbossed =
.vaImageBufferl(10).Recordset("IsEmbossed");
DoToForm. vaPιcture(DoToForm.ObjectZorderl. Selectedlndex). Islnterpolation = .valmageBuffer 1(10) .Recordset("IsInterpolatιon") ;
DoToForm.vaPιcture(DoToForm. ObjectZorderl . SelectedIndex).IsText = .valmageBufferl (10).Recordset("IsText");
'Shopmg list; If Not IsNull(.vaImageBufferl(10).Recordset("Unιt")) Then
DoToForm. vaPιcture(DoToForm.Obj ectZorder 1. Selectedlndex) . ShopUmt = .valmageBuffer 1(10) .Recordset( "Unit") ;
If Not IsNull(. valmageBuffer 1 ( 10).Recordset("NumberOfUnιts")) Then DoToForm.vaPicture(DoToForm.ObjectZorderl . Selectedlndex). ShopNumberOfUmt =
.vaImageBufferl(10).Recordset("NumberOfUnιts"); IfNot IsNull(.vaImageBufferl(10).Recordset("UmtPπce")) Then
DoToForm. vaPιcture(DoToForm. ObjectZorderl. Selectedlndex). ShopUnitPπce =
.valmageBufferl (10).Recordset("UmtPπce");DoEvents; Next r; .ssBottom(l).Captιon = va cap LoadingProjectWindow; .ssBottom(l).Refresh; End If; Unload .valmageBufferl (10): DatabaseControll OLoaded = False; Unload .valmageBufferl (11): DatabaseControll lLoaded = False, End With; DoToForm picScreen ZOrder, DoToForm SendToFront, DoToForm UpdateShoppmgList, DoToForm GetGluedltems flname, DoToForm; Screen.MousePointer = vbDefault, OpenProjectltems = True,Exιt Functιon,Load01dProject , If En = 3265 Then; MsgBox va msg OldVersionl & Chr(lO) & Chr(13) & va_msg _)ldVersιoι_2, LoadOldProject = Tme; Resume Next, Else; Resume Next, End I OpenProjectltemsEπor , If En Number = 3265 Then Resume Next; If Err.Number <> 0 Then, gMsg = va Error Error & Ste(En.Number) & va Error WasGeneratedBy _, & En.Source &
Chr(13) & En Description & Chr(13) & " (OpenProjectltems)", DisplayErrorMessage gMsg, vbCritical, VaTitle, End If, On Error Resume Next, 'release dataconteol else stays looked in this project, Unload frmMDI valmageBufferl (10) DatabaseControll OLoaded = False, Unload frmMDI valmageBufferl (11) DatabaseControll lLoaded = False, Screen MousePomter = vbDefault; OpenProjectltems = False, Exit Functιon,End Functιon;'Save cunent project to its database ,'return true if no error;Functιon SaveProject(ThιsForm As Form) As Boolean, Dim SaveFile As Steing, Dim results As Integer; Dim SaveError As Boolean; Dim SaveFlag As Boolean,On Error GoTo SaveProjectenor, With frmMDI; SaveFile = ""; SaveProject = Tme, LONG NAMES would this work on 3 11 without conflict, .CDιalog2 Filename = "", CDιalog2 Flags = cdlOFNHideReadOnly Or cdlOFNOverwπtePrompt Or cdlOFNHelpButton 'Or cdlOFNExplorer Or cdOFNLongNames, .CDιalog2 DefaultExt = "va2", .CDιalog2.Fιlter = "Project (* va2)|*.va2|Compressed Project (*.va2)|*.va2"; CDιalog2.DιalogTιtle = VA_SAVEPROJECT,
.CDιalog2.InιtDιr = App Path & "\Gallery"; 'Help system to be added later, 'CommonDialog.HelpCommand = cdlHelpForceFile; 'CommonDialog.HelpFile = WmStemg + "vcue.hlp", HideAnySteips, .CDιalog2 ShowSave, SaveFile = .CDιalog2 Filename; SaveEnor = .CDιalog2.CancelError; SaveFilter = .CDιalog2.FιlterIndex; ShowAnySteips; DoEvents; If SaveError = Tme Then; GoTo SaveProjecterror; End If; If SaveFile = "" Then; SaveProject = Tme; Exit Function; Else; If UCase(Rιght$(SaveFιle, 3)) <> "VA2" Then, DisplayEnorMessage
VA_BADEXTENSION, vblnformation, VaTitle; GoTo SaveProjecterror '0 error but returns false, End If; End If; SaveFlag = SaveToProjectDatabase(SaveFιle, ThisForm) 'tme if all ok; If SaveFlag Then ThisForm ProjectPathName = SaveFile 'assign name to form if successful; SaveProject = SaveFlag; End Wιth;Exιt Functιon;SaveProjecterror;If Err.Number o 0 Then; gMsg = va Error Error & Ste(Eπ.Number) & va Error WasGeneratedBy _; & En Source & Chr(13) & En.Descπption & Chr(13) & " (SaveProject)", DisplayEnorMessage gMsg, vbCritical, VaTιtle;End
IftSaveProject = False;Exιt Functιon;End Functιon;'Saves the image and objects to project database;'return tme if no problem;Functιon SaveToProjectDatabase(flname As Steing, ThisFoπn As Form) As Boolean; Dim NamSt As String, ProdSt As Stemg, Dim va cap SavingBackgroundlmage As Steing; Dim va cap SavmgObject As Stemg; Dim Index As Integer, I As Integer, DatabaseControll OLoaded As Boolean, DatabaseControll lLoaded As Boolean; Dim FileFormatToUse As Integer; If UCase(Rιght(flname, 3)) = "VAP" Then; flname = Left(flname, Len(flname) - 3) &
"va2"; End If; ThisForm. Caption = flname; FileFormatToUse = FILEJTIF; If SaveFilter = 1 Then; FileFormatToUse = FILEJTIF, Elself SaveFilter = 2 Then; FileFormatToUse = FILE JFIF; End If; va_cap_SavιngObject =
LoadResSterng(6087) ' "Saving object "; va cap SavingBackgroundlmage = LoadResSterng(6086) ' "Saving background image", On Enor GoTo SaveToProjectDatabaseError; frmMDI.MousePomter = vbHourglass, 'MsgBox "In Save To Project by the name of " & Flname; If Dn(GalleryPath & "\project2 mdb") = "" Then 'master not found then creates, If Not CreateProjectDB(GalleryPath & "\project2 mdb") Then, SaveToProjectDatabase = False 'OJO NEEDS TESTING, Screen MousePomter = vbDefault, Exit Function, End If, End If, If Du(GalleryPath & "\pro ect2 mdb") = "" Then 'master still doesn't exist, DisplayErrorMessage VAJVIISSINGPROJECT & " " & GalleryPath & "\project2 mdb", 16, VaTitle, SaveToProjectDatabase = False, Screen MousePomter = vbDefault, Exit Function, Else, FileCopy GalleryPath & "\project2 mdb", flname 'copies file from master, End If, 'SAVE AS
PROJECT, frmMDI ssBottom(l) Caption = va_cap_SavmgBackgroundImage frmMDI ssBottom(l) Refresh, With frmMDI, 'open database project, Load frmMDI valmageBufferl(lO) DatabaseControll OLoaded = Tme 'Patch for lead problem, valmageBufferl(lO) ReadOnly = False, valmageBufferl(lO) DatabaseName = flname, valmageBufferl (10) Refresh, valmageBufferl (10) dtaField = "", valmageBufferl (10) RecordSource = "Project", valmageBufferl (10) Refresh, valmageBufferl (10) dtaField = "Image", valmageBufferl (10) Refresh, Load frmMDI valmageBufferl (11) DatabaseControll lLoaded = Tme 'Patch for lead problem, vaImageBufferl(l 1) ReadOnly = False, vaImageBufferl(l 1) DatabaseName = flname, valmageBufferl (11) Refresh, valmageBufferl (11) dtaField = "", valmageBufferl (11) RecordSource = "Select Mask from Project", valmageBufferl (11) Refresh, valmageBufferl (11) dtaField = "Mask", valmageBufferl (11) Refresh, 'save background, valmageBufferl (10) Recordset Edit 'first record is edited, valmageBufferl(lO) Recordset("ID") =
0, valmageBufferl (10) Recordset("ItemName") = "Background", valmageBufferl (10) Recordset("Volume") = "None", valmageBufferl(lO) Recordset("top") = ThisForm DoorSizeH, valmageBufferl (10) Recordset("left") = ThisForm DoorSizeW, valmageBufferl(lO) Recordset("Company") = "None", ThisForm IdSpriteTransferBuffer SetPicture ThisForm picBackgroundBuffer Picture 'assign background, valmageBufferl(lO) Bitmap = ThisForm IdSpriteTransferBuffer Bitmap, valmageBufferl (10) DataSaveBits = 24, valmageBufferl (10) DataSaveFormat = FileFormatToUse 'FILEJTIF, valmageBufferl(lO) DataSaveQuahty = 2, valmageBufferl (10) Recordset Update, valmageBufferl (11) Recordset Edit, valmageBufferl (11) Bitmap = frmMDI ldUndelay Bitmap 'assign background padding, valmageBufferl (11) DataSaveBits = 24, valmageBufferl (11) DataSaveFormat = FileFormatToUse 'FILEJTTF, vaImageBufferl(l 1) DataSaveQuahty = 2, va_mageBufferl(l 1) Recordset Update, 'place all images in database if any, For I = ThisForm ObjectZorderl Count
To 1 Step -1, frmMDI ssBottom(l) Caption = va cap SavmgObject & (ThisForm ObjectZorderl Count + 1) - I & va_cap_of & ThisForm ObjectZorderl Count frmMDI ssBottom(l) Refresh, Index = ThisForm ObjectZorderl GetZOder(ι), valmageBufferl (10) Recordset AddNew 'others are added, valmageBufferl(lO) Recordset("ID") = ThisForm vaPιcture(Index) DatabaselD, NamSt = "", If ThisForm vaPιcture(Index) DropType <> 0 Then 'used on company for drop, NamSt = "+++" &
Format(ThιsForm vaPιcture(Index) DropType, "00") & ThisForm vaPιcture(Index) CompanyName, Else, NamSt = ThisForm vaPιcture(Index) CompanyName, End If, NamSt = Left(NamSt, 50) 'limit, 'MsgBox NamSt, ProdSt = Left(ThιsForm vaPιcture(Index) ObjectName, 50), valmageBufferl (10) Recordset("ItemName") = ProdSt, valmageBufferl(lO) Recordset("Volume") = ThisForm vaPιcture(Index) CDVolumn, If NamSt o "" Then valmageBufferl(lO) Recordset("Company") = NamSt, valmageBufferl(lO) Recordset("top") = ThisForm. vaPιcture(Index). Top '- Im.ageMargmHeight( frmMDI.ActiveForm. Tag); .vaImageBufferl(10).Recordset("left") = ThisForm. vaPιcture(Index). Left ' -
ImageMargιnWιdth(fιτnMDI.ActiveForm.Tag), .vaImageBufferl(10).Recordset("ResιzePercent") = ThisForm. vaPιcture(Index). ResizePatPer; .valmageBufferl (10) Recordset("Type") = CInt(ThιsForm.vaPιcture(Index).DropType); .vaImageBufferl(10).Recordset("PerspectιveType") =
CInt(ThιsForm.vaPιcture(Index). PerspectiveType), .vaImageBufferl(10).Recordset("0X") = ThisForm. vaPιcture(Index).PerspecCoordXO; .valmageBufferl(lO) Recordset("0Y") = ThιsForm.vaPιcture(Index).PerspecCoordYO; .valmageBufferl (10).Recordset(" IX") = ThisForm. vaPιcture(Index).PerspecCoordXl; .vaImageBufferl(10).Recordset("lY") = ThisForm. vaPιcture(Index) PerspecCoordYl ; .vaImageBufferl(10).Recordset("2X") =
ThisForm. vaPιcture(Index).PerspecCoordX2; .valmageBufferl(lO) Recordset("2Y") = ThisForm. vaPιcture(Index).PerspecCoordY2; .vaImageBufferl(10).Recordset("3X") = ThisForm. vaPιcture(Index) PerspecCoordX3, .valmageBufferl ( 10). Recordset("3Y") = ThisForm. vaPιcture(Index).PerspecCoordY3; .valmageBufferl ( 10). Recordset("4X") = ThisForm. vaPιcture(Index).PerspecCoordX4; .valmageBufferl (10).Recordset("4Y") =
ThisForm. vaPιcture(Index) .PersρecCoordY4 ; .valmageBuffer 1(10) .Recordset( "IsShadow") = ThisForm. vaPιcture(Index). IsShadow; .vaImageBufferl(10).Recordset("ShadowIntensιty") = ThιsForm.vaPιcture(Index).ShadowIntensιty; .valmageBufferl ( 10).Recordset("IsTransparent") = ThisForm. vaPιcture(Index). IsTransparent; .valmageBufferl ( 10).Recordset("IsEmbossed") = ThιsForm.vaPιcture(Index).IsEmbossed; .vaImageBufferl(10).Recordset("IsInterpolatιon") =
ThisForm. vaPιcture(Index).IsInterpolatιon; .valmageBufferl ( 10).Recordset("IsText") =
ThisForm vaPιcture(Index).IsText; .vaImageBufferl(10).Recordset("ExteaDoublel") = Index 'Hold mdex; 'Shopmg list; .vaImageBufferl(10).Recordset("Umt") = ThisForm. vaPιcture(Index). ShopUmt; .valmageBufferl ( 10).Recordset("NumberOfUnιts") = ThisForm. vaPιcture(Index).ShopNumberOfUnιt, vaImageBufferl(10).Recordset("UnιtPπce") = ThιsFonn.vaPιcture(Index).ShopUnιtPπce; 'assign sprite;
ThisForm.ldSpπteTransferBuffer.SetPicture ThisForm. vaPιcture(Index). Sprite; .vaImageBufferl(10).Bιtmap = ThisForm.ldSpπteTransferBuffer.Bitmap; .vaImageBufferl(10).DataSaveBιts = 24; .valmageBufferl (10). DataSaveFormat = FileFormatToUse; .valmageBufferl(lO). DataSaveQuahty = 2; .vaImageBufferl(10).Recordset.Update; 'assign mask; .valmageBufferl ( 11). RecordSource = "Select Mask from Project"; .vaTmageBufferl(l l).Refresh; .vaImageBufferl(l l).Recordset.MoveLast;
.valmageBufferl ( 11 ).Recordset.Edιt; ThisForm.ldMaskTransferBuffer.SetPicture ThιsForm.vaPιcture(Index).Mask; .vaImageBufferl(l l).Bιtmaρ = ThisForm.ldMaskTransferBuffer.Bitmap; .valmageBufferl (11). DataSaveBits = 24, .valmageBufferl (1 l).DataSaveFormat = FileFormatToUse; .vaImageBufferl(l l).DataSaveQuahty = 2; valmageBufferl (1 l).Recordset Update; Next I; 'release datacontrol; Unload .valmageBufferl(lO)- DatabaseControll OLoaded = False; Unload .valmageBufferl (11): DatabaseControll lLoaded = False, End With; 're- group if any; 'For 1 = 1 To HιghestΙndex(ftmMDI.ActιveForm.Tag); ' If ObjectDιscπptιon(frmMDI.ActιveForm Tag, ι).Deleted <> Tme Then; ' 'Re-select the group items after they have been resized; ' If
ObjectDιscπptιon( frmMDI.ActiveForm Tag, 1). Grouped = Tme Then; ' SelectGroup 1; ' End If; ' End If; 'Next 1, 'open database project; Dim db As Database, rs As Recordset; Set db = OpenDatabase(flname); Set rs = db.OpenRecordset("GluedLιst", dbOpenDynaset); 'Get Glued items;'******* This routine has been added for the shopping list **************************;' it is not implemented yet pending completion of Object glumg.;', If ThisForm.shopGlued.Count > 0 Then; For I = 1 To ThisForm.shopGlued.Count; If
ThisForm.shopGlued(i).ProductName <> "" Then; rs.AddNew; rs("ProductID") = ThιsForm.shoρGlued(ι).ProductID; rs("ProductName") = ThιsForm.shopGlued(ι).ProductName; rs("CompanyName") = ThιsForm.shopGlued(ι). CompanyName; rs("Unιt") = ThιsForm.shopGlued(ι).Umt; rs("NumberOfUnιts") =
ThisForm. shopGlued(ι).NumberOfUmts; rs("UnιtPπce") = ThιsForm.shopGlued(ι).UnιtPπce; rs("Volumn") =
ThιsForm.shopGlued(ι). Volumn,' Proposed new field ;' rs("ObjectType") =
ThιsForm.shopAdded(ι).ObjectLιstType,' , rs.Update;
End If; Next I; End
'Get grid;' If frmMDI.ActiveForm.GetGridToSave Then;' Set rs = db.OpenRecordset("GπdLmePosιtιons", dbOpenDynaset);' For l = 0 To UBound(GπdPomt);' rs.AddNew;' rs("XPos") = GridPomt(ι).X;' rs("YPos") = GπdPoιnt(ι).Y;' rs.Update 'update;' Next ι;' Set rs = db.OpenRecordset("WallPosιtιon", dbOpenDynaset);' For I = 0 To 19;' rs.AddNew;' rs("WallPosιtιons") = RegιonPosιtιon(ι);' rs.Update 'update;' Next ι;' rs.AddNew;' rs("WallPosιtιons") = Roomleftpos;' rs.Update;' rs.AddNew;' rs("WallPosιtιons") = Roomtoppos;' rs.Update;' End If; 'release dataconteol; rs.Close; db. Close; frmMDI.MousePomter = vbDefault; SaveToProjectDatabase = Tme; frmMDI. ssBottom(l). Caption
= LoadResStπng(6862) ' "Project has been saved."; frmMDI.ssBottom(l).Refresh;Exit
Functιon;SaveToProjectDatabaseError:;If En.Number <> 0 And En.Number <> 3021 And Err.Number <> 61 And Err.Number o 3426 Then; gMsg = vaJError_Error & Ste(Err.Number) & va Error WasGeneratedBy _; & Err.Source & Chr(13) & Err.Description & Chr(13) & " (SaveToProjectDatabase)"; DisplayErrorMessage gMsg, vbCritical, VaTιtle;ElseIf Err.Number = 3021 Then; Resume Next 'no cunent record;ElseIf Err.Number = 61 Then, gMsg = va_Enor_Error & Ste(Err.Number) & vaJErrorJWasGeneratedBy _; & Err.Source & Chr(13) & Eπ.Descπption & Chr(13) & " (SaveToProjectDatabase)"; DisplayErrorMessage gMsg, vbCritical, VaTitle; frmMDI.MousePomter = vbDefault; SaveToProjectDatabase = False; 'release dataconteol else stays looked in this project; If DatabaseControll OLoaded = Tme Then; Unload frmMDI.valmageBufferl(lO): DatabaseControll OLoaded
= False; End If; If DatabaseControll lLoaded = Tme Then; Unload frmMDI.vaImageBufferl(l 1): DatabaseControll lLoaded = False; End If; Exit Functιon;ElseIf Err.Number = 3426 Then; gMsg = vaJEnor Eπor & Ste(Err.Number) & va_EnorJWasGeneratedBy _; & En.Source & Chr(13) & "Disk full." & Chr(13) & " (SaveToProjectDatabase)"; DisplayErrorMessage gMsg, vbCritical, VaTitle; frmMDI.MousePomter = vbDefault; SaveToProjectDatabase = False; 'release dataconteol else stays looked m this project; If DatabaseControll OLoaded = Tme Then, Unload frmMDI valmageBufferl(lO) DatabaseConteoll OLoaded = False, End If, If DatabaseConteoll lLoaded = Tme Then, Unload frmMDI valmageBufferl (11) DatabaseConteoll lLoaded = False, End If, Exit Function.End If,On Enor Resume Next,'release dataconteol else stays looked in this project, If DatabaseConteoll OLoaded = Tme Then, Unload frmMDI valmageBuffer 1(10) DatabaseConteoll OLoaded = False, End If, If DatabaseConteoll lLoaded = Tme Then, Unload frmMDI vaImageBufferl(l 1) DatabaseConteoll lLoaded =
False, End If.frmMDI MousePomter = vbDefault,SaveToProjectDatabase = False,Exιt Functιon,End Function.'Opens a project.'Returns tme if successful,Functιon OpenProject(ProjectName As String, DoToForm As Form) As Boolean, Dim OpenFile As Steing, Dim results As Integer, Dim OpenError As Boolean, Dun OpenFlag As Boolean^On Enor GoTo OpenProjecterror, HideAnySteips, With frmMDI, OpenFile = "", OpenProject = Tme, 'LONG NAMES would this work on 3 11 without conflict, CDιalog2 ImtDir = App Path & "\Gallery", CDιalog2 Filename = "",
CDιalog2 Flags = cdlOFNHelpButton Or cdlOFNHideReadOnly 'Or cdlOFNExplorer Or cdOFNLongNames, CDιalog2 DefaultExt = "va2", CDιalog2 Filter = "Project (* va2)|* va2|Project (* vap)|* vap", CDιalog2 DialogTitle = VA OPENPROJECT, 'Help system to be added later, 'CommonDialog HelpCommand = cdlHelpForceFile, 'CommonDialog HelpFile = WmStemg + "vcue hip", CDιalog2 ShowOpen, ShowAnySteips, DoEvents, OpenFile = CDιalog2 Filename, OpenEπor = CDιalog2 CancelEnor,'MsgBox OpenFile, If OpenError = Tme Then, GoTo
OpenProjecterror, End If, If OpenFile = "" Then 'user cancels and that's OK, CancelMam = Tme, OpenProject = False 'close form, Exit Function, Else, If UCase(Rιght$(OpenFιle, 3)) = "VAP" Or UCase(Rιght$(OpenFιle, 3)) = "VA2" Then, 'do nothing, Else, DisplayErrorMessage VA BADEXTENSION, vblnformation, VaTitle, GoTo OpenProjecterror '0 error but returns false, End If, End If, ProjectName = OpenFile, OpenProject = OpenProjectBackground(OpenFιle, DoToForm), End Wιth,Exιt Functιon,OpenProjecterror ,If En Number <> 0 Then, gMsg = va_Error_Error & Ste(Err Number) & vaJErrorJWasGeneratedBy _, & Err Source & Chr(13) & Err Description & Chr(13) & " (OpenProject)", DisplayEnorMessage gMsg, vbCritical, VaTιtle,End If,OpenProject = False, Show Any Strips, Exit Functιon,End Functιon,'Creates a Project database template,'DBName = Path and name of Project database to create.Function CreateProjectDB(DBName As Stemg) As Boolean, Dim MyDatabase As Database, MyTableDef As TableDef, MyField As Field, Dim DatabaseConteoll OLoaded As Boolean, DatabaseConteoll lLoaded
As Boolean, 'On Error Resume Next, On Enor GoTo CreateProjectDB Error, Dim gMsg, VaTitle, CreateProjectDB = False, 'Create Database, Set MyDatabase = Workspaces(O) CreateDatabase(DBName, dbLangGeneral, dbVersιon20), ' Create new TableDef for project table, Set MyTableDef = MyDatabase CreateTableDef("Project"), ' Add fields to MyTableDef , Set MyField = MyTableDef CreateFιeld("ID", dbLong), MyTableDef Fields Append MyField, Set MyField = MyTableDef CreateFιeld("ItemName", dbText, 50), MyTableDef Fields Append MyField,
MyField AllowZeroLength = Tme, Set MyField = MyTableDef CreateFιeld("Image", dbLongBinary), MyTableDef Fields Append MyField, Set MyField = MyTableDef CreateFιeld("Mask", dbLongBinary), MyTableDef Fields Append MyField, Set MyField = MyTableDef CreateFιeld("Top", dblnteger), MyTableDef Fields Append MyField, Set MyField = MyTableDef CreateFιeld("Left", dblnteger), MyTableDef Fields Append MyField, Set MyField = MyTableDef CreateFιeld("Volume", dbText, 255), MyTableDef Fields Append MyField, MyField AllowZeroLength = Tme, Set MyField =
MyTableDef CreateFieldC'Company", dbText, 50), MyTableDef Fields Append MyField, MyField AllowZeroLength = Tme, Set MyField = MyTableDef CreateFιeld("OX", dblnteger, 50), MyTableDef Fields Append MyField, Set MyField = MyTableDef CreateField("0Y", dblnteger, 50), MyTableDef Fields Append MyField, Set MyField = MyTableDef CreateFιeld("lX", dblnteger, 50), MyTableDef Fields Append MyField, Set MyField =
MyTableDef CreateFιeld("lY", dblnteger, 50), MyTableDef Fields Append MyField, Set MyField = MyTableDef CreateFιeld("2X", dblnteger, 50), MyTableDef Fields Append MyField, Set MyField = MyTableDef CreateFιeld("2Y", dblnteger, 50), MyTableDef Fields Append MyField, Set MyField = MyTableDef CreateFιeld("3X", dblnteger, 50), MyTableDef Fields Append MyField, Set MyField = MyTableDef CreateFιeld("3 Y", dblnteger, 50), MyTableDef Fields Append MyField, Set MyField =
MyTableDef CreateFιeld("4X", dblnteger, 50), MyTableDef Fields Append MyField, Set MyField = MyTableDef CreateFιeld("4Y", dblnteger, 50), MyTableDef Fields Append MyField, Set MyField = MyTableDef CreateFιeld("PerspectιveType", dbDouble), MyTableDef Fields Append MyField, Set MyField = MyTableDef CreateFιeld("Type", dblnteger, 50), MyTableDef Fields Append MyField, Set MyField = MyTableDef CreateFιeld("ResιzePercent", dblnteger, 50), MyTableDef Fields Append MyField, Set MyField =
MyTableDef CreateFieldC'Umt", dbText, 50), MyTableDef Fields Append MyField, MyField AllowZeroLength = Tme, Set MyField = MyTableDef CreateFιeld("NumberOfUmts", dbDouble), MyTableDef Fields Append MyField, Set MyField = MyTableDef CreateFιeld("UmtPπce", dbDouble), MyTableDef Fields Append MyField, Set MyField = MyTableDef CreateField("IsShadow", dbBoolean), MyTableDef Fields Append MyField, Set MyField = MyTableDef CreateFιeld("ShadowIntensιty", dblnteger), MyTableDef Fields Append MyField, Set MyField =
MyTableDef CreateFιeld("IsTransparent", dbBoolean), MyTableDef Fields Append MyField, Set MyField = MyTableDef CreateField("IsEmbossed", dbBoolean), MyTableDef Fields Append MyField, Set MyField = MyTableDef CreateFιeld("IsInterpolatιon", dbBoolean), MyTableDef Fields Append MyField, Set MyField = MyTableDef CreateFιeld("IsText", dbBoolean), MyTableDef Fields Append MyField, 'Extra fields, Set MyField = MyTableDef CreateFιeld("ExteaTextl ", dbText, 50), MyTableDef Fields Append MyField,
MyField AllowZeroLength = Tme, Set MyField = MyTableDef CreateFιeld("ExteaText2", dbText, 50), MyTableDef Fields Append MyField, MyField AllowZeroLength = Tme, Set MyField = MyTableDef CreateFιeld("ExteaText3", dbText, 50), MyTableDef Fields Append MyField, MyField AllowZeroLength = Tme, Set MyField = MyTableDef CreateFιeld("ExteaText4", dbText, 100), MyTableDef Fields Append MyField, MyField AllowZeroLength = Tme, Set MyField =
MyTableDef CreateFιeld("ExteaText5", dbText, 100), MyTableDef Fields Append MyField, MyField AllowZeroLength = Tme, Set MyField = MyTableDef CreateFιeld("ExteaBooleanl", dbBoolean), MyTableDef Fields Append MyField, Set MyField = MyTableDef CreateFιeld("ExtraBoolean2", dbBoolean), MyTableDef Fields Append MyField, Set MyField = MyTableDef CreateFιeld("ExtraBoolean3", dbBoolean), MyTableDef Fields Append MyField, Set MyField = MyTableDef CreateFιeld("ExtraBoolean4", dbBoolean), MyTableDef.Fields.Append MyField; Set MyField = MyTableDef.CreateField("ExteaBoolean5", dbBoolean); MyTableDef.Fields.Append MyField; Set MyField = MyTableDef.CreateField("ExteaDoublel ", dbDouble); MyTableDef.Fields.Append MyField; Set MyField = MyTableDef. CreateField("ExteaDouble2", dbDouble); MyTableDef.Fields.Append MyField; Set MyField = MyTableDef.CreateField("ExteaDouble3", dbDouble); MyTableDef.Fields.Append MyField; Set MyField = MyTableDef.CreateField("ExteaDouble4", dbDouble);
MyTableDef.Fields.Append MyField; Set MyField = MyTableDef.CreateField("ExteaDouble5", dbDouble); MyTableDef.Fields.Append MyField; 'Add table def to database; MyDatabase.TableDefs.Append MyTableDef; ' Create new TableDef for glued table; Set MyTableDef = MyDatabase.CreateTableDef("GluedList"); ' Add fields to MyTableDef; Set MyField = MyTableDef.CreateField("ProductID", dbText, 50); MyTableDef.Fields.Append MyField; MyField.AllowZeroLength = Tme; Set MyField = MyTableDef. CreateField("ProductName", dbText, 50);
MyTableDef.Fields.Append MyField; MyField.AllowZeroLength = Tme; Set MyField =
MyTableDef.CreateField("Volumn", dbText, 50); MyTableDef.Fields.Append MyField; MyField.AllowZeroLength = Tme; Set MyField = MyTableDef.CreateField("CompanyName", dbText, 50); MyTableDef.Fields.Append MyField; MyField.AllowZeroLength = Tme; Set MyField = My TableDef. CreateField("Unit", dbText, 50); MyTableDef.Fields.Append MyField; MyField.AllowZeroLength = Tme; Set MyField =
MyTableDefCreateField("NumberOfUnits", dbDouble); MyTableDef.Fields.Append MyField; Set MyField = MyTableDef. CreateField("UnitPrice", dbDouble); MyTableDef.Fields.Append MyField; 'Add table def to database; MyDatabase.TableDefs.Append MyTableDef; ' Create new TableDef for glued table; Set MyTableDef = MyDatabase.CreateTableDef("WallPosition"); ' Add fields to MyTableDef; Set MyField = MyTableDef.CreateField("WallPositions", dbLong); MyTableDef.Fields.Append MyField;
MyField.AllowZeroLength = Tme; 'Add table def to database; MyDatabase.TableDefs.Append MyTableDef; 'Create new TableDef for GridLinePositions table; Set MyTableDef = MyDatabase. CreateTableDef("GridLinePositions"); 'Add fields to MyTableDef; Set MyField = MyTableDef. CreateField("XPos", dblnteger); MyTableDef.Fields.Append MyField; MyField.AllowZeroLength = Tme; Set MyField = MyTableDef.CreateField("YPos", dblnteger); MyTableDef.Fields.Append MyField; MyField.AllowZeroLength = Tme; 'Add table def to database;
MyDatabase.TableDefs.Append MyTableDef; ' Create new TableDef for ExteaTable table; Set MyTableDef = MyDatabase.CreateTableDef("ExteaTable"); ' Add fields to MyTableDef; Set MyField = MyTableDef.CreateField("ExteaTextl", dbText, 50); MyTableDef.Fields.Append MyField; MyField.AllowZeroLength = Tme; Set MyField = MyTableDef.CreateField("ExtraText2", dbText, 50); MyTableDef.Fields.Append MyField; MyField.AllowZeroLength = Tme; Set MyField =
MyTableDef.CreateField("ExteaText3", dbText, 50); MyTableDef.Fields.Append MyField; MyField.AllowZeroLength = Tme; Set MyField = MyTableDef.CreateField("ExtraText4", dbText, 100); MyTableDef.Fields.Append MyField; MyField.AllowZeroLength = Tme; Set MyField = MyTableDef.CreateField("ExteaText5", dbText, 100); MyTableDef.Fields.Append MyField; MyField.AllowZeroLength = Tme; Set MyField = MyTableDef.CreateField("ExteaBooleanl ", dbBoolean); MyTableDef.Fields.Append MyField; Set MyField = MyTableDef.CreateField("ExteaBoolean2", dbBoolean); MyTableDef.Fields.Append MyField; Set MyField = MyTableDef.CreateField("ExtraBoolean3", dbBoolean); MyTableDef.Fields.Append MyField; Set MyField = My TableDef. CreateField("ExttaBoolean4", dbBoolean)'; MyTableDef.Fields.Append MyField; Set MyField = MyTableDef.CreateField("ExteaBoolean5", dbBoolean); MyTableDef.Fields.Append MyField; Set MyField = MyTableDef.CreateField("ExtraDoublel ", dbDouble);
MyTableDef.Fields.Append MyField; Set MyField = MyTableDef.CreateField("ExtraDouble2", dbDouble); MyTableDef.Fields.Append MyField; Set MyField = MyTableDef.CreateField("ExtraDouble3", dbDouble); MyTableDef.Fields.Append MyField; Set MyField = MyTableDef.CreateField("ExtraDouble4", dbDouble);* MyTableDef.Fields.Append MyField; Set MyField = MyTableDef.CreateField("ExtraDouble5", dbDouble); MyTableDef.Fields.Append MyField; 'Add table def to database; MyDatabase.TableDefs.Append MyTableDef; '
Create new TableDef for project table; Set MyTableDef = MyDatabase.CreateTableDef("Undo"); ' Add fields to MyTableDef; Set MyField = MyTableDef.CreateField("ID", dbLong); MyField.Atteibutes = dbAutoIncrField; MyTableDef.Fields.Append MyField; Set MyField = MyTableDef.CreateField("ObjectName", dbText, 50); MyTableDef.Fields.Append MyField; MyField.AllowZeroLength = Tme; Set MyField = MyTableDef.CreateField("Sprite", dbLongBinary); MyTableDef.Fields.Append MyField; Set MyField =
MyTableDef. CreateField("Mask", dbLongBinary); MyTableDef.Fields.Append MyField; Set MyField = MyTableDef. CreateField("BackGround", dbLongBinary); MyTableDef.Fields.Append MyField; Set MyField = MyTableDef.CreateField("Top", dbDouble); MyTableDef.Fields.Append MyField; Set MyField = MyTableDef. CreateFieldC'Left", dbDouble); MyTableDef.Fields.Append MyField; Set MyField = MyTableDef. CreateField("CD Volumn", dbText, 50); MyTableDef.Fields.Append MyField;
MyField.AllowZeroLength = Tme; Set MyField = MyTableDef.CreateField("CompanyName", dbText, 50); MyTableDef.Fields.Append MyField; MyField.AllowZeroLength = Tme; Set MyField =
MyTableDef.CreateField("PerspecCoordXO", dbDouble, 50); MyTableDef.Fields.Append MyField; Set MyField = MyTableDef. CreateField("PerspecCoordYO", dbDouble, 50); MyTableDef.Fields.Append MyField; Set MyField = MyTableDef.CreateField("PerspecCoordXl ", dbDouble, 50); MyTableDef.Fields.Append MyField; Set MyField =
MyTableDef.CreateField("PerspecCoordYl ", dbDouble, 50); MyTableDef.Fields.Append MyField; Set MyField = MyTableDef. CreateField("PerspecCoordX2", dbDouble, 50); MyTableDef.Fields.Append MyField; Set MyField = MyTableDef.CreateField("PerspecCoordY2", dbDouble, 50); MyTableDef.Fields.Append MyField; Set MyField = MyTableDef.CreateField("PerspecCoordX3", dbDouble, 50); MyTableDef.Fields.Append MyField; Set MyField = MyTableDef.CreateField("PerspecCoordY3", dbDouble, 50); MyTableDef.Fields.Append MyField; Set MyField =
MyTableDef.CreateField("PerspecCoordX4", dbDouble, 50); MyTableDef.Fields.Append MyField; Set MyField = MyTableDef.CreateField("PerspecCoordY4", dbDouble, 50); MyTableDef.Fields.Append MyField; Set MyField = MyTableDef.CreateField("PerspectiveType", dbDouble); MyTableDef.Fields.Append MyField; Set MyField = MyTableDef.CreateField("DropType", dbDouble); MyTableDef.Fields.Append MyField; Set MyField = MyTableDef. CreateField("ResizePatPer", dbDouble, 50); MyTableDef.Fields.Append MyField; Set MyField = MyTableDef CreateField("IsShadow", dbBoolean), MyTableDef Fields Append MyField, Set MyField = MyTableDef CreateFieldC'ShadowIntensity", dbDouble), MyTableDef Fields Append MyField, Set MyField = MyTableDef CreateFιeld("IsTransparent", dbBoolean), MyTableDef Fields Append MyField, Set MyField = MyTableDef CreateField("IsEmbossed", dbBoolean), MyTableDef Fields Append MyField, Set MyField = MyTableDef CreateFιeld("IsInterpolatιon", dbBoolean), MyTableDef Fields Append MyField, Set MyField =
MyTableDef CreateFιeld("IsText", dbBoolean), MyTableDef Fields Append MyField, Set MyField = MyTableDef CreateFιeld("DatabaseID", dbText, 50), MyTableDef Fields Append MyField, MyField AllowZeroLength = Tme, Set MyField = MyTableDef CreateFιeld("UndoMode", dbText, 50), MyTableDef Fields Append MyField, MyField AllowZeroLength = Tme, Set MyField = MyTableDef CreateFιeld("SelectedObject", dbBoolean), MyTableDef Fields Append MyField, Set MyField =
MyTableDef CreateField("InGroup", dbBoolean), MyTableDef Fields Append MyField, Set MyField = MyTableDef CreateFιeld("Zoom", dbDouble), MyTableDef Fields Append MyField, Set MyField = MyTableDef CreateFιeld( "Index", dbDouble), MyTableDef Fields Append MyField, Set MyField = MyTableDef CreateFieldC'BackLeft", dbDouble), MyTableDef Fields Append MyField, Set MyField = MyTableDef CreateFιeld("BackTop", dbDouble), MyTableDef Fields Append MyField, 'Add table def to database,
MyDatabase TableDefs Append MyTableDef, 'Close database, MyDatabase Close, 'Open database project to add default image, Load frmMDI valmageBufferl(lO) DatabaseConteoll OLoaded = Tme 'Patch for lead problem, frmMDI valmageBufferl (10) ReadOnly = False, frmMDI valmageBufferl(lO) DatabaseName = DBName, frmMDI valmageBufferl (10) Refresh, frmMDI valmageBuffer 1(10) dtaField = "", frmMDI valmageBufferl (10) RecordSource = "Select unage from Project", frmMDI valmageBufferl (10) Refresh, frmMDI valmageBufferl (10) dtaField = "Image", frmMDI valmageBufferl (10) Refresh, 'Create first Spnte, frmMDI ldProjectlmage CreateBitmap 100, 100, 8, frmMDI ldProjectlmage Fill RGB(255, 0, 0), frmMDI ldProjectlmage ForceRepamt ' 09/04/97 DEH Changed from VBX to OCX, frmMDI valmageBufferl (10) Recordset AddNew, frmMDI valmageBufferl (10) Bitmap = frmMDI ldProjectlmage Bitmap, frmMDI valmageBufferl (10) DataSaveBits = 24, frmMDI valmageBufferl (10) DataSaveFormat = FILE JFIF, frmMDI valmageBufferl (10) DataSaveQuahty = 10, frmMDI valmageBufferl (10) Recordset Update, 'release dataconteol, Unload frmMDI valmageBufferl (10) DatabaseConteoll OLoaded = False, 'open database project to add default mask, Load frmMDI vaImageBufferl(l 1) DatabaseControll lLoaded = Tme 'Patch for lead problem, frmMDI vaImageBufferl(l 1) ReadOnly = False, frmMDI valmageBufferl (11) DatabaseName = DBName, frmMDI vaImageBufferl(l 1) Refresh, frmMDI valmageBufferl (11) dtaField = "", frmMDI vaImageBufferl(l 1) RecordSource = "Select Mask from Project", frmMDI vaImageBufferl(l 1) Refresh, frmMDI vaImageBufferl(l 1) dtaField = "Mask", frmMDI valmageBufferl (11) Refresh, 'Create first mask, frmMDI vaImageBufferl(l 1) Recordset MoveFnst, frmMDI ldProjectMask CreateBitmap 100, 100, 8, frmMDI ldProjectMask Fill RGB(255, 0, 0), frmMDI ldProjectMask ForceRepamt '- — 09/04/97 DEH Changed from VBX to OCX, frmMDI.vaImageBufferl(l l).Recordset Edit; frmMDI.valmageBufferl (1 l).Bιtmap = frmMDI.ldProjectMask Bitmap, frmMDI. vaImageBufferl(l l).DataSaveBιts = 24; frmMDI.valmageBufferl (1 l).DataSaveFormat = FILE JFIF, frmMDI.vaImageBufferl(l 1) DataSaveQuahty = 10; frmMDI.vaImageBufferl(l l).Recordset.Uρdate; 'release dataconteol; Unload frmMDI.valmageBufferl (11): DatabaseConteoll lLoaded = False, Const DB SEC DBOPEN = &H2&; Dim MyWorkspace As Workspace, MyTable As Document, myDB As Document; 'Set database security; Set
MyDatabase = DBEngιne.Workspaces(0).OpenDatabase(DBName); Set myDB = MyDatabase.Contaιners("Databases").Documents("MSysDB"); Set MyTable =
MyDatabase. Contaιners("Tables").Documents("Project"); MyTable.UserName = "Users"; MyTable Permissions = dbSecNoAccess; MyTable.UserName = "Admms"; MyTable.Permissions = dbSecNoAccess; MyTable.UserName = "Guests"; MyTable Permissions = dbSecNoAccess; myDB.UserName = "Admins"; myDB.Permissions = Not
DB SEC DBOPEN; myDB.UserName = "Users"; myDB.Permissions = Not DB SEC DBOPEN; myDB.UserName = "Guests"; myDB.Permissions = Not DB_SEC_DBOPEN; 'Return true if success; CreateProjectDB = True;Exιt Functιon;CreateProjectDB_Enor:; If DatabaseConteoll OLoaded = Tme Then; Unload frmMDI.valmageBufferl(lO): DatabaseConteoll OLoaded = False; End If, If DatabaseConteoll lLoaded = Tme Then; Unload frmMDI. vaImageBufferl(l 1): DatabaseConteoll lLoaded = False; End If; frmMDI.MousePomter = vbDefault,
CreateProjectDB = False; MsgBox En & Enor; Exit Functιon;End Functιon;'Show stnps;Sub ShowAnyStnps();Dιm l As Integer;On Error Resume Next; If CompOpen = Tme Then 'This needs to be at top so if subcomp; FrmSubComp.Show 'is open the other forms will not cover it.; Exit Sub 'When subcomp is unloaded it will show all open forms; End If; 'If frmMDI.CleanEnvironment Then Exit Sub; If QuickOpened Then QuickDB.Show; For l = 1 To 3; If StπpShowιng(ι) = Tme Then; DBFoπn(i).Show; End If; Next I; If ObjectListLoaded = Tme Then frmObjectList.Show; If DBSearch Then FrmSearch.Show; If UserDBForm Then frmUserDatase. Show; If IntemetCatalogFlag Then frmlnternetDB.Show; If pEffectsActive Then frmEffects.Show; If pDropperActive Then frmColorPicker.Show; If pTextActive Then frmText.Show; 'Give focus back to project; frmMDI.ActιveForm.SetFocus;End Sub;Sub OrganιzeAnyStπps();Dιm I As Integer, n As Integer;Statιc SideSwitch As Boolean;On Error Resume Next; If CompOpen = Tme Then 'This needs to be at top so if subcomp;
FrmSubComp.Show 'is open the other forms will not cover it.; Exit Sub 'When subcomp is unloaded it will show all open forms; End If; If QuickOpened Then QuickDB.Show; QuickDB. WmdowState = vbNormal; If Not SideSwitch Then; QuickDB.Move Screen. Width - (QuickDB. Width / 4), 840 - 200; SetWmdowPos QuickDB.hWnd, HWNDJTOPMOST, 0, 0, 0, 0, NOMOVE JNOSIZE; SideSwitch = Tme; Else; QuickDB.Move Screen. Width - (QuickDB.Width + 200), 840 - 200; SetWmdowPos QuickDB.hWnd, HWNDJTOPMOST, 0, 0, 0, 0,
NOMOVE JNOSIZE; SideSwitch = False; End If; For I = 1 To 3; If StπpShowιng(ι) = Tme Then; n = n + 1; DBForm(ι).Show; DBForm(ι). WmdowState = vbNormal; DBForm(ι).Move QuickDB.Left + (100 * ii), QuickDB.Top + (200 * u); SetWmdowPos DBForm(i).hWnd, HWNDJTOPMOST, 0, 0, 0, 0, NOMOVE_NOSIZE; End If; Next I; If ObjectListLoaded = Tme Then; frmObjectList.Show; frmObjectList. WmdowState = vbNormal; frmObjectList.Move QuickDB.Left + (100 * (u + 1)), QuickDB.Top + (200 * (ii + 1)) + 100; SetWmdowPos frmObjectListhWnd, HWNDJTOPMOST, 0, 0, 0, 0, NOMOVE JNOSIZE, End If, If DBSearch Then FrmSearch Show, If UserDBForm Then frmUserDatase Show, If IntemetCatalogFlag Then frmlnternetDB Show, If pEffectsActive Then frmEffects Show, If pDropperActive Then frmColorPicker Show, If pTextActive Then frmText Show, 'Give focus back to project, frmMDI ActiveForm SetFocus,End Sub, Sub ShowUserImage(),Dιm ConectionAspect As Sιngle,Dιm n As Integer,On Enor GoTo ShowUserImageEnor,Screen MousePomter = vbHourglass, With frmMDI,
Data3 DatabaseName = GalleryPath & "\" & UserDatabase 'App Path & "\gallery\" & "user2 mdb" 'put this m mam, sgBox "in the routine " & CurrentUserltem, '<«« Changes here, Data3 RecordSource = "Select * from ProductDetail where ID = " & CunentUserltem, ' Image, Mask, '»»>, Data3 Refresh, ldProjectlmage ForceRepamt ' 09/04/97 DEH Changed from VBX to OCX, ldProjectMask ForceRepamt ' 09/04/97 DEH Changed from VBX to OCX, frmUserDatase IdUserlmage Bitmap = ldProjectlmage Bitmap, frmUserDatase ldUserMask Bitmap = ldProjectMask Bitmap, If frmUserDatase IdUserlmage Bitmap Width < frmUserDatase IdUserlmage Width And frmUserDatase IdUserlmage BitmapHeight < frmUserDatase IdUserlmage Height Then, 'leave as is , Else, If frmUserDatase IdUserlmage Bitmap Width > frmUserDatase IdUserlmage BitmapHeight Then, CorrectionAspect = frmUserDatase IdUserlmage Width / frmUserDatase IdUserlmage Bitmap Width, frmUserDatase IdUserlmage DstWidth = frmUserDatase IdUserlmage Width, frmUserDatase IdUserlmage DstHeight = frmUserDatase IdUserlmage BitmapHeight * CorrectionAspect 'leave this one, If frmUserDatase IdUserlmage DstHeight > frmUserDatase IdUserlmage Height Then, CorrectionAspect = frmUserDatase IdUserlmage Height / frmUserDatase IdUserlmage DstHeight, frmUserDatase IdUserlmage DstHeight = frmUserDatase IdUserlmage Height, frmUserDatase IdUserlmage DstWidth = frmUserDatase IdUserlmage DstWidth * CorrectionAspect, End If, Else, CorrectionAspect = frmUserDatase IdUserlmage Height / frmUserDatase IdUserlmage BitmapHeight, frmUserDatase IdUserlmage DstHeight = frmUserDatase IdUserlmage Height, frmUserDatase IdUserlmage DstWidth
= frmUserDatase IdUserlmage Bitmap Width * ConectionAspect 'leave this one, If frmUserDatase IdUserlmage DstWidth > frmUserDatase IdUserlmage Width Then, CorrectionAspect = frmUserDatase IdUserlmage Width / frmUserDatase IdUserlmage DstWidth, frmUserDatase IdUserlmage DstWidth = frmUserDatase IdUserlmage Width, frmUserDatase IdUserlmage DstHeight = frmUserDatase IdUserlmage DstHeight * CorrectionAspect, End If, End If, End If, frmUserDatase IdUserlmage DstLeft = (frmUserDatase IdUserlmage Width 12) - (frmUserDatase IdUserlmage DstWidth / 2) - 3, frmUserDatase IdUserlmage DstTop = (frmUserDatase IdUserlmage Height 1 2) - (frmUserDatase IdUserlmage DstHeight / 2) - 3, '<«« Added this lme, n = frmUserDatase IdUserlmage SetDstChpRect( frmUserDatase IdUserlmage DstLeft, frmUserDatase IdUserlmage DstTop, frmUserDatase IdUserlmage DstWidth, frmUserDatase IdUserlmage DstHeight), '»>», frmUserDatase IdUserlmage ForceRepamt ' 09/04/97 DEH Changed from VBX to OCX, 'close db, Data3 Recordset Close, Data3 DatabaseName = "", Data3 RecordSource = ""; .Data3 Refresh,End Wιth,Screen.MousePoιnter = vbDefault;Exιt Sub,ShowUserImageError:,If En Number <> 0 Then, gMsg = va_Error_Enor & Ste(En.Number) & va_Enor_WasGeneratedBy _, & Err.Source & Chr(13) & Err.Description & Chr(13) & " (ShowUserlmage)", DisplayErrorMessage gMsg, vbCritical, VaTιtle,End If; Screen.MousePointer = vbDefault,Exιt Sub,End Sub, ZoommgAndResizmg; Attribute VB Name = "ZoomιngAndResιzιng",'Thιs module is to have subs until they can go in then regular module;'sιnce sometimes they are checked out;'Please put in () the module where they should go eventually and if any,'local variables to the module should go also .Option Explιcιt,Pubhc ZoommgProject As Boolean,'Converts the X or Y pos for the cunent zoom,'Pos = X or Y or Left or Top; Zoom = Zoom from ftfrm.Public Function ZoomPos(pos As Smgle, Zoom As Byte) As Smgle; If Zoom <> 0 Then, ZoomPos = pos - (pos Mod (2 Λ Zoom)) - 1 ; Else; ZoomPos = pos; End If,End Functιon;'Zooms m or out on a project;'amount = amount to multiply the size of project, ThisForm = active form;Publιc Sub ZoomIt( amount As Smgle, ThisForm As Form), Dim OldHeight As Integer, OldWidth As Integer, iRetVal As Long, I As Integer, Index As Integer, offset As Integer, Static ZoomingProject As Boolean, On Error GoTo EnorZoomlt, ThisForm WmdowState = 0, 'Check to see if zooming in or out and if this can be done, If ZoomingProject = True Then Exit Sub, Screen MousePomter = vbHourglass, ZoomingProject = Tme, If amount = 2 Then; offset = 4 'Offset used because of ears; If ThisForm Zoom = 3 Then,
Screen.MousePointer = vbDefault, ZoommgProject = False; Exit Sub 'Do not allow user to zoom more then 3 time or 800%; End If; ThisForm.Zoom = ThisForm.Zoom + 1 'Keep teack of the time user zoomed m, Else; offset = -8 'Offset used because of ears; If ThisForm.Zoom = 0 Then; Screen.MousePomter = vbDefault; ZoomingProject = False; Exit Sub 'Do not allow user to go small then onganal size; End If, ThisForm.Zoom = ThisForm.Zoom - 1 'Keep teack of the time user zoomed in; End If, With ThisForm; For l = .ObjectZorderl. Count To 1 Step -1; Index =
ObjectZorderl. GetZOder(ι), .vaPιcture(Index) Visible = False; Next; .MousePomter = vbHourglass, 'Remove all objects from pictures; .picBackgroundBuffer Cls, .picComposite. Cls; .picScreen.AutoRedraw = Tme, .picScreen.Cls; 'Save old size for steeching, OldHeight = .picBackgroundBuffer.Height / Screen.TwipsPerPixelX; OldWidth = .picBackgroundBuffer. Width / Screen.TwipsPerPixelY; 'Resize backgroundbuffer; .picBackgroundBuffer.Move picBackgroundBuffer.Left, .picBackgroundBuffer.Top, picBackgroundBuffer. Width * amount, picBackgroundBuffer.Height * amount, 'Resize backgroundbuffer image; iRetVal = SetSteetchBltMode(.pιcBackgroundBuffer.hDC, 3), iRetVal = StretchBlt(.pιcBackgroundBuffer.hDC, 0, 0, .picBackgroundBuffer. Width / Screen TwipsPerPixelX, .picBackgroundBuffer.Height / Screen.TwipsPerPixelY, .picScreen.hDC, 0, 0, OldWidth, OldHeight, SRCCOPY); 'Set all pictures to new background image; .picBackgroundBuffer.Picture = .picBackgroundBuffer.Image; .picComposite.Picture =
.picBackgroundBuffer.Picture, .picScreen.Picture = .picBackgroundBuffer.Picture; .cmdScrollCorner Chck 'Resize form; .picScreen.AutoRedraw = False 'Refresh picture; .picScreen.Refresh; 'Resize ldscreen bitmap, IdScreen.Size .picScreen Width / Screen TwipsPerPixelX, .picScreen.Height / Screen TwipsPerPixelY, RESIZE NORMAL; 'Resize all objects m project, .Compose VA_COMPOSE_LOADJNEW; For I = .ObjectZorderl. Count To 1 Step -1, Index = ObjectZorderl. GetZOder(ι), .vaPιcture(Index) Visible = False; .vaPιcture(Index).Move ( vaPιcture(Index)Left + offset) * amount, (.vaPιcture(Index).Top + offset) * amount; .vaPιcture(Index).Zoom amount, .ResizeVAPicture Index; Next 1, .MousePomter = vbDefault; Make all object visible, .SendToFront; End With, If ThisForm.ObjectZorderl. Count <> 0 Then; If ThisForm.ObjectZorderl . Selectedlndex = 0 Then ThisForm. ObjectZorderl .Selectedlndex = ThisForm.ObjectZorderl .Toplndex; ThisForm. vaPictureJvlouseDown ThisForm.ObjectZorderl. Selectedlndex, 1, 0, 0, 0; ThisForm.vaPicture MouseUp
ThisForm.ObjectZorderl. Selectedlndex, 1, 0, 0, 0; End If; ZoommgProject = False; Screen.MousePointer = vbDefault; Exit Sub;ErrorZoomIt:, ZoomingProject = False; Screen.MousePointer = vbDefault; gMsg = va_Enor_Error & Str(Err.Number) & va_Error_WasGeneratedBy _; & Err.Source & Chr(13) & En.Descnption & Chr(13) & " (ErrorZoomlt)"; DisplayEnorMessage gMsg, vbCritical, VaTιtle;Exιt Sub;End Sub;Sub CreateObjectInternetDB(X As Single, Y As Single, ThisForm As Form);Dιm md As Integer, retval As Integer,On
Error GoTo CreateObjectInternetDBError;If Not Check_Resources(MιnResourceReq, False) Then; DisplayEnorMessage VA CANT & Chr(13) & VA_CANT1 & Chr(13) & VA_CANT2 & Chr(13) & VA_CANT3, vblnformation, VaTitle; Exit Sub;End IftScreen. MousePomter = vbHourglass; 'Open as background; If Left(frmIntemetDB.cmbIntemet.Text, 1) = "*" Then; frmMDI.ldTwain.Bitmap = frmlnternetDB.ldlmage.Bitmap; OpenMode = "DataBase"; Dim NewForm As New FrmMain, NewForm.Show; Else 'open as an item; With ThisForm,
.IdSpriteTransferBuffer.Bitmap = frmlntemetDB.ldlmage.Bitenap; .ldMaskTransferBuffer.Bitmap = frmlnternetDB.ldMask.Bitmap; .Compose VA_ COMPOSE_LOAD_NEW; .VA_LoadObject ((X) - (.ldMaskTransferBuffer.Bitmap Width / 2)), ((Y) - (.ldMaskTransferBuffer.BitmapHeight / 2)); .vaPιcture(. ObjectZorderl .Selectedlndex). ObjectName = frmlntemetDB.cmblntemet.Text; .vaPιcture(.ObjectZorderl .SelectedIndex).DatabaseID = 0; .vaPιcture(.ObjectZorderl .Selectedlndex). CD Volumn = ""
'don't touch this one; .vaPιcture(. ObjectZorderl. SelectedIndex).CompanyName = frmlnternetDB.Labell. Caption; '.ShoppmgList.Add(0, frmlntemetDB.cmblntemet Text, fnnlntemetDB. Labell. Caption, "", 1, 0, "None", "", ""); End With; End IftScreen.MousePomter = vbDefault;Exιt Sub;CreateObjectIntemetDBError:;If Err.Number <> 0 Then; gMsg = vaJEnorJError & Ste(En.Number) & va_Enor_WasGeneratedBy _; & Err.Source & Chr(13) & Err.Description & Chr(13) & " (CreateObjectlnternetDB)"; DisplayEnorMessage gMsg, vbCritical, VaTιtle;End
IftScreen.MousePointer = vbDefault;Exιt Sub;End Sub;'Returns the amounts of bytes used by all lead objects;Pubhc Function BytesTakenByLead() As Double;Dim ObjectPixels As Smgle;Dιm ObjectWidthPixels, ObjectHeightPixels As Integer;Dιm Totalbytes As Double;Dιm BitLevel As Sιngle;Dιm I As Integer;Totalbytes = 0;On Enor GoTo BytesTakenEnor;'background;If frmMDI.ActiveForm.ldBackground.Bitmap <> 0 Then; ObjectWidthPixels = frmMDI.ActιveForm.ldBackground.BιtmapWιdth; ObjectHeightPixels = frmMDI.ActiveForm.ldBackground.BitmapHeight; ObjectPixels = ObjectWidthPixels * ObjectHeightPixels; BitLevel = frmMDI.ActιveForrn.ldBackground.BιtmapBιts / 8; Totalbytes = Totalbytes + (ObjectPixels * BιtLevel);End Ift'composition buffers;If frmMDI.ActiveForm.ldCompositionBuffer.Bitmap <> 0 Then; ObjectWidthPixels = frmMDI.ActiveForm.ldCompositionBuffer.Bitmap Width; ObjectHeightPixels = frmMDI. ActiveForm.ldCompositionBuffer.BitmapHeight; ObjectPixels = ObjectWidthPixels * ObjectHeightPixels; BitLevel = frmMDI ActiveForm ldCompositionBuffer BitmapBrts / 8, Totalbytes = Totalbytes + (ObjectPixels * BιtLevel),End If, 'other buffers,If frmMDI ldTwam Bitmap <> 0 Then, ObjectWidthPixels = frmMDI ldTwam Bitmap Width, ObjectHeightPixels = frmMDI ldTwam BitmapHeight, ObjectPixels = ObjectWidthPixels * ObjectHeightPixels, BitLevel = frmMDI ldTwam BitmapBits / 8, Totalbytes = Totalbytes + (ObjectPixels * BιtLevel),End If,If frmMDI IdEditlmageBuffer Bitmap <> 0 Then, ObjectWidthPixels = frmMDI IdEditlmageBuffer BitmapWidth, ObjectHeightPixels = frmMDI IdEditlmageBuffer BitmapHeight, ObjectPixels = ObjectWidthPixels * ObjectHeightPixels, BitLevel = frmMDI IdEditlmageBuffer BitmapBits / 8, Totalbytes = Totalbytes + (ObjectPixels * BιtLevel),End If,If frmMDI IdEditMaskBuffer Bitmap <> 0 Then, ObjectWidthPixels = frmMDI IdEditMaskBuffer BitmapWidth, ObjectHeightPixels = frmMDI IdEditMaskBuffer BitmapHeight, ObjectPixels = ObjectWidthPixels * ObjectHeightPixels, BitLevel = frmMDI IdEditMaskBuffer BitmapBits / 8, Totalbytes = Totalbytes + (ObjectPixels * BιtLevel),End If,If frmMDI IdSnapshotBuffer Bitmap Then, ObjectWidthPixels = frmMDI IdSnapshotBuffer BitmapWidth, ObjectHeightPixels = frmMDI IdSnapshotBuffer BitmapHeight, ObjectPixels = ObjectWidthPixels * ObjectHeightPixels, BitLevel = frmMDI IdSnapshotBuffer BitmapBits / 8, Totalbytes = Totalbytes + (ObjectPixels * BιtLevel),End If,If frmMDI IdOuthneBuffer Bitmap Then, ObjectWidthPixels = frmMDI IdOutlineBuffer BitmapWidth, ObjectHeightPixels = frmMDI IdOuthneBuffer BitmapHeight, ObjectPixels = ObjectWidthPixels * ObjectHeightPixels, BitLevel = frmMDI IdOuthneBuffer BitmapBits / 8, Totalbytes = Totalbytes + (ObjectPixels * BιtLevel),End If,If frmMDI IdObjectBuffer Bitmap <> 0 Then, ObjectWidthPixels = frmMDI IdObjectBuffer BitmapWidth, ObjectHeightPixels = frmMDI IdObjectBuffer BitmapHeight, ObjectPixels = ObjectWidthPixels * ObjectHeightPixels, BitLevel = frmMDI IdObjectBuffer BitmapBits / 8, Totalbytes = Totalbytes
+ (ObjectPixels * BιfLevel),End If.'Buffers that hold images can't be dιstroyed,If frmMDI IdPattem Bitmap <> 0 Then, ObjectWidthPixels = frmMDI IdPattem BitmapWidth, ObjectHeightPixels = frmMDI IdPattem BitmapHeight, ObjectPixels = ObjectWidthPixels * ObjectHeightPixels, BitLevel = frmMDI IdPattem BitmapBits / 8, Totalbytes = Totalbytes + (ObjectPixels * BιtLevel),End If,If frmMDI ldUndelay Bitmap <> 0 Then, ObjectWidthPixels = frmMDI ldUndelay BitmapWidth, ObjectHeightPixels = frmMDI ldUndelay BitmapHeight, ObjectPixels =
ObjectWidthPixels * ObjectHeightPixels, BitLevel = frmMDI ldUndelay BitmapBits / 8, Totalbytes = Totalbytes + (ObjectPixels * BιtLevel),End If,If frmMDI ldMaskChpboard Bitmap <> 0 Then, ObjectWidthPixels = frmMDI ldMaskChpboard BitmapWidth, ObjectHeightPixels = frmMDI ldMaskChpboard BitmapHeight, ObjectPixels = ObjectWidthPixels * ObjectHeightPixels, BitLevel = frmMDI ldMaskChpboard BitmapBits / 8, Totalbytes = Totalbytes + (ObjectPixels * BιtLevel),End If,If frmMDI ldlmageChpBoard Bitmap <> 0 Then,
ObjectWidthPixels = frmMDI ldlmageChpBoard BitmapWidth, ObjectHeightPixels = frmMDI ldlmageChpBoard BitmapHeight, ObjectPixels = ObjectWidthPixels * ObjectHeightPixels, BitLevel = frmMDI ldlmageChpBoard BitmapBits / 8, Totalbytes = Totalbytes + (ObjectPixels * BιtLevel),End If.'all created objects, For I = 1 To HιghestIndex(frmMDI ActiveForm Tag), If ObjectDιscπptιon( frmMDI ActiveForm Tag, l) Deleted <> Tme Then, ObjectWidthPixels = frmMDI ActiveForm ldlmageθbject(ι) BitmapWidth, ObjectHeightPixels = frmMDI.ActιveForm.ldImageObject(ι).BιtmapHeιght; ObjectPixels = ObjectWidthPixels * ObjectHeightPixels; BitLevel = frmMDI ActιveForm.ldΙmageObject(ι). BitmapBits / 8, Totalbytes = Totalbytes + (ObjectPixels * BitLevel); ObjectWidthPixels = frmMDLActιveForm.ldImageMask(ι).BιtmapWιdth, ObjectHeightPixels = frmMDI.ActιveForm.ldImageMask(ι).BιtmapHeιght; ObjectPixels = ObjectWidthPixels * ObjectHeightPixels; BitLevel = frmMDI.ActiveForm.ldlmageMask(i). BitmapBits / 8; Totalbytes = Totalbytes +
(ObjectPixels * BitLevel); End If, Next ι;BytesTakenByLead = Totalbytes;Exιt Functιon;BytesTakenEnor:; BytesTakenByLead = -1 'enor,Exιt Functιon;End Functιon;'Actιon at drop lobject = index of object dropped to;Sub DropActιon(ιObject As Integer, ThisForm As Form);Dιm CurObj As Integer, CurrentWidth As Integer, CunentHeigth As Integer, retval As Integer,'hey look at these dec. may be off,Dιm DestinationW As Integer, DestmationH As Sιngle;Dιm DestinationAspect As Sιngle;Dιm oπginalW As Integer, ongmalH As Integer;Dιm onginalAspect As
Sιngle;Dιm RatioOff As Smgle;On Error GoTo DropActιonError;Screen.MousePoιnter = vbHourglass; ThisForm.picBackgroundBuffer.Cls; ThisForm.picScreen AutoRedraw = False; ThisForm picScreen.Cls; ThisForm.picScreen.AutoRedraw = Tme, ThisForm.Compose VA COMPOSE NOT NDEX, lObject; ThisForm.SendToFront; Select Case ThisForm. vaPιcture(ιObject).DropType, Case EZ_ANY; DropForce lObject, ThisForm. vaPιcture(ιObject) DropType, False, ThisForm; Case EZ_ANY_A, EZ_ANY_B, EZ_ANY_C,
EZ_ANY_D, EZ_ANY_E; DropForce lObject, ThιsForm.vaPιcture(ιObject).DropType, Tme, ThisForm; Case EZ ANY PROP, EZ_ANY_PROP2; DropProportional lObject, ThisForm. vaPιcture(ιObject).DropType, False, ThisForm; Case EZ ANY PROP A, EZ ANY PROP B, EZ_ANY_PROP_C, EZ_ANY_PROP_D, EZ_ANY_PROP_E, EZ_ANY_PROP2_A, EZ_ANYJPROP2_B, EZ_ANY_PROP2_C, EZ_ANY_PROP2_D, EZ ANYJPROP2JE; DropProportional lObject, ThisForm. vaPιcture(ιObject). DropType, Tme, ThisForm; Case
EZJPAT; 'DropResizePattem ThisForm; DropPattem lObject, ThisForm. vaPιcture(iObject). DropType, False, ThisForm; Case EZ PAT A, EZ PAT B, EZ PAT C, EZ_PAT_D, EZJPAT_E; 'DropResizePattem ThisForm 'works without this; DropPattem lObject, ThisForm. vaPιcture(ιObject). DropType, Tme, ThisForm; Case EZ_PATJNO; DropPattem lObject, ThisForm. vaPιcture(ιObject).DropType, False, ThisForm; Case EZ PAT NO l, EZ PATJN0 2, EZ PAT N0 3, EZ_PAT_NO_4, EZ_PATJNO_5; DropPattem lObject,
ThisForm. vaPιcture(ιObject).DropType, Tme, ThisForm; Case Else; End Select; ThisForm.picScreen.Refresh; ThisForm. Compose VA COMPOSE ALL; ThisForm.SendToFront; Screen.MousePointer = vbDefault;Exιt Sub;DropActιonError:; If En.Number o 0 Then; gMsg = va_Error_Enor & Str(En.Number) & va Error WasGeneratedBy _; & Err.Source & Chr(13) & Err.Description & Chr(13) & " (DropAction)"; DisplayErrorMessage gMsg, vbCritical, VaTitle; End If; Screen.MousePointer = vbDefault;Exιt Sub;End Sub;Sub
DropForce(ιObject As Integer, OperType As Integer, ForceGroup As Boolean, ThisForm As Form); Dim CurrentWidth As Integer, CunentHeigth As Integer, FrrstTimeThru As Boolean; Dim lStart As Integer, lEnd As Integer, Iindex As Integer; Dun Valndex As Integer, retval As Boolean; On Error GoTo DropForceEnor; If Not ForceGroup Then; iStart = lObject; lEnd = lObject; Else; lStart = 1; lEnd = ThisForm.ObjectZorderl. Count 'HighestIndex(frmMDI. ActiveForm.Tag); End If; FirstTrmeThru = Tme; SkipZorder = Tme; frmMDI.ldEditlmageBuffer.Bitmap = ThisForm.ldSpπteTransferBuffer.Bitmap; frmMDI ldEditMaskBuffer.Bitmap = ThisForm ldMaskTransferBuffer.Bitmap; For Imdex = lStart To lEnd; 'If ThisForm. vaPιcture(ιIndex).InGroup <> Tme Then; 'If ObjectDιscrιptιon(fιmMDI.ActιveForm.Tag, ιIndex).PerspectιveCoordιnates(0).Type = VERTICAL Then, ' TmeDropVerticalPerspective frmMDI.ActiveForm, llndex, ObjectDιscπptιon(frmMDI.ActιveForm.Tag, llndex). DropType; 'Elself ObjectDιscπptιon(frmMDI.ActιveForm Tag, ιIndex).PerspectιveCoordιnates(0).Type =
HORIZONTAL Then; ' TrueDropHoπzontalPerspective frmMDI.ActiveForm, llndex, ObjectDiscription(frmMDI. ActiveForm.Tag, llndex). DropType; 'Else; If ForceGroup Then Valndex = ThisForm Obj ectZorder l .GetZOder(Iιndex) Else Valndex = Iindex; If ThisForm vaPιcture( Valndex). DropType = OperType Then; retval = ThisForm. SaveUndo( Valndex, va_cap_Undo_Drop); ThisForm.ldSpnteTransferBuffer Bitmap = frmMDI.ldEditlmageBuffer.Bitmap 'get bitmaps warm and fresh;
ThιsForm.ldMaskTransferBuffer.Bιtmap = frmMDI.ldEditMaskBuffer.Bitmap;
ThisForm. vaPιcture( Valndex). BorderStyle = 0, CurrentWidth = ThisForm. vaPicture(Valndex) Width - 16, CurrentHeigth = ThisForm. vaPιcture(VaIndex).Heιght - 16; With ThisForm.ldSpnteTransferBuffer; .ScaleMode = 3; .Size CurrentWidth, CurrentHeigth, RESIZE NORMAL; ThisForm. vaPιcture( Valndex). Sprite = .GetPicture, End With; With ThisForm.ldMaskTransferBuffer; .ScaleMode = 3, .Size CurrentWidth, CurrentHeigth,
RESIZE NORMAL; ThisForm. vaPιcture( Valndex). Mask = .GetPicture; End With;' End If; ThisForm. vaPιcture( Valndex). ObjectName = NameCopy; ThisForm. vaPιcture( Valndex). DatabaselD = IDCopy; ThisForm vaPicture(Valndex). CDVolumn = VolumnCopy; ThisForm. vaPιcture( Valndex). CompanyName = CompanyCopy;' ThisForm. ShoppιngLιst(). ObjectName = NameCopy;' ThιsForm.ShoppmgLιst().DatabaseID = IDCopy;' ThιsForm.ShoppιngLιst().CDVolumn = VolumnCopy,' ThisForm. ShoppιngLιst(). CompanyName =
CompanyCopy; ThisForm.picBackgroundBuffer.Cls; ThisForm.picScreen.AutoRedraw = False; ThisForm picScreen.Cls; ThisForm.picScreen.AutoRedraw = Tme; ThisForm. Compose
VA_COMPOSEJNOT_INDEX, Valndex; ThisForm.SendToFront; ThisForm. vaPιcture(VaIndex).RepaιntImage ThisForm.picComposite.hDC, ThisForm. vaPιcture( Valndex). Left, ThisForm. vaPιcture( Valndex). Top, frmMDI.ldShadowBuffer, frmMDI.ldShadow; ThisForm. vaPιcture( Valndex). Refresh; Fu-stTuneTlim = False; If
ThisForm. vaPιcture(VaIndex).PerspectιveType = VA VERTICAL Then; frmMDI. ldShadowBuffer.SetPicrure ThisForm. vaPιcture(VaIndex).Spπte; frmMDI.ldShadow.SetPicture ThιsForm.vaPιcture(VaIndex).Mask, frmMDI. IdOuthneBuffer. SetPicture ThιsForm.vaPιcture(VaIndex).Mask; TmeDropVerticalPerspective ThisForm, Valndex, ThisForm. vaPιcture( Valndex). DropType; Elself ThisForm. vaPιcture(VaIndex).PerspectιveType = VA TORTZONTAL Then; frmMDI.ldShadowBuffer.SetPicture ThisForm vaPιcture(VaIndex).Spπte; frmMDI.ldShadow.SetPicture ThisForm. vaPιcture( Valndex). Mask; frmMDI.ldOutlmeBuffer.SetPicture ThisForm. vaPιcture( Valndex). Mask; TmeDropHorizontalPerspective ThisForm, Valndex, ThisForm. vaPιcture(VaIndex).DropType; End If;End If; Next Iindex; Screen.MousePomter = vbDefault;Exιt Sub;DropForceError:; If En.Number <> 0 Then; gMsg = va Error Enor & Ste(En.Number) & va_Error_WasGeneratedBy _; & Err.Source & Chr(13) & Err.Description & Chr(13) & " (DropForce)"; DisplayEnorMessage gMsg, vbCritical, VaTitle, End If, Screen MousePomter = vbDefault, Exit Sub,End Sub,'Drop object from DB in object.'operation false = paste tme = pattern destination 1=CDDB 2=USER 3=INTERNETDB,Sub DropIntoObject(ProdIdent As Integer, OperationT As Integer, DragDestination As Integer, ThisForm As Form), Dim DatabaseControlLoaded As Boolean, Dim md As Integer, retval As Integer, Dim SzFactor As Single, Dim SzStrmg As Steing, On Error GoTo DropIntoObjectEnor, Screen MousePomter = vbHourglass, If DragDestination = 1 Then,
Load frmMDI valmageBufferl (10) DatabaseConteolLoaded = Tme 'Patch for lead problem, frmMDI valmageBufferl (10) DatabaseName = DBPath & DBase, frmMDI valmageBufferl (10) Refresh, frmMDI valmageBufferl(lO) dtaField = "", frmMDI valmageBufferl (10) RecordSource = "Select Image,SιzeFactor from ProductDetail where ID = " & Prodldent, frmMDI valmageBufferl(lO) Refresh, frmMDI valmageBufferl(lO) dtaField = "Image", frmMDI valmageBufferl (10) Refresh, SzStrmg = frmMDI valmageBufferl(lO) Recordset("SιzeFactor"), If SzStrmg = "1 " Then, SzFactor = 1, Else, SzFactor = CInt(Left(SzStnng, 1)) / CInt(Mιd(SzStnng, 3)), End If, ThisForm IdSpriteTransferBuffer Bitmap = frmMDI valmageBufferl(lO) Bitmap, Unload frmMDI valmageBufferl(lO) DatabaseControlLoaded = False, If SzFactor o 1 Then, ThisForm IdSpriteTransferBuffer Size ThisForm IdSpriteTransferBuffer BitmapWidth * SzFactor, ThisForm IdSpriteTransferBuffer BitmapHeight * SzFactor, GeneralResizeMode, End If, If OperationT <=
EZ ANY PROP2 E Then ' Or OperationT = EZ ANY PROP Or OperationT = EZ ANY PROP2 Then 'pattern does not require mask, Load frmMDI valmageBufferl (10) DatabaseConteolLoaded = Tme, frmMDI valmageBufferl (10) DatabaseName = DBPath & DBase, frmMDI valmageBufferl (10) Refresh, frmMDI valmageBuffer 1(10) dtaField = "", frmMDI valmageBufferl(lO) RecordSource = "Select Mask,Masked from ProductDetail where ID = " & Prodldent, frmMDI valmageBufferl (10) Refresh, frmMDI valmageBufferl(lO) dtaField = "Mask", frmMDI valmageBufferl(lO) Refresh, If frmMDI valmageBufferl(lO) Recordset("Masked") = Tme Then 'has mask, ThisForm IdMaskTransferBuffer Bitmap
= frmMDI valmageBufferl(lO) Bitmap, Else 'if not mask create it, this code is unchecked yet,
ThisForm IdMaskTransferBuffer CreateBitmap ThisForm IdSpriteTransferBuffer BitmapWidth, ThisForm IdSpriteTransferBuffer BitmapHeight, ThisForm BMBits, ThisForm IdMaskTransferBuffer Fill 0, End If, If
SzFactor o 1 And frmMDI valmageBufferl (10) Recordset("Masked") = Tme Then, ThisForm IdMaskTransferBuffer Size ThisForm IdMaskTransferBuffer BitmapWidth * SzFactor, ThisForm IdMaskTransferBuffer BitmapHeight * SzFactor, GeneralResizeMode, End If, Unload frmMDI valmageBufferl (10) DatabaseConteolLoaded = False, End If, Elself DragDestination = 2 Then 'from user DB, ThisForm IdSpriteTransferBuffer Bitmap = frmUserDatase IdUserlmage Bitmap,
ThisForm IdMaskTransferBuffer Bitmap = frmUserDatase ldUserMask Bitmap, Elself DragDestination = 3 Then 'From internet DB or subcomp, If Prodldent = -1 Then, ThisForm IdSpriteTransferBuffer Bitmap = FrmSubComp piclmage Bitmap, If OperationT <= EZ_ANY_PROP2_E Then, ThisForm IdMaskTransferBuffer Bitmap = FrmSubComp IdMaskBuffer Bitmap, If FrmSubComp Checkl Value = 1 Then, ThisForm IdMaskTransferBuffer Reverse, ThisForm IdMaskTransferBuffer ForceRepamt, End If, End If, Else, ThisForm.ldSpπteTransferBuffer.Bitmap = frmlntemetDB.ldlmage.Bitmap; If OperationT <= EZ ANY PROP2 E Then ThisForm.ldMaskTransferBuffer.Bitmap = frmlntemetDB.ldMask.Bitmap; End If; End If; If OperationT <= EZ_ANY_PROP2_E Then ' EZ ANY Or OperationT = EZ ANY PROP Or OperationT = EZ_ANYJPROP2 Then 'paste special, ' frmMDI.ActιveForm.mnuPspecιal2.Enabled = Tme, ' frmMDI. ActιveForm.mnuPspecιal2. Visible = Tme; NameCopy = TempDBProductName; If DragDestination > 1 Then; VolumnCopy = ""; IDCopy = 0; Else;
IDCopy = Prodldent; VolumnCopy = DBase, End If; CompanyCopy = DBCompany; Else 'pattern; frmMDI.ldPattem.Bitmap = ThisForm.ldSpπteTransferBuffer.Bitmap 'frmMDI.ldEditlmageBuffer.Bitmap; frmMDI.ldPattern.ForceRepamt ' 09/04/97 DEH Changed from VBX to OCX; frmMDI.ldlmageClipBoard.ForceRepamt '- — 09/04/97 DEH Changed from VBX to OCX; frmMDI.ldMaskChpboard.ForceRepamt '- — 09/04/97 DEH Changed from VBX to OCX; ' fπ_-MDI.ActiveForm.mnuPspecιal2. Enabled = Tme; ' frmMDI.ActιveForm.mnuPspecιal2. Visible = Tme; PatName = TempDBProductName; If DragDestination > 1 Then; PatVolumn = ""; PatID = 0, Else; PatID = Prodldent; PatVolumn = DBase; End If; PatCompany = DBCompany; End If; If frmMDI.ActiveForm. vsbMain. Visible Then frmMDI. ActiveForm. vsbMam.ZOrder; If fimMDI.ActiveForm.hsbMam. Visible Then frmMDI. ActiveForm.hsbMain.ZOrder; Screen.MousePomter = vbDefault;Exιt Sub;DropIntoObjectError:; If
Err.Number <> 0 Then; gMsg = va Error Enor & Ste(En.Number) & va Error WasGeneratedBy _; & Err.Source & Chr(13) & Err.Description & Chr(13) & " (DropIntoObject)"; DisplayErrorMessage gMsg, vbCritical, VaTitle; End Ift'Resume; If DatabaseConteolLoaded = Tme Then Unload frmMDI.valmageBufferl(lO); Screen MousePomter = vbDefault; Exit Sub;End Sub;Sub DropPattern(ιObject As Integer, OperType As Integer, PatGroup As Boolean, ThisForm As Form);Dιm X As Integer, Y As Integer, iStart As Integer, lEnd As Integer, Iindex As Integer;Dιm
Pathdc, Fillhdc, Wide, High As Integer;Dιm retval As Integer, FirstTimeThm As Boolean;Dιm xx As Boolean;Dιm PatA As Integer, DestWide As Integer;Dιm Valndex As Integer;On Error GoTo DropPattemError Maybe should be somethmg else; If Not PatGroup Then; iStart = lObject; lEnd = iObject; Else; iStart = 1 ; lEnd = ThisForm.ObjectZorderl. Count 'Highestlndex(frmMDI.ActiveForm.Tag); End If; Dim PatternOnce As Boolean; FirstTimeThm = Tme; SkipZorder = Tme; frmMDI.ldPattem.Bitmap = ThisForm.ldSpnteTransferBuffer Bitmap; For
Iindex = iStart To lEnd; ' If ThisForm. vaPιcture(ιIndex). InGroup <> Tme Then; If PatGroup Then Valndex = ThisForm.ObjectZorderl. GetZOder(Iιndex) Else Valndex = Imdex; If ThisForm. vaPιcture( Valndex). DropType = OperType Then; retval = ThisForm. SaveUndo( Valndex, va_cap_Undo_Drop); ThisForm.vaPιcture(VaIndex).BorderStyle = 0; 'frmMDI.ldPattem.Bitmap = ThιsFo_m.ldSpr_teTransferBuffer.Bιtmap; frmMDI.ldPattem.ForceRepamt ' 09/04/97 DEH Changed from VBX to
OCX; ThisForm.ldSpπteTransferBuffer.SetPicture ThisForm. vaPιcture( Valndex). Spnte;
ThisForm.ldSpπteTransferBuffer.ForceRepaint; 'Resize Pattern and also needed for %resιze; If OperType >= EZ PAT And OperType < EZ_PAT_NO And Not PatternOnce Then; DropResizePattem ThisForm; frmMDI.ldPattern.ForceRepamt ' 09/04/97 DEH Changed from VBX to OCX; PatternOnce = Tme; frmMDI.ldTwain.Bitmap = frmMDI.ldPattem.Bitmap; Else; If OperType >= EZ_PAT And OperType < EZ PAT NO Then fnnMDI.ldPattem Bitmap = frmMDI.ldTwam Bitmap; End If, 'Non Resize Pattern needed for %resιze; If OperType >= EZ PAT NO And OperType <= EZ PAT N0 5 And Not PatternOnce Then; frmMDI.ldTwain.Bitmap = frmMDI.ldPattem.Bitmap; PatternOnce = Tme; Else, If OperType >= EZ PATJNO And OperType <= EZ_PATJNO_5 Then frmMDI.ldPattem.Bitmap = frmMDI.ldTwain.Bitmap; End If, ResizePatternPercent Valndex, If ThisForm. vaPιcture(VaIndex).PerspectιveType = VAJVERTICAL Then; TmeDropVerticalPerspective ThisForm,
Valndex, ThisForm. vaPicture(Valndex) DropType, Elself ThisForm. vaPicture(Valndex) PerspectiveType = VA HORIZONTAL Then, TrueDropHoπzontalPerspective ThisForm, Valndex, ThisForm vaPιcture( Valndex). DropType, 'ThisForm. vaPιcture(VaIndex).ReρaιntConserve frmMDI.ActiveForm.picComposite.hDC, ThιsFo_m.vaPιcture(VaIndex)Left, ThisForm. vaPicture(Valndex) Top; Else; ' frmMDI ldTwam.Bitmap = frmMDI.ldPattem.Bitmap; 'start pattern;' frmMDI.ldPattern.BitmapDC = Tme,
Pathdc = frmMDI.ldPattern.GetBitmapDC; frmMDI.ldObjectBuffer.BitmapDC = Tme; Fillhdc = ThιsForm.ldSpπteTransferBuffer.GetBιtmapDC; Wide = frmMDI.ldPattem.Bitmap Width 'test bob - 1 ; High = frmMDI ldPattern.BitmapHeight; DestWide = ThisForm.ldSpπteTransferBuffer.Bitmap Width; For Y = 0 To ThιsForm.ldSprιteTransferBuffer.BιtmapHeιght Step High; PatA = 0; For X = 0 To ThisForm IdSpriteTransferBuffer.Bitmap Width Step Wide; Select Case Pattern_ahgnment, Case 0 'left, retval =
BιtBlt(Fιllhdc, X, Y, Wide, High, Pathdc, 0, 0, SRCCOPY); Case 1 'center; If Wide > DestWide Then; retval = BιtBlt(Fιllhdc, (-((Wide - DestWide) / 2)), Y, Wide, High, Pathdc, 0, 0, SRCCOPY); Else; retval = BιtBlt(Fιllhdc, (- ((DestWide Mod Wide) / 2)) + (PatA * (Wide - 1)), Y, Wide, High, Pathdc, 0, 0, SRCCOPY); End If; Case 2 'right; retval = BιtBlt(Fιllhdc, ((DestWide) - Wide) - (PatA * Wide), Y, Wide, High, Pathdc, 0, 0, SRCCOPY); Case Else; End Select; PatA = PatA + 1 ; Next X; If Pattern ahgnment = 1 Then; If Wide > DestWide Then; retval =
BιtBlt(Fιllhdc, (-((Wide - DestWide) / 2)), Y, Wide, High, Pathdc, 0, 0, SRCCOPY); Else; retval = BιtBlt(Fιllhdc, (- ((DestWide Mod Wide) / 2)) + (PatA * (Wide - 1)), Y, Wide, High, Pathdc, 0, 0, SRCCOPY); End If, End If; Next Y;
ThisForm.ldSpπteTransferBuffer.ReleaseBitenapDC ' 09/08/97 DEH Changed from VBX to OCX; frmMDI.ldPattern.ReleaseBitmapDC '- — 09/08/97 DEH Changed from VBX to OCX; End If; ThisForm. vaPιcture(VaIndex).ObjectName = PatName; ThisForm. vaPιcture( Valndex). DatabaselD = PatID;
ThisForm. vaPιcture( Valndex). CDVolumn = PatVolumn; ThisForm. vaPιcture( Valndex). CompanyName = PatCompany; 'ThisForm. ShoppιngLιst(). ObjectName = PatName; 'ThisForm. ShoppιngLιst(). DatabaselD = PatID; 'ThιsForm.ShoppιngLιst().CDVolumn = PatVolumn; 'ThιsForm.ShoppmgLιst().CompanyName = PatCompany; If ThιsForm.vaPιcture(VaIndex).PerspectιveType = 0 Then; ThisForm. vaPιcture( Valndex). Sprite = ThisForm.ldSpriteTransferBuffer.GetPicture; End If; ThisForm.picBackgroundBuffer.Cls;
ThisForm.picScreen.AutoRedraw = False; ThisForm.picScreen.Cls; ThisForm.picScreen.AutoRedraw = Tme; ThisFormCompose VA_COMPOSE_NOT_TNDEX, Valndex; ThisForm.SendToFront;
ThisForm. vaPιcture(VaIndex).RepaιntConserve ThιsForm.pιcComposιte.hDC, ThisForm. vaPicture(Valndex). Left, ThιsForm.vaPιcture(VaΙndex) Top; ThisForm. vaPιcture( Valndex). Refresh; FirstTimeThm = False; 'fnnMDI.ldPattem. Width = 33 ; 'frmMDI.ldPattem.Height = 25 ;' End If, End If; Next Imdex; SkipZorder = False; Exit Sub,DropPatternError , If En Number = 6 Then, gMsg = VA_RESIZEPATTERNTOSMALL, DisplayEnorMessage gMsg, vbCritical, VaTitle, Resume Next, End If, If En Number <> 0 And Err Number <> 6 Then, gMsg = va Error Error & Ste(En Number) & va_Enor_WasGeneratedBy _, & Err Source & Chr(13) & Err Description & Chr(13) & " (DropPattem)", DisplayErrorMessage gMsg, vbCritical, VaTitle, End If, Screen MousePomter = vbDefault, Exit Sub, End Sub, Sub DropProportιonal(ιObject As Integer, OperType As Integer, ForceGroup As
Boolean, ThisForm As Form), Dim iStart As Integer, lEnd As Integer, Iindex As Integer, Dim DestmationW As Integer, DestinationH As Single, DestmationAspect As Single, Dim origmalW As Integer, onginalH As Integer, oπgmalAspect As Single, Dim RatioOff As Single, HalfPos As Integer, NewHalfPos As Integer, Dim FirstTimeThm As Boolean, pixelWidth, pixelHeight, Dim Valndex As Integer, retval As Boolean, On Error GoTo DropProportionalError, If Not ForceGroup Then, iStart = lObject, lEnd = lObject, Else, iStart = 1, lEnd =
ThisForm ObjectZorderl Count ΗιghestIndex(frmMDI ActiveForm Tag), End If,frmMDI IdEditlmageBuffer Bitmap = ThisForm IdSpriteTransferBuffer Bitmap.frmMDI IdEditMaskBuffer Bitmap =
ThisForm IdMaskTransferBuffer Bitmap, FirstTimeThm = Tme, SkipZorder = Tme, For Iindex = iStart To lEnd, If ForceGroup Then Valndex = ThisForm ObjectZorderl GetZOder(Iιndex) Else Valndex = Iindex, If ThisForm vaPicture(Valndex) DropType = OperType Then, retval = ThisForm SaveUndo(VaIndex, va_cap_Undo_Drop), ThisForm IdSpriteTransferBuffer Bitmap = frmMDI IdEditlmageBuffer Bitmap 'get bitmaps warm and fresh, ThisForm IdMaskTransferBuffer Bitmap = frmMDI IdEditMaskBuffer Bitmap,
ThisForm vaPicture(Valndex) BorderStyle = 0, If EZ_ANY_PROP / 10 =
Int(ThιsForm vaPιcture( Valndex) DropType / 10) Then, HalfPos = ThisForm vaPicture(Valndex) Left + (ThisForm vaPicture(Valndex) Width / 2), Else, HalfPos = ThisForm vaPicture(Valndex) Top +
(ThisForm vaPιcture( Valndex) Height / 2), End If, 'desmation object, DestmationW =
ThisForm vaPicture(Valndex) Width - 16, DestinationH = ThisForm vaPicture(Valndex) Height - 16, ongmalW = ThisForm IdSpriteTransferBuffer BitmapWidth, oπgmalH = ThisForm IdSpriteTransferBuffer BitmapHeight, If EZ ANY PROP / 10 = Int(ThιsForm vaPicture(Valndex) DropType / 10) Then, DestmationAspect = DestmationW / DestinationH, oπginalAspect = oπginalW / onginalH, Else, DestmationAspect = DestinationH / DestmationW, oπgmalAspect = onginalH / ongmalW, End If, RatioOff = ((DestmationAspect / oπginalAspect) * 100) - 100, With ThisForm vaPιcture( Valndex), If EZ ANY PROP / 10 = Int(ThιsForm vaPicture(Valndex) DropType / 10) Then, pixelWidth = DestinationH * onginalAspect, pixelHeight = DestinationH, Else, pixelWidth = DestmationW, pixelHeight = DestmationW * onginalAspect, End If, ThisForm IdSpriteTransferBuffer ScaleMode = 3, ThisForm IdSpriteTransferBuffer Size pixelWidth, pixelHeight, RESIZE NORMAL, Sprite =
ThisForm IdSpriteTransferBuffer GetPicture, If EZ_ANY_PROP / 10 = Int(ThιsForm vaPicture(Valndex) DropType / 10) Then, NewHalfPos = (HalfPos - ( Width / 2)) 'maybe here take out outline if select comment above, Else, NewHalfPos = (HalfPos - ( Height / 2)), End If, End With, With ThisForm vaPιcture( Valndex), If EZ_ANYJPROP / 10 = Int(ThιsForm vaPicture(Valndex) DropType / 10) Then, pixelWidth = DestinationH * onginalAspect, pixelHeight = DestinationH, Else, pixelWidth = DestmationW, pixelHeight = DestmationW * onginalAspect, End If, ThisForm IdMaskTransferBuffer ScaleMode = 3, ThisForm IdMaskTransferBuffer Size pixelWidth, pixelHeight, RESIZE NORMAL, Mask = ThisForm IdMaskTransferBuffer GetPicture, End With, If EZ AN YJPROP / 10 = Int(ThιsForm vaPicture(Valndex) DropType / 10) Then, ThisForm vaPicture(Valndex) Left = NewHalfPos, Else, ThisForm vaPιcture( Valndex) Top = NewHalfPos, End If, ThisForm vaPιcture( Valndex) ObjectName = NameCopy, ThisForm vaPicture(Valndex) DatabaselD = IDCopy, ThisForm vaPicture(Valndex) CDVolumn = VolumnCopy,
ThisForm vaPicture(Valndex) CompanyName = CompanyCopy, 'ThisForm ShopprngLιst() ObjectName = NameCopy, 'ThisForm ShoppmgLιst() DatabaselD = IDCopy, 'ThisForm ShoppιngLιst() CDVolumn = VolumnCopy, 'ThisForm ShoppmgLιst() CompanyName = CompanyCopy, FirstTimeThm = False, 'End If, ThisForm picBackgroundBuffer Cls, ThisForm picScreen AutoRedraw = False, ThisForm picScreen Cls, ThisForm picScreen AutoRedraw = Tme, ThisForm Compose VA_COMPOSE_NOT_INDEX, Valndex,
ThisForm SendToFront, ThisForm vaPicture(Valndex) Repaintlmage ThisForm picComposite hDC, ThisForm vaPicture(Valndex) Left, ThisForm vaPicture(Valndex) Top, frmMDI IdShadowBuffer, frmMDI IdShadow, ThisForm vaPicture(Valndex) Refresh, If ThisForm vaPιcture( Valndex) PerspectiveType = VA_VERTICAL Then, frmMDI IdShadowBuffer SetPicture ThisForm vaPicture(Valndex) Sprite, frmMDI IdShadow SetPicture ThisForm vaPicture(Valndex) Mask, frmMDI ldOutlrneBuffer SetPicture ThisForm vaPicture(Valndex) Mask,
TmeDropVerticalPerspective ThisForm, Valndex, ThisForm vaPicture(Valndex) DropType, Elself ThisForm vaPicture(Valndex) PerspectiveType = VA HORIZONTAL Then, frmMDI IdShadowBuffer SetPicture ThisForm vaPicture(Valndex) Sprite, frmMDI IdShadow SetPicture ThisForm vaPicture(Valndex) Mask, frmMDI IdOuthneBuffer SetPicture ThisForm vaPicture(Valndex) Mask, TmeDropHoπzontalPerspective ThisForm, Valndex, ThisForm vaPicture(Valndex) DropType, End If, ThisForm vaPicture(Valndex) Repaintlmage
ThisForm picComposite hDC, ThisForm vaPicture(Valndex) Left, ThisForm vaPicture(Valndex) Top, frmMDI IdShadowBuffer, frmMDI IdShadow, ThisForm vaPicture(Valndex) Refresh, End If, Next Imdex, Screen MousePomter = vbDefault,Exιt Sub,DropProρortιonalError , If Err Number o 0 Then, gMsg = va_Error_Enor & Ste(Err Number) & va Error WasGeneratedBy _, & En Source & Chr(13) & En Description & Chr(13) & " (DropProportional)", DisplayEnorMessage gMsg, vbCritical, VaTitle, End If, Screen MousePomter = vbDefault, Exit Sub, End Sub, Sub DropResιzePattern(ThιsForm As Form),Dιm DestmationW As Integer, DestinationH As Integer, ongmalW As Integer, onginalH As Integer.Dim DestmationAspect As Single, onginalAspect As Smgle, RatioOff As Smgle.Dim pixelWidth, pιxelHeιght,On Error GoTo DropResizeEnor, ' If FormState(frmMDI ActiveForm Tag) DoorSizeW <> 0 And FormState(frmMDI ActiveForm Tag) DoorSizeH o 0 Then, If ThisForm DoorSizeH <> 0 Then, With frmMDI IdPattem, DestmationW = ThisForm DoorSizeW,
DestinationH = ThisForm DoorSizeH, ongmalW = BitmapWidth, onginalH = BitmapHeight, DestmationAspect = DestmationW / DestinationH 'not used, maybe in the future, onginalAspect = ongmalW / onginalH 'this is used, RatioOff = ((DestmationAspect / onginalAspect) * 100) - 100, '- — 09/04/97 DEH Changed from VBX to OCX,' ResizeType = GeneralResizeMode,' Resize Width = DestinationH * onginalAspect,' ResizeHeight = DestinationH 'no change here,' Resize = Tme,' ResizeType = RESIZE NORMAL, pixelWidth = DestinationH * onginalAspect, pixelHeight = DestinationH, .ScaleMode = 3; .Size pixelWidth, pixelHeight, RESIZE JRESAMPLE; .Width =
.BitmapWidth, .Height = .BitmapHeight, .ForceRepamt ' 09/04/97 DEH Changed from VBX to OCX; End With,
End If; Exit Sub;DropResιzeEnor:; If En.Number <> 0 Then; gMsg = va_EnorJEnor & Str(En Number) & va_Error_WasGeneratedBy _; & En.Source & Chr(13) & Err.Description & Chr(13) & " (DropResizePattem)", DisplayErrorMessage gMsg, vbCritical, VaTitle; End If; Screen.MousePointer = vbDefault; Exit Sub; End
Sub;'Reduces the size of all temporary buffers to save space and tιme;Sub ShπnkAllTempBuffers(),' 09/04/97
DEH Changed from VBX to OCX;If frmMDI.ldTwain.Bitmap <> 0 Then;' frmMDI.ldtwam.Resize Width = 2,' frmMDI. ldtwain.ResizeHeight = 2;' frmMDI.ldtwam.Resize = Tme; frmMDI ldTwain.ScaleMode = 3, frmMDI.ldTwain.Size 2, 2, RESIZE_NORMAL;End If;If frmMDI.ldEditlmageBuffer.Bitenap <> 0 Then;' frmMDI.ldEditlmageBuffer.ResizeWidth = 2;' frmMDI.ldEditlmageBuffer.ResizeHeight = 2,' frmMDI.ldEditlmageBuffer.Resize = Tme; frmMDI.ldEditlmageBuffer.ScaleMode = 3; fmiMDI.ldEditlmageBuffer.Size 2, 2, RESIZE JNORMAL;End If;If frmMDI.ldEditMaskBuffer Bitmap <> 0 Then;' frmMDI.ldEditMaskBuffer.ResizeWidth = 2;' frmMDI.ldEditMaskBuffer.ResizeHeight = 2;' frmMDI.ldEditMaskBuffer.Resize = Tme, frmMDI.ldEditMaskBuffer.ScaleMode = 3, frmMDI.ldEditMaskBuffer.Size 2, 2, RESIZE JNORMAL;End If;If frmMDI.ldSnapshotBuffer.Bitmap Then,' frmMDI.ldSnapshotBuffer.Resize Width = 2;' frmMDI.ldSnapshotBuffer.ResizeHeight = 2;' frmMDI.ldSnapshotBuffer.Resize = Tme; frmMDI.ldSnapshotBuffer.ScaleMode = 3; frmMDI.ldSnapshotBuffer.Size 2, 2, RESIZE JNORMAL;End If;If frmMDI.ldOuthneBuffer.Bitmap Then;' frmMDI.ldOutlmeBuffer.Resize Width = 2;' frmMDI.ldOuthneBuffer.ResizeHeight = 2;' frmMDI.ldOutlineBuffer.Resize = Tme; frmMDI.ldOutlineBuffer.ScaleMode = 3; frmMDI.ldOuthneBuffer.Size 2, 2, RESIZE JNORMAL;End If;If frmMDI.ldObjectBuffer.Bitmap <> 0 Then;' frmMDI.ldObjectBuffer.Resize Width = 2;' frmMDI. IdObjectBuffer.ResizeHeight = 2;' frmMDI.ldObjectBuffer.Resize = Tme; frmMDI.ldObjectBuffer.ScaleMode = 3; frmMDI.ldObjectBuffer.Size 2, 2, RESIZE JNORMAL;End If,End Sub;

Claims

What is claimed is
1 A system for producing a computer-generated display of an item image associated with an image object, comprising a screen, a source comprising ingredients associated with the image object, a connection system configured to connect to the source over an internet-type connection, and a computer system configured to operate with the connection system to retrieve the ingredients from the source, to generate a background image on a first screen portion of the screen, to process the ingredients to generate a trigger image on a second screen portion of the screen, to generate the item image when the trigger image is dragged from the second screen portion and dropped on the first screen portion, and to display the item image on the background image
2 The system of claim 1 wherein an initial height value is associated with the item image and the system further comprises an autoscalmg mechanism configured to automatically resize the item image displayed on the screen by adjusting a displayed height of the item image pursuant to a ratio of the initial height value and a user-specified dimension defined relative to the background image
3 The system of claim 1 wherem the computer system comprises the connection system
4 The system of claim 1 wherem the ingredients comprise text information, and the computer system further is configured to retrieve and to display the text information
5 The system of claim 1 wherein the connection system comprises a browser
6 The system of claim 1 wherein the computer system further is configured to enable see through characteristics of the item image as displayed on the background image
7 The system of claim 1 wherem the system further comprises a second source comprising second ingredients associated with a thumbnail image, and the computer system further is configured to process the second mgredients to generate the thumbnail image on a third screen portion of the screen, to generate a second item image when the thumbnail image is dragged from the third screen portion and dropped on the first screen portion, and to display the second item image on the background image
8 The system of claim 7 wherein the second source comprises a local source
9 The system of claim 7 wherein the computer system further is configured to simultaneously display the item image and the second item image on the background image
10 The system of claim 9 wherein the computer system further is configured to selectively display, at least partially, either of the item image and the second item image on an other of the item image and the second item image
11 The system of claim 10 wherein the computer system further is configured to simultaneously enable see through characteristics of either of the item image and the second item image relative to an other of the item image and the second item image
12 The system of claim 11 wherein the computer system further is configured to selectively exchange relative positions of the item image and the second item image as displayed on the screen
13 The system of claim 12 wherem the computer system further is configured to alter the see through characteristics of the item image and the second item image upon exchanging of the relative positions thereof
14 A system for producing a computer-generated display of an image, comprising a screen, a source comprising ingredients associated with a background image, an item image of an image object, and an icon image associated with the image object, a connection system configured to connect to the source, and a computer system comprising an object area creation tool configured to automatically create a user-selected object area on the screen and to generate a sprite image and a mask image associated with the object area, the computer system configured to operate with the connection system to retrieve from the source and to process the ingredients, to display a background image on a first screen portion of the screen, to create the object area on the background image, to display the icon image on another screen portion of the screen, and to display the item image in the object area when the icon image is dragged from the other screen portion and dropped on the first screen portion
15 The system of claim 14 wherem the computer system further is configured to automatically resize a horizontal dunension of the item image to fit withm a horizontal dimension of the object area and to resize a vertical dimension of the item image proportionately to the resized horizontal dimension of the item image
16 The system of claim 14 wherem the computer system further is configured to automatically resize a vertical dimension of the item image to fit within a vertical dimension of the object area and to resize a horizontal dimension of the item image proportionately to the resized vertical dimension of the item image
17 The system of claim 14 wherem the computer system further is configured to selectively and automatically remove the item image that is displayed on the screen and to display another item image on the screen
18 The system of claim 17 wherem the computer system further is configured to store the item image that was removed from the screen
19 The system of claim 17 wherein the computer system further is configured to store a plurality of item images that have been removed from the screen
20 The system of claim 19 wherein the computer system further is configured to selectively remove the item image displayed on the screen and to display a selected one of the plurality of the item images that have previously been removed from the screen 21 The system of claim 14 wherein the item image comprises sub-item images each comprising a perspective of the item image, and wherein the computer system is configured to separately display the sub-item images m the object area
22 The system of claim 21 wherein the computer system further is configured to enable see through characteristics of each sub-item image when displayed in association with the background image
23 The system of claim 21 wherem the computer system further is configured to display a conteol image on the screen to enable separate viewing of the sub-item images
24 The system of claim 23 wherein the computer system further comprises a pomting device, and the conteol image is displayed as a slider image and is configured to be conteolled through a movement of the pointing device
25 The system of claim 21 wherem the sub- item images have substantially equi-angular spacing therebetween
26 The system of claim 21 wherem successive displaying of the sub-item images generates an appearance of the item image being rotated about an axis on the background image
27 The system of claim 21 wherein the computer system further is configured to successively display each sub- item image with a user-selected time interval therebetween
28 The system of claim 21 wherem the source comprises an internet-type source, and the connection system is configured to connect the computer system to the internet-type source over an internet-type connection
29 The system of claim 14 wherein the source comprises second ingredients associated with a pattern image and an icon unage associated with the pattern image, and the computer system further is configured to identify a user-selected area of the computer-generated display, to automatically resize the computer-generated display withm the user-selected area pursuant to a user-determined scale, and to resize the pattern image associated with the icon unage pursuant to the user-determined scale and to display m the pattern image in the user-selected area
30. The system of claim 29 wherem the computer system further is configured to cause the pattern image displayed in association with the object area to adopt the sprite image and the mask image of the object area and thereby enable see through characteristics of the pattern image displayed on the background image
31 The system of claim 29 wherein: the source comprises an internet-type source; and the connection system is configured to connect the computer system to the internet-type source over an internet-type connection.
32 The system of claim 14 wherein the connection system comprises a browser.
A system for producing a computer-generated display of an image, comprising a screen, a source compnsmg ingredients associated with a background image and an item image comprising a plurality of sub-images that are each linked to a pre-determined location relative to the item image, a connection system configured to connect to the source, and a computer system configured to operate with the connection system to retrieve from the source and to process the ingredients, to display a background image on a first screen portion of the screen, to display an icon unage associated with the item image on a second screen portion of the screen, to display the item image and a first of the plurality of sub-item images on a third screen portion of the screen, and to display the item image with the first sub-item image in an object area
4. A system for producing a computer-generated display of an image, comprising- a screen; a source comprising ingredients associated with a background image; a connection system configured to connect to the source; and a computer system configured to operate with the connection system to reteieve from the source and to process the ingredients, to display a background image on a first screen portion of the screen, and to display the grid over the background image pursuant to a user-determined dimension
5 The system of claim 34 wherein the user-determined dimension is defined relative to a feature of the background image displayed on the screen.
PCT/US1999/011624 1998-05-27 1999-05-26 System for visualizing items in user-provided environment WO1999061977A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU42071/99A AU4207199A (en) 1998-05-27 1999-05-26 System for visualizing items in user-provided environment

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US8767098A 1998-05-27 1998-05-27
US09/087,670 1998-05-27

Publications (1)

Publication Number Publication Date
WO1999061977A1 true WO1999061977A1 (en) 1999-12-02

Family

ID=22206559

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1999/011624 WO1999061977A1 (en) 1998-05-27 1999-05-26 System for visualizing items in user-provided environment

Country Status (2)

Country Link
AU (1) AU4207199A (en)
WO (1) WO1999061977A1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100325043A1 (en) * 2008-10-16 2010-12-23 Bank Of America Corporation Customized card-building tool
US8607148B2 (en) 2008-08-26 2013-12-10 General Electric Company Method and system for performing drag and drop operation
US10037122B2 (en) 2014-09-26 2018-07-31 Oracle International Corporation Canvas layout algorithm
US10460368B2 (en) 2015-06-30 2019-10-29 Pella Corporation System for presenting and updating a contextual visualization of multiple products installed in an installation location for multiple users

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5404316A (en) * 1992-08-03 1995-04-04 Spectra Group Ltd., Inc. Desktop digital video processing system
US5485568A (en) * 1993-10-08 1996-01-16 Xerox Corporation Structured image (Sl) format for describing complex color raster images
US5710896A (en) * 1993-10-29 1998-01-20 Object Technology Licensing Corporation Object-oriented graphic system with extensible damage repair and drawing constraints
US5732230A (en) * 1995-05-19 1998-03-24 Richo Company Ltd. Computer user interface for manipulating image fragments using drag, drop and merge operations
US5831616A (en) * 1996-06-21 1998-11-03 Samsung Electronics Co., Ltd. Apparatus, and method for searching and retrieving moving image information
US5838906A (en) * 1994-10-17 1998-11-17 The Regents Of The University Of California Distributed hypermedia method for automatically invoking external application providing interaction and display of embedded objects within a hypermedia document

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5404316A (en) * 1992-08-03 1995-04-04 Spectra Group Ltd., Inc. Desktop digital video processing system
US5485568A (en) * 1993-10-08 1996-01-16 Xerox Corporation Structured image (Sl) format for describing complex color raster images
US5710896A (en) * 1993-10-29 1998-01-20 Object Technology Licensing Corporation Object-oriented graphic system with extensible damage repair and drawing constraints
US5838906A (en) * 1994-10-17 1998-11-17 The Regents Of The University Of California Distributed hypermedia method for automatically invoking external application providing interaction and display of embedded objects within a hypermedia document
US5732230A (en) * 1995-05-19 1998-03-24 Richo Company Ltd. Computer user interface for manipulating image fragments using drag, drop and merge operations
US5831616A (en) * 1996-06-21 1998-11-03 Samsung Electronics Co., Ltd. Apparatus, and method for searching and retrieving moving image information

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8607148B2 (en) 2008-08-26 2013-12-10 General Electric Company Method and system for performing drag and drop operation
US20100325043A1 (en) * 2008-10-16 2010-12-23 Bank Of America Corporation Customized card-building tool
US10037122B2 (en) 2014-09-26 2018-07-31 Oracle International Corporation Canvas layout algorithm
US10691284B2 (en) 2014-09-26 2020-06-23 Oracle International Corporation Canvas layout algorithm
US10460368B2 (en) 2015-06-30 2019-10-29 Pella Corporation System for presenting and updating a contextual visualization of multiple products installed in an installation location for multiple users

Also Published As

Publication number Publication date
AU4207199A (en) 1999-12-13

Similar Documents

Publication Publication Date Title
US20080184139A1 (en) System and method for generating graphical user interfaces and graphical user interface models
US6317142B1 (en) Taxonomy of objects and a system of non-modal property inspectors
AU650179B2 (en) A compositer interface for arranging the components of special effects for a motion picture production
US5675753A (en) Method and system for presenting an electronic user-interface specification
US6791581B2 (en) Methods and systems for synchronizing skin properties
US7458020B2 (en) Methods and systems for creating skins
US5986670A (en) Method and apparatus for producing a computer generated display that permits visualization of changes to the interior or exterior of a building structure shown in its actual environment
US7012602B2 (en) Virtual three-dimensional display for product development
US20050268279A1 (en) Automated multimedia object models
US20020004755A1 (en) Methods, systems, and processes for the design and creation of rich-media applications via the internet
WO1999006961A1 (en) Method for generating 3d animations from animation data
WO1998011511A9 (en) Method and apparatus for producing a computer generated display that permits visualization of changes in the interior or exterior of a building structure shown in its actual environment
US20060158459A1 (en) Systems and methods for creating user interfaces
US20030231202A1 (en) System and method for facilitating presentation of a themed slide show
WO1999061977A1 (en) System for visualizing items in user-provided environment
Cisco GUI Navigation
CN117853662A (en) Method and device for realizing real-time interaction of three-dimensional model in demonstration text by player
CN117453097A (en) Method and device for generating material instance, electronic equipment and readable storage medium
Portable et al. The Java Pyramids Explorer
CA2202722A1 (en) Taxonomy of objects and a system of non-modal property inspectors
Still Using Other ImageMagick Tools
Redux Formatting Bound Data
MacDonald Formatting Bound Data
AU3019900A (en) Stored best perspectives and attributes for editing and manipulating documents

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AL AM AT AU AZ BA BB BG BR BY CA CH CN CU CZ DE DK EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT UA UG UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW SD SL SZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
NENP Non-entry into the national phase

Ref country code: KR

REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase