Компоненты для Delphi/C++Builder ~ Components for Delphi/C++Builder 6

Status
Not open for further replies.

DJVK

New member
Joined
Sep 13, 2011
Messages
1
Reaction score
4
Правим компоненты TMS Component Pack 6.5.0.0.
делаем нормальное дерево для решетки TAdvStringGrid

результат: узлы дочерние будут привязаны к узлам родительским, а не висеть в воздухе, не будет лишних вертикальных линий

Code:
function  TAdvStringGrid.GetNodeSpanType(ARow: Integer): Integer;
var
  i: Integer;
begin
  Result := 0;

  if IsNode(ARow) then
  begin
    Exit;
  end;

  if ARow >= RowCount - FixedFooters - 1 then
  begin
    Result := 1;
    Exit;
  end;

  if HasCellProperties(0,ARow + 1) then
  begin
    if (CellProperties[0,ARow + 1].NodeLevel >= CellProperties[0,ARow].NodeLevel) then
    begin
      if (CellTypes[0,ARow + 1] = ctNode) then Result := 1
      else Result := 2;
    end
    else
      Result := 1;
  end
  else
  begin
    Result := 1;
  end;

  Exit;
...

procedure DrawCellGraphic(r: TRect; CellGraphic: TCellGraphic; VertAlign: TVAlignment);
Code:
...
    ctNode:
    begin
      r.Left := NodeIndent(ARow)  - CellNode.NodeIndent;

      if FCellNode.ShowTree and (ARow >= FixedRows) {and not CellGraphic.CellBoolean} then
      begin
        Canvas.Pen.Color := FCellNode.TreeColor;
        Canvas.Pen.Width := 1;

//        if (ACol < FixedCols) and not Flat and (Flook in [glTMS,glXP,glListView,glSoft]) then
//          r.Left := r.Left - 1;

        if (NodeIndent(ARow + 1) > 0) and (ARow + 1 < RowCount) and not (NodeState[ARow] and (NodeIndent(ARow + 1) < NodeIndent(ARow))  )  then
        begin
          PrevIndent:=r.Left + 2 - CellNode.NodeIndent div 2;
          if(PrevIndent<2) then PrevIndent:=2;
          Canvas.MoveTo(PrevIndent,r.Top + (r.Bottom - r.Top) div 2);
          Canvas.LineTo(r.Left + 2 + CellNode.NodeIndent div 2,r.Top + (r.Bottom - r.Top) div 2);
          Canvas.LineTo(r.Left + 2 + CellNode.NodeIndent div 2,r.Bottom);
        end;

        {if (NodeIndent(ARow - 1) >= NodeIndent(ARow)) then
        begin
          Canvas.MoveTo(r.Left + 2 + CellNode.NodeIndent div 2,r.Top);
          Canvas.LineTo(r.Left + 2 + CellNode.NodeIndent div 2,r.Top + 6);
        end;}

        if (ACol < FixedCols) and not Flat and (Flook in [glTMS,glXP,glListView,glSoft]) then
          r.Left := r.Left + 1;
      end;
...

procedure TAdvStringGrid.DrawGridCell(Canvas: TCanvas; ACol, ARow : longint; ARect : TRect;
AState : TGridDrawState);
Code:
...
NodeRow,NodeLevel,CurrentLevel: integer;

...
  if (FNumNodes > 0) and (ACol = 0) and (ARow >= FixedRows) and (FCellNode.ShowTree) then
  begin
    Canvas.Pen.Color := FCellNode.TreeColor;
    Canvas.Pen.Width := 1;

    lvl := CellProperties[0,ARow].NodeLevel;

    ARect.Left := NodeIndent(ARow);

    ci := ARect.Left - CellNode.NodeIndent + 2 + CellNode.NodeIndent div 2;

    if (lvl > 0) then
    begin
      // horizontal node line
      Canvas.MoveTo(ci,ARect.Top + (ARect.Bottom - ARect.Top) shr 1);

      if FCellNode.ShowTreeFull then
        Canvas.LineTo(ARect.Right,ARect.Top + (ARect.Bottom - ARect.Top) shr 1)
      else
        Canvas.LineTo(ARect.Left + 4,ARect.Top + (ARect.Bottom - ARect.Top) shr 1);
    end;

    case GetNodeSpanType(ARow) of
    1:begin
        Canvas.MoveTo(ci,ARect.Top);
        Canvas.LineTo(ci,ARect.Top + (ARect.Bottom - ARect.Top) shr 1);
      end;
    2:begin
        Canvas.MoveTo(ci, ARect.Top );
        Canvas.LineTo(ci, ARect.Bottom + 4);
      end;
    end;

    if HasCellProperties(0,ARow) then
    begin
      CurrentLevel := CellProperties[0,ARow].NodeLevel;
      NodeRow := ARow;
      while (CurrentLevel>1) do
      begin
        NodeLevel := CurrentLevel + 1;
        while (NodeLevel>CurrentLevel) do
        begin
          NodeRow := NodeRow + 1;
          if (NodeRow=RowCount) then NodeLevel := 0
          else
            if (CellTypes[ACol,NodeRow]=ctNode) then NodeLevel := CellProperties[0,NodeRow].NodeLevel;
        end;
        while (NodeLevel<CurrentLevel) do
        begin
          CurrentLevel := CurrentLevel - 1;
          if (CurrentLevel = (CellProperties[0,ARow].NodeLevel - 1)) then
            if (CellTypes[ACol,ARow] = ctNode) then
            begin
              Canvas.MoveTo(ci - CellNode.NodeIndent * (CellProperties[0,ARow].NodeLevel - CurrentLevel), ARect.Top );
              Canvas.LineTo(ci - CellNode.NodeIndent * (CellProperties[0,ARow].NodeLevel - CurrentLevel), ARect.Top + (ARect.Bottom - ARect.Top) shr 1);
              Canvas.LineTo(ci - CellNode.NodeIndent * (CellProperties[0,ARow].NodeLevel - CurrentLevel) + CellNode.NodeIndent, ARect.Top + (ARect.Bottom - ARect.Top) shr 1);
            end;

        end;
        if(CurrentLevel>1) then
        CurrentLevel := CurrentLevel - 1;
        begin
          Canvas.MoveTo(ci - CellNode.NodeIndent * (CellProperties[0,ARow].NodeLevel - CurrentLevel), ARect.Top );
          Canvas.LineTo(ci - CellNode.NodeIndent * (CellProperties[0,ARow].NodeLevel - CurrentLevel), ARect.Bottom + 4);
        end;

      end;

      {// draw straight interconnecting lines
      for vpos := 1 to CellProperties[0,ARow].NodeLevel do
      begin
        // draw line till middle of cell
        Canvas.MoveTo(ci - CellNode.NodeIndent * vpos, ARect.Top );
        Canvas.LineTo(ci - CellNode.NodeIndent * vpos, ARect.Top + (ARect.Bottom - ARect.Top) shr 1);

        if (ARow < RowCount - 1) then
        begin
          if (CellProperties[0,ARow + 1].NodeLevel = 0) then
          begin
            if (vpos < CellProperties[0,ARow].NodeLevel) then
              Canvas.LineTo(ci - CellNode.NodeIndent * vpos + CellNode.NodeIndent, ARect.Top + (ARect.Bottom - ARect.Top) shr 1)
          end
          else
            // draw till bottom
            Canvas.LineTo(ci  - CellNode.NodeIndent * vpos, ARect.Bottom + 4);
        end
        else
        begin
          if (vpos < CellProperties[0,ARow].NodeLevel) then
            Canvas.LineTo(ci - CellNode.NodeIndent * vpos + CellNode.NodeIndent, ARect.Top + (ARect.Bottom - ARect.Top) shr 1);

          //Canvas.LineTo(ci  - CellNode.NodeIndent * vpos, ARect.Bottom + 4);
        end;
      end;}
    end;
    Canvas.Pen.Style := psSolid;
  end;
...
 

iamhooligun

Member
Joined
Feb 15, 2009
Messages
27
Reaction score
28
Age
42
и еще оффтоп. Они с TeeChar Pro совсем не дружат или у меня руки кривые?

насколько помню, для XE2 нужен был Update4 + HotFix1, TeeChart Standard отсюда, и после этого UniChart работал
насчет Pro ничего сказать не могу
 
Last edited by a moderator:

xcollector

Member
Joined
Jul 9, 2010
Messages
6
Reaction score
28
Age
44
EurekaLog is a complete bug resolution tool for Delphi and C++Builder developers that gives your application the power to catch every exception and memory/resource leak, directly on the end user PC, generating a detailed log of the call stack (with file, class, method and line number), optionally sending you a copy of each log entry via email or to a web bug-tracker.

You need to log in to view the content.
 

btframework

Member
Joined
Jan 7, 2010
Messages
46
Reaction score
275
Wireless Communication Library 6.11.6.0

Приветствую, господа!

Вышла новой версии Wireless Communication Library 6.11.6.0.

Что нового

  • Fixed critical bug in SDP Parser (bug appears on MS BT drivers) which cause A/V when enumerating services on some devices as well as A/V in checking for device availability and in devices monitoring;
  • Minor changes in Toshiba connection;
  • SyncClient Demo for WCL .NET;
  • wclGSMModem: OnRing event has been added;
  • wclGSMModem: OnCLIP event has been added - shows caller ID for incomming call;
  • wclGSMModem: OnEvent event has been added - other call events;
  • wclGSMModem: Answer method has been added - allows to answer for icomming call;
  • wclGSMModem: HangUp method has been added - allows to cancel call;
  • wclGSMModem: Call method has been added - allows to place a call;
  • GSMModem demo has been updated.

Остальное, как обычно:

1. Только для некоммерческого использования. Подразумевается использование без извлечения прибыли: фривара, для себя любимого и т. п.
2. Коммерческая лицензия доступна с большими скидками. Обращайтесь на [email protected], будем рады.
3. Как получить. Стучите нам на [email protected]

Если от нас долго (более 3-х часов) нет ответа, то либо у нас ночь и я сплю либо ваше или наше письмо было уничтожено спам-фильтром. По сему можно кинуть в нас еще раз на [email protected]

Ну вот как-то так.

P.S. Кто уже к нам обращался и не получил обновления, стукните еще раз.
 

btframework

Member
Joined
Jan 7, 2010
Messages
46
Reaction score
275
Wireless Communication Library 6.11.7.0

Приветствую, господа!

Вышла новой версии Wireless Communication Library 6.11.7.0.

Что нового

  • wclGSMModem: OnRing event has been added;
  • wclGSMModem: OnEvent event has been added - other call events;
  • wclGSMModem: Answer method has been added - allows to answer for icomming call;
  • wclGSMModem: HangUp method has been added - allows to cancel call;
  • wclGSMModem: Call method has been added - allows to place a call;
  • wclGSMModem: Switch method has been added - allows to switch between active/hold calls;
  • wclGSMModem: Holding calls;
  • wclGSMModem: 3-way calling support;
  • wclGSMModem: Better support for different cell phone models;
  • GSMModem demo has been updated;
  • WCL COM demos have been updated.

Остальное, как обычно:

1. Только для некоммерческого использования. Подразумевается использование без извлечения прибыли: фривара, для себя любимого и т. п.
2. Коммерческая лицензия доступна с большими скидками. Обращайтесь на [email protected], будем рады.
3. Как получить. Стучите нам на [email protected]

Если от нас долго (более 3-х часов) нет ответа, то либо у нас ночь и я сплю либо ваше или наше письмо было уничтожено спам-фильтром. По сему можно кинуть в нас еще раз на [email protected]

Ну вот как-то так.

P.S. Кто уже к нам обращался и не получил обновления, стукните еще раз.
 

ZSer

