Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[vb.net] Loop voor screens

Pagina: 1
Acties:
  • 612 views

  • Snobbieh
  • Registratie: Juli 2009
  • Laatst online: 22-11 13:01
Als opdracht voor programmeren moeten wij een simpele beursfuif applicatie maken als opdracht voor het examen.
Het houdt in dat een organisatie fuiven kan bevatten, en die fuiven bezitten allemaal dranken.
Voor elke fuif moeten wij een prijslijstscherm laten maken en hier zit ik vast.
In de opgave staat namelijk dit:
"Bij lange prijslijsten worden de prijzen op meerdere schermen getoond in een lus".
Ik weet niet hoe ik dit moet verwezenlijken, ik zit hier ook al een lange tijd op te zoeken.

Een methode dat ik heb geprobeerd is de schermgrootte ophalen, en dan de itemgrootte en zo aan de hand van berekeningen bepalen of de schermgrootte wordt overschreden en dan een nieuw scherm maken. Dit lukte mij echter niet.
Hebben jullie soms een idee hoe ik dit moet oplossen?

I7 2600K - 8GB - M550 256GB - GTX 670


  • Armageddon_2k
  • Registratie: September 2002
  • Laatst online: 24-11 15:48

Armageddon_2k

Trotse eigenaar: Yamaha R6

Tsja... het hangt er natuurlijk helemaal vanaf wat je basisontwerp is. Hoe worden je screens getoond ed.
Als je je screens dynamisch aanmaakt moet dit geen probleem zijn, maar we hebben wel een klein stukje code van je nodig :P

  • MAX3400
  • Registratie: Mei 2003
  • Laatst online: 19-11 19:30

MAX3400

XBL: OctagonQontrol

Meerdere schermen? Is dat dus een multi-monitor setup of bedoel je dat eerst 50% van de lijst wordt getoond op het scherm en later de andere 50% bijvoorbeeld?

Je zit wel enigszins op de goede weg om te detecteren wat de resolutie is maar je wil niet dynamisch de itemgrootte aanpassen; door dit niet dicht te bouwen, heb je kans dat alles in font 6 wordt weergegeven en dus onleesbaar.

Misschien, maar ik ben geen echte programmeur: 2 of 3 resoluties deifnieren in je code en aan de hand hiervan x aantal items laten zien. Door detectie dus 1 van de 3 resoluties kiezen en dan je subroutine afwerken.

Het is voor je examen; als je het zelf niet kan, ben je dan wel klaar met je opleiding?

[ Voor 8% gewijzigd door MAX3400 op 06-01-2012 12:17 ]

Mijn advertenties!!! | Mijn antwoorden zijn vaak niet snowflake-proof


  • Afvalzak
  • Registratie: Oktober 2008
  • Laatst online: 31-08 12:02

Afvalzak

Zet jij mij even buiten?

"Bij lange prijslijsten worden de prijzen op meerdere schermen getoond in een lus".

Bedoelen ze niet gewoon een aantal schermen met de prijslijsten in gedeeltes? (lijkt mij een beetje apart)
Dus eerst een scherm met 1 tm 200 daarna 201 tm 400.

Last.fm | Code Talks


  • Ghostface9000
  • Registratie: Januari 2009
  • Laatst online: 24-11 10:39
NMCT ?:p

Verwijderd


  • Niemand_Anders
  • Registratie: Juli 2006
  • Laatst online: 09-07-2024

Niemand_Anders

Dat was ik niet..

Ik denk eerder dat hij met schermen views/pages bedoeld. Maar waarom toon je de producten niet in een lijst?
Bij de open universiteit loopt ik ook altijd tegen dat soort onterrecht vertaalde termen tegen. Hij kent vast wel de termen MVC en MVP/MVVM. En zij vertelen view naar naar scherm.Wat op niet verkeerd is, maar gewoon view aanhouden was duidelijker geweest. Scherm (screen) wordt meestal vertaald naar beeldscherm.

