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 ??
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
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.