Avatar billede thomas55 Nybegynder
27. maj 2000 - 23:06 Der er 2 kommentarer og
1 løsning

Fjern Form ved Klik

Hej!

Jeg ville høre om nogle af jer ka hjælpe mig .. Mit spøgsmål er : Jeg har en form som jeg gerne vil have skal vises når man starter programmet.. Det har jeg så også fundet ud af hvordan man gør, meeen! Det er en advarsel om nogle ting, og jeg har lavet sådan et "hak" man ka trykke i hvis man ikke vil se den form næste gang man går ind i programmet .. Altså at den går direkte videre til en anden form. Bruger sætter hak, også vises formen ikke næste gang han går ind i programmet. Håber i vil hjælpe! Tak!
Avatar billede denniss Nybegynder
28. maj 2000 - 01:27 #1
går ud fra at det er "dont show this again"..

i det tilfælde vil jeg registere det i windows registry eller i en fil....
så der hvor din form bliver kaldt fra.. checker om hvilken form der skal køres....(hak eller ikke hak, i en fil eller i win registry)
Avatar billede thomas55 Nybegynder
28. maj 2000 - 13:42 #2
Tjaa, det forstod jeg ikke særlig meget af ... Og ja det er Don't show this again .. JEg er temlig nybegynder i Delpi, så hvis du vil hjælpe mig bedre så ville det være kanon :)
Avatar billede sjensen Nybegynder
28. maj 2000 - 14:27 #3
Her er et eksempel vedr. brugen af registry. Du skal i dit program starte med at "læse" en registry indstilling (en boolean) og hvis den findes, og har en værdi (true) skal du ikke vise formen. Hvis den ikke findes eller er false viser du formen.

Når brugeren sætter et hak i boksen, skriver du registry indstillingen og når han fjerner det (hvis han kan fjerne det) skriver du igen indstillingen, men denne gang med false (eller fjerner indstillingen).

NB! Du skal bruge Min. D4 eller D5 til dette og du skal have "registry" nævnt som en unit i din "uses" i starten af programmet:

i formshow:

procedure tform1.formshow(...
var vis_form : boolean;
    reg      : Tregistry;
    sec      : string;
begin
  Reg            := TRegistry.Create;
  Reg.RootKey    := HKEY_LOCAL_MACHINE;
  sec            := '\software\mitprog\';
  vis_form        := false;
  try
    if reg.openkey(sec,false) then
    begin
      if reg.valueexists('Visform') then vis_form := reg.readbool('VisForm'); // vis_form bliver true hvis den findes
      reg.closekey;
    end;
  finally
    reg.free;
  end;
  if not vis_form then Vis_formen;  // vis kun formen hvis vis_form er false
end;

og i den form hvor brugeren checker boksen kan du lave en OnClick event med:

Procedure Tform1.onclick(...
var vis_form : boolean;
    reg      : Tregistry;
    sec      : string;
begin
  vis_form := checkbox1.checked;  // true eller false afhængigt om der er hak i boksen eller ej

  Reg            := TRegistry.Create;
  Reg.RootKey    := HKEY_LOCAL_MACHINE;
  sec            := '\software\mitprog\';
  try
    if reg.openkey(sec,true) then
    begin
      if vis_form then  // værdien er sat til true så vi skriver den
      begin
        reg.writebool('VisForm',vis_form);
      end else
      begin // sat til false så vi sletter den igen
        if reg.valueexists('Visform') then reg.deletebool('VisForm');
      end;
      reg.closekey;
    end;
  finally
    reg.free;
  end;
end;
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester