Toon posts:

[BCB3] Formulier openen m.b.v. string

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik zit met met het volgende probleem,

Allereerst heb ik een database met daarin een aantal records met verscheidene velden zoals een naam en een veld met een formuliernaam. Nou ga ik later binnen mijn programma in die database zoeken op b.v. de naam. Wanneer hij dit veld heeft gevonden dan moet hij het bijbehorend formulier openen.

Het probleem is dus eigenlijk dat ik een formulier moet openen aan de hand van de ingelezen waarde van de database. Dit is in principe een string.

Ik heb het volgende in mijn programma staan:

TForm *newForm = 0;
newForm = DataModule9->Namen->Fields[5]->AsString;
newForm->Top = 0;
newForm->Left = 100;
newForm->Show();

Wanneer ik dan ook probeer te runnen krijg ik de melding:
"Cannot convert "System::AnsiString" to "Forms::TForms *"

Ik heb de help al volledig doorzocht en van alles geprobeerd.
Ook op het internet kon ik niks vinden.

Ik hoop dat iemand mij kan helpen!

  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

De FindClass functie geeft je aan de hand van een classe naam ("TMyForm") een classe definitie terug, waar je dus met new een nieuwe instantie kan aanmaken. Als je al een geinstantieerde form hebt zou je met Screen->FindComponent aan de hand van de form naam ("frmMyForm") m kunnen vinden. Of zelf Screen->Forms doorlopen en kijken naar de naam, caption or whatever.

PS: Ik spreek vanuit mijn Delphi ervaring dus ik geef geen garanties, maar in 99% van de gevallen komt dit overeen met BCB.

[ Voor 8% gewijzigd door LordLarry op 13-02-2003 12:33 ]

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


Verwijderd

Topicstarter
Bedank voor zover. Ik heb het wel voor elkaar om met de Screen functie te controleren of het formulier al actief is. Het is mij nog niet gelukt om een nieuw formulier op te starten die er nog niet is.
Ik heb van alles met FindClass geprobeerd maar het is mij nog niet gelukt omdat hij met de melding komt dat hij de classe niet kon vinden.

Ik hoop dat iemand mij verder kan helpen,

alvast bedankt

Verwijderd

Je moet eerst met registerclass de class bekend maken.
succes

Verwijderd

Topicstarter
Bedankt het werk perfect