een form laden

Alles over programmeren en development binnen de IT-wereld
Plaats reactie
Gebruikersavatar
foxxy girl
Pro Member
Pro Member
Berichten: 322
Lid geworden op: 05 jun 2004, 20:59
Locatie: geel

ik heb er weer een domme, en toch geraak ik er niet. :P

ik ben bezig met een programmatje te maken in vb 6.0 en nu moet ik als ik op een knop klik een andere form in het programma laden, hoe doe je dit?
groetjes foxxy
:banana: :kiss: :kiss: :kiss: :banana:
Gebruikersavatar
Snakehit
Elite Poster
Elite Poster
Berichten: 806
Lid geworden op: 05 mei 2004, 15:37
Locatie: Izegem, Belgie

je kan gebruik maken van een MDI-Toepassing
dus bij je MAIN-Form moet je MDI in de property's aanvinken. Dan zal hij alle andere forms dat je opent in het mainform inladen.

Mvg,
Snakehit
Gebruikersavatar
foxxy girl
Pro Member
Pro Member
Berichten: 322
Lid geworden op: 05 jun 2004, 20:59
Locatie: geel

en wat voor code moet ik gebruiken om de form dan te laden? want ik geraak nog steeds niet verder.
groetjes foxxy
:banana: :kiss: :kiss: :kiss: :banana:
verdickt
Premium Member
Premium Member
Berichten: 647
Lid geworden op: 12 maa 2004, 22:24

maar is dit niet iets in de trend van

private sub form1_Load ()
form2.visible = false ( of show )
form3.visible = false
end sub
Gebruikersavatar
samson007
Starter Plus
Starter Plus
Berichten: 40
Lid geworden op: 01 dec 2003, 14:26

Private Sub Image1_Click()
Hoofdmenu.Hide
Newform.Show
End Sub

meer is het niet .....

Het eerst verstopt het huidige formulier en het 2 de geeft het te openen formulier weer

groetjes
khsw
Elite Poster
Elite Poster
Berichten: 1158
Lid geworden op: 03 maa 2004, 09:04
Uitgedeelde bedankjes: 18 keer
Bedankt: 16 keer

En als je een "popup-venster" wil openen dan gebruik je:

Code: Selecteer alles

Private Sub Image1_Click() 
    Newform.Show 1
End Sub
Waar Newform de naam van de form is die je wil openen. De hoofdform blijft zichtbaar, maar de nieuwe komt daar modaal boven te staan (de hoofdform is wel zichtbaar, maar niet klikbaar).
Gebruikersavatar
SIR
Pro Member
Pro Member
Berichten: 321
Lid geworden op: 27 nov 2003, 14:47
Locatie: Borsbeek, A'pen

Als je het formpje niet meer nodig hebt voor de rest van het programma, dan kan je best .LOAD en .UNLOAD gebruikten.

Anders is de beste oplossing die van hierboven met .SHOW en .HIDE
Gebruikersavatar
foxxy girl
Pro Member
Pro Member
Berichten: 322
Lid geworden op: 05 jun 2004, 20:59
Locatie: geel

oke, merci allemaal

ik zal het strak wel testen, maar ik ben er vrij hard van overtuigd dat het wel zal werken. en anders horen jullie het wel
groetjes foxxy
:banana: :kiss: :kiss: :kiss: :banana:
Gebruikersavatar
Snakehit
Elite Poster
Elite Poster
Berichten: 806
Lid geworden op: 05 mei 2004, 15:37
Locatie: Izegem, Belgie

youre welcome :wink:
Gebruikersavatar
foxxy girl
Pro Member
Pro Member
Berichten: 322
Lid geworden op: 05 jun 2004, 20:59
Locatie: geel

ik heb een probleempje met het werken met tijd,

Code: Selecteer alles

Private Sub Form_Load()
dag.Text = dag
maand.Text = maand
jaar.Text = jaar
End Sub

Private Sub Timer1_Timer()
Var nieuw = newdate
Var dag = nieuw.getday()
Var maand = nieuw.getmonth()
Var jaar = nieuw.getyear()
End Sub
ik weet niet wat ik verkeerd doe, maar er veranderd niets in de tekstvakken, als ik nu deze code gebruik