"Bij lange prijslijsten worden de prijzen via meerdere pages getoond in een lus". En met lus bedoelen ze natuurlijk paging. Het opdelen van een grote dataset in kleinere delen en daar 'loop' (navigeer) je dan doorheen.

Als je echter weet hoevel pixels je header en je footer in beslag nemen. Kun je dus het resterende gedeelte (beschikbaar voor je lijst) uitrekenen. Als je weet hoeveel pixels hoog je font (met spacing) is, kun je dus ook uitrekenen hoeveel produkten je op een enkele pagina kunt tonen.

If it isn't broken, fix it until it is..


Verwijderd

Als het inderdaad een MVC webapplicatie dan wordt het een stuk makkelijk.

Misschien handig om wat meer informatie te geven?

Laat eens de code zien wat je geprobeerd hebt?

  • Snobbieh
  • Registratie: Juli 2009
  • Laatst online: 22-11 13:01
Jup NMCT :P

De bedoeling is dat er dus wanneer er teveel items in een scherm komen (en er dus gescrolled moet worden) dat er een nieuw scherm aangemaakt wordt met daarin de overige items zodat je dus meerdere windows krijgt met daarin de prijzen zonder dat je moet scrollen.

De windows worden dynamisch aangemaakt volgens dit:

Visual Basic .NET:
1
2
        Dim oWindow As New SelecteerFuifPrijsLijst
        oWindow.Show()


Al bedankt voor de reacties :)

Edit: Het is geen MVC web applicatie. Het is een desktopapplicatie (ook volgens het MVC concept).

[ Voor 10% gewijzigd door Snobbieh op 06-01-2012 12:40 ]

I7 2600K - 8GB - M550 256GB - GTX 670


Verwijderd

Snobbieh schreef op vrijdag 06 januari 2012 @ 12:38:
Jup NMCT :P

De bedoeling is dat er dus wanneer er teveel items in een scherm komen (en er dus gescrolled moet worden) dat er een nieuw scherm aangemaakt wordt met daarin de overige items zodat je dus meerdere windows krijgt met daarin de prijzen zonder dat je moet scrollen.

De windows worden dynamisch aangemaakt volgens dit:

Visual Basic .NET:
1
2
        Dim oWindow As New SelecteerFuifPrijsLijst
        oWindow.Show()


Al bedankt voor de reacties :)

Edit: Het is geen MVC web applicatie. Het is een desktopapplicatie (ook volgens het MVC concept).
Dit is als je een beetje kan programmeren geen probleem. Je voorbeeld code slaat ook nergens op. Je zoekt een kant en klare oplossing. Tip: Huur een freelancer in.

  • MAX3400
  • Registratie: Mei 2003
  • Laatst online: 19-11 19:30

MAX3400

XBL: OctagonQontrol

Verwijderd schreef op vrijdag 06 januari 2012 @ 12:59:
[...]
Tip: Huur een freelancer in.
Voor een examen? _O- _O-

Mijn advertenties!!! | Mijn antwoorden zijn vaak niet snowflake-proof


Verwijderd

haha...ja of jatten van een medestudent :-P Want het is duidelijk dat er geen programmeerkennis is >:)

  • Snobbieh
  • Registratie: Juli 2009
  • Laatst online: 22-11 13:01
Verwijderd schreef op vrijdag 06 januari 2012 @ 12:59:
[...]


Dit is als je een beetje kan programmeren geen probleem. Je voorbeeld code slaat ook nergens op. Je zoekt een kant en klare oplossing. Tip: Huur een freelancer in.
Echter ben ik een student en ben ik nog steeds geen programmeur :-) Ik vraag uitleg en geen kant en klare oplossingen. Aanzetten is al meer dan voldoende voor mij.
Verwijderd schreef op vrijdag 06 januari 2012 @ 13:04:
[...]


haha...ja of jatten van een medestudent :-P Want het is duidelijk dat er geen programmeerkennis is >:)
En om te komen klagen heb ik ook niet gevraagd :) Ga een eigen topic maken en ga daar een beetje de irritante uithangen.

I7 2600K - 8GB - M550 256GB - GTX 670


Verwijderd

