Einzelnen Beitrag anzeigen

Benutzerbild von KahPee
KahPee

Registriert seit: 12. Mai 2009
214 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: Editfeld mit Dropdownmenü

  Alt 24. Dez 2009, 13:53
Delphi-Quellcode:
procedure Tform2.Autocomplete(Combobox: TCombobox);
var
  selstart, sellength,i: Integer;
  EntryNum: Integer;
  EntryValue: string;
  statistic: TiniFile;
begin
  statistic:= TIniFile.Create(ExtractFilePath(ParamStr(0))+'statistic.ini');
try
  // read number of entries
  EntryNum := statistic.ReadInteger('Playerlist', 'count', 0);
  selstart := Combobox.SelStart;
  sellength := Combobox.SelLength;
  Combobox.Items.Clear;
  Combobox.Items.BeginUpdate;

  // add items
  for i := 1 to EntryNum do
  begin
    EntryValue := statistic.ReadString('Playerlist', IntToStr(i), '');
    if ((EntryValue = '') or (Pos(EntryValue, Combobox.Text) > 0)) then
    begin
     Combobox.Items.Add(EntryValue);
    end;
  end;

  Combobox.Items.EndUpdate;
finally
  statistic.Free;
  Combobox.SelStart := selstart;
  Combobox.SelLength := sellength;
  showmessage(inttostr(entrynum)+entryvalue); // gibt immer "3Bert" aus

end;
end;
Und die existierende ini dazu:
Delphi-Quellcode:
[Playerlist]
count=3
1=Hartmund
2=Albert
3=Bert
eingebunden durch:
Delphi-Quellcode:
procedure TForm2.CBplayer1Change(Sender: TObject);
 begin
  Autocomplete(sender as Tcombobox);
end;
So das hab ich draus gemacht. Aber im Moment wird eine leeres Dropdownmenü angezeigt, ohne einen einzigen Eintrag. Außerdem wird der Eintrag den man eintippt immer gleich gelöscht, nach durchlauf der prozedur. Die Datei heißt auch wirklich "statistic.ini" und liegt im selben Ordner wie die .exe .

mfg Kahpee
  Mit Zitat antworten Zitat