Een melding op het scherm die zonder klikken verdwijnt

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)

This entry was posted in Gambas2. Bookmark the permalink.