Avatar billede anold Nybegynder
20. august 2001 - 12:47 Der 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 ??
Avatar billede morten_s Nybegynder
20. august 2001 - 12:49 #1
Højreklik på editfeltet og vælg Creation order resten giver sig selv
Avatar billede morten_s Nybegynder
20. august 2001 - 12:54 #2
Hov nej det var vist ikke rigtigt, du skal vælge TabOrder i Object inspectoren
Avatar billede nico26 Nybegynder
20. august 2001 - 18:36 #3
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;

end.
Avatar billede anold Nybegynder
22. august 2001 - 11:56 #4
Hej Nico22
det ser ud til at virke MEN !!

Kan det ikke også lade sig gøre at lave det således at man kan gå fra edit1 (tab0) og NED til edit3(tab2)??

anold
Avatar billede nico26 Nybegynder
22. august 2001 - 13:05 #5
det bliver svært. Har du overvejet at bruge et stringgrid
Avatar billede anold Nybegynder
22. august 2001 - 13:09 #6
jeg vil være meget ked af at skulle til at lave om i mit program
men hvad kan et stringgrid ??
Avatar billede nico26 Nybegynder
22. august 2001 - 13:33 #7
Det kommer også an på dit program, men du kan jo bare prøve at droppe et på en form, så kan du se hvordan det ser ud.
Avatar billede nico26 Nybegynder
22. august 2001 - 13:36 #8
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...
Avatar billede anold Nybegynder
22. august 2001 - 13:42 #9
\'Ok
Kan du vise mig hvordan jeg gør det ??
Avatar billede nico26 Nybegynder
22. august 2001 - 13:47 #10
kan du ikke sende dit project til mig nico@pc.dk
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