du kan ha\' global string-variable, denne fylder du i event formkeypress , og tjekker hvergang om indholdet passer med dit \"kodeord\", hvis længden er større eller lig med længden af dit kodeord, men ikke passer med det, kan du tømme den igen
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if shift = [ssAlt] then begin if key in [65..90,97..122] then begin ind_kode := ind_kode + chr(key); if uppercase(ind_kode) = uppercase(kodeord) then begin panel1.visible := true; end; if length(ind_kode) >= length(kodeord) then begin ind_kode := \'\'; end; end; end; end;
Hatecaps> Ømmmm jeg er lidt nybegynder i Delphi... Hvordan gør man præsist med den kode? Måske evt. sende et project der virker med et panel??? :-) hvis du vil er min e-mail adresse pro_doctor@hotmail.com
const kodeord = \'secrets\'; type TForm1 = class(TForm) Panel1: TPanel; private { Private declarations } public { Public declarations } end;
var Form1: TForm1; ind_kode : string;
implementation
{$R *.DFM}
end.
Som det sidste klikker du en gang på formen, dernæst på \"events\" over i object-inspectoren i højre side. Her dobbeltklikker du i onCreate og onKeyDown. Det sætter de to \"events\" ind i din kode. Tilsidst kopiere koden til to events over i din kode, sådan at den kommer til at ligne det jeg postede først.
Ville det ikke virke bedre hvis man tømme ind_kode, når man IKKE har trykke ssAlt ned?
Lavet med en else sidste i procedure\'n:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if shift = [ssAlt] then begin if key in [65..90,97..122] then begin ind_kode := ind_kode + chr(key); if uppercase(ind_kode) = uppercase(kodeord) then begin panel1.visible := true; end; if length(ind_kode) >= length(kodeord) then begin ind_kode := \'\'; end; end; end ELSE IND_KODE := \'\'; end;
Synes godt om
Ny brugerNybegynder
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.