Code: Selecteer alles

Private Sub Form_Load()
dag.Text = "dag"
maand.Text = "maand"
jaar.Text = "jaar"
End Sub

Private Sub Timer1_Timer()
Var nieuw = newdate
Var dag = nieuw.getday()
Var maand = nieuw.getmonth()
Var jaar = nieuw.getyear()
End Sub
dan staan die woordjes in de tekstvakken, dus totdaar is de code al zeker goed, maar ik weet niet hoe ik met die tijd functies moet werken.
groetjes foxxy
:banana: :kiss: :kiss: :kiss: :banana:
Lukse
Premium Member
Premium Member
Berichten: 662
Lid geworden op: 28 okt 2003, 20:51

foxxy girl schreef:

Code: Selecteer alles

Private Sub Timer1_Timer()
  Var nieuw = newdate
  Var dag = nieuw.getday()
  Var maand = nieuw.getmonth()
  Var jaar = nieuw.getyear()
End Sub
Ik weet niet waar je die code gevonden hebt, maar dat is geen vb code!
Probeer hetvolgende eens:

Code: Selecteer alles

Private Sub Timer1_Timer()
  dag.Text = Day(now)
  maand.Text = Month(now)
  jaar.Text = Year(now)
End Sub
Gebruikersavatar
foxxy girl
Pro Member
Pro Member
Berichten: 322
Lid geworden op: 05 jun 2004, 20:59
Locatie: geel

oepsie, ik zit met javascript te klooien, niet moeilijk dat het niet lukt?

:oops: :oops: :oops: :P
groetjes foxxy
:banana: :kiss: :kiss: :kiss: :banana:
Gebruikersavatar
foxxy girl
Pro Member
Pro Member
Berichten: 322
Lid geworden op: 05 jun 2004, 20:59
Locatie: geel

ik denk dat ik nu mijn programma zo heb gemaakt, dat de tekst van een tekstvak wordt opgeslagen als "dd-mm-jjjj nota". de datum die ingevuld word, word gekozen door de gebruiker. dus krijg ik verschillende opgeslagen teksten. bv: 21072004nota (niet gemakkelijk om uit te leggen)

nu wil ik het zo maken dat er in een tekstvak de opgeslagen tekst voor vandaag word geopend, dat moet dus 21072004nota zijn, maar ik weet niet hoe ik zoiets moet maken.

wie kan mij helpen, het is niet gemakkelijk om uit te leggen. dus ik zal er ook even het stuk code bij zetten

Code: Selecteer alles

Private Const strFileName = "MyApp2.ini"
Private Const strSection = "Values"

Private Sub opslaan_Click()
    WriteIni strSection, Combo1 + Combo2 + Combo3 + "nota", nota.Text, strFileName
End Sub

in de combo boxen word door de gebruiker de datum gekozen.
groetjes foxxy
:banana: :kiss: :kiss: :kiss: :banana:
Gebruikersavatar
trobbelke
Premium Member
Premium Member
Berichten: 509
Lid geworden op: 17 jul 2004, 00:46
Locatie: Zaventem
Uitgedeelde bedankjes: 2 keer
Bedankt: 1 keer

hmmm...

regel inlezen, vergelijken met gewenste waarde, if then else, ...
volgende regel inlezen, ..........
om hoeveel dagen gaat het, 365?

ge kunt ook met een database werken, als ge met een Access database werkt, kunt ge met VB 6.0 gemakkelijk waarden wegschrijven/ophalen enz...
Gebruikersavatar
foxxy girl
Pro Member
Pro Member
Berichten: 322
Lid geworden op: 05 jun 2004, 20:59
Locatie: geel

tja, ik heb in de combo boxen de keuze gegeven om een datum te selecteren tot 31-12-2025,
ik ga nog eens proberen om het iets duidelijker uit te leggen.

