Конференция "KOL" » несколько офтоп, но как зачинщик KOL беру на себя ответственность [Delphi, Windows]
 
  • Vladimir Kladov © (19.02.10 21:12) [0]
    Выложил свои компоненты для VCL - те, которые действительно нужны самому практически постоянно. На сайте kolmck, в разделе VCL. С исходниками, лицензия GNU GPL. Есть подробная документация на русском (на английском нету). Кому надо - берите.
  • QAZ (24.02.10 20:11) [1]
    а тоже самое для кол не планируеца?
  • Serov (25.02.10 08:39) [2]
    Удалено модератором
  • Vladimir Kladov © (25.02.10 11:29) [3]
    Вообще, это все нужно именно для VCL, и сделано по принципам VCL, объем кода не важен, важна скорость, устойчивость, и постоянное применение. Кроме этого набора, для постоянной работы в Delphi мне вообще ничего не нужно (один раз gif был нужен, так он стандартный есть, и для D5 в RXlib).

    NormalReport имеет зеркало KOLReport, ODBCQuery вообще дуальный - добавляется символ условной компиляции KOL, и компилируется для KOL (правда, эта версия под KOL не тестировалась).

    DecimalCalculations - тоже дуальный.
    FastTable - адаптируется легко, пока необходимости не было.

    FastListView слишком наворочен для KOL, в зависимости от надобностей можно обойтись KOLListView, KOLListData, и еще есть грид-компоненты. FastTreeView - желающие адаптировать приглашаются, код открыт.

    TKnopka - в KOL есть все, что надо, собственно, сама идея совместимости с темами и произвольного содержимого на кнопке стиснута с KOL/MCK-кнопки, в KOL многое даже проще сделать. Цель создания TKnopka я указал, внешность меня мало волновала (это уже заодно), просто замучили пользователи, кликающие по всем кнопкам двойным кликом, или не дожидающиеся конца долгих операций с БД.
  • QAZ (25.02.10 19:19) [4]
    FastTreeView кокраз и интересовал,просто страно что его изначально не заколили, хотя терки про то что обычный TreeView говно ,были уже не раз
  • Vladimir Kladov © (27.02.10 20:04) [5]
    Мне он в KOL не был нужен, а вот на работе для VCL наоборот очень. Так что ничего странного.
  • Vladimir Kladov © (28.02.10 21:52) [6]
    Кстати, обновил. Мне вдруг захотелось, чтобы это еще и с темами дружило, так что переделал UniEdit (использует Knopka), и добавил фичу для быстрой замены существующих кнопок на TKnopka/TPnKnopka. Еще буду тестировать, но на первый-второй-третий взгляд вроде бы работает как требовалось. Кстати и в TFastListView с темами проблемы были: грид затирался движением мыши, пришлось побороть. Заодно обнаружил, что в Delphi5 в проекте темы лучше вообще не использовать, если TListView есть. А с моим TFastListView вроде бы проблем нет. Странно это, он ведь в конечном итоге от TListView происходит. Правда, сам свой хидер обслуживает, а у TListView проблема проявляется при наведении мыши на хидер, после чего из отладчика обратно вернуться уже не удаётся - все время снова туда же падает. В Delphi6 и дальше проблемы с TListView+манифест вроде бы нет. Но я люблю D5 - за дикую скорость работы, запуска, компиляции - по сравнению с поздними. Я бы и D4 пользовался, если бы не глючил сильно.

    Да, по сравнению с первым выпуском были переделки еще в TNormalReport (выравнивание при WrapSyllabel/WrapLetters поправлял, еще по мелочам). Для TKnopka тоже кое-что поправлял, теперь он может заменять TSpeedButton и TBitBtn правтически полностью (GroupIndex+AllowAllUp мне не нужен, над ним не старался), из KOL спер реализацию LikeSpeedButton, свойство TKnopka.SpeedButton не дает кнопке попадать в фокус. Правда, здесь не совсем удалось решить проблему обхода следующих кнопок по Tab'у, в KOL свой алгоритм обхода, там проще.
  • Vladimir Kladov © (13.03.10 22:37) [7]
    Сегодня обновил. Пришлось отказаться от полностью внутреннего импорта кнопок через design-time визард. Неимоверные глюки полезли на ровном месте. Чего только не перепробовал, простое переименование компонента вызывало падение IDE. Пришлось просто править исходники и заставлять ждать, пока Delphi не "заметит", что они изменились на диске. Еще и с шансом, что так и не дождется, и тогда надо руками переключиться в другое окно, потом назад. Пришлось высвечивать инструкцию. Геморно и ждать 3 секунды, но зато без выпадений Delphi.

    Так что, желающие спортировать FastTeeView под KOL будут? Сам я не найду времени.
  • DVK (15.03.10 06:14) [8]
    Мне было бы очень интересно глянуть на Ваши компоненты, но я не понял по какому интернет адресу их искать.
    В качестве "сайт kolmck" пробовал http://www.kolmck.net/ и http://kolnmck.kolmck.net/
    но ни там, ни там упомянутых компонентов не нашёл. Направьте, пожалуйста.
  • DVK (15.03.10 06:20) [9]
    Нашёл на http://kolmck.net/ в разделе "Other"-"VCL related", а пытался найти в новостях.
  • Compiler © (05.07.10 22:17) [10]
    Не могли бы Вы пояснить что делаю не так?
    Есть DBF, в ней где-то 500000 строк. Делаю к ней запрос, он выполняется где-то секунд 3-5, но это терпимо. А как перетащить значения всех полей в FastTable с наименьшей потерей времени? Код написанный ниже выполняется очень долго. Может есть более быстрый вариант?

    В директивах указан BDE_DB
    VirtualTotally:=True;

    var
     Q:TNewQuery;  
     T: TFastTable;

    procedure TForm1.Button2Click(Sender: TObject);
    var
    Table:String;
    begin
    Table:='D:\dBase.DBF';
    Q:=TNewQuery.Create(Form1);
    T:= TFastTable.Create;
    with Q do
    begin
      SQL.Clear;
      SQL.Add('SELECT Name, Code');
      SQL.Add('FROM \"'+Table+'\"');
      SQL.Add('ORDER BY NAME');
      Open;
    end;
    T.Clear;
    if not Q.Eof then
    begin
       T.AssignFirst( 0, Q );
       Q.Next;
       while not Q.Eof do
       begin
           T.AssignFast(T.Count, Q);
           Q.Next;
       end;
    end;
    FastListview1.Items.Count:=Q.RecordCount;
    end;

    procedure TForm1.FastListview1DataCell(Sender: TFastListview; ItemIdx,
     ColIdx: Integer; var Txt: String);
    begin
      case ColIdx of
        0: ;
        1: Txt:=T.Values[ItemIdx,'code'] ;
        2: Txt:=T.Values[ItemIdx,'Name'];
       end;
    end;

  • Vladimir Kladov © (06.07.10 15:51) [11]
    Как ни глупо прозвучит, но AssignFast - это самый медленный способ. Зато он быстро записывается в коде :)

    Надо задействовать свойства SS, II, FF, с кэширующим доступом к колонкам по имени/индексу, или прямо брать ValByColIdx[ ], IntValByColIdx[ ], ... (но сначала добавить колонки, например, присвоить в требуемом порядке значения, как-то так:
    T[0, 'колонка0']:='';
    T[0,'колонка1']:='';
    ...

  • Compiler © (06.07.10 19:50) [12]
    > Зато он быстро записывается в коде :)

    Да, код как-то быстро написался, а вот на быструю загрузку придется время потратить!
    В целом компоненты удобные. Не плохо было бы еще демки к ним.
 
Конференция "KOL" » несколько офтоп, но как зачинщик KOL беру на себя ответственность [Delphi, Windows]
Есть новые Нет новых   [120350   +20][b:0][p:0.001]