20. august 2001 - 12:47Der er
9 kommentarer og 1 løsning
Flyt Tab med mus
Jeg har en række edit felter som er tabbet fra 0 til -> jeg vil gerne lave det sådan at jeg kan flytte markørern fra det ene edit felt til det næste Feks : Fra edit1 (Tab0) til Edit2(Tab1) og retur med piletasterne hvordan gør jeg det ??
sæt alle dine edits OnKeyDown event til at pege på EditKeyDown
type TForm1 = class(TForm) Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Edit4: TEdit; procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure EditKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); private FEdits: TList; public { Public declarations } end;
var Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject); var i: Integer; begin FEdits := TList.Create; for i := 0 to ComponentCount - 1 do if Components[i] is TEdit then FEdits.Add(Components[i]); end;
procedure TForm1.FormDestroy(Sender: TObject); begin FEdits.Free; end;
procedure TForm1.EditKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); var Idx: Integer; begin if (Key = VK_LEFT) then begin Idx := FEdits.IndexOf(Sender); if Idx = 0 then TEdit(FEdits[FEdits.Count - 1]).SetFocus else if Idx > 0 then TEdit(FEdits[Idx - 1]).SetFocus; end else if (Key = VK_RIGHT) then begin Idx := FEdits.IndexOf(Sender); if Idx = FEdits.Count - 1 then TEdit(FEdits[0]).SetFocus else if Idx >= 0 then TEdit(FEdits[Idx + 1]).SetFocus; end; end;
alternativt kan du kode en eventhandler til hver enkelt edit, og så f.eks sige at for Edit1 gælder: ved højre-pil gå til Edit2, ved pil ned gå til Edit3 osv...
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.