de gebruiker selecteerd in de combo boxen de gewenste datum, typt een tekst in het tekstvak, en klikt op een knop, om de nota op te slaan.
de nota word opgeslagen als de ingevoerde datum, met daarachter de tekst nota. bv: 01012004nota.

als het programma geladen word, moet het kijken welke datum het is.
kijken of er ergens een nota is opgeslagen op deze datum, en die eventueel weergeven.

maar ik kan mss gewoon beter de datum opslagen zonder de tekst nota er achter, dan word het mss iets gemakkelijker.
groetjes foxxy
:banana: :kiss: :kiss: :kiss: :banana:
ubremoved_539
Deel van't meubilair
Deel van't meubilair
Berichten: 29849
Lid geworden op: 28 okt 2003, 09:17
Uitgedeelde bedankjes: 434 keer
Bedankt: 1972 keer

Waarom maak je niet gewoon een bestandje aan met als naam de datum, en als inhoud je nota.

Als je dat je programma start moet je gewoon het bestandje inlezen met als naam de huidige datum.

Lijkt mij simpel... of mis ik iets ?
khsw
Elite Poster
Elite Poster
Berichten: 1158
Lid geworden op: 03 maa 2004, 09:04
Uitgedeelde bedankjes: 18 keer
Bedankt: 16 keer

Of in een databank (Access bijvoorbeeld), lijkt me nog iets galanter dan in een tekstfile.
Is ook eenvoudiger om dan meerdere nota's aan één dag toe te kennen, alle dagen te tonen die nota's hebben, te zoeken, te sorteren, ...
Gebruikersavatar
foxxy girl
Pro Member
Pro Member
Berichten: 322
Lid geworden op: 05 jun 2004, 20:59
Locatie: geel

khsw schreef:Of in een databank (Access bijvoorbeeld), lijkt me nog iets galanter dan in een tekstfile.
Is ook eenvoudiger om dan meerdere nota's aan één dag toe te kennen, alle dagen te tonen die nota's hebben, te zoeken, te sorteren, ...
ja, maar ik heb wel geen idee hoe ik dat moet doen. en ik kan al zeker niet met access werken. een beetje meer uitleg hierover mag wel.

merci
groetjes foxxy
:banana: :kiss: :kiss: :kiss: :banana:
ubremoved_539
Deel van't meubilair
Deel van't meubilair
Berichten: 29849
Lid geworden op: 28 okt 2003, 09:17
Uitgedeelde bedankjes: 434 keer
Bedankt: 1972 keer

foxxy girl schreef:ja, maar ik heb wel geen idee hoe ik dat moet doen. en ik kan al zeker niet met access werken. een beetje meer uitleg hierover mag wel.

merci
Begin daarom alvast met mijn tip... eerst stappen, dan pas lopen.
Gebruikersavatar
foxxy girl
Pro Member
Pro Member
Berichten: 322
Lid geworden op: 05 jun 2004, 20:59
Locatie: geel

r2504 schreef:Waarom maak je niet gewoon een bestandje aan met als naam de datum, en als inhoud je nota.

Als je dat je programma start moet je gewoon het bestandje inlezen met als naam de huidige datum.

Lijkt mij simpel... of mis ik iets ?
ik snap niet goed wat je hiermee bedoeld, moet ik voor elke datum een bestandje gaan maken, en het is ook de bedoeling dat je vanuit het programma zelf een nota kan toevoegen.

of kan je het zo maken dat het programma een tekstfile kan aanmaken met als naam een gekozen datum?
groetjes foxxy
:banana: :kiss: :kiss: :kiss: :banana:
ubremoved_539
Deel van't meubilair
Deel van't meubilair
Berichten: 29849
Lid geworden op: 28 okt 2003, 09:17
Uitgedeelde bedankjes: 434 keer
Bedankt: 1972 keer

foxxy girl schreef:of kan je het zo maken dat het programma een tekstfile kan aanmaken met als naam een gekozen datum?
Inderdaad :!:
Gebruikersavatar
foxxy girl
Pro Member
Pro Member
Berichten: 322
Lid geworden op: 05 jun 2004, 20:59
Locatie: geel

