Hi,

The code included BMP Toolkit is written TPW (See DOC files). 

The original zip files can be found in BPASCAL/OWL under the names BMTLKT.ZIP
and BMPTLKT.ZIP. Note that I only changed the unit names to BP7 thus you 
don't need to download the original zip file.

I'm using BP7 and am unable to compile succesfully this source code even
after changing all the unit uses names.

I'm new in Windows programming. Please help me by sending me a 
message. Maybe it need a compile switch setting or something.

My goal is to use this source in an Online Gif Viewer (Like CIS)
which means that every 1024 bytes needs to be displayed as 
they become available from the download protocol. The BP7 Bitmap
display function is unusable. Someone (Steve Sneed) sent me the
next solution. 

Question? How can I implement the following (On the fly display function as
used in CIS) in the BMPTLKT ?

  procedure MyPutLine;   
	{From Steve Sneed (OzCIS). Orgininal from OOBPLUS
	BPLUS Online Gif Display Protocol. TurboPower Software Inc.}
  const
    YInc : Array[1..6] of Byte = (8,8,4,2,1,0);
    YLin : Array[1..6] of Byte = (0,4,2,1,0,0);
    YInt : Array[1..6] of Byte = (8,4,2,1,1,0);
  var
    OP  : hPalette;
    OM  : hBitmap;
    MC  : hDC;
    wDC : hDC;	
  begin
    {ImageInfo holds image size data; RasterLine holds decompressed
     image raster line; GBitmap is the DIB for holding the image;
     hPal is the palette structure.}

    wDC := GetDC(GWin);
    MC := CreateCompatibleDC(wDC);
    OP := SelectPalette(MC, hPal, False);

    with ImageInfo do begin
      SetDIBits(MC, GBitmap, (ScrHeight-(TopEdge+YCord))-1, 1,
                @RasterLine, BMI^, DIB_PAL_COLORS);
      OM := SelectObject(MC, GBitmap);
      BitBlt(wDC, 0, YCord, ScrWidth, 1, MC, 0, YCord, SRCCOPY);
    end;

    SelectObject(MC, OM);
    SelectPalette(MC, OP, False);
    DeleteDC(MC);
    ReleaseDC(GWin, wDC);

    Inc(YCord, YInc[Pass]);
    if YCord >= ImageInfo.BotEdge then begin
      if Pass < 5 then Inc(Pass);                  {If interlaced}
      YCord := YLin[Pass] + ImageInfo.TopEdge;
    end;
  end;


I would really be very happy if someone could give me answer.

Thanx very much in advance

Jan Dekkers
CIS 72130,353
Ph: 818 766-4561

