Вверх ↑
Этот топик читают: Гость
Ответов: 497
Рейтинг: 16
#1: 2016-07-23 21:31:35 ЛС | профиль | цитата
никак не могу делать красивые программы из за ListBox а точнее его скрола. можно как украсить? может есть у кого то какие то наброски, идеи, примеры, схемы, поделитесь
карма: 1
        ]  
0
vip
#1.1контекстная реклама от партнеров
Ответов: 8888
Рейтинг: 823
#2: 2016-07-23 22:06:16 ЛС | профиль | цитата
RAWY_EX, программищи хотя бы работают как задумывалось? Или кроме будущей красотищи ничем не отличаются?
карма: 19

0
Ответов: 497
Рейтинг: 16
#3: 2016-07-24 02:00:37 ЛС | профиль | цитата
Леонид, обижаешь вот самый лучший мой проект Dive VK http://forum.hiasm.net/forum_serv.php?q=56&id=4380
Это клиент соц. сети ВКонтакте. Как уже заметно основан на bass.dll. функционал:
-бороздит по профилям(свой и друзей)просмотр части информации и авы.
-смотрит друзей всех 4 списков(Все,Онлайн,Заявки,Возможные)(на друзьях других профилей работают только первые 2(ну так для УМНЫХ))
-слушает аудио(свой и друзей) есть возможность повтора трека,трансляции песни в статус, загрузка на жд, ну и бас регулировка(может потом заменю на добавить к своим)
пока только черная тема но белая уже встроена но не подключена.
пароли даже в глаза не видит(можно войти на родном ИЕ коль ссыкотно )
и вот можно посмотреть как список друзей из скролбаром портит картину вот бы покрасивей
спасибо за флуд

карма: 1
        ]  
0
Ответов: 5227
Рейтинг: 587
#4: 2016-07-24 07:00:34 ЛС | профиль | цитата
RAWY_EX, форум->поиск->сиськи для GUI(всё что помню) удовлетворит, пользуйся на здоровие.
карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
0
Ответов: 8888
Рейтинг: 823
#5: 2016-07-24 09:57:22 ЛС | профиль | цитата
RAWY_EX, не-а, *.ехе не смотрю, только *.sha
карма: 19

0
Ответов: 497
Рейтинг: 16
#6: 2016-07-24 11:37:59 ЛС | профиль | цитата
andrestudio, знаю давно юзал но у меня если скин применить то Image нету или скином каркывает мне бы только скрол
------------ Дoбавленo в 11.37:
Леонид, знаем такое но у меня для таких случаев под рукою песочница
карма: 1
        ]  
0
Разработчик
Ответов: 26069
Рейтинг: 2121
#7: 2016-07-24 12:37:15 ЛС | профиль | цитата
RAWY_EX писал(а):
мне бы только скрол

Попробуй вырезать регионом штатный скролл и наложить на его место свой.
карма: 22

0
Ответов: 2203
Рейтинг: 675
#8: 2016-07-24 15:44:04 ЛС | профиль | цитата
RAWY_EX, по поводу красоты ничего сказать не могу, тут дело вкуса. Но научившись пользоваться вкладкой Графика (достаточно рисования) и освоить Регионы (в вкладке Окно). Можно делать нестандартные элементы.
Покажу на картинках:
win01.png
Тут и многострочный ListBox и нестандартный TrackBar(с двух сторон ограничители) все нарисовано на ListBox-е.
карма: 11

0
файлы: 1win01.png [41.7KB] [714]
Ответов: 497
Рейтинг: 16
#9: 2016-07-24 16:58:10 ЛС | профиль | цитата
nesco, sla8a, больше половины в графике знаю на ты(остальное или не нужно или не знаю как применять) а регионы знаю что и зачем и могу задействовать но только с окном. есть мануал или дайте схемку я по ней пойму.
sla8a, а как вы такой многострочный listbox сделали? а можно такой же только с картинкой впереди сделать?? я такой делаю из панелей но это очень накладно.
------------ Дoбавленo в 16.57:
13 закачек и никто за вирусы не ругает
карма: 1
        ]  