r2504 schreef:
foxxy girl schreef:of kan je het zo maken dat het programma een tekstfile kan aanmaken met als naam een gekozen datum?
Inderdaad :!:
en kan je ook effen uitleggen hoe ik dit juist doe :???: 8)
groetjes foxxy
:banana: :kiss: :kiss: :kiss: :banana:
khsw
Elite Poster
Elite Poster
Berichten: 1158
Lid geworden op: 03 maa 2004, 09:04
Uitgedeelde bedankjes: 18 keer
Bedankt: 16 keer

Ik heb even wat voorbeeldcode gemaakt...

Code: Selecteer alles

Private Sub WriteToFile(strFileName As String, strNote As String, Optional boolKillExistingFile As Boolean = False)
    Dim bytFreeFile As Byte
    Dim strFile As String
    bytFreeFile = FreeFile
    strFile = BuildFilePath(strFileName)
    If boolKillExistingFile Then
        If Dir(strFile) <> "" Then Kill strFile
    End If
    Open strFile For Append As #bytFreeFile
    Print #bytFreeFile, strNote
    Close #bytFreeFile
End Sub

Private Function ReadFromFile(strFileName As String) As String
    Dim bytFreeFile As Byte
    Dim strOutPut As String
    Dim strRegel As String
    bytFreeFile = FreeFile
    Open BuildFilePath(strFileName) For Input As #bytFreeFile
    Do While Not EOF(bytFreeFile)
        Input #bytFreeFile, strRegel
        strOutPut = strOutPut & strRegel & vbCrLf
    Loop
    ReadFromFile = strOutPut
End Function


Private Function BuildFilePath(strFileName As String) As String
    Dim sFolder As String
    sFolder = App.Path
    If Right(sFolder, 1) <> "\" Then sFolder = sFolder & "\"
    BuildFilePath = sFolder & strFileName
End Function
Naar een bestand wegschrijven doe je op deze manier:

Code: Selecteer alles

WriteToFile "01012004", "nota"
Het inlezen:

Code: Selecteer alles

ReadFromFile("01012004")
Omdat ik niet wist wat er met bestaande nota's moest gebeuren (bijvoorbeeld een tweede nota op 01012004), wordt deze nota gewoon toegevoegd achteraan de vorige.
Wens je de reeds bestaande te verwijderen, dan roep je het wegschrijven op als volgt:

Code: Selecteer alles

WriteToFile "01012004", "nota", True
Op deze manier zal het bestaande bestand worden verwijderd (de vorige nota ben je dan kwijt).
Gebruikersavatar
foxxy girl
Pro Member
Pro Member
Berichten: 322
Lid geworden op: 05 jun 2004, 20:59
Locatie: geel

hey, ben terug van egypte, en ik heb nog eens geprobeerd wat jullie me aanraden, maar ik geraak er echt niet uit.

wil iemand mss een voorbeeldje maken en doorsturen?

als iemand dit wil doen plaats er dan aub zoveel mogelijk uitleg bij want, het is echt niet gemakkelijk vind ik.

met die laatst gegeven code weet ik echt geen raad.
groetjes foxxy
:banana: :kiss: :kiss: :kiss: :banana:
Gebruikersavatar
trobbelke
Premium Member
Premium Member
Berichten: 509
Lid geworden op: 17 jul 2004, 00:46
Locatie: Zaventem
Uitgedeelde bedankjes: 2 keer
Bedankt: 1 keer

waarom maken ze het altijd zo moeilijk hé?

ge moet beginnen met iets simpel dat werkt, en later gaan uitbreiden.

experimenteer eens met Day(Date), Month(Date) en Year(Date), zet dat in een variabele (aaneenplakken met ampersands) en hopla, ge zijt vertrokken, ge kunt dan die variabele gebruiken als bestandsnaam of mapnaam of formnaam of whatever

en zet gewoon in uw code wat ge moet hebben, de rest moet ge u niet mee bezighouden, en doe het met zo eenvoudig mogelijke code

