Toon posts:

[Delphi] Frame resetten naar originele status *

Pagina: 1
Acties:
  • 126 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
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.

  • simon
  • Registratie: Maart 2002
  • Laatst online: 23-05 18:11
Wat bedoel je met frames, het kan aan mij liggen, maar ik zie die gevallen niet zomaar in mijn Delphi :P

En kun je niet de visibility bijwerken?

|>


  • Osiris
  • Registratie: Januari 2000
  • Niet online
Ik denk dat hij Forms bedoeld.

Verwijderd

Topicstarter
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

Verwijderd

Topicstarter
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

  • simon
  • Registratie: Maart 2002
  • Laatst online: 23-05 18:11
Heb je niet iets van per form exit? Ik weet nog van VB dat je die had :) Je kan het form gewoon 'uitzetten' :)

|>


Verwijderd

Topicstarter
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.

  • simon
  • Registratie: Maart 2002
  • Laatst online: 23-05 18:11
Kun je niet gewoon Form1.Close doen? Het zijn overigens Forms geen Frames :)

|>


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

Creepy

Tactical Espionage Splatterer

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 ;)

[ 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


Verwijderd

Topicstarter
kan je een voorbeeld geven in de vorm van een stuk code. Ik denk wel dat je op de goede weg zit

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

Creepy

Tactical Espionage Splatterer

Simon schreef op 02 juni 2004 @ 16:07:
Kun je niet gewoon Form1.Close doen? Het zijn overigens Forms geen Frames :)
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 ;) ).

[ 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


  • whoami
  • Registratie: December 2000
  • Laatst online: 16:53
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/


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

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 :/

Professionele website nodig?


  • simon
  • Registratie: Maart 2002
  • Laatst online: 23-05 18:11
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? :P

|>


Verwijderd

Topicstarter
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.

  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

Simon schreef op 02 juni 2004 @ 16:07:
Kun je niet gewoon Form1.Close doen? Het zijn overigens Forms geen Frames :)
Frames bestaan wel degelijk vanaf Delphi 5.
Simon schreef op 02 juni 2004 @ 16:13:
[...]

offtopic:
oh dat gedoe met een parent, waarin de frames zich voordoen als een child? :P
Nee, een echte class TFrame. Overgens is het effect ongeveer hetzelfde als wat jij bedoelt.

[ Voor 41% gewijzigd door LordLarry op 02-06-2004 16:14 ]

We adore chaos because we like to restore order - M.C. Escher


  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

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.
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.

We adore chaos because we like to restore order - M.C. Escher


Verwijderd

Verwijderd schreef op 02 juni 2004 @ 15:45:
... Het liefst wil ik de frames terug hebben in begin status. ...
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?

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 8)7

[ Voor 3% gewijzigd door Verwijderd op 02-06-2004 21:19 ]

Pagina: 1