[VB6] Window(form) preview

Pagina: 1
Acties:

  • Scorpion1984
  • Registratie: Juni 2002
  • Laatst online: 02-05 11:11
Is het mogelijk om in vb6 een soort form preview weer te geven in je programma (net zoals in de IDE van visual basic zelf)?

Zo ja hoe?

Ik heb al uitgebreid gezocht op GOT en de msdn library maar kan niks vinden hierover.

[ Voor 4% gewijzigd door Scorpion1984 op 02-08-2005 23:24 ]


  • Haploid
  • Registratie: Maart 2002
  • Laatst online: 29-12-2021

Haploid

Doh!

Je wilt dat de gebruiker de formuliertjes zelf kan wijzigen ofzo? Ik snap niet helemaal wat je met die form preview wilt doen. :?

Hey, I came here to be drugged, electrocuted and probed, not insulted.


  • Scorpion1984
  • Registratie: Juni 2002
  • Laatst online: 02-05 11:11
Hoeft niet zelf te wijzigen zijn. Gewoon een soort plaatje met het scherm(form is een normale applicatie window in visual basic) erop. Maar dit moet wel aangepast kunnen worden als de gebruiker een wijziging maakt in een tabel.

  • Serpie
  • Registratie: Maart 2005
  • Laatst online: 05-02 21:24
Wil je nu een afbeelding van het scherm, van het huidige Form waarop je bezig bent, van de data die de gebruiker ingevoerd heeft in een tabel in het form, wat wijzigt de gebruiker in de tabel?

Met jouw vraagstelling kan je nog teveel kanten op om een duidelijk antwoord te kunnen geven, dus geeft alsjeblieft wat meer informatie.

  • Scorpion1984
  • Registratie: Juni 2002
  • Laatst online: 02-05 11:11
Serpie schreef op woensdag 03 augustus 2005 @ 08:49:
Wil je nu een afbeelding van het scherm, van het huidige Form waarop je bezig bent, van de data die de gebruiker ingevoerd heeft in een tabel in het form, wat wijzigt de gebruiker in de tabel?

Met jouw vraagstelling kan je nog teveel kanten op om een duidelijk antwoord te kunnen geven, dus geeft alsjeblieft wat meer informatie.
Ik heb een programma gemaakt die als een soort wizard werkt. De applicatie leest gegevens in van een xml file en past aan de hand van die gegevens een form aan die die daarna op het scherm zet.

Waar ik nu mee bezig ben is een programma waar je die xml file mee kan maken, maar om het makkelijker te maken voor de gebruiker wil ik een soort preview op het scherm zetten, zodat de gebruiker kan zien wat hij nou eigenlijk precies wijzigd (stukken tekst/ aantal invoer/soort invoer/enz).
Het liefst heb ik een soort permanent zichtbaar plaatje (wat zich aanpast) in plaats van een een echte popup van het scherm.

  • Serpie
  • Registratie: Maart 2005
  • Laatst online: 05-02 21:24
Als je weet hoe het form eruit komt te zien met die data kun je toch gewoon een andere instantie van het form gebruiken en in runtine adh van de gebruikersinvoer de controls aanpassen?

Dus vanuit Form1
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
Private varForm As Form2

Private Sub Command1_Click()
  'Command 1 start de preview
  varForm = New Form2
  varForm.Show
End Sub

Private Sub Command2_Click()
  'Command 2 verplaatst de button op deze instantie van Form2
  varForm.Command1.Left = varForm.Command1.Left + 10
End Sub

  • Scorpion1984
  • Registratie: Juni 2002
  • Laatst online: 02-05 11:11
Ja, maar dan heb je geen permanent zichtbaar form, die komt gewoon lekker achter het andere form(waar de tabel in staat) te staan. Ik wil er gewoon een stuk in mijn huidige form voor kunnen reserveren en als een soort plaatje in zetten.

  • Haploid
  • Registratie: Maart 2002
  • Laatst online: 29-12-2021

Haploid

Doh!

Scorpion1984 schreef op woensdag 03 augustus 2005 @ 10:04:
Ja maar dan heb je geen permanent zichtbaar form, die komt gewoon lekker achter het andere form(waar de tabel in staat) te staan. Ik wil er gewoon een stuk in mijn huidige form voor kunnen reserveren en als een soort plaatje in zetten.
Dus als ik het goed begrijp zoek je de tekenfuncties van VB, zodat je die preview op t scherm kunt toveren. Tekenfuncties daar heeft VB6 er bar weinig van, maar je komt al een heel eind met de functies Line (x,y)-(x,y), [BF], Color en Print (ff vergeten wat daar achteraan komt, zie MSDN).