Hebt ge de MSDN cd's al geïnstalleerd ? zeker doen !
Gebruikersavatar
foxxy girl
Pro Member
Pro Member
Berichten: 322
Lid geworden op: 05 jun 2004, 20:59
Locatie: geel

dat heb ik gedaan, ik heb eerst het programmatje gemaakt, en nu wil ik er eigenlijk een soort van kalender aan toevoegen.
deze probeer ik zoveel mogelijk in de ander form te maken om het voor mezelf overzichtelijk te houden.

maar ik weet echt niet hoe ik met die tijd en datum functies moet werken.
en met het opslaan en openen van een bestand afhankelijk van de datum word het al helemaal een soep.
groetjes foxxy
:banana: :kiss: :kiss: :kiss: :banana:
Gebruikersavatar
trobbelke
Premium Member
Premium Member
Berichten: 509
Lid geworden op: 17 jul 2004, 00:46
Locatie: Zaventem
Uitgedeelde bedankjes: 2 keer
Bedankt: 1 keer

het opslaan of openen van eeen bestandsnaam met de datum erin hoeft niet moeilijk te zijn, ge moet het in 2 stukken kappen:

er is het gedeelte waarin dat ge de inhoud van uw variabele bepaalt,

en er zijn de bewerkingen op het bestand met als naam wat in de variabele staat.

Probeer dit echt als 2 afzonderlijke dingen te zien, volledig gescheiden van elkaar.
khsw
Elite Poster
Elite Poster
Berichten: 1158
Lid geworden op: 03 maa 2004, 09:04
Uitgedeelde bedankjes: 18 keer
Bedankt: 16 keer

Hoi Foxxy Girl,

Ik heb een compleet testproject voor jou uitgewerkt en ongeveer alle regels van commentaar voorzien (de code in de form_load heb je niet nodig in jouw project). De methode met de comboboxen heb ik aangehouden omdat ik in een vorige post gezien heb dat je deze blijkbaar reeds op je bestaande form hebt staan.

- Maak een nieuw project aan in Visual Studio 6 (Standard Exe).
- Voeg volgende controls toe aan form1 (de namen laat je maar standaard zoals ze zijn):
-- 3 comboboxen
-- 1 textbox (zet wel de Multiline property op true)
-- 2 commandbuttons

- Verwijder nu alle code uit form1
- Voeg onderstaande code toe aan form1:

Code: Selecteer alles

Option Explicit

'Functie om een string weg te schrijven naar een bestand
'strFileName : bestandsnaam
'strNote : tekst die naar het bestand moet weggeschreven worden
'boolKillExistingFile : True indien een bestaand bestand met dezelfde naam moet worden overschreven, False indien de tekst moet toegevoegd worden aan een bestaand bestand
Private Sub WriteToFile(strFileName As String, strNote As String, Optional boolKillExistingFile As Boolean = False)
    
    Dim intFreeFile As Integer
    Dim strFile As String
    
    intFreeFile = FreeFile 'Ophalen van het volgende vrije bestandsnummer
    strFile = BuildFilePath(strFileName) 'Ophalen van de volledige bestandsnaam met folder
    If boolKillExistingFile Then 'Indien een bestaand bestand moet overschreven worden
        If Dir(strFile) <> "" Then Kill strFile 'Bestaand bestand verwijderen
    End If
    
    Open strFile For Append As #intFreeFile 'Bestand openen om toe te voegen, indien onbestaande wordt het aangemaakt
    Print #intFreeFile, strNote 'Wegschrijven van de tekst naar het bestand
    Close #intFreeFile 'Sluiten van het bestand
End Sub