Snobbieh schreef op vrijdag 06 januari 2012 @ 13:05:
[...]


Echter ben ik een student en ben ik nog steeds geen programmeur :-) Ik vraag uitleg en geen kant en klare oplossingen. Aanzetten is al meer dan voldoende voor mij.


[...]


En om te komen klagen heb ik ook niet gevraagd :) Ga een eigen topic maken en ga daar een beetje de irritante uithangen.
Of je had moeten opletten in de lessen :*)

  • Snobbieh
  • Registratie: Juli 2009
  • Laatst online: 22-11 13:01
Verwijderd schreef op vrijdag 06 januari 2012 @ 13:06:
[...]


Of je had moeten opletten in de lessen :*)
Ik let, spijtig genoeg voor jou, op in de lessen. Zulke concepten worden echter niet uitgelegd ;w

I7 2600K - 8GB - M550 256GB - GTX 670


  • defjef
  • Registratie: Januari 2007
  • Laatst online: 22-01-2024
Wat lukt je eigenlijk niet, resolutie van het scherm ophalen of de groten van je lijst met items bepalen?

  • MAX3400
  • Registratie: Mei 2003
  • Laatst online: 19-11 19:30

MAX3400

XBL: OctagonQontrol

Snobbieh schreef op vrijdag 06 januari 2012 @ 13:08:
[...]


Ik let, spijtig genoeg voor jou, op in de lessen. Zulke concepten worden echter niet uitgelegd ;w
Vermoed dat het concept voor de opdracht wel is uitgelegd; het is nu aan de leerlingen om e.e.a. creatief in andere volgorde/code te gieten tot een werkende applicatie. vb.net is een framework; als je niet creatief kan omgaan met de tools die daarin geboden worden, houdt het nu/later echt wel op met verder komen, lijkt me.

Even terugkomend op de initiele vraag: ik heb nog steeds geen antwoord gezien wat je nu verstaat onder een screen; is dat een afgebakende hoeveelheid pixels? Is dat daadwerkelijk een fysiek stuk hardware? Is dat een (eigen) routine in vb.net?

Mijn advertenties!!! | Mijn antwoorden zijn vaak niet snowflake-proof


Verwijderd

Snobbieh schreef op vrijdag 06 januari 2012 @ 13:08:
[...]


Ik let, spijtig genoeg voor jou, op in de lessen. Zulke concepten worden echter niet uitgelegd ;w
Oke....ik doe een poging om je te helpen.

Stel er kunnen 20 dranken/prijzen op het scherm en je hebt een totaallijst van 100 dan kun je bv met een timerobject een event laten afgaan bij x seconde. Deze verhoogd dan de row index van je producten lijst.

code:
1
2
3
4
5
Dim jumpToRow As Integer = 20
If dgv.Rows.Count >= jumpToRow AndAlso jumpToRow >= 1 Then
            dgv.FirstDisplayedScrollingRowIndex = jumpToRow
            dgv.Rows(jumpToRow).Selected = True
End If

[ Voor 19% gewijzigd door Verwijderd op 06-01-2012 13:17 ]


  • Snobbieh
  • Registratie: Juli 2009
  • Laatst online: 22-11 13:01
defjef schreef op vrijdag 06 januari 2012 @ 13:10:
Wat lukt je eigenlijk niet, resolutie van het scherm ophalen of de groten van je lijst met items bepalen?
Resolutie van scherm lukt, alsook de grote van de lijst van items bepalen (dit is niet moeilijk).
Het probleem is dat we echter een loop moeten maken die items doorgeeft en die in een listview of iets dergelijk doet. Wanneer het aantal items groot is, gaat het de lijst natuurlijk scrollbars geven maar dit mag niet.
Je moet zorgen dat er dan een nieuwe window wordt aangemaakt en daar de andere items worden ingevoerd.
Verwijderd schreef op vrijdag 06 januari 2012 @ 13:15:
[...]


Oke....ik doe een poging om je te helpen.

