ComboBox per Code steuern

Für allgemeine Fragen zur Programmierung, welche nicht! direkt mit Lazarus zu tun haben.
Antworten
Cool-Tuc
Beiträge: 99
Registriert: Mi 6. Apr 2011, 17:10

ComboBox per Code steuern

Beitrag von Cool-Tuc »

Hallo alle,
drücke ich in einer gefüllten Combobox mit Autovervollständigung z.B. eine Zahl/Char springt diese automatisch auf den 1-sten vorkommenden Eintrag. Wie kann ich dieses "Drücker" per Code auslösen? Ich kann zwar combobox.text mit einer Zahl/Char setzen, aber dann passiert nichts; es wird zu keinem Eintrag gesprungen, es wird nur der eingegebene Char angezeigt...
Danke
Udo

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 598
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Winux (L 2.0.7 FPC 3.04)
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: ComboBox per Code steuern

Beitrag von fliegermichl »

Das geht indem du ComboBox.ItemIndex entsprechend setzt.

Benutzeravatar
Niesi
Lazarusforum e. V.
Beiträge: 109
Registriert: So 26. Jun 2016, 19:44
OS, Lazarus, FPC: Windows 10 Lazarus 2.0.6

Re: ComboBox per Code steuern

Beitrag von Niesi »

Cool-Tuc hat geschrieben:Hallo alle,
drücke ich in einer gefüllten Combobox mit Autovervollständigung z.B. eine Zahl/Char springt diese automatisch auf den 1-sten vorkommenden Eintrag. Wie kann ich dieses "Drücker" per Code auslösen? Ich kann zwar combobox.text mit einer Zahl/Char setzen, aber dann passiert nichts; es wird zu keinem Eintrag gesprungen, es wird nur der eingegebene Char angezeigt...
Danke
Udo



Code: Alles auswählen

 
unit Main;
 
{$mode objfpc}{$H+}
 
interface
 
uses
  Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, Menus;
 
type
 
  { TForm1 }
 
  TForm1 = class(TForm)
    MainMenu1: TMainMenu;
    MenuItem1: TMenuItem;
    MenuItem2: TMenuItem;
    MenuItem3: TMenuItem;
    MenuItem4: TMenuItem;
    MenuItem5: TMenuItem;
    MenuItem6: TMenuItem;
    MyComboBox: TComboBox;
    procedure MenuItem2Click(Sender: TObject);
    procedure MenuItem3Click(Sender: TObject);
    procedure MenuItem4Click(Sender: TObject);
    procedure MenuItem6Click(Sender: TObject);
  private
 
  public
 
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.lfm}
 
{ TForm1 }
 
procedure TForm1.MenuItem2Click(Sender: TObject);
begin
  MyComboBox.Itemindex := 0;
end;
 
procedure TForm1.MenuItem3Click(Sender: TObject);
begin
  MyComboBox.ItemIndex := 1;
end;
 
procedure TForm1.MenuItem4Click(Sender: TObject);
begin
  MyComboBox.ItemIndex := 2;
end;
 
procedure TForm1.MenuItem6Click(Sender: TObject);
begin
  Close;
end;
 
end
 
Wissen ist das einzige Gut, das sich vermehrt, wenn es geteilt wird ...

Cool-Tuc
Beiträge: 99
Registriert: Mi 6. Apr 2011, 17:10

Re: ComboBox per Code steuern

Beitrag von Cool-Tuc »

...aber ich weiss vorher nicht, wenn ich z.B. ein "u" virtuell "drücke" bei welchem ItemIndex das erste "u" vorkommt um dort hin zu springen...

Benutzeravatar
six1
Beiträge: 193
Registriert: Do 1. Jul 2010, 19:01

Re: ComboBox per Code steuern

Beitrag von six1 »

im onChange die Liste durchlaufen und wenn du einen Wert gefunden hast, den ItemIndex setzen...
Gruß, Michael

Cool-Tuc
Beiträge: 99
Registriert: Mi 6. Apr 2011, 17:10

Re: ComboBox per Code steuern

Beitrag von Cool-Tuc »

OK, so habe ich es jetzt erst einmal implementier...ich dachte man könne einfach combo.text mit einem zeichen setzen und die combo würde zum ersten vorkommenden Eintrag springen.. :?

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 598
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Winux (L 2.0.7 FPC 3.04)
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: ComboBox per Code steuern

Beitrag von fliegermichl »

Cool-Tuc hat geschrieben:OK, so habe ich es jetzt erst einmal implementier...ich dachte man könne einfach combo.text mit einem zeichen setzen und die combo würde zum ersten vorkommenden Eintrag springen.. :?


Code: Alles auswählen

 
ComboBox.ItemIndex := ComboBox.Items.IndexOf(ComboBox.Text);
 

Antworten