'Functie om een bestand uit te lezen
'strFileName: bestandsnaam
Private Function ReadFromFile(strFileName As String) As String

    Dim intFreeFile As Integer
    Dim strOutPut As String
    Dim strRegel As String
    Dim strFile As String
    
    strFile = BuildFilePath(strFileName)
    If Dir(strFile) = "" Then 'Het bestand bestaat niet
        ReadFromFile = ""
    Else
        intFreeFile = FreeFile 'Ophalen van het volgende vrije bestandsnummer
        Open strFile For Input As #intFreeFile 'Bestand openen om uit te lezen
        Do While Not EOF(intFreeFile) 'Bestand doorlopen zolang we niet aan het einde van de tekst zijn
            Input #intFreeFile, strRegel 'Inlezen van een regel uit het bestand
            strOutPut = strOutPut & strRegel & vbCrLf 'Ingelezen regel toevoegen aan de outputstring (vbCrLf = Enter)
        Loop
        Close #intFreeFile 'Sluiten van het bestand
        ReadFromFile = Left(strOutPut, Len(strOutPut) - 2) 'Alle ingelezen regels teruggeven zonder de laatste Enter
    End If
End Function

'Opbouwen van de locatie van het bestand
'strFileName: Naam van het bestand zonder folders
Private Function BuildFilePath(strFileName As String) As String
    Dim sFolder As String
    
    sFolder = App.Path 'De folder waar de applicatie in draait
    If Right(sFolder, 1) <> "\" Then sFolder = sFolder & "\" 'Indien de folder niet eindigt op \ voegen we een \ toe
    BuildFilePath = sFolder & strFileName 'Teruggeven van de volledige bestandslocatie
End Function


Private Sub Command1_Click()
    If IsDate(Combo3 & "/" & Combo2 & "/" & Combo1) Then 'Controleren of er een geldige datum is ingegeven
        WriteToFile Combo1 & Combo2 & Combo3 & ".nota", Text1.Text 'Wegschrijven van de nota naar een bestand
    Else
        MsgBox "Ongeldige datum" 'Waarschuwing geven dat de datum niet geldig is
    End If
End Sub

Private Sub Command2_Click()
    
    Dim strInhoud As String
    
    If IsDate(Combo3 & "/" & Combo2 & "/" & Combo1) Then 'Controleren of er een geldige datum is ingegeven
        strInhoud = ReadFromFile(Combo1 & Combo2 & Combo3 & ".nota") 'Inhoud van het bestand inlezen in een string
        If strInhoud = "" Then 'Het bestand werd niet gevonden
            MsgBox "Geen nota voor deze dag!" 'Melding geven dat er geen nota werd gevonden
        Else
            Text1.Text = strInhoud 'Inhoud van het bestand tonen in de textbox
        End If
    Else
        MsgBox "Ongeldige datum" 'Waarschuwing geven dat de datum niet geldig is
    End If
End Sub

Private Sub Form_Load()
    Dim i As Integer
    
    'Dynamisch opvullen van de dagen
    For i = 1 To 31
        Combo1.AddItem Format(i, "00")
    Next
    Combo1.ListIndex = 0
    'Dynamisch opvullen van de maanden
    For i = 1 To 31
        Combo2.AddItem Format(i, "00")
    Next
    Combo2.ListIndex = 0
    'Dynamisch opvullen van de jaren
    For i = 2004 To 2100
        Combo3.AddItem i
    Next
    Combo3.ListIndex = 0
    
    'Zetten van de teksten van de knoppen
    Command1.Caption = "Nota wegschrijven"
    Command2.Caption = "Nota inlezen"
    
    
End Sub
Vanaf nu heb je een werkend projectje waar je nota's kunt wegschrijven en ophalen aan de hand van de datum in de drie comboboxen.

Succes!
Gebruikersavatar
foxxy girl
Pro Member
Pro Member
Berichten: 322
Lid geworden op: 05 jun 2004, 20:59
Locatie: geel

hey bedankt :kiss: :kiss: :kiss:

ik heb al wel veranderd dat ik de namen van de maanden krijg in plaats van 1.2.3.4.5.6.7.8.9.10.11 of 12 da vind ik iets gemakkelijker.

nu zou ik het wel graag zo maken dat als het progje geladen word, ik de melding krijg of er een nota is voor vandaag of niet, ik heb het zelf al geprobeert, maar het is me niet gelukt.

toch al heeeeeeeeeeel hard bedankt.
groetjes foxxy
:banana: :kiss: :kiss: :kiss: :banana:
Plaats reactie

Terug naar “Development”