Stel er kunnen 20 dranken/prijzen op het scherm en je hebt een totaallijst van 100 dan kun je bv met een timerobject een event laten afgaan bij x seconde. Deze verhoogd dan de row index van je producten lijst.
Moest het concept zo zijn, dan had ik het ook anders opgelost. Zie hierboven.
MAX3400 schreef op vrijdag 06 januari 2012 @ 13:14:
[...]

Vermoed dat het concept voor de opdracht wel is uitgelegd; het is nu aan de leerlingen om e.e.a. creatief in andere volgorde/code te gieten tot een werkende applicatie. vb.net is een framework; als je niet creatief kan omgaan met de tools die daarin geboden worden, houdt het nu/later echt wel op met verder komen, lijkt me.

Even terugkomend op de initiele vraag: ik heb nog steeds geen antwoord gezien wat je nu verstaat onder een screen; is dat een afgebakende hoeveelheid pixels? Is dat daadwerkelijk een fysiek stuk hardware? Is dat een (eigen) routine in vb.net?
Zie de reactie hierboven.
Ik bedoel dus effectief een window waarin je programma draait (software dus).

Het probleem zit hem in hoe ik weet hoeveel items er nu passen op 1 window voor het ervoor zorgt dat je begint te scrollen. Een aanzet hiervoor ben ik al zeer tevreden mee.

I7 2600K - 8GB - M550 256GB - GTX 670


  • MAX3400
  • Registratie: Mei 2003
  • Laatst online: 19-11 19:30

MAX3400

XBL: OctagonQontrol

Snobbieh schreef op vrijdag 06 januari 2012 @ 13:21:
[...]


Zie de reactie hierboven.
Ik bedoel dus effectief een window waarin je programma draait (software dus).

Het probleem zit hem in hoe ik weet hoeveel items er nu passen op 1 window voor het ervoor zorgt dat je begint te scrollen. Een aanzet hiervoor ben ik al zeer tevreden mee.
Volgens mij heb ik al een idee gegeven?
- eerst definieren hoe groot de schermresolutie is of mag zijn.
- dan een window daarop bouwen.
- dan bedenken hoeveel items je op resolutie x kan weergeven bij font y.
- dan je routines schrijven voor het ophalen/vervangen/verversen van je window.

Mijn advertenties!!! | Mijn antwoorden zijn vaak niet snowflake-proof


Verwijderd

function CheckItemSize(items)
{
If items.count > maxitemsscreen
create.window(items,startindex)
}

[ Voor 22% gewijzigd door Verwijderd op 06-01-2012 13:27 ]


  • Armageddon_2k
  • Registratie: September 2002
  • Laatst online: 24-11 15:48

Armageddon_2k

Trotse eigenaar: Yamaha R6

Snobbieh schreef op vrijdag 06 januari 2012 @ 13:08:
[...]
Ik let, spijtig genoeg voor jou, op in de lessen. Zulke concepten worden echter niet uitgelegd ;w
Lijkt me stug dat het helemaal niet is uitgeled. Er zijn veel mensen die code begrijpen, maar er zijn niet zo veel die ook daadwerkelijk kunnen programmeren. Maargoed, ik zal een poging doen te helpen.

Je maakt een screen dat (bijvoorbeeld) 20 items kan tonen. Stel je hebt nu een lijst van 100 items.

Bij het aanroepen van dit scherm geef je het beginnummer op van het item dat je wilt tonen.
Dus je doet (psudo):

Visual Basic .NET:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Private ItemIndex as Integer '<- Het beginnummer van de lijst die je wilt tonen.
Private Items() as MijnItem '<- Array met de 100 items.

Private Sub SchermRefreshTimer() Handles timer
Begin
    Screen.Show(Items, ItemIndex)
    ItemIndex = ItemIndex + 20
End Sub

'In de aanroep van de screenshow doe je dan:

Public Sub Show( Items() as MijnItem, ShowFromIndex as integer)
Begin
 'Kan ook met een loopje, maar ik doe het even plat.  
 Textbox1.text = Items(ShowFromIndex).Prijs
 Textbox2.text = Items(ShowFromIndex+1).Prijs
 Textbox3.text = Items(ShowFromIndex+2).Prijs
 Textbox4.text = Items(ShowFromIndex+4).Prijs
  'and so on.
End Sub

  • Snobbieh
  • Registratie: Juli 2009
  • Laatst online: 22-11 13:01
MAX3400 schreef op vrijdag 06 januari 2012 @ 13:24:
[...]

Volgens mij heb ik al een idee gegeven?
- eerst definieren hoe groot de schermresolutie is of mag zijn.
- dan een window daarop bouwen.
- dan bedenken hoeveel items je op resolutie x kan weergeven bij font y.
- dan je routines schrijven voor het ophalen/vervangen/verversen van je window.
Klinkt goed, zal ik proberen.

Sommige mensen lijken hier echter mijn probleem niet te snappen, behalve Max3400 :P

I7 2600K - 8GB - M550 256GB - GTX 670


  • MAX3400
  • Registratie: Mei 2003
  • Laatst online: 19-11 19:30

MAX3400

XBL: OctagonQontrol

Snobbieh schreef op vrijdag 06 januari 2012 @ 13:30:
[...]


Klinkt goed, zal ik proberen.

Sommige mensen lijken hier echter mijn probleem niet te snappen, behalve Max3400 :P
Dan moet ik ook maar jouw opleiding gaan doen; heb zelf al problemen om uberhaupt een batch-file te schrijven... Vreemd eigenlijk; bash gaat me stukken beter af :+

offtopic:
Let je even op mijn hoofdletters...

[ Voor 6% gewijzigd door MAX3400 op 06-01-2012 13:32 ]

Mijn advertenties!!! | Mijn antwoorden zijn vaak niet snowflake-proof


  • Snobbieh
  • Registratie: Juli 2009
  • Laatst online: 22-11 13:01
MAX3400 schreef op vrijdag 06 januari 2012 @ 13:31:
[...]

Dan moet ik ook maar jouw opleiding gaan doen; heb zelf al problemen om uberhaupt een batch-file te schrijven... Vreemd eigenlijk; bash gaat me stukken beter af :+

offtopic:
Let je even op mijn hoofdletters...
Sommige mensen snappen echter niet dat het om een grootte van een lijst ging die dynamisch moet zijn, en niet altijd statisch bv 20 items. Dan was het zeer gemakkelijk. Ben nu wat aan het uitwerken met de fontsize methode, misschien lukt dit wat

Nou sorry :P

I7 2600K - 8GB - M550 256GB - GTX 670


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 19:56

Creepy

Tactical Espionage Splatterer

Hmmja, je geeft zo weinig concrete informatie dat het erg moeilijk is om je goed te helpen. En pointer geven terwijl je zelf veel te weinig informatie geeft is gewoon lastig. Je geeft eigenlijk niet heel veel meer dan dan de daadwerkelijk opdracht en dat "het niet lukt". Het feit dat je meer dan eens moet gaan uitleggen wat je bedoelt ligt toch echt eerder aan jezelf dan aan de rest hier ;)

Dus ga er zelf eens concreet mee aan de slag en probeer gewoon eens wat. Je hebt aanzetten genoeg gekregen. Mocht je er dan nog niet uitkomen dan kan je altijd een nieuw topic openen maar let daarbij dan op Het algemeen beleid (met name de quickstart). Zeker voor een schoolopdracht kan je veel concreter zijn dan wat je nu doet en dat verwachten we dan ook

En wil iedereen die offtopic loopt te reageren of loopt te roepen dat iemand geen kennis heeft dat voortaan gewoon laten? Maak een TR aan, reageer ontopic of zeg gewoon niks

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 19:56

Creepy

Tactical Espionage Splatterer

TeeDee kwam nog met de volgende tip:
TS zou eventueel ook nog kunnen kijken naar MSDN: PreferredHeight Property van een Listbox.

Als deze groter is dan de Height van de container: Nieuw window maken. Hoeven er geen rare calculaties gemaakt te worden.
Doe er je voordeel mee ;)

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1

Dit topic is gesloten.