|
| |
Home Up
2 vragen; active form en install shield
Hallo,
ik heb twee vragen. De eerste een Newbie vraag(vrees ik) en de 2e wat lastiger:
1. Ik open een nieuw form vanaf mijn main form. ik disable main form, en zet het nieuwe form op visible. nu ga ik terug
met de volgende code naar form 1:
frmMain.enabled:= true;
frm2.visible:=false;
het probleem is dat mijn programma (frmMain) naar de achtergrond wordt verplaatst. Hoe los ik dit op?
De 2e vraag is lastiger. Ik heb een programma geschreven dat voor zijn data gebruik maakt van binaire files.
Deze maak ik tijdens installatie (install gemaakt met Install Shield) niet aan. Het programma maakt deze wel aan als
hij ze niet kan vinden. Echter, als ik het programma voor de 1e keer opstart na install kan hij de binaire bestanden
niet creeeren. Dit gaat 1 keer fout, daarna nooit meer. Heeft iemand ideeen waar dit aan kan liggen?
--
Hoi, wellicht helpt onderstaande :
Om het mainform weer 'voor' te krijgen : mainform.show;
Het andere probleem vergt wellicht iets meer. Ongetwijfeld geeft het programma een foutcode af. Indien je die hebt
afgevangen middels een try..finally / try..except blok, dan dit eens uitzetten en kijken waarover het programma klaagt.
Wat gebeurt er als je de files weghaalt, en het programma vanuit de Delphi IDE start ????
--
voor het probleem met het active form probeer het volgende
nieuwe applicatie schermen.
form2 UIT de auto create halen.
dus in de DPR de regel appication.cretaeform(Tform2,form2);
in form2 de var declaratie weghalen
dus
var
Form2: TForm2;
moet weg.
plaats op form1 een button en plaats de volgende code in de onclik event.
procedure TForm1.Button1Click(Sender: TObject);
begin
hide;
try
with Tform2.create(nil) do
try
// vul eventuele velden/parameters voor scherm2
showmodal;
// lees eventuele waarde uit scherm2
finally
release;
end ;
finally
Show;
end;
end;
deze code zal minder resource's gebruiken en voor jouw het gewenste resultaat opleveren.
alleen LET OP doordat je de var variabele op form2 weg hebt gehaald kun je die niet van uit een andere procedure
aanroepen, dat is ook de bedoeling omdat het scherm alleen maar bestaat als het getoond wordt.
waardes lezen en of schrijven kun je alleen tussen de binnenste try/finally
Roelof
|