0
Ответов: 2203
Рейтинг: 675
#10: 2016-07-24 17:27:02 ЛС | профиль | цитата
RAWY_EX писал(а):
такой многострочный listbox
Элемент Img_TextInRect выдает высоту занимаемую текстом.
Img_TextInRect.ini писал(а):
onTextRect: Событие происходит перед отрисовкой текста и выдает в поток размер прямоугольника занемаемый текстом ARG(Left,Top,Width,Hight)
Значения высот заносите в массив (к примеру в IntegerArray) и если произошел клик то легко узнать в какой строке. И перерисовать эту строку с рамкой выделения и ранее выделенную без рамки.
При первой отрисовке текста и при изменении размера элемента (PaintBox-a) нужно просчитать все высоты для задания максимального значения полосе прокрутке.
Но тут вариантов много, главное продумать все хорошенько, сделать не сложно.
RAWY_EX писал(а):
а регионы ... или дайте схемку я по ней пойму.
В теме по регионам в первом посте есть архив с примерами. Или смотрите в прмерах Windows\Example\Forms\Regions. Посколько помню многое там есть. Что будет не понятно можете спросить (лучше в теме регионах).
карма: 11

0
Ответов: 497
Рейтинг: 16
#11: 2016-07-25 04:18:11 ЛС | профиль | цитата
sla8a,
sla8a писал(а):
Значения высот заносите в массив (к примеру в IntegerArray) и если произошел клик то легко узнать в какой строке. И перерисовать эту строку с рамкой выделения и ранее выделенную без рамки.
При первой отрисовке текста и при изменении размера элемента (PaintBox-a) нужно просчитать все высоты для задания максимального значения полосе прокрутке.
это рисовать в PaintBox? или я не так понял?
Img_TextInRect
C:\Program Files\HiAsm\Elements\delphi\code\hiImg_TextInRect.pas(65) Error: Undeclared identifier: 'PTransform'

C:\Program Files\HiAsm\Elements\delphi\code\hiImg_TextInRect.pas(120) Error: Undeclared identifier: 'ReadObject'

C:\Program Files\HiAsm\Elements\delphi\code\hiImg_TextInRect.pas(120) Error: Undeclared identifier: '_data_Transform'

C:\Program Files\HiAsm\Elements\delphi\code\hiImg_TextInRect.pas(120) Error: Undeclared identifier: 'TRANSFORM_GUID'

C:\Program Files\HiAsm\Elements\delphi\code\hiImg_TextInRect.pas(121) Error: Operator not applicable to this operand type

C:\Program Files\HiAsm\Elements\delphi\code\hiImg_TextInRect.pas(125) Error: 'THEN' expected but identifier '_Set' found

C:\Program Files\HiAsm\Elements\delphi\code\hiImg_TextInRect.pas(139) Error: Operator not applicable to this operand type

C:\Program Files\HiAsm\Elements\delphi\code\hiImg_TextInRect.pas(139) Error: Missing operator or semicolon

C:\Program Files\HiAsm\Elements\delphi\code\hiImg_TextInRect.pas(143) Error: 'END' expected but 'FINALLY' found

C:\Program Files\HiAsm\Elements\delphi\code\hiImg_TextInRect.pas(146) Error: EXCEPT or FINALLY expected
да и качать не пришлось в AltBuild есть и примеры и компоненты
с регионами я понял как играть но как
nesco писал(а):
вырезать регионом штатный скролл и наложить на его место свой

ума не приложу
------------ Дoбавленo в 02.51:
[flood]как мне убрать этот **аный скрол? уже все что знал
style :=   GetWindowLong(HD, GWL_STYLE) xor WS_VSCROLL;
SetwindowLong(HD,GWL_STYLE, style );
SetWindowPos(HD, HD,wb.left, wb.Top, wb.Width, wb.height,SWP_NOMOVE or SWP_NOSIZE or SWP_NOZORDER or SWP_FRAMECHANGED);
//wb.Style:=wb.Style and not WS_VSCROLL;
//SendMessage(HD,WS_VSCROLL,0,0);
//SetScrollRange(HD,SB_BOTH,0,0,true);
//ShowScrollBar(HD,SB_BOTH,false);
перепробовал и толку как всегда. при перерисовке опять он тут как тут [/flood]
------------ Дoбавленo в 04.17:
Dilma 19 Aug 2004 23:23 писал(а):
Эта тема уже была. Скролинг можно изменить только у крмпонента ScrollBar, но не у остальных.
не приговор ли это?
карма: 1
        ]  
0
Разработчик
Ответов: 26069
Рейтинг: 2121
#12: 2016-07-25 15:23:57 ЛС | профиль | цитата
Вот так, к примеру, можно отключить и включить скроллбар у окна

Add(MainForm,2953706,224,175)
{
Width=411
Height=409
link(onCreate,6199211:doLoad,[])
}
Add(ListBox,6199211,315,161)
{
Left=10
Top=10
Width=375
Height=310
FileName="License.txt"
Point(Handle)
}
Add(Button,3589634,224,231)
{
Left=10
Top=335
TabOrder=-1
link(onClick,15191989:doSwitch,[])
}
Add(InlineCode,5350615,336,231)
{
WorkPoints=#7:sAction|
DataPoints=#6:Handle|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|30:uses kol,Share,Debug, Windows;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|0:|9: public|24: Handle: THI_Event;|53: procedure sAction(var _Data:TData; Index:word);|5: end;|0:|14:implementation|0:|0:|29:procedure THiAsmUnit.sAction;|5:begin|66: ShowScrollBar(ToIntegerEvent(Handle), SB_VERT, ReadBool(_Data));|4:end;|0:|4:end.|
link(Handle,6199211:Handle,[])
}
Add(Switch,15191989,280,231)
{
DataOn=Integer(1)
DataOff=Integer(0)
Default=0
link(onSwitch,5350615:sAction,[])
}


Если большого текста нет, то на второе нажатие скролл появится принудительно.
карма: 22

0
Ответов: 497
Рейтинг: 16
#13: 2016-07-25 15:56:47 ЛС | профиль | цитата
nesco,
RAWY_EX писал(а):

способ 1 ( style :=   GetWindowLong(HD, GWL_STYLE) xor WS_VSCROLL;
SetwindowLong(HD,GWL_STYLE,  style );
SetWindowPos(HD, HD,wb.left, wb.Top, wb.Width, wb.height,SWP_NOMOVE or SWP_NOSIZE or SWP_NOZORDER or SWP_FRAMECHANGED); )

способ 2 wb.Style:=wb.Style and not WS_VSCROLL;

сп 3 SendMessage(HD,WS_VSCROLL,0,0);

сп 4 SetScrollRange(HD,SB_BOTH,0,0,true);

сп 5 ShowScrollBar(HD,SB_BOTH,false); тот же что и вы дали

все скрывают но если список прокрутить то опять скрол видно
карма: 1
        ]  
0
Разработчик
Ответов: 26069
Рейтинг: 2121
#14: 2016-07-25 17:11:55 ЛС | профиль | цитата
RAWY_EX писал(а):
то опять скрол видно

Действительно видно. Надо подумать еше, как его убрать
карма: 22

0
Ответов: 8888
Рейтинг: 823
#15: 2016-07-25 17:56:09 ЛС | профиль | цитата
nesco писал(а):
Надо подумать
Анекдот писал(а):
Прыгать надо!
code_37503.txt
карма: 19

0
файлы: 1code_37503.txt [1.3KB] [453]
Сообщение
...
Прикрепленные файлы
(файлы не залиты)