hi i want create a app like telegram ui with that list box,any source code or user control like this :
i know this is QT panel but i can not find for vb.
i need a list box like this :
To my eyes, that looks like a rather complete app, rather than just a ListBox. I think it's up to you to, basically, specify the app. And it's also probably up to you to write it as well. Just, for instance, you haven't even given us a hint as to what the elements are of each list-entry. There's obviously at least six elements to each entry.
Are we to assume that, when an entry is selected, that it's elements are highlighted with those red lines? What are the numbers in the ovals? Where's the scrollbar, or how do you scroll? What's the lock at the top indicate? Does the user make more entries? Is there an address book? What do the small icons mean, single/multi? What are those aqua checks? Are the number of elements per entry fixed?
In other words, there's just so much about this that isn't specified.
When I first saw it, I thought, "hmm, a ListView maybe?" But the more I studied it, I started thinking of a custom UserControl. However, as I stare more, it's just very unclear what it's about.
So ... Good Luck With It,
Elroy
Any software I post in these forums written by me is provided "AS IS" without warranty of any kind, expressed or implied, and permission is hereby granted, free of charge and without restriction, to any person obtaining a copy. To all, peace and happiness.
i can use LynxGrid or like this and then bind controls like buttons images labels or ... for each item but i want find simple list box like it.
what do u think about my idea?
Last edited by Black_Storm; Feb 25th, 2018 at 07:00 PM.
hi i want create a app like telegram ui with that list box,any source code or user control like this :
i know this is QT panel but i can not find for vb.
A "QT-like class-framework for VB6" is available with the RC5 (when used in conjunction with vbWidgets).
And the Widget in question which can render such complex Listings with ease (circular clipping of Avatar-Images included),
is cwVList.
Nothing stands in your way, to invest about 60-80 lines of code - and be finished with the List-implementation
in just a few hours (perhaps a day or two, if you're not yet familiar with the framework or the cairo-rendering-calls).
And since most messenger-Apps also use SQLite as their "Offline-DBstorage", I guess it's a good thing,
that this is included in the RC5 as well...
The download-size of Apps which are based on the QT-framework is often in the range of 15-30MB -
(whilst the download-size of an XCopy-deployable RC5-based App would be about 3-4MB).
High-DPI-awareness, InApp-Zoom, good (antialiased) rendering-quality and Unicode-awareness are
inherently available as well... up to you now, which path to go...
A "QT-like class-framework for VB6" is available with the RC5 (when used in conjunction with vbWidgets).
And the Widget in question which can render such complex Listings with ease (circular clipping of Avatar-Images included),
is cwVList.
Nothing stands in your way, to invest about 60-80 lines of code - and be finished with the List-implementation
in just a few hours (perhaps a day or two, if you're not yet familiar with the framework or the cairo-rendering-calls).
And since most messenger-Apps also use SQLite as their "Offline-DBstorage", I guess it's a good thing,
that this is included in the RC5 as well...
The download-size of Apps which are based on the QT-framework is often in the range of 15-30MB -
(whilst the download-size of an XCopy-deployable RC5-based App would be about 3-4MB).
High-DPI-awareness, InApp-Zoom, good (antialiased) rendering-quality and Unicode-awareness are
inherently available as well... up to you now, which path to go...
You could use the DataRepeater control, or you could just create your own custom list or grid controls.
Here is a quick and dirty one. I didn't get too fancy with it so it has a couple of raggedy "lights" for each item that the user can click on to change their colors and some random text.
Not perfect, just a sketch of an idea.
The appearance and behavior is completely up to you. With a little more code, items can even have varying heights among them as required.
I call these controls "Groids" (grid-oid?) though this one is a simple list more like the standard DataRepeater control.
Most of the attachment's size is included photos and graphic items.
Last edited by dilettante; Feb 26th, 2018 at 01:27 PM.
You could use the DataRepeater control, or you could just create your own custom list or grid controls.
Here is a quick and dirty one. I didn't get too fancy with it so it has a couple of raggedy "lights" for each item that the user can click on to change their colors and some random text.
Not perfect, just a sketch of an idea.
The appearance and behavior is completely up to you. With a little more code, items can even have varying heights among them as required.
I call these controls "Groids" (grid-oid?) though this one is a simple list more like the standard DataRepeater control.
Most of the attachment's size is included photos and graphic items.
Good example and well understood.may be can add .delete. items. sort.... like listboxEx...
i created a sample with #5 and added more than 200 items to listbox and some time vb crashed or problem with memory so this is not good.
about #7 : i am looking for good graphic,thanks for sample but can better graphic like scollbars like telegram and better hover effect? ( like image slider hover effect in this link (http://leandroascierto.com/blog/cate...rios/page/2/)?
about #8 : i think this is good but scrollbar theme is like standard scollbar ,any better theme?
A "QT-like class-framework for VB6" is available with the RC5 (when used in conjunction with vbWidgets).
And the Widget in question which can render such complex Listings with ease (circular clipping of Avatar-Images included),
is cwVList.
Nothing stands in your way, to invest about 60-80 lines of code - and be finished with the List-implementation
in just a few hours (perhaps a day or two, if you're not yet familiar with the framework or the cairo-rendering-calls).
And since most messenger-Apps also use SQLite as their "Offline-DBstorage", I guess it's a good thing,
that this is included in the RC5 as well...
The download-size of Apps which are based on the QT-framework is often in the range of 15-30MB -
(whilst the download-size of an XCopy-deployable RC5-based App would be about 3-4MB).
High-DPI-awareness, InApp-Zoom, good (antialiased) rendering-quality and Unicode-awareness are
inherently available as well... up to you now, which path to go...
i hv vbrichclients samples and ... i am looking for any list view support right to left and like telegram Qt Panel attaches in #1,but when here talked about QT and RC5 so i want know about QT and a sample list box with rc5 and qt used.can u send a sample about qt and list box in rc5?
i hv vbrichclients samples and ... i am looking for any list view support right to left and like telegram Qt Panel attaches in #1,but when here talked about QT and RC5 so i want know about QT and a sample list box with rc5 and qt used.can u send a sample about qt and list box in rc5?
As for QT - that's a Class-Framework, written in C++ ... (primarily used in C++ and for the K-Desktop-Environment KDE, but GUI-wrapper-libs exist for other languages as well)
The RC5 (vbRichClient5) does not use or "wrap" QT - it is "similar to it" (a Class-Framework for primarily VB6-users, but it's a COM-lib and can be used in other languages as well).
Just to make that more clear to you...
When you talk about a "QT-Panel", then you mean "a QT-Widget-Container".
And the RC5-framework offers something similar, over:
- either the cWidgetForm-Class
- or alternatively via the "ucPanel.ctl" Helper, which can be used to integrate RC5-Widgets into normal VB6-Forms
Here is, what an RC5-based "VList-approach" can produce on such an ucPanel (which in the ScreenShot below, covers the whole VB6-Form):
I will not post "the entire Zip" for that... in case you want to go that route, I'd like you "to work a bit" instead
Here is the code for the ucPanel.ctl, which allows you to use RC5-Widgets on a normal VB6-Form:
Code:
Option Explicit 'just a generic little Helper-Control, to make Cairo-Widgets usable on normal VB-Forms
Event ResizeWithDimensions(ByVal NewWidth As Long, ByVal NewHeight As Long)
Public mRoot As cWidgetRoot
Public Property Get Root() As cWidgetRoot
If mRoot Is Nothing Then Set mRoot = Cairo.WidgetRoot: mRoot.RenderContentIn Me
Set Root = mRoot
End Property
Public Property Get Widgets() As cWidgets
Set Widgets = Root.Widgets
End Property
Private Sub UserControl_Resize()
If mRoot Is Nothing Then Exit Sub Else ScaleMode = vbPixels
If mRoot.Widget.ChildCount Then RaiseEvent ResizeWithDimensions(ScaleWidth, ScaleHeight)
End Sub
Private Sub UserControl_Show()
If Not mRoot Is Nothing Then mRoot.Widget.Refresh
End Sub
Public Sub Cleanup()
If Not mRoot Is Nothing Then mRoot.Widgets.RemoveAll: mRoot.Disconnect
End Sub
A few days ago, I needed to use RC5.WebKit to test Chrome browser. Although RC5.vbWidget (including cwBrowser) is excellent, very handy for dynamically generate controls and very easy to port to other platforms, it is not the same as traditional VB UC(it's used in a different way than the traditional VB UC). Traditional VB UserControls are directly dragged and dropped from the Toolbox to VB Form. So I chose to encapsulate RC5.cWebKit directly into a UserControl instead of using vbWidget. At that time I was thinking, if there is another version of vbWidget, which is contained in a ucPanel.ctl, it will greatly facilitate the use for VB beginners.
Of course, if vbWidgets is contained in a ucPanel.ctl, then it is not easy to dynamically generate, and is not easy to port to other platforms.
Last edited by dreammanor; Mar 3rd, 2018 at 11:39 AM.
Hi Olaf, why is mRoot Public? Would it be better to write like this?
Code:
Option Explicit 'just a generic little Helper-Control, to make Cairo-Widgets usable on normal VB-Forms
Event ResizeWithDimensions(ByVal NewWidth As Long, ByVal NewHeight As Long)
Private mRoot As cWidgetRoot
Public Property Get Root() As cWidgetRoot
If mRoot Is Nothing Then Set mRoot = Cairo.WidgetRoot: mRoot.RenderContentIn Me
Set Root = mRoot
End Property
Public Property Set Root(widgetRoot As cWidgetRoot)
Set mRoot = widgetRoot
End Property
Public Property Get Widgets() As cWidgets
Set Widgets = Root.Widgets
End Property
Private Sub UserControl_Resize()
If mRoot Is Nothing Then Exit Sub Else ScaleMode = vbPixels
If mRoot.Widget.ChildCount Then RaiseEvent ResizeWithDimensions(ScaleWidth, ScaleHeight)
End Sub
Private Sub UserControl_Show()
If Not mRoot Is Nothing Then mRoot.Widget.Refresh
End Sub
Public Sub Cleanup()
If Not mRoot Is Nothing Then mRoot.Widgets.RemoveAll: mRoot.Disconnect
End Sub
Last edited by dreammanor; Mar 3rd, 2018 at 11:51 AM.
I've forgot to set it to Private (after a change I've made)...
It was formerly defined as just:
Public Root As cWidgetRoot
(without being backed up by an 'm-Variable').
The (readonly) " Public Property Get Root() " - was introduced later, to ensure an auto-instantiation.
Your change to Private is the right thing to do - but the Extra-Set-Property is not needed (not wanted) in that Panel-Ctl.
@Black_Storm
... just to make sure there is no misunderstanding...
I fully intend to finally come up with all the Source-Code for what is shown in the ScreenShot -
but would like you to make a first step, demonstrating your willingness to really learn how these things work,
starting with e.g.:
- incorporating the posted ucPanel.ctl into an empty VB6-Project (along with references to vbRichClient5 and vbWidgets)...
- followed by "successfully adding and visualizing a first Widget by using ucPanel.Widgets.Add" (against a Widget-class you wrote on your own, or one already included in vbWidgets.dll)
As for QT - that's a Class-Framework, written in C++ ... (primarily used in C++ and for the K-Desktop-Environment KDE, but GUI-wrapper-libs exist for other languages as well)
The RC5 (vbRichClient5) does not use or "wrap" QT - it is "similar to it" (a Class-Framework for primarily VB6-users, but it's a COM-lib and can be used in other languages as well).
Just to make that more clear to you...
When you talk about a "QT-Panel", then you mean "a QT-Widget-Container".
And the RC5-framework offers something similar, over:
- either the cWidgetForm-Class
- or alternatively via the "ucPanel.ctl" Helper, which can be used to integrate RC5-Widgets into normal VB6-Forms
Here is, what an RC5-based "VList-approach" can produce on such an ucPanel (which in the ScreenShot below, covers the whole VB6-Form):
I will not post "the entire Zip" for that... in case you want to go that route, I'd like you "to work a bit" instead
Here is the code for the ucPanel.ctl, which allows you to use RC5-Widgets on a normal VB6-Form:
Code:
Option Explicit 'just a generic little Helper-Control, to make Cairo-Widgets usable on normal VB-Forms
Event ResizeWithDimensions(ByVal NewWidth As Long, ByVal NewHeight As Long)
Public mRoot As cWidgetRoot
Public Property Get Root() As cWidgetRoot
If mRoot Is Nothing Then Set mRoot = Cairo.WidgetRoot: mRoot.RenderContentIn Me
Set Root = mRoot
End Property
Public Property Get Widgets() As cWidgets
Set Widgets = Root.Widgets
End Property
Private Sub UserControl_Resize()
If mRoot Is Nothing Then Exit Sub Else ScaleMode = vbPixels
If mRoot.Widget.ChildCount Then RaiseEvent ResizeWithDimensions(ScaleWidth, ScaleHeight)
End Sub
Private Sub UserControl_Show()
If Not mRoot Is Nothing Then mRoot.Widget.Refresh
End Sub
Public Sub Cleanup()
If Not mRoot Is Nothing Then mRoot.Widgets.RemoveAll: mRoot.Disconnect
End Sub
Olaf
i want just create a list box with my descriptions in #1 and my problem not fixed yet,i asked about Qt because i thinked maybe can simple in vb6.
i ahve not experiance to work with rc5 but i want just fix my problems,for example i did see examples in rc5 demos but was been not like ur attachment images,
can u send sample code,i dont want use just module and create dunamic form by rc5,i want hv my forms with my controls and then used list too.
in trick list box i hv some problem and i writed in that thread,i tested manu custom list view like as picasa list box or data repeater or scrollbar support data repeat or like this but all of my porblmes in trick list box is about
1-right to left problem
2-scrollbar theme
3-hover effect for items in list box
4-background of list box
5-alternative colors
6-custom images or buttons
... i dont want use just module and create dunamic form by rc5,...
You don't have to, since it is possible to "add and host RC5-Widgets" on normal VB6-Forms -
by using a little Project-Private-UserControl (named ucPanel and saved as ucPanel.ctl)...
I've already posted the code for that little Control in #14...
Originally Posted by Black_Storm
... can u send sample code used in #14 ...
As said, I will post the entire Solution finally, when you are willing to learn a few things - by "staying in dialogue with me" here.
The first thing you could try to understand is, that "direct integration of some new functionality into a larger Project"
is often not advisable - IMO your "larger integration project" will be better, when it (later) incorporates:
- separately developed parts
- which were developed in their own, isolated project
- then throughly tested (and later also maintained there, in that isolated project)
Only in a last step will these Components (usually Classes) be moved over into the Main-Project.
So, please make an isolated Project TestVList.vbp (choose any name you like) - and do the following:
- ensure references to vbRichClient5 and vbWidgets
- add a *.bas-module to it, and name it modMain.bas
- ensure that modMain.bas contains the following (at the moment):
Code:
Sub Main()
Form1.Show
End Sub
- now ensure in your ProjectSettings, that your Project indeed starts via Sub Main() (by placing a break-point at Form1.Show)
- now add a new Private UserControl to your Project - name it ucPanel and paste the code from #14 into it
- create a new Instance (ucPanel1) on your Form1
- and finally place the following code in Form1
or i can use custtom scroll control(its very simple with power full options and i can set any controls for items with design ),refrences:face book project attachment like this :
and result is like :
but i want see sorce code of #14 and test ,maybe use.
can u send source code ? maybe i use it maybe not,because i dont like use rc5 in my most projects and usually i dont like use dlls or ocx,but i want just see it.
most of my questions in forums is about use without other ocx or dlls.
i can fix my problems with use other options like my sent result image,i hv no time for learn rc5 because i hv no time for product of customer.
i am just compare options and samples here,so if u are doing talk about learn here,sorry i hv no time,but i am doing try for see other samples "source code" and not talk about it only.
Last edited by Black_Storm; Mar 4th, 2018 at 08:04 PM.
...i hv no time for learn rc5 because i hv no time for product of customer.
The solution in #14 includes (is based on) a new cwRepeater-Widget (internally derived from cwVList) - and as such it requires you,
to implement your own "cw_My_Repeated_Widget"-Class (as a little Container which hosts "Sub-Widgets, which finally make up your repeated Item"):
- in #14 this "repeated Control" is named cwMsgItem Project-internally ...(hosting 3 cwLabels, 3 cwImage and 2 cwButton for the CheckBoxes)
- and the cwRepeater-Widget which finally lists and renders such a "repeated Widget", is interacting with an SQLite-Recordset as the bound Datasource
So, if you are not able to define such a "repeated Item-Widget" on your own (in your own cwItem-Class),
then the whole approach and example would be of no use to you...
Therefore my attempts, to make sure you know how to create your own "cwMyWidget"-Class...
I will post the source for all this (in case others are interested) in a few weeks into the codebank
(taking somewhat more time, to integrate cwRepeater "officially and properly" into the vbWidgets.dll first).
As I see it, waiting for others to "post sources that match your problem" already took over a week so far (just in this thread alone).
If you'd have invested this week into learning how to use "Cairo-Drawing-Commands and the RC5-WidgetEngine",
you could solve this specific problem in a day (and in the future "other problems like it" in an equally short time).
That's what libraries are for, they *save you development-time* (making you more competitive in the eyes of your customers),
so when you write: "I have no time for learn rc5 because i hv no time for product of customer",
then this is a contradiction in itself (in the long run).
Tech99, please send me project that causes the error.
Sorry, for the delay in answering. I found error, causing crash. It wasn't in your class, but other part of code dealing with listbox in the form. However, for some reason VB is not able to catch runtime error, when asm thunking is made. Other than that, compiled exe is somewhat sensitive to crash, when only one Trick classed listbox is in from and declared as an array.
Code:
'Set TrickList.ListBox = lstTest(0)
Set TrickList.ListBox = lstTest 'preferred method without index, if there are only one subclassed lstTest listbox.
Maybe it's time to think about posting in the Open Positions section of the forum? It seems to me that you aren't really looking for 'sample code' at all but, rather, that you want somebody to provide you with a full custom control that meets your exact functional requirements. Given that you are being paid for this, and are unable to do it for yourself, maybe you should 'take a hit' and outsource this part of your project...
If you don't know where you're going, any road will take you there...
Sorry, for the delay in answering. I found error, causing crash. It wasn't in your class, but other part of code dealing with listbox in the form. However, for some reason VB is not able to catch runtime error, when asm thunking is made. Other than that, compiled exe is somewhat sensitive to crash, when only one Trick classed listbox is in from and declared as an array.
Code:
'Set TrickList.ListBox = lstTest(0)
Set TrickList.ListBox = lstTest 'preferred method without index, if there are only one subclassed lstTest listbox.
Investicated this bit more, and yes application crashes everytime, when started from other task with command line parameter.
Ongelman tunniste:
Ongelmatapahtuman nimi: APPCRASH
Vikamoduulin nimi: ntdll.dll
Vikamoduulin versio: 6.1.7601.23455
Vikamoduulin aikaleima: 573a5463
Poikkeuskoodi: c0000005
Poikkeuksen poikkeama: 0001ea26
Käyttöjärjestelmän versio: 6.1.7601.2.1.0.256.48
Aluekohtaisten asetusten tunnus: 1035
Lisätietoja 1: 4ae2
Lisätietoja 2: 4ae2b85c451a1c8593dd92f23aaa6042
Lisätietoja 3: 18ab
Lisätietoja 4: 18ab1868fb8ea56133e26bedf7bc5984
My recommendation, one should use proper ocx or usercontrol, and do not try thunking assemblies to std windows objects in these days anymore.
Last edited by Tech99; Mar 13th, 2018 at 01:10 PM.