[lazarus] Run-time generated combo-boxes.

A.J. Venter ajventer at direqlearn.org
Fri Apr 11 06:31:51 EDT 2003


It works beautifully now.
Thanks everybody.
On Fri, 2003-04-11 at 11:55, A.J. Venter wrote:
> Thanks Mattias, 
> I take it then that there was a bug in lazarus causing it.
> I´ll grab the latest CVS version, and give it a try.
> 
> A.J.
> On Fri, 2003-04-11 at 11:04, Mattias Gaertner wrote:
> > On 11 Apr 2003 09:39:48 +0200
> > "A.J. Venter" <ajventer at direqlearn.org> wrote:
> > 
> > > Hi,
> > > For my administration interface, I have two sections (password changing
> > > and user deletion) where the user can select a username from a combobox.
> > > I wrote a procedure called fillUserList, which when run will read
> > > /etc/passwd, drop system users (below UID 500) and place the rest into a
> > > the combobox, then this list needs to become the contents of the
> > > combobox. It has to be redone whenever the user goes to the relevant
> > > section, because the list can and will change during operation, e.g. a
> > > user may be deleted and another's password have to be changed.
> > > 
> > > Everything works like that, but the catch is when to run it. Right now I
> > > have it linked to the comboBox's onDropDown event, but this is not
> > > working. The first time you open the list, only the first user appears,
> > > only if you close and reopen it, does the full list show up.
> > 
> > Fixed.
> > 
> > 
> > Mattias
> > 
> > 
> > 
> > > How do I do this ?
> > > 
> > > The code looks like this:
> > > 
> > > procedure TForm4.FillUserList;
> > >     Var AllUsers : Tstrings;
> > >           Users : Tstrings;
> > >           S : String;
> > >           CNT : Integer;
> > > begin
> > > 
> > > {ComboPop is a boolean, used to keep track of whether the comboBox has
> > > allready been populated on this run, it is reset to false when the form
> > > closes}
> > > If not ComBoPop then 
> > > Begin
> > > AllUsers := tStringlist.Create;
> > > Users := tstringList.Create;
> > > AllUsers.LoadFromFile ('/etc/passwd');
> > > For CNT := 0 to AllUsers.Count -1
> > > Do
> > >   Begin
> > >   S :=  Allusers[cnt];
> > >   Delete(S,1,pos(':',S));
> > >   Delete(S,1,pos(':',S));
> > >   S := Copy(S,1,pos(':',S) - 1);
> > >   If (StrToInt(S) >= 500) AND
> > > (Copy(AllUsers[cnt],1,pos(':',AllUsers[cnt]) -1) <> 'admin') then
> > >    Users.Add(Copy(AllUsers[cnt],1,pos(':',AllUsers[cnt]) -1));
> > > 
> > >   end;
> > > 
> > > Form4.ComboBox1.Items.Assign(Users);
> > > AllUsers.Free;
> > > Users.Free;
> > > end;
> > >  
> > > end;
> > > 
> > > -- 
> > > Story of my life: "Semper in excretum, set alta variant"
> > > A.J. Venter
> > > DireqLearn Linux Guru
> > > 
> > > _________________________________________________________________
> > >      To unsubscribe: mail lazarus-request at miraclec.com with
> > >                 "unsubscribe" as the Subject
> > >    archives at http://www.lazarus.freepascal.org/mailarchives
> > 
> > _________________________________________________________________
> >      To unsubscribe: mail lazarus-request at miraclec.com with
> >                 "unsubscribe" as the Subject
> >    archives at http://www.lazarus.freepascal.org/mailarchives
-- 
Story of my life: "Semper in excretum, set alta variant"
A.J. Venter
DireqLearn Linux Guru






More information about the Lazarus mailing list