Forum Replies Created
-
AuthorPosts
-
elpikParticipant'VahaC' wrote:
В рантайт изменяю Enabled у TsGroupBox в котором лежат TsCheckBox-ы после этого они (TsCheckBox-ы) не срабатывают но цвет шрифта на серый не меняется. Если же проделать Enabled := False для каждого TsCheckBox-а поодельности то они стают серыми как и ожидалось
Пробовали сделать тоже самое для стандартных компонентов? Результат будет такой-же. Альфы тут не причем.
elpikParticipantсамое простое решение примерно такое:
1) в твой проект добавляешь форму которую не надо скинить.
2) на эту форму кладешь sSkinManager и sSkinProvider и настраиваешь скинпровайдер на скин менеджер этой формы.
3) в sSkinManager свойство Active ставишь в False.
Новая форма скиниться не будет 🙂
elpikParticipant'GuSoft' wrote:>> А чем не устраивает предложенный в скин провайдере способ?
Тем, что кноку “убрать в трей” можно отнести к стандартным частоиспользуемым кнопкам, которой в скинах нет.
Вот например на вашем скрине видно, что кнопки основные и дополнительные – отличаются, что не есть красиво.
Если бы речь шла только об одном скине, вопросов небыло бы, но когда прога дает возможность выбрать пользователю
скин (из текущих 71) то переделывать все скины вставляя эту кнопку – мне лично проблематично (или хранить 71 ресурс
изображений кнопок под каждый скин – не удобно).
Если бы она включалась как дополнительная кнопка (и в каждом скине была бы своя, сочетающаяся с другими кнопками по дизайну) было бы очень удобно.
Вывод прост. Вас не устраивают компоненты. Не используйте. Компонентов со скинами для делфи много, используйте то что Вам подойдет.
ЗЫ: не видел ни разу “стандартной” кнопки – “Свернуть в трей”. (ЕЕ нет ни в делфи ни у Микрософта в списке стандартных).
ЗЗЫ: не устраивают скины? нарисуйте себе хотя бы 1 который Вас устроит, Вы пробовали? (Генератор скинов прилагается).
ЗЗЗЫ: Ваши требования как то мало-убедительны. Подумайте над этим. “Не удобно” Вам, не надо говорить за всех.
elpikParticipantв 7.42 проделана огромная работа. Спасибо огромное Вам за это.
Осталось подправить мелкие бажки. (Вертикальная полоса в комбобоксе у меня тоже появляется после сворачивания/восстановления окна)
+ подменяется иконка на кнопке “свернуть” на неправильную. (при включенном екстендед бордер подмена иконки не наблюдается)
АС 7.42/Win 7×64/Delphi XE.
elpikParticipantА чем не устраивает предложенный в скин провайдере способ?
elpikParticipant'evg' wrote:В Вашем примере это действительно так. По всей видимости Вы при компиляции проекта удалили файл ресурсов *.res и программа “откомпилировалась” по другому. Если же создавать проект с нуля то файл ресурсов будет отличен от файла создаваемого Delphi при отсутствии такового в каталоге исходников.
1)Высылаю пример с размещенным в одной из ячеек TComboBox, а в другой TsComboBox (файл “SG and sCB2.rar”).
2)В файле Prim.rar два примера.В папке Prim1 проект созданный с нуля в месте с файлом ресурсов. В папке Prim2 файл res был удален и создан заново при открытии проекта. Итог два разных результата. Благодарю за помощь!
TsComboBox – на самом деле проблемный компонент. И он влияет на работу стандартного если включить его скинирование. В частности влияет на выпадающий список. (я об этом тоже писал).
http://www.alphaskins.com/forum/index.php?showtopic=6157&view=findpost&p=34822
elpikParticipant'Bar' wrote:печально 🙁 Спасибо за ответ! ( без скинов, как видно на последнем скрине, тоже не меняется цвет)
Цвет не меняется даже у некоторых стандартных компонент. (например TButton, не поменяет цвет даже при смене цвета фонта). Однако есть и другой способ.
есть события отрисовки (например OnDrawItem) в них можно рисовать прямо на конве все что угодно и как угодно. Попробуйте поэкспериментировать с ними.
elpikParticipant'jorik' wrote:Подскажите, пожалуйста, как программно добавить новую “вкладку”(панель) в ScrollPanel?
Назовите точное название компонента, желательно с куском кода.
elpikParticipant'Bar' wrote:Здравствуйте, собственно по теме, никак не могу изменить цвет заголовков элементов FrameBar. Все остальные параметры меняются ( жирность, размер, сам шрифт, а вот цвет – никак 😐 )
Нужно получить белый шрифт, как показано на рисунке 1 Справа. Слева моя программа, как видите такой шрифт никуда не годится. Как это сделать ума не приложу =(
При включенных скинах, цвет поменять нельзя. (в ДевЕкс – эту проблему решили вводом цветовых схем…) На данный момент решения скорее всего нет. (либо отключить скины :))
elpikParticipantМожно ли сделать многострочный вывод наименований айтемов (скажем перенос слов по ширене колонки)? или для этого компонента такое в принципе не возможно?
(былобы интересно поглядеть на возможность подгонять высоту строк по величине такого многосторчного айтема).
ЗЫ: в ListBox-e есть метод MeasureItem – позволяющий обсчитать высоту каждой строки. (однако сомневаюсь что можно будет прилипить такой метод для TListView).
ЗЗЫ: в гриде реалезовано выводом непосредственно на конву в заранее определенную высоту/ширину ячейки (TRect) – помоему данный способ применим и тут.
elpikParticipantпо теме: нашел такую фичу. Если выставить свойство грида (ReduceFlicker = False), скинирование не слетает. 🙂
elpikParticipantап!
elpikParticipant'Support' wrote:Жду демку 🙂
еще есть проблема при автозаполнении sComboBox. Автовыпадающий список при перезаполнении раскрывается только на 1 сроку
в то время как стандартный ComboBox ведет себя нормально при тех же условиях…
в демку добавил два комбобокса (sComboBox и ComboBox) с одинаковыми настройками, попробуйте папечатать в них что нибудь чтобы список вывалился автоматически.
И еще если добавить в скин менеджере (Third party controls…), скинирование StandartVCL (стандартные элементы), автовыпадение ComboBox – перестает работать.
С уважением Elpik
elpikParticipant'Support' wrote:Жду демку 🙂
Извиняюсь за задержку. Вот демка. Клик на кнопке вкл/выкл датасет
скинирование слетает при включенном дата сете и возвращается при выключенном
elpikParticipant'Support' wrote:Не нужно, компонент сам его уничтожит.
Можно вместо создания просто присвоить “Frame :=”. Чтобы фрейм не удалился автоматически при закрытии нужно в обработчике события OnFrameDestroy присвоить False параметру CanDestroy.
Этот вопрос я не совсем понял. Какой Caption нужно изменить? Изменить caption формы при изменении поля ввода на фрейме?
Спасибо за ответы. Я уже частично разобрался 🙂
Выбрал вариант диначического создания… т.к. при выставлении CanDestroy в False – события OnFrameCreate и OnFrameDestroy – срабатывают только единожды… и при повторном раскрытии я уже не могу определить когда изменится состояние фрейма…
по поводу 3-го вопроса я имелл ввиду кепшен контейнера с которым ассоциирован фрейм (т.е. определенный элемент (Item) фреймбара). – В данный момент я меняю его кепшен при уничтожении фрейма.
А методы фрейма (например onChange) переписывать не хочется т.к. они определены в юните фрейма – следовательно они сработают в главной форме, но из них я не смогу достучаться до элементов главной формы, смогу лишь менять состояние элементов внутри фрейма…
А вообще было бы неплохо иметь еще 2 события срабатывающие после раскрытия и перед сворачиванием элементов фреймбара (или их комбинация Before/After). А в свойствах добавить Поле FrameName:(с выпадающим списком доступных фреймов) и CanDestroy:(True/False). Тогда методы (OnCreateFrame и OnDestroyFrame) можно было бы перенести и в сам Юнит Фреймбара в защищенную область. Но это всего лишь мое ИМХО. 🙂
elpikParticipantВсем доброго времени 🙂
я как-то пытался сделать инфо-окошко с анимированным гифом… в итоге плюнул и поместил обычную картинку.
Ситуация с анимацией в делфи очень не простая… дело в том что даже много-поточные приложения в ней обрабатывают сообщения последовательно, что затормаживает анимацию при выполнении каких то других операций. так что проблем с этим много и лучше всего воспринимать делфи как одно-поточную систему IDE (имхо).
November 19, 2010 at 6:36 pm in reply to: RadioGroup в RadioBox плохо смотрится если скины отключены. #43841elpikParticipantвозможно проблема из-за свойства ParentColor которое выставлено в False 🙂
elpikParticipantне согласен… если это не главная форма то она не удаляется, в следствии повторных вызовов может получиться неразбериха с контролами в лучшем случае, в худшем аксес виолейшн поймаешь…
все-таки правильнее уничтожать все объекты создаваемые динамически в рантайме…
насколько я понял у топикастера проблема с перекрытием выделяемой памяти он уничтожает контролы с начиная 1-го, и на каком-то спотыкается…
этого не произойдет если он будет чистить их начиная с последнего…
С АльфаСкинами это врядли связано, ИМХО. 🙂
elpikParticipantпопробуй чистить список перед уничтожением,
и старайся выделять память по количеству полей.
Code:var edt : array of TsComboBox;
DBGrid : TDBGridEh;
kol : integer;procedure TForm2.FormShow(Sender: TObject);
var i,x : integer;
begin
x:=0;
//kol:=0;
setlength(edt, Form1.DBGrid.FieldCount-1);
for i:=0 to Form1.DBGrid.FieldCount-1 do
begin
//inc(kol);
edt:=TsComboBox.Create(self);
edt.Name:='EDT'+IntToStr(i);
edt.Parent:=Form2;
edt.Left:=135;
edt.Top:=x;
edt.Width:=200;
edt.MaxLength:=255;
edt.DropDownCount:=15;
edt.Items:=Zapolnit(Form1.DBGrid.Fields.FieldName); //заполняю ComboBox-ы значениями (функция на выходе должна возвращать TStrings)
//edt.Text:=edt.Items[0];
if edt.Items.Count > 0 then edt.Itemindex:=0;
inc(x,24);
end;
end;при чистке:
Code:procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
var i : integer;
begin
i:=Length(edt)-1;
while i >= 0 do
begin
try
edt.clear;
edt.Free;
except
end;
dec(i);
end;
setlength(edt, 0);
end;код не проверял, лень в делфи загонять, но должно быть както так…
elpikParticipant'TSTAR' wrote:WPF – Windows Presentation Foundation.
Когда-то я любил Делфи, теперь ненавижу.
Не, я как раз Делфи люблю, микрософт конечно развивается (поглощая компании и технологии как пылесос), и когда нибудь, вероятно, мы все пересядем на вижуал студию, но пока жива делфи я ее ни на что не променяю. в свою очередь могу сказать что я “ненавижу” С# потому что он ужасен, непонятен и сделан через задницу, одна библиотека классов чего стоит… чтобы написать простенькую программу нужно перелопатить тонны литературы и разобраться в десятке технологий, и ради чего? ради “Хело ворлд”?, нет спасибо это не для меня… Делфи тем и хороша что проста до безобразия :)…
Но я полагаю это уже вопросы “религиозные”, так что это всего лишь ИМХО, не принимайте на веру, очень Вас всех прошу 🙂
ЗЫ.: Уважаемый Torbins как Вы смотрите на идею написания “перекодировщика” для проектов на старых версиях? Например у DevExpress такая программулинка есть.
-
AuthorPosts