In het hoofdscherm van een programma, moet na het drukken van een knop een venster getoond worden met gegegevens uit een databank.
FMain is het hoofdprogramma,
btGetData de knop om de gegevens te vragen.
FDataRecords is het nadien te tonen venster.
Het ophalen van die gegevens gebeurt in FDatarecords en duurt even, waardoor het venster niet onmiddellijk verschijnt. De gebruiker zou in de verleiding kunnen komen nog eens op de ophaal-knop te drukken omdat er “niets gebeurt”.
Ik wil een venster tonen met een melding; bv:
Message.Info("Gegevens worden gelezen en geïnterpreteerd.\n Druk om verder te gaan en wacht tot venster verschijnt ....")
Het nadeel is dat de gebruiker dat venster moet wegklikken. Ik wil een venster dat vanzelf verdwijnt, bv door het maken van een nieuw venster met een nieuwgemaakte tekst:
PUBLIC SUB btGetData_Click() ' DIM hMessage AS Window DIM hText AS TextLabel ' de knop even buiten gebruik stellen btGetData.Enabled = FALSE ' berichtvenster ergens in het midden van FMain (parent) hMessage = NEW Window(ME) WITH hMessage .Width = 600 .Height = 100 .X = (.Parent.Width - .Width) / 2 .Y = (.Parent.Height - .Height) / 2 .Visible = TRUE .Border = .Fixed .Picture = Picture.Load("Patroon.png") END WITH ' tekst die in het venster komt, met afmetingen in verhouding tot berichtvenster hText = NEW TextLabel(hMessage) WITH hText .Alignment = Align.Left .Width = hMessage.Width - 20 - 20 .y = (hMessage.Height - 20) / 2 .x = 20 .Font.Size = 13 .Alignment = Align.Center .Text = ("Retrieving the information from the database - wait ...") END WITH hMessage.Show() ' bericht even tijd geven om op te komen alvorens aan FDatarecords te beginnen WAIT 0.001 FDataRecords.Show() ' bericht sluiten en knop terug vrijgeven hMessage.Close() btGetData.Enabled = TRUE END
Je kan ook nadien pas het venster een plaats geven:
hMessage.Move(300, 300)