Member
Joined
Jul 28, 2004
Messages
66
Reaction score
208
Age
44
TMS Component Pack 6.8.0.1 for Delphi & C++Builder 5-XE3 Full Source с чехов
http://bitshare.com/files/u2bvq3gm/tmscp6801.rar.html
http://www.putlocker.com/file/A1E8A4BA026A95C3
http://www.mlfat4arab.com/kmgmcivwno3r/tmscp6801.rar
http://hipfile.com/qdeuvvlb49qq/tmscp6801.rar.html
http://dl.free.fr/l0RqbJ6Ua
http://www.load.to/gMyoGGQsn1/tmscp6801.rar
http://www.share-online.biz/dl/IVX9XXKM6LU
http://shareflare.net/download/95809.9aafc4f648cc9554b04cd1a8c26d/tmscp6801.rar.html
http://letitbit.net/download/12321.1fa4124944a0c1dd356cd1d93f2b/tmscp6801.rar.html
http://free-uploading.com/ib8jz5cz5hv9/tmscp6801.rar
http://billionuploads.com/66inajuztzhp
http://www.crocko.com/DB0795AD085B4CB4B1FA3E0A52A184D3/tmscp6801.rar
http://netload.in/dateivjcjooVsR4/tmscp6801.rar.htm
http://verzend.be/tyju5z1o86hu/tmscp6801.rar.html
http://banashare.com/9d3hyjm3uvd3/tmscp6801.rar.html
http://180upload.com/e0b72b3pazhp
http://freakshare.com/files/ql8h6z0a/tmscp6801.rar.html
http://uptobox.com/s0q8h7qvkdau
http://hulkfile.eu/bea0jt68j5gu.html
http://igetfile.com/l0hfqg4kw5lp
http://www.fileflyer.com/view/bHNhHCy
http://dliaf7.1fichier.com
http://oteupload.com/czz7etx4k88p
http://lumfile.com/2skg6ydb359x/tmscp6801.rar.html
http://uploaded.net/file/785jdz19
http://www.queenshare.com/r01d4uovixxl
http://files.fm/u/wcsokai
http://www.2shared.com/file/9JQ_wNa1/tmscp6801.html
http://sendfile.su/791342
http://www.sendspace.com/file/bg0jlk
http://fileshare.in.ua/7304396
http://hitfile.net/Eh8W/tmscp6801.rar.html
http://4fastfile.com/abv-fs/2013/04/08/tmscp6801.rar
http://gigapeta.com/dl/3321490a8193ad
http://extabit.com/file/2b3vt3hp0pfum
http://www.fileswap.com/dl/3VglbRCysc/tmscp6801.rar.html

Help:
http://www.tmssoftware.com/doc/pack/D6/setup.exe
http://www.tmssoftware.com/doc/pack/D7/setup.exe
http://www.tmssoftware.com/doc/pack/D2005/setup.exe
http://www.tmssoftware.com/doc/pack/D2006/setup.exe
http://www.tmssoftware.com/doc/pack/D2007/setup.exe
http://www.tmssoftware.com/doc/pack/D2009/setup.exe
http://www.tmssoftware.com/doc/pack/D2010/setup.exe
http://www.tmssoftware.com/doc/pack/D2011/setup.exe
http://www.tmssoftware.com/doc/pack/DXE2/setup.exe
http://www.tmssoftware.com/doc/pack/DXE3/setup.exe

http://www.tmssoftware.com/doc/pack/C6/setup.exe
http://www.tmssoftware.com/doc/pack/C2006/setup.exe
http://www.tmssoftware.com/doc/pack/C2007/setup.exe
http://www.tmssoftware.com/doc/pack/C2009/setup.exe
http://www.tmssoftware.com/doc/pack/C2010/setup.exe
http://www.tmssoftware.com/doc/pack/C2011/setup.exe
http://www.tmssoftware.com/doc/pack/CXE2/setup.exe
http://www.tmssoftware.com/doc/pack/CXE3/setup.exe

Demo:

http://www.tmssoftware.com/samples/pack/setup.exe
 
Last edited by a moderator:

valadi

Member
Joined
Feb 7, 2008
Messages
46
Reaction score
98
IP*Works V8 Delphi Edition 8.1.4791 - Up to Delphi XE3 (Win32/64 VCL)

Below is a short list of some of the new and exciting individual component updates available in the IP*Works! V8.

NEW: JSON - Easily integrate with web services that produce JSON output.
NEW: CalDAV - Access calendar/scheduling information on remote servers.
ATOM - A new ATOM client component with support for publishing (APP).
REST - New component implements a standard REST client, facilitating access to REST style Web Services such as those from Amazon and eBay.
DNS - Support for new query types, reverse DNS lookups, etc.
FTP/TFTP - Upload/Download Files to/from memory without writing to disk.
HTTP/WebUpload - Upload/Download Files to/from memory without writing to disk.
IPPort/IPDaemon - Facilitated file and data transfer through easy to use methods like "SendFile", etc.
LDAP - Support for search result references. Easily move and copy DNs.
MIME - Parse mime headers without decoding entire MIME entities
Ping - Send custom ping packets and change datagram sizes.
RSS - RSS 2.0 extensions and OPML support, and other improvements.
SMPP - SMPP receive capabilities enable the component to poll SMPP servers for messages.
XMPP - Support for Jabber extensions, additional contact parameters, and SASL authentication.
XMLp - Expanded XPath navigation and support for easy retrieval of XML subtrees.
...and much more!

You need to log in to view the content.
 
Status
Not open for further replies.
Top