Ik ben bezig voor een opdracht in delphi voor school. Nu hebben wij alleen een docent die niet echt mee denkt en loop ik dus tegen een probleem aan. Ik heb een programma gemaakt dat met een menu werkt. Na het klikken van het menu wordt een frame zichtbaar. na het drukken op aan andere menu optie het andere. Nu is het probleem dat de gegeven op de frames blijven staan. Het liefst wil ik de frames terug hebben in begin status. kan iemand mij vertellen hoe dit kan.
Wat bedoel je met frames, het kan aan mij liggen, maar ik zie die gevallen niet zomaar in mijn Delphi 
En kun je niet de visibility bijwerken?
En kun je niet de visibility bijwerken?
|>
Ik kan wel met visibility werken, maar dan heb je het nadeel dat je de begin status niet terug is. Ik wil dus dat het frame(dit bestaat dus wel, file - new - frame) weer staat zoals het was de eerste keer dat het werdt aangeroepen. Dus met de instellingen hierop van visible en focus..
Verwijderd
er bestaat toch wel zoiets als een onVisible event ofzo, kun je hem zodra ie weer visible wordt zelf resetten. Je kunt het toch ook gewoon zelf doen?
dus voordat je visible aanroept even alle velden weer resseten naar hoe je ze wilt hebben
dus voordat je visible aanroept even alle velden weer resseten naar hoe je ze wilt hebben
Dat is dus het punt, ik wil niet 1 frame maar een stuk of 20 "resetten" maar ik weet niet hoe ik dit dus voor elkaar moet krijgen. Het lijkt met een beetje veel werk om voor iedere frame een procedure te schrijven die het frame weer terug zet ik oorsprokelijke staat
Heb je niet iets van per form exit? Ik weet nog van VB dat je die had
Je kan het form gewoon 'uitzetten'
|>
Nee, dat soort events bestaan er niet bij frames. Ik moet een manier weten hoe je het frame dus opnieuw opbouwd. hij wordt toch door middel van een menu aangeroepen.
Kun je niet gewoon Form1.Close doen? Het zijn overigens Forms geen Frames
|>
De enige manier is om je frames at runtime aan te maken en vrij te geven wanneer ze niet meer nodig zijn. Op het moment dat je dan een frame nodig hebt maak je deze opnieuw aan (.create), en dan zal dat frame zich weer in een initiele toestand bevinden.
Maaruh, je gebruikt frames om een "menu" te simuleren op 1 form? Kan je niet beter een tabblad gebruiken waarvan je de tabs op elk tabblad uitschakelt? Dan kan je van form wisselen m.b.v. de index property i.p.v. per frame steeds een .hide en een .show (of visible:=false/true) aan te roepen.
Dat tabblad gebruiken lost overigen niet je bestaande probleem op
Maaruh, je gebruikt frames om een "menu" te simuleren op 1 form? Kan je niet beter een tabblad gebruiken waarvan je de tabs op elk tabblad uitschakelt? Dan kan je van form wisselen m.b.v. de index property i.p.v. per frame steeds een .hide en een .show (of visible:=false/true) aan te roepen.
Dat tabblad gebruiken lost overigen niet je bestaande probleem op
[ Voor 44% gewijzigd door Creepy op 02-06-2004 16:10 ]
"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
Er bestaan wel degelijk frames in Delphi. Deze kan je weer OP een Form zettenSimon schreef op 02 juni 2004 @ 16:07:
Kun je niet gewoon Form1.Close doen? Het zijn overigens Forms geen Frames
Hij heeft dus nu 1 form met meerdere frames met steesd maar 1 frame zichtbaar. (Aka hij simuleert een tabblad zonder tabs
[ Voor 5% gewijzigd door Creepy op 02-06-2004 16:12 ]
"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
code:
1
2
3
4
5
6
| var myFrame : TMyFrame; begin myFrame := TMyFrame.Create (self); myFrame.Show (); end; |
Zoiets bedoeld Creepy. Je kan dit ook gebruiken om forms te maken / tonen. Je moet er gewoon voor zorgen dat de Parent goed ingesteld staat, zodanig dat je frame op de juiste control getoond wordt
https://fgheysels.github.io/
Heren, kunnen we het even intelligent houden? Vanaf Delphi 5 zitten er ook frames in Delphi ja naast forms, het schiet dus niet echt op om te blijven melden dat ze er niet in zitten
Creepy schreef op 02 juni 2004 @ 16:12:
[...]
Er bestaan wel degelijk frames in Delphi. Deze kan je weer OP een Form zetten
Hij heeft dus nu 1 form met meerdere frames met steesd maar 1 frame zichtbaar. (Aka hij simuleert een tabblad zonder tabs).
offtopic:
oh dat gedoe met een parent, waarin de frames zich voordoen als een child?
oh dat gedoe met een parent, waarin de frames zich voordoen als een child?
|>
Nee ik wil werken met een menu. Ik vindt dat een menu meer duidelijkheid geeft in het programma. Het menu is ook het probleem niet. Het probleem zit echt in het voor de tweede keer aanroepen van een frame. Dat hierin dan de gegevens nog staan. van de eerste keer aanroepen.
Frames bestaan wel degelijk vanaf Delphi 5.Simon schreef op 02 juni 2004 @ 16:07:
Kun je niet gewoon Form1.Close doen? Het zijn overigens Forms geen Frames
Nee, een echte class TFrame. Overgens is het effect ongeveer hetzelfde als wat jij bedoelt.Simon schreef op 02 juni 2004 @ 16:13:
[...]
offtopic:
oh dat gedoe met een parent, waarin de frames zich voordoen als een child?
[ Voor 41% gewijzigd door LordLarry op 02-06-2004 16:14 ]
We adore chaos because we like to restore order - M.C. Escher
Je moet dan het oude frame weggooien en een nieuwe creeren, zoals Creepy al zei. Of je zorgt dat je een functie maakt die het frame weer in de beginstaat terug brengt.Verwijderd schreef op 02 juni 2004 @ 16:13:
Nee ik wil werken met een menu. Ik vindt dat een menu meer duidelijkheid geeft in het programma. Het menu is ook het probleem niet. Het probleem zit echt in het voor de tweede keer aanroepen van een frame. Dat hierin dan de gegevens nog staan. van de eerste keer aanroepen.
We adore chaos because we like to restore order - M.C. Escher
Verwijderd
Betreft de begin status allemaal lege velden of zijn ze gevuld met een aantal default waarden? Zijn het alleen edit boxen of ook checkboxen en radiobuttons?Verwijderd schreef op 02 juni 2004 @ 15:45:
... Het liefst wil ik de frames terug hebben in begin status. ...
Je zou een een stukje code kunnen maken die elk control op het frame afloopt en de waarde (.text of .checked etc...) opslaat in een ini file. Deze inifile kun je later weer uitlezen om het frame te resetten.
Iets wat wellicht in de buurt komt maar alleen op forms werkt is dit:
http://www.torry.net/pages.php?id=96. Kijk bv bij "IniVal". Best aardig stukje code, wel een beetje technisch
Verder: werkt de oplossing van Creepy niet? Dus opnieuw creeren? Krijg je dan inderdaad het Frame zoals je hem in de Designer hebt gemaakt???
offtopic:
Frames zijn best aardig IMHO, maar ik moet zeggen dat ik vaak iets op een Form zit te wijzigen. Blijkt dit later een Frame te zijn... Moet je alles opnieuw doen, op het originele frame
Frames zijn best aardig IMHO, maar ik moet zeggen dat ik vaak iets op een Form zit te wijzigen. Blijkt dit later een Frame te zijn... Moet je alles opnieuw doen, op het originele frame
[ Voor 3% gewijzigd door Verwijderd op 02-06-2004 21:19 ]
Pagina: 1