Форум: "KOL";
Текущий архив: 2007.04.29;
Скачать: [xml.tar.bz2];
ВнизGRush Controls Найти похожие ветки
← →
DmiSb (2005-10-26 13:33) [40]2 MTsv DN
Странно.
Когда столкнулся с этой ошибкой, все снес, заново поставил KOL 2.18 и GRushControls, эффект ноль.
А как у вас крейтиться и удалятся форма ?
Если я делаю Form2.Form.Hide то ошибки нет.
Такая же ошибка, если пытаюсь любой GRushControl сделать Free еще до закрытия формы.
← →
MTsv DN (2005-10-26 15:06) [41]Закачайте еще раз aladin.rar. Там весь проект...
Инфа: Delphi 7 + KOLnMCK 2.18
С Уважением MTsv DN
← →
MTsv DN (2005-10-26 15:15) [42]Если надо без MCK: http://www.uus4u.com/download/other/grush_demo_womck_twoforms.rar
С Уважением MTsv DN
← →
homm © (2005-10-27 07:21) [43]
> > А можно убрать прямоугольник по краям Progress Bar (или
> сделать невидимым) ?
> А лучше сгладить его, как само заполнение...
All_DrawProgressRect := false
Скруглить и сгладить? Может для этого частного случая стоит на панель таких же размеров боросить?
← →
homm © (2005-10-27 07:23) [44]
> fellix (26.10.05 01:30) [34]
> Автору только и надо, что архив перепаковать
Как ты думаеш, возможно ли было новую версию выложить, не перепаковывая архива?
← →
homm © (2005-10-27 07:29) [45]
> > Кажется autosize не работает в RadioBoxе... может еще
> где-то?
> autosize не "не работает", а работает некорректно... После
> autosize увеличьте ширину на 3 пикселя и все...
кажется я знаю куда надо копать (ButtonActions). Я в принципе о нем (автосайз) еще и не думал.
← →
fellix (2005-10-27 12:36) [46]> homm © (27.10.05 07:23) [44]
> ...возможно ли было новую версию выложить, не перепаковывая архива?
Цитирую: "[18] ...предыдущие варианты скачивались нормально".
Кстати, а зачем так сложно - tar + zip ? Используйте WinRAR - размер будет почти вдвое меньше; все только спасибо скажут. (P.S. С tinypictures.zip та же ситуация.)
← →
shalex © (2005-10-27 20:05) [47]1) Рядом с KOLLabel (на расстоянии примерно 10-15 пикселей) происходит затирание: http://kol.lighthost.ru/1.png
2)
> ЗЫ Прошу тех, кого не затруднит присылать отзывы и предложения
>
> сюда на фрум (расматриваются даже сообщение типа "а вот
> сдесь пиксель должен быть
> $fffefd, а он $fffefc")
Может я придираюсь, но указанные пиксели должны быть либо цветом фона, либо.... http://kol.lighthost.ru/2.png
← →
shalex © (2005-10-27 21:37) [48]И еще одно предложение-просьба: вместе с версией указывайте дату выпуска, а то не понятно: уже новая версия или еще старая... нужно запоминать номер версии... удобней, когда есть дата.
← →
homm © (2005-10-28 21:41) [49]
> 1) Рядом с KOLLabel (на расстоянии примерно 10-15 пикселей)
> происходит затирание: http://kol.lighthost.ru/1.png
Проект пожалуйста, а то даже примерно не понял о чем ты.
> Может я придираюсь, но указанные пиксели должны быть либо
> цветом фона, либо....
shalex, ты наверное знаеш ответ, но другим будет полезно.
Достаточно сложно срезать подложку и на ней рисовать компонент (и возможно ли вообще?).
1) Следует указать All_ColorOuter := AlignColorTo16Bit($XXXXXX); где $XXXXXX должно быть близко к цвету подложки.
2) Можно отказатся от сглаживания. All_Antialiasing := false;
> fellix (27.10.05 12:36) [46]
1) *.tar.zip это неприрывный *.zip
2) rar принято распространять самораспоковывающимся (+70 кб)
3) У меня нет лицензии на WinRar.
4) У меня нет старого rar (<=2.9), а открывать архивы приходится на машинах именно с ним.
4) Кто-то вопил что RBControls сжатые RAR"ом не скачиваются (блин. кто же это был...)
5) Если я 7zip запакую лично ты мне спасибо скажеш? (с ним размер раза в 3 менше будет наверное)
6) Тебе спросить бельше нечего?
7) Еще пара сообщений с такой чущью и лично я тебя перестану замечать.
← →
homm © (2005-10-29 20:53) [50]Свойства All_AlphaRect, XXX_BorderRect ( далее - "вышеупомянутые ректы" ;))
пересчитываются при изменении размеров компонента. Чтобы иметь возможность
их изменить я эксплуатировал OnResize, который вызывался сразу после вычисления
вышеупомянутых ректов, но до Invalidate, именно в нем (OnResize) и следовало
изменять вышеупомянутые ректы. Возникали две проблемы.
1) если контрол создается строкой например
ProgressBar2 := PGRushControl(NewGRushProgressBar(Panel4).SetSize(45, 200).SetPosition(12, 40));
ProgressBar2.OnResize := ProgressBar2OnResize;
то приходится еще раз изменять размеры контрола, после присвоения процедуры.
2) В ProgressBar сама полоса и есть BorderRect, и было бы неплохо иметь
возможность его изменить перед отображением.
Найденое решение: (возможно придется чуток подправить сырца, если у кого
используются вышеупомянутые ректы):
Нафиг эти свойства нужны! Вместо этого ввести событие
OnRecalcRects : TOnRecalcRects
TOnRecalcRects = procedure( Sender: PGRushControl; var Rects: TRects ) of object;
TRects = record
DefBorderRect: TRect;
OverBorderRect: TRect;
DownBorderRect: TRect;
DisBorderRect: TRect;
AlphaRect: TRect;
end;
Итого изменения в версии 0.27 от 29 октября 2005
[-] Отжал целых 800 байт! Все на чистой оптимизации, без потери функциональности ест-сно.
[+] Новое событие OnRecalcRects вызывается всякий раз когда GRush"и сами изменяют бордеры.
[*] Точка на RadioBox стала без острых углов, организовано как у CheckBox.
[*] В скринах 98 были не закрашеные точки бордера. Что-то с этом сделел, но не могу проверить. :(
[*] CommandActions поправил для правильного AutoSize для CheckBox и RadioBox.
[*] В MCK деме показал, как сделать то, что MTsv DN предложил насчет ProgressBar.
2 MTsv DN
> Кто хочет, может посмотреть эту картинку http://www.uus4u.
> com/download/other/demoproject55_win98.png Специально заменил
> BITMAP в ico.res.
Что это, кстати за дешевая подделка? Сей скрин из ХРени. ППКС
← →
MTsv DN (2005-10-30 07:56) [51]
> 2 MTsv DN
>
> > Кто хочет, может посмотреть эту картинку http://www.uus4u.
>
> > com/download/other/demoproject55_win98.png Специально
> заменил
> > BITMAP в ico.res.
>
> Что это, кстати за дешевая подделка? Сей скрин из ХРени.
> ППКС
Привет...
homm, это не подделка, это ЛЕНЬ... Лень было Винду перегружать :) http://www.uus4u.com/download/other/98.jpg - это Винда 98... Поэтому повторюсь... В 98ой работает нормально...
С Уважением MTsv DN
← →
homm © (2005-10-30 20:24) [52]
> Из недостатков (читать: еще не дописал):
> * Не работает TAB.
Упс. Оказывается для поддержки этой клавиши не нужно ничего дописывать. У форм и аплетов есть такие процедуры Tabulate и TabulateEx. Просто не знал.
← →
DmiSb (2005-10-31 06:55) [53]Не, все равно не хочет вторая форма нормально удаляться [36]
Не знаю как в 7 Дельфе, но в 5-ой - ошибка
И никакие REBUILD не помогают
Сегодня скачал КОЛ 2.19 и последний GRush.
Поставил только эти два пакета - ошибка не пообеждается
← →
homm © (2005-10-31 07:39) [54]Вылетает если PAS_VERSION. Надо было с этого начинать. Буду смотреть...
← →
nicesc (2005-11-01 09:15) [55]Народ, подскажите как в 7ку её перегнать
← →
nicesc (2005-11-01 09:18) [56]Всё разобрался, нужно было удалить system.pas/dcu
← →
nicesc (2005-11-01 10:15) [57]Если положить стандартныйконтр на GRushPanel то при наведении курсора на кнопку GRushButton возникает эффект мерцания, и если бежит прогресс бар создается эффект мерцания
← →
NightLord © (2005-11-01 19:52) [58]
> nicesc (01.11.05 09:15) [55]
> Народ, подскажите как в 7ку её перегнать
>
> Всё разобрался, нужно было удалить system.pas/dcu
В каком смысле удалить? И что помагло? Мне тож надо в 7-мую =(
← →
MTsv DN (2005-11-01 20:39) [59]
> В каком смысле удалить? И что помагло? Мне тож надо в 7-
> мую =(
Ничего удалять не надо...
Просто берешь файл: GRushControls_D6.dpk, переименновываешь его в GRushControls_D7.dpk... И в GRushControls_D7.dpk все _D6 заменяешь на _D7... и ВСЕ...
С Уважением MTsv DN
← →
NightLord © (2005-11-02 00:35) [60]Спасибо все работает. У меня вот еще вопрос можно ли сделать так чтобы кнопки не выделялись пунктирной линией?
← →
MTsv DN (2005-11-02 07:11) [61]
> Спасибо все работает. У меня вот еще вопрос можно ли сделать
> так чтобы кнопки не выделялись пунктирной линией?
Для каждой кнопки:GRushButton1.All_DrawFocusRect := false;
С Уважением MTsv DN
← →
homm © (2005-11-02 10:58) [62]homm © (31.10.05 07:39) [54]
Разобрался. В функции WndProcGRush добавь третьей строкой
if Data = nil then exit;
Щас нет возможности обновить.
← →
MTsv DN (2005-11-02 14:00) [63]2 homm
Привет...
Появились некоторые замечания:
1. При Height кнопки < 21 текст не отображается...
2. При размерах кнопки < 19 (по длине и высоте) не отображается рисунок...
Пробывал bmp 11x11 на кнопку 17х17 - пусто; 18х17 - пусто; 19x18 - пусто;
19x19 - норма...
3. Уже упоминалось... Если на GRushPanel использовать GRushButton и KOLEdit
(так эффект заметнее), то появляются блики... Причем не только KOLEdit на и
заголовок окна тоже...
С Уважением MTsv DN
← →
Thaddy (2005-11-02 20:01) [64]<CITATION>
3. Уже упоминалось... Если на GRushPanel использовать GRushButton и KOLEdit
(так эффект заметнее), то появляются блики... Причем не только KOLEdit на и
заголовок окна тоже...
</CITATION>
This seems to be a bug in KOL: Boundsrect is always two pixels short X and Y direction.
Boundsrect should be exactly the bounding rectangle, inclusing everything, of a control. Since sometime now, it isn"t anymore.
Try a Paintbox with the following OnPaint routine:
procedure PaintBoxPaint(sender:PControl; DC:HDC);
begin
sender.margin:=0;
sender.canvas.brush.color:=clNavy;
sender.canvas.fillrect(sender.boundsrect);
end;
This only works properly like this:
procedure PaintBoxPaint(sender:PControl; DC:HDC);
var
R:TRect;
begin
sender.margin:=0;
R:=sender.BoudsRect;
InflateRect(R,2,2);
sender.canvas.brush.color:=clNavy;
sender.canvas.fillrect(R);
end;
And as such I consider this a bug in KOL, not in GRush Controls, because it happens also in other controls.
Maybe somebody can explain this behaveour?
Regards,
Thaddy
← →
Thaddy (2005-11-02 20:14) [65]Here"s full sourcecode example:
{Program Source>
program Project1;
uses
Kol,
unit1 in "Unit1.pas";
begin
NewForm1( Form1, nil);
Run(Form1.form);
end.
}
unit unit1;
interface
uses
Windows, Messages, Kol;
type
PForm1=^TForm1;
TForm1=object(Tobj)
Form:pControl;
PB:Pcontrol;
public
procedure PaintBoxPaint(sender:PControl;DC:HDC);
end;
procedure NewForm1( var Result: PForm1; AParent: PControl );
var
Form1:pForm1;
implementation
procedure NewForm1( var Result: PForm1; AParent: PControl );
begin
New(Result,Create);
with Result^ do
begin
Form:= NewForm(AParent,"KOLForm").SetSize(600,400).centeronparent.Tabulate;
Applet:=Form;
Form.Add2AutoFree(Result);
PB:=NewpaintBox(Form);//.SetSize(100,100).centerOnParent;
PB.OnPaint:=PaintBoxPaint;
end;
end;
{$DEFINE BUG} // Undefine to solve bug
{$IFDEF BUG}
procedure TForm1.PaintBoxPaint(sender:PControl; DC:HDC);
begin
sender.margin:=0;
sender.canvas.Brush.color:=clNavy;
sender.canvas.fillrect(sender.boundsrect);
end;
{$ELSE}
procedure TForm1.PaintBoxPaint(sender:PControl; DC:HDC);
var
R:TRect;
begin
sender.margin:=0;
R:=sender.BoundsRect;
InflateRect(R,2,2);
sender.canvas.brush.color:=clNavy;
sender.canvas.fillrect(R);
end;
{$ENDIF}
end.
← →
Vladimir Kladov (2005-11-02 21:02) [66]Thaddy, if you change your create paintbox line to following:
PB:=NewpaintBox(Form).SetPosition(20,4);
you immediately should understand what the difference is between ClientRect and BoundsRect. If not, mail me, i"ll write more detailed.
← →
Thaddy (2005-11-02 21:18) [67]Yes, I know already ;), but for some reason the "zero oriented" Boundsrect doesn"t get propagated to the "reference X, Y" oriented Clientrect with a margin of 0. They are one pixel of, not two... And it should be 0! (I think)
I feel this is not correct behaveour, since it does not involve any WM_NCPAINT messages. I will email what I mean in more detail to you personally tommorow.
(I mean I believe size of rect and size of clientrect with a margin of zero (0) should be equal to boundsrect. This is not the case. But you know I can sometimes write something stupid ;) ) This is just to explain the other readers what I am trying.
Thank you for your rapid raction.
Regards,
Thaddy
← →
Vladimir Kladov (2005-11-03 07:46) [68]Margin has an effect only for parent controls, having children aligned (or for the first automatic allocation of these). Margin has no effect for the child control itself and it has no effect for drawing children which already placed on the parent and have coordinates.
← →
MTsv DN (2005-11-03 16:14) [69]2 homm
Привет...
1. При Height кнопки < 21 текст не отображается...
2. При размерах кнопки < 19 (по длине и высоте) не отображается рисунок...
Пробывал bmp 11x11 на кнопку 17х17 - пусто; 18х17 - пусто; 19x18 - пусто;
19x19 - норма...
3. Уже упоминалось... Если на GRushPanel использовать GRushButton и KOLEdit
(так эффект заметнее), то появляются блики... Причем не только KOLEdit на и
заголовок окна тоже...
В дополнение:
4. При работе с ПрогрессБаром максимальное значение, которое смог установить 31270 (или где-то близко)...
С Уважением MTsv DN
← →
MTsv DN (2005-11-04 08:18) [70]Привет...
При замене MMX.PAS в GRushControls на MMX.PAS (04.11.2005) корректировка KOLGRushControls.pas:UseMMX := GetCPUType() >= cpuMMX;
->UseMMX := GetCPUType() >= [cpuMMX];
С Уважением MTsv DN
← →
homm © (2005-11-06 10:54) [71]
> 1. При Height кнопки < 21 текст не отображается...
Какой то глюк на моей машине позволил мне думать, что "div 2" можно безболезнено заменить на "shr 1". ЩАС! В результате у мня ОК - у остальных то что ты описал. Исправил.
> 2. При размерах кнопки < 19 (по длине и высоте) не отображается
> рисунок...
> Пробывал bmp 11x11 на кнопку 17х17 - пусто; 18х17 - пусто;
> 19x18 - пусто;
> 19x19 - норма...
Все дело в свойствах, коих куча и ест-но разбиратся ты не стал, а сразу про "БАГ" заговорил. Есть такое св-во All_ContentOffsets, по умолчанию равноеfContentOffsets: (Left: 4;
Top: 4;
Right: -4;
Bottom: -4);
Задай его All_ContentOffsets := MakeRect(-80, -80, 80, 80) и сможеш отображать картины до 160х160.
> 3. Уже упоминалось... Если на GRushPanel использовать GRushButton
> и KOLEdit
> (так эффект заметнее), то появляются блики... Причем не
> только KOLEdit на и
> заголовок окна тоже...
Это не мой глюк. Положи ЛЮБОЙ прозрачный контрол, ЕдитБокс и попробуй передвигать окно за заголовок (отображать содержимое окна при перетаскивании - on).
> При замене MMX.PAS в GRushControls на MMX.PAS (04.11.2005)
> корректировка KOLGRushControls.pas:
> UseMMX := GetCPUType() >= cpuMMX; -> UseMMX := GetCPUType()
> >= [cpuMMX];
А зачем ты его заменяеш? С пакетом идет гарантировано рабочий MMX, не содержащий проверок на не используемые инструкции.UseMMX := GetCPUType() >= [cpuMMX];
?UseMMX := cpuMMX in GetCPUType();
> 4. При работе с ПрогрессБаром максимальное значение, которое
> смог установить 31270 (или где-то близко)...
Сделаю. А к чему такие большине цифры?
Кроме того проведена очередная ревизия кода (-740 байт). И самое главное MCK! Теперь он не только есть, но и выполняет возложеные на него задачи. При открытии старых проектов будет куча сообщений о не существуещих свойствах и лично у меня тупит. Придется вручную выковыривать из *.dfm все не нужные свойства (ой, не завидую, чесс слово ;) ).
Сейчас все проверю, подкручу и вечером выложу.
← →
Vladimir Kladov (2005-11-06 11:07) [72]Ignore All - не спасает?
← →
homm © (2005-11-06 11:24) [73]
> Vladimir Kladov (06.11.05 11:07) [72]
> Ignore All - не спасает?
> homm © (06.11.05 10:54) [71]
> и лично у меня тупит
Нажимаю Ignore, а он вместо следующего свойства крякозюлины пишет. Итого либо на форме нехватает компонентов, либо Stream Error.
← →
homm © (2005-11-06 18:03) [74]Ну вот и обнавление (v0.28 от 6.11.05).
[-] В MCK часть добалена практически вся необходимая функциональность.
Пока что потерпите без загрузки картинок и события OnRecalcRects.
[-] Вылетал со второй формой в PAS_VERSION. Поправлено как в KOL(v2.20),
так и уменя (с более ранними версиями тоже будет работать).
[*] Функция GetCPUType перенесена в KOLGRushControls.pas и переименована
в CPUisMMX. Остальные проверки убраны.
[-] Если MaxProgress у ProgressBar равен нулю, вылетал. Поправлено.
[+] Максимальное значение для Progress увеличено до больших пределов.
[*] Приставка gsXXX для констант All_UpdateSpeed изменена на usXXX
[*] NewGRushPanel более не принемает второй параметр (Caption). Теперь
его надо задавать как у обычной панели.
TODO:
Сделать событие OnProgress.
Если изменить надпись, контрол не перерисовывается (нужен SetAllNeedUpdate
сразу за изменением надписи).
Сделать свойство WordWrap.
Все MCK свойства свернуты в один пункт - GRushStyles. Многие свойства,
влияющие на внешний вид классов - предшественников (обычных контролов)
но не влияющие на внешний вид GRush убраны.
← →
MTsv DN (2005-11-06 19:53) [75]2 homm
Не хочу показаться не вежливым...
ЧТО ДЕЛАТЬ С: "Нажимаю Ignore, а он вместо следующего свойства крякозюлины пишет. Итого либо на форме нехватает компонентов, либо Stream Error..." ???????
У меня довольно много компонентов на форме, а при использовании версии 0.28, все заканчивается "Stream Error..." Наверняка надо в ручную править *.dfm файлы, но где?..
С Уважением MTsv DN
← →
homm © (2005-11-06 20:27) [76]2 MTsv DN
Все из опыта, могу ошибатся.
Есть два вида *.dfm
1) Бинарные. Если открыть в блокноте - все строки сбиты сверху, куча нечитаемых символов.
2) Текстовые. Открываеш в блокноте, а там ровнинький убористый текст с описанием всех свойств всех контролов.
Если у тебя второй вариант, тебе повезло 1-2 часа монотоной работы и все будет в порядке ;). Если первый то извеняй. (вроде первый умер после D4, но опятьже IMHO).
Собственно что делать...
Ищеш по следующим образцам строки и удалаеш их целиком, не оставляя пустых строк.
Ctl3D
EraseBackground
Brush.
Color
ParentColor
TextAlign
edgeStyle
VerticalAlign
Smooth
ProgressColor
ProgressBkColor
Flat
WordWrap
windowed
LikeSpeedButton
Image
ShowAccelChar
HasBorder
Auto3State
Уф... Вроде ниче не забыл.
ЧЕЛОВЕКИ! Может кто знает другой способ сконвертнуть ???? Может я где налажал (вроде Владимир выбрасывал какие-то свойства, и Ignore All там работал).
Гипотетически можно спроектировать интерфейс заново в новом проекте, после чего претащить *.dfm"ы и немного покрутить, чтоб пристроить к старому, или перекидать код в новый проект. НО понадябится 2 установленые дельфи, с версией 0.27 и 0.28 соответственно, а одну версию делфа на один комп поставить дважды вроде нельзя так что нужны ДВЕ дельфи.
← →
MTsv DN (2005-11-06 20:51) [77]Глухо как в танке... Это не вариант...
У меня суммарный объем dfm-файлов 450kB (текстовых)... Число компонентов в районе 100 (если не больше)... Для каждого так редактировать свойства...нереально...
С Уважением MTsv DN
← →
MTsv DN (2005-11-06 21:37) [78]ИТОГ:
Поскольку, я MCK был практически не привязан... Я заменил только KOLGRushControls.pas, удалил MMX.pas, а MCKGRushControls.pas оставил от версии 0.27...
С Уважением MTsv DN
← →
MTsv DN (2005-11-07 12:12) [79]2 homm
Привет...
Для начала, спасибо, что ответил на [75]...
И еще предложение... При использовании горизонтального градиента у ProgressBar"а, неплохо если бы была возможность выбора, относительно чего заливать градиент... Относительно заполненого или относительно всего ProgressBar"а...
С Уважением MTsv DN
← →
homm © (2005-11-07 13:08) [80]
> Для начала, спасибо, что ответил на [75]...
Ты имееш ввиду письмо с ответом на [77] наверное... Лучше все-же херить перекрытие ненужных свойств, чем отказыватся от новых.
> При использовании горизонтального градиента у ProgressBar"а,
> неплохо если бы была возможность выбора, относительно чего
> заливать градиент...
Ну спрашивал ведь уже, и в деме _MCK_ есть. Логика такова - ВСЕ элементы рисуются ОДНОЙ функцией, в зависимости от параметров по умолчанию и ваших. Проверок на ТИП контрола во всем модуле (специально посчитал) четырнадцать, и лиш ОДНА из них в процедуре рисования, и ту наверное уберу! То есть фактически это ОДИН компонент (идеология KOL!). Дополнительные ветвления увеличат сложность, и как следствие размер. Градиент останется один на контрол.
Страницы: 1 2 3 4 5 вся ветка
Форум: "KOL";
Текущий архив: 2007.04.29;
Скачать: [xml.tar.bz2];
Память: 0.64 MB
Время: 0.048 c