Pagina 1 van 1
een form laden
Geplaatst: 19 jul 2004, 00:14
door foxxy girl
ik heb er weer een domme, en toch geraak ik er niet.
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?
Geplaatst: 19 jul 2004, 00:23
door Snakehit
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
Geplaatst: 19 jul 2004, 00:43
door foxxy girl
en wat voor code moet ik gebruiken om de form dan te laden? want ik geraak nog steeds niet verder.
het is erg lang geleden dat ik nog in vb6 gewerkt heb
Geplaatst: 19 jul 2004, 01:44
door verdickt
maar is dit niet iets in de trend van
private sub form1_Load ()
form2.visible = false ( of show )
form3.visible = false
end sub
Geplaatst: 19 jul 2004, 07:17
door samson007
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
Geplaatst: 19 jul 2004, 09:26
door khsw
En als je een "popup-venster" wil openen dan gebruik je:
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).
Geplaatst: 19 jul 2004, 09:28
door SIR
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
Geplaatst: 19 jul 2004, 11:10
door foxxy girl
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
Geplaatst: 20 jul 2004, 00:19
door Snakehit
youre welcome

Geplaatst: 21 jul 2004, 12:31
door foxxy girl
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.
Geplaatst: 21 jul 2004, 13:54
door Lukse
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
Geplaatst: 21 jul 2004, 14:58
door foxxy girl
Geplaatst: 21 jul 2004, 15:06
door foxxy girl
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.
Geplaatst: 21 jul 2004, 23:20
door trobbelke
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...
Geplaatst: 22 jul 2004, 15:44
door foxxy girl
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.
Geplaatst: 22 jul 2004, 16:37
door ubremoved_539
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 ?
Geplaatst: 22 jul 2004, 16:40
door khsw
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, ...
Geplaatst: 22 jul 2004, 16:46
door foxxy girl
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
Geplaatst: 22 jul 2004, 16:53
door ubremoved_539
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.
Geplaatst: 22 jul 2004, 17:02
door foxxy girl
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?
Geplaatst: 22 jul 2004, 18:02
door ubremoved_539
foxxy girl schreef:of kan je het zo maken dat het programma een tekstfile kan aanmaken met als naam een gekozen datum?
Inderdaad

Geplaatst: 23 jul 2004, 00:21
door foxxy girl
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

Geplaatst: 23 jul 2004, 08:17
door khsw
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:
Het inlezen:
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:
Op deze manier zal het bestaande bestand worden verwijderd (de vorige nota ben je dan kwijt).
Geplaatst: 01 aug 2004, 18:46
door foxxy girl
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.
Geplaatst: 01 aug 2004, 21:32
door trobbelke
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 !
Geplaatst: 01 aug 2004, 23:54
door foxxy girl
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.
Geplaatst: 03 aug 2004, 17:03
door trobbelke
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.
Geplaatst: 03 aug 2004, 20:04
door khsw
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!
Geplaatst: 03 aug 2004, 20:30
door foxxy girl
hey bedankt
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.