home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1998 January / Pcwk0198.iso / Dcomplib / BIGTEXT.LZH / README.TXT < prev    next >
Text File  |  1995-10-05  |  9KB  |  196 lines

  1. { TBigText 3.1  (c) 1995 by Gerry Skolnik (skolnik@kapsch.co.at)
  2.  
  3.                 A big thanks to the following contributors:
  4.  
  5.                 (c) 1995 by Danny Thorpe
  6.                             original scrolling and keyboard handling;
  7.                             as he gave no email address, he doesn't
  8.                             know about it, I took his stuff from his
  9.                             TConsole component :-)
  10.  
  11.                 (c) 1995 by David Sampson (dsampson@dca.com) -
  12.                             Color,  Scroll Bar and Text Attribute enhancements
  13.  
  14.                 (c) 1995 by Eric Heverly (erichev@ix.netcom.com)
  15.                             Search capability, Positioning, cursor fixes
  16.  
  17.   history:
  18.   TBigText 1.x  - first release
  19.   TBigText 2.x  - never made it, chaos is not a theory
  20.   TBigText 3.0  - enhancements by David Sampson, Eric Heverly
  21.   TBigText 3.1  - bug fix (horizontal scrolling) by Gerry Skolnik
  22.  
  23.   This component will display up to 32767 lines of text. Each line has its
  24.   own dedicated foreground, background color, text attributes and can be 255
  25.   chars long. If memory permits this is a maximum of about 8MB of data.
  26.   At this time no editing functions are available.
  27.  
  28.   TBigList is still there because at the time I wrote this I didn't know about
  29.   HugeList. Talk about reinventing the wheel.
  30.  
  31.   TBigText is limited to 32767 lines, because the Windows API functions only
  32.   accept integer values. Expect some problems a little earlier, though, at
  33.   about 32740.
  34.  
  35.   TBigText is FreeWare. You may use it freely at your own risk in any
  36.   kind of environment. This component is not to be sold at any charge, and
  37.   must be distributed along with the source code.
  38.  
  39.   If you make modifications or enhancements to this component, please
  40.   contact me via email so that I can include your stuff in the next
  41.   release. As Delphi32 won't produce Win3.x code, and we still will
  42.   have to support Win 3.x, this component may survive a little longer
  43.   longer than I'd expected...
  44.   
  45.   I had two requests I somehow can't find a proper way to fullfill:
  46.   a dedicated font for each line (while that'll be easy, I find the
  47.   scrolling a bit messy then), and word wrapping. Any ideas welcome.
  48.  
  49.   Okay, here's the description of the component:
  50.   
  51.   property MaxLines
  52.            if set to 0, as much lines as memory permits are included. The
  53.            absolute maximum, however, is 32767. If set to something else,
  54.            TBigText will limit itself to that many lines.
  55.  
  56.   property PurgeLines
  57.            determines how to handle the situation when no more lines can be
  58.            added (line count reached Maxlines value or we ran out of memory).
  59.            if set to 0, an exception is raised. If set to something different
  60.            (default 200) the number of lines specified by PurgeLines are
  61.            deleted, the TBigList objects are packed, and most likely more
  62.            lines can be added (though the first ones will be lost).
  63.            This option is useful for logging windows.
  64.  
  65.   property Count
  66.            run-time read-only. If the Lines and TextAttrib counts are equal, this
  67.            property holds the number of lines in TBigText. If the two counts are
  68.            unequal, there's something wrong and the property holds a value of -1.
  69.  
  70.   procedure AddLine(LineString: string; FCol, BCol: TColor; UpdateDisplay: boolean);
  71.            The essential routine to insert lines into TBigText.
  72.            LineString   : the text to be inserted
  73.            FCol         : forground color
  74.            BCol         : background color
  75.            UpdateDisplay: if true, TBigText will scroll to the last line
  76.                           (where the new line will be added), and update
  77.                           its display. This is not recommended if lots of
  78.                           lines are to be included in a loop.
  79.  
  80.   procedure LoadFromFile(FileName: TFileName);
  81.            Loads a file into TBigText. Every line will have the default colors
  82.            clWindowText, clWindow.
  83.  
  84.   procedure Print
  85.            prints all lines on the specified printer. Haven't checked this out, though.
  86.  
  87.   procedure ChangeColor(Index: longint; OldFCol, OldBCol, NewFCol, NewBCol: TColor);
  88.            changes the colors of the line at Index, but only if the current colors
  89.            match OldFCol and OldBCol (FCol = foreground color, BCol = background color).
  90.  
  91.   procedure SetColors(Index: longint; NewFCol, NewBCol: TColor);
  92.            changes the colors of the line at Index
  93.  
  94.   the following procedures do pretty much the same as the according TList methods:
  95.  
  96.   procedure Clear;
  97.   procedure Delete(Index: longint);
  98.   procedure Remove(Index: longint);
  99.   procedure Pack;
  100.  
  101.   ============================================================================
  102.   New Stuff added 8/31/95 by David Sampson
  103.  
  104.   Properties:
  105.   ------------------------
  106.  
  107.   property Colors :  changed so that it is the window background color
  108.  
  109.   property ForeColor:
  110.   property BackColor:  These are the default forground and background colors
  111.                        that will be used to display the text in the window.
  112.  
  113.   property FillBack: Fills the background of the whole line with the Backgnd color
  114.  
  115.   property ScrollBars: Let's you select scrollbars
  116.  
  117.   Methods:
  118.   ------------------------
  119.  
  120.   procedure AddString(LineString: string; UpdateDisplay: boolean);
  121.  
  122.     --This adds a string using the default fore and back colors and left
  123.       alignment.
  124.  
  125.   procedure AddStringA(LineString: string; Fore, Back : TColor;
  126.                        Align : TTextAlign; Style : TFontStyles; UpdateDisplay: boolean);
  127.  
  128.     --This lets you add a string and specify the colors, alignment, and text style
  129.  
  130.   procedure AlignText(Index : LongInt; Align : TTextAlign; UpdateDisplay: boolean);
  131.  
  132.     --This lets you set the text alignment on an item.
  133.       Updatedisplay set to true refreshes the display
  134.  
  135.   procedure SetColors(Index: longint; NewFCol, NewBCol: TColor);
  136.  
  137.     --Let's you specify a fore and back color for a specific index
  138.  
  139.   procedure SetStyle (Index : LongInt; Style :TFontStyles; UpdateDisplay: boolean);
  140.  
  141.     --Let's you set the text style
  142.       Updatedisplay set to true refreshes the display
  143.  
  144.   Here's some example calls:
  145.  
  146.  BigText1.AddLine('Hello', clWhite, clNavy, True);
  147.  BigText1.AddString('There', True);
  148.  BigText1.AddStringA('Yogi', clYellow, clRed, taRight, [], True);
  149.  BigText1.AddStringA('Bear', clWhite, clGreen, taCenter, [], True);
  150.  BigText1.AddString('This was left aligned', [], False);
  151.  BigText1.AlignText (BigText1.Count -1, taCenter, true);
  152.  BigText1.SetStyle(BigText1.Count -1, [fsBold, fsItalic, fsUnderline, fsStrikeout], true);
  153.  
  154.  ============================================================================
  155.  New Stuff added by Eric Heverly
  156.  
  157.  Function Search - Added EJH 07/04/95
  158.  Search('this text', True, True);
  159.  Parameters:
  160.        SrcWord  : String - What to Look for in the array
  161.        SrchDown : Bool - True - Search down; False - Search Up
  162.        MCase    : Bool - True - Match Case Exact; False - Disregard Case
  163.  
  164.  Returns:       True - Found ; False - Not Found
  165.  
  166.       Note: This is a little screwy because it does not redisplay the
  167.             last page if text is found there when already on the last page.
  168.             Also, during displays of found data, on the last call, if the
  169.             user closes the finddialog, I could not see an automatic way
  170.             for this application to know that it was not visible, so the
  171.             final blue line stays on the screen untill the window scrolls
  172.             beyond it, from then on it is not there.  This is sometimes
  173.             useful, othertimes it is just ugly.
  174.  
  175.       Note: To find exact matches if you have the option available to the
  176.             user, put a space on both sides of SrcWord, otherwise partial
  177.             matches are used.
  178.  
  179.  Modifications - Eric Heverly - July 1995 (erichev@ix.netcom.com)
  180.  
  181.        Scroll- Added keys F1-F4 to the Scrool Keys table.
  182.        Print - Added canvas font for the display canvas to the printer
  183.                so the expected printer font was the same.  Also added some
  184.                Cursor := crHourGlass to show that the system was busy during
  185.                print cycles.
  186.        Search- Added function.
  187.        GoPosi- GoPosition function added.
  188.        LoadFr- LoadFromFile added some Cursor := crHourGlass to show the
  189.                user that the system is busy.  Also I changed the call to the
  190.                addline function to use the dumchar, this keeps the font to
  191.                the defined font in the object editor (ie. I used Courier and
  192.                this way it kept Courier as the display font, with the OEM
  193.                characters, it always used the System font).
  194.  
  195. }
  196.