Hey, I came here to be drugged, electrocuted and probed, not insulted.


  • Scorpion1984
  • Registratie: Juni 2002
  • Laatst online: 02-05 11:11
Neej ik zoek niet de tekenfuncties.
Ik bedoel net zoiets als in de IDE van visual studio zelf, dat is getekend door windows zelf, en niet door het programma, zoiets wil ik. Ik wil dat windows zoals gewoonlijk het scherm tekent, maar dat ik hem net zoals in de IDE van visual studio in een soort plaatje heb staan.

  • MerijnB
  • Registratie: Oktober 2000
  • Laatst online: 00:01
op een of ander form alles neerzetten (zoals serpie zegt)
daar een screencap van maken en die in je eigen form zetten ?

A software developer is someone who looks both left and right when crossing a one-way street.


  • Haploid
  • Registratie: Maart 2002
  • Laatst online: 29-12-2021

Haploid

Doh!

Scorpion1984 schreef op woensdag 03 augustus 2005 @ 10:41:
Neej ik zoek niet de tekenfuncties.
Ik bedoel net zoiets als in de IDE van visual studio zelf, dat is getekend door windows zelf, en niet door het programma, zoiets wil ik. Ik wil dat windows zoals gewoonlijk het scherm tekent, maar dat ik hem net zoals in de IDE van visual studio in een soort plaatje heb staan.
De IDE van Visual Studio is geen bibliotheek die je zomaar kunt gebruiken. Je kunt t wel namaken. Daarvoor moet je gewoon met lijntjes en blokjes tekenen en er tekst in gooien. Eigenlijk niet zo enorm moeilijk en vast niet veel moeilijker dan een bibliotheekje vragen om alles voor je te tekenen.

Hey, I came here to be drugged, electrocuted and probed, not insulted.


  • Scorpion1984
  • Registratie: Juni 2002
  • Laatst online: 02-05 11:11
MerijnB schreef op woensdag 03 augustus 2005 @ 10:53:
op een of ander form alles neerzetten (zoals serpie zegt)
daar een screencap van maken en die in je eigen form zetten ?
Krijg je dan niet een "flits-spectakel" elke keer als je iets edit? Want elke keer als je iets edit moet hij dat form aanpassen, opnieuw weergeven, een screencap maken, form weer hiden, focus goed zetten, plaatje aanpassen naar nieuwe screencap. Dat lijkt me nogal irritant voor de gebruiker.

Waarom kan het niet heel anders, in de IDE zie je toch ook niet een hoop geflits als je iets aanpast?

[ Voor 3% gewijzigd door Scorpion1984 op 03-08-2005 11:00 ]


  • rashnu
  • Registratie: Augustus 2000
  • Laatst online: 30-06-2023
Je zou in je editor kunnen afvangen wat de gebruiker wijzigd,
En zodoende het object wat aangepast is updaten op het scherm.

Wat ik begrijp heb je al een Import van de XML dan lijkt het mij een kleine moeite om alleen een stukje daarvan te updaten.

  • Serpie
  • Registratie: Maart 2005
  • Laatst online: 05-02 21:24
Of in plaats van een Form gebruik je dan een picturebox om je controls op te tekenen, in runtime kun je met Controls.add daar gewoon controls aan toevoegen:
Visual Basic:
1
2
3
4
5
6
7
Dim mvrTextBox As TextBox
  Set mvrTextBox = Controls.Add("VB.TextBox", "Text", Picture1)
  With mvrTextBox
    .Left = 0
    .Top = 0
    .Visible = True
  End With

(zorg dat je een form hebt met een PictureBox (Picture1), de textbox komt dan linksbovenin de picturebox.

Zie ook: http://support.microsoft....aspx?scid=kb;en-us;190670

[ Voor 6% gewijzigd door Serpie op 03-08-2005 11:19 ]


  • MerijnB
  • Registratie: Oktober 2000
  • Laatst online: 00:01
volgens mij hoef je niet een form visible te maken om er een screencap van te nemen ?
flitsen valt dus wel mee dan ...

A software developer is someone who looks both left and right when crossing a one-way street.


  • Scorpion1984
  • Registratie: Juni 2002
  • Laatst online: 02-05 11:11
Rashnu schreef op woensdag 03 augustus 2005 @ 11:14:
Je zou in je editor kunnen afvangen wat de gebruiker wijzigd,
En zodoende het object wat aangepast is updaten op het scherm.

Wat ik begrijp heb je al een Import van de XML dan lijkt het mij een kleine moeite om alleen een stukje daarvan te updaten.
Als je afvangt wat de gebruiker wijzigd, en dan het object aanpast moet je om het te kunnen weergeven in het plaatje, eerst een nieuwe capture maken, en voor een capture moet je dus even het form show doen, en daarna weer een hide. Dan krijg je dus een leuk flits effect als iemand iets wijzigd, dat is behoorlijk irritant.

En over dat xml, de eerste instantie heb ik een xmlfile die ik laad, maar daarna gaat een gebruiker in onder andere tekstvakken dingen wijzigen, vandaar dat ik dan elke keer opnieuw het form moet updaten. En als je updaten doet door een nieuwe capture te maken, dan moet je gewoon even het form showen, en dat wil ik niet.

  • Scorpion1984
  • Registratie: Juni 2002
  • Laatst online: 02-05 11:11
MerijnB schreef op woensdag 03 augustus 2005 @ 11:17:
volgens mij hoef je niet een form visible te maken om er een screencap van te nemen ?
flitsen valt dus wel mee dan ...
Jawel, je moet em visible hebben. Tenzij ik mij vergis, maar als visible=false bij dat form dan wil hij dat form wel capturen, maar het probleem is dat hij dan gewoon de plaats captured waar die form hoort te staan. Hij captured dus gewoon wat er zichtbaar is geworden doordat het form is ge-hide.

[ Voor 34% gewijzigd door Scorpion1984 op 03-08-2005 11:49 ]


  • Scorpion1984
  • Registratie: Juni 2002
  • Laatst online: 02-05 11:11
Serpie schreef op woensdag 03 augustus 2005 @ 11:17:
Of in plaats van een Form gebruik je dan een picturebox om je controls op te tekenen, in runtime kun je met Controls.add daar gewoon controls aan toevoegen:
Visual Basic:
1
2
3
4
5
6
7
Dim mvrTextBox As TextBox
  Set mvrTextBox = Controls.Add("VB.TextBox", "Text", Picture1)
  With mvrTextBox
    .Left = 0
    .Top = 0
    .Visible = True
  End With

(zorg dat je een form hebt met een PictureBox (Picture1), de textbox komt dan linksbovenin de picturebox.

Zie ook: http://support.microsoft....aspx?scid=kb;en-us;190670
Dat zal dan misschien nog kunnen alhoewel je dan niet de titelbalk kan laten zien, ik zal hier eens verder op inkijken. Daarbij is het ook jammer dat ik gewoon niet mijn huidige form kan gebruiken en em totaal opnieuw moet opbouwen, wat behoorlijk veel werk is.

  • Scorpion1984
  • Registratie: Juni 2002
  • Laatst online: 02-05 11:11
Ik heb gevonden dat je met printform een form kan printen naar de printer. Kan ik dit opvangen en in een picturebox zetten?

  • Haploid
  • Registratie: Maart 2002
  • Laatst online: 29-12-2021

Haploid

Doh!

Scorpion1984 schreef op woensdag 03 augustus 2005 @ 11:00:
[...]

Krijg je dan niet een "flits-spectakel" elke keer als je iets edit? Want elke keer als je iets edit moet hij dat form aanpassen, opnieuw weergeven, een screencap maken, form weer hiden, focus goed zetten, plaatje aanpassen naar nieuwe screencap. Dat lijkt me nogal irritant voor de gebruiker.

Waarom kan het niet heel anders, in de IDE zie je toch ook niet een hoop geflits als je iets aanpast?
Flitsen wordt vrijwel altijd voorkomen door gebruik te maken van twee buffers, waarvan er slechts een zichtbaar is. Op de onzichtbare wordt getekend. Als het tekenen afgerond is, dan worden de zichtbaarheid van de twee buffers (soort PictureBoxen) omgewisseld. Dat omwisselen is in een fractie van een milliseconde gebeurd, dus je ziet er niks van.

Hey, I came here to be drugged, electrocuted and probed, not insulted.


  • MerijnB
  • Registratie: Oktober 2000
  • Laatst online: 00:01
alleen heeft TS daar niets aan in dit verband

A software developer is someone who looks both left and right when crossing a one-way street.


  • rashnu
  • Registratie: Augustus 2000
  • Laatst online: 30-06-2023
Waarom wil je een Preview Picture?
Ik zou voor een echt form gaan aan de zijkant van je editor.
Wanneer je een wijziging tegenkomt van een object top,left, bla update object.
Het enige probleem is wanneer ze de width size aanpassen van 100 naar iets anders, dan het kan gebeuren dat je NULL als waarde hebt voor je width dit vindt vb niet leuk.
Eventueel om dat probleem uit de weg te gaan kan je een refresh knop maken.

Remove objects from form.
Read XML file.
Make object on form.
Display error's
Back to editor.

Wanneer je het realtime wil moet je zeer goede fout afhandeling hebben.

  • Scorpion1984
  • Registratie: Juni 2002
  • Laatst online: 02-05 11:11
Rashnu schreef op woensdag 03 augustus 2005 @ 13:40:
Waarom wil je een Preview Picture?
Ik zou voor een echt form gaan aan de zijkant van je editor.
Wanneer je een wijziging tegenkomt van een object top,left, bla update object.
Het enige probleem is wanneer ze de width size aanpassen van 100 naar iets anders, dan het kan gebeuren dat je NULL als waarde hebt voor je width dit vindt vb niet leuk.
Eventueel om dat probleem uit de weg te gaan kan je een refresh knop maken.

Remove objects from form.
Read XML file.
Make object on form.
Display error's
Back to editor.

Wanneer je het realtime wil moet je zeer goede fout afhandeling hebben.
Het probleem met die aanpak is:
hoe hou ik die form langs mijn editform
Mijn edit form is namelijk een gemaximaliseerde mdi-child. (Of eventueel een normale mdi-child, maar meestal een gemaximaliseerde).

  • Scorpion1984
  • Registratie: Juni 2002
  • Laatst online: 02-05 11:11
Haploid schreef op woensdag 03 augustus 2005 @ 13:22:
[...]

Flitsen wordt vrijwel altijd voorkomen door gebruik te maken van twee buffers, waarvan er slechts een zichtbaar is. Op de onzichtbare wordt getekend. Als het tekenen afgerond is, dan worden de zichtbaarheid van de twee buffers (soort PictureBoxen) omgewisseld. Dat omwisselen is in een fractie van een milliseconde gebeurd, dus je ziet er niks van.
Het gaat met dit flitsen niet over het tekenen. Het probleem is dat ik heel eventjes het te capturen form moet showwen, wat het "flits" effect veroorzaakt.

  • rashnu
  • Registratie: Augustus 2000
  • Laatst online: 30-06-2023
Maar of je dan een form of plaatje laat zien zou niet uit maken.
Je editor kan altijd over form/plaatje heen vallen.
Het voordeel met een plaatje is wel dat je het makkelijk kan resizen.

Kan je een snapshot maken van het form wanneer het op
me.Top = 0 - me.height
me.left = 0 - me.width
staat? of gewoon ergens ver buiten het scherm.
zoja ben je ook je flikker effect kwijt.

  • Scorpion1984
  • Registratie: Juni 2002
  • Laatst online: 02-05 11:11
Rashnu schreef op woensdag 03 augustus 2005 @ 15:37:
Maar of je dan een form of plaatje laat zien zou niet uit maken.
Je editor kan altijd over form/plaatje heen vallen.
Het voordeel met een plaatje is wel dat je het makkelijk kan resizen.
Het voordeel van plaatje is dat je daarvoor een picturebox in je editor zet en dan dus geen last meer hebt van over elkaar heen vallen, en inderdaad resizen.
Rashnu schreef op woensdag 03 augustus 2005 @ 15:37:
Kan je een snapshot maken van het form wanneer het op
me.Top = 0 - me.height
me.left = 0 - me.width
staat? of gewoon ergens ver buiten het scherm.
zoja ben je ook je flikker effect kwijt.
mmh neej jammer genoeg niet, als het buiten het scherm staat krijg je een pikzwarte capture. En die eerste snap ik niet, wat heeft die voor nut?

  • rashnu
  • Registratie: Augustus 2000
  • Laatst online: 30-06-2023
Dat zorgt er voor dat de rechter onderkant van het form links boven in je scherm staat dus net buiten je scherm, je weet nooit welke resolutie iemand heeft en op die manier valt ie altijd buiten het scherm.
Ik ben bang dat je hem dan toch moet laten knipperen :'(
Voor zover als ik kan kijken.
Pagina: 1