Gå til innhold

Hjelp med CheckListBox og Edit-felt


Anbefalte innlegg

1: Kan jeg konfigurere en CheckListBox slik at en linje blir valgt ved at man klikker enten på selve avkryssingsboksen eller på selve teksten i linjen?

 

2: Kan jeg konfigurere et Edit-felt slik at markøren automatisk hopper til neste Edit-felt når man har skrevet et visst antall karakterer i det første Edit-feltet?

Lenke til kommentar
Videoannonse
Annonse

1: Har funnet en måte å gjøre det på. Poster hele koden sånn at du skjønner måten jeg har gjort det på. Du ser poenget med CanClick variabelen viss du tar bort den og CheckListBox1ClickCheck. Da blir det ikke mulig å velge ved å trykke på avkryssningsboksen.

 

unit Unit1;



interface



uses

 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

 Dialogs, StdCtrls, CheckLst;



type

 TForm1 = class(TForm)

   CheckListBox1: TCheckListBox;

   procedure CheckListBox1Click(Sender: TObject);

   procedure CheckListBox1ClickCheck(Sender: TObject);

   procedure FormCreate(Sender: TObject);

 private

   { Private declarations }

 public

   { Public declarations }

 end;



var

 Form1: TForm1;

 CanClick : Boolean;



implementation



{$R *.dfm}



procedure TForm1.CheckListBox1Click(Sender: TObject);

begin

 if CanClick then

   with CheckListBox1 do

     if not Checked[ItemIndex] then

       State[ItemIndex] := cbChecked

     else

       State[ItemIndex] := cbUnchecked

 else

    CanClick := True;

end;



procedure TForm1.CheckListBox1ClickCheck(Sender: TObject);

begin

 CanClick := False;

end;



procedure TForm1.FormCreate(Sender: TObject);

begin

 CanClick := True;

end;



end.

 

2: Dette gjør du ganske enkelt ved hjelp av SelectNext slik:

 

procedure TForm1.Edit1Change(Sender: TObject);

begin

 if Length(Edit1.Text) > (Edit1.MaxLength - 1) then

 begin

   SelectNext(Edit1, True, True);

 end;

end;

Lenke til kommentar
1: Kan jeg konfigurere en CheckListBox slik at en linje blir valgt ved at man klikker enten på selve avkryssingsboksen eller på selve teksten i linjen?

 

Det er heilt sikkert ei instilling for dette, men eg har ikkje Delphi foran meg for øyeblikket. Leit og du skal finne... :)

 

2: Kan jeg konfigurere et Edit-felt slik at markøren automatisk hopper til neste Edit-felt når man har skrevet et visst antall karakterer i det første Edit-feltet?

 

Japp. I Edit.OnChange skriv du følgande;

 

  if Length(Edit.Text) >= VissLengde then

   Edit2.SetFocus;

 if Length(Edit.Text) > VissLengde then

   Edit.Text := Copy(Edit.Text, 0, VissLengde);

 

Med forbehold om off-by-1-feil. Du kan og bruke dei to første linjene i Edit.OnEnter, då vil fokus flytta seg direkte til Edit2 dersom Edit allereie er full. Dette er ikkje anbefalt, sidan det då vil vere vanskelig å slette noko i Edit.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...