kein Focus im 4 Element einer Combobox

Binio

Erfahrenes Mitglied
Hallo Leute,

ich habe ein kleines Problem. Ich schreibe für ein Blinden ein Programm. Dort mussen die ersten 3 Elemente der Combobox -->ComboBox1.Style:=csOwnerDrawFixed sein damit Virgo(BlindenSoftware) die Combobox als Aufklappliste sieht. Das 4 Element soll aber wiederrum zu ein Eingabefeld werden --> ComboBox1.Style:=csDropDown;
Mein Problem ist nun das wenn jemand ins 4 Element geht der Focus verschwindet und der Blinde nichts ändern kann im 4 Element der Combobox.

Code:
unit Unit1; 
   
  interface 
   
  uses 
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 
    Dialogs, StdCtrls; 
   
  type 
    TForm1 = class(TForm) 
  	ComboBox1: TComboBox; 
  	procedure FormCreate(Sender: TObject); 
  	procedure ComboBox1KeyPress(Sender: TObject; var Key: Char); 
   
  	procedure ComboBox1Select(Sender: TObject); 
    private 
  	{ Private-Deklarationen } 
    public 
  	{ Public-Deklarationen } 
    end; 
   
  var 
    Form1: TForm1; 
   
  implementation 
   
  {$R *.dfm} 
   
  procedure TForm1.FormCreate(Sender: TObject); 
  begin 
  ComboBox1.Text:='Standartwert'; 
  ComboBox1.items.add('nein'); 
  ComboBox1.items.add('Durch alleinstehendes Semikolon'); 
  ComboBox1.items.add('Durch Originalseitenangabe'); 
  ComboBox1.items.add('...'); 
  ComboBox1.ItemIndex:=0; 
  end; 
   
  procedure TForm1.ComboBox1KeyPress(Sender: TObject; var Key: Char); 
  begin 
   
   
  if (Combobox1.ItemIndex=0)OR(Combobox1.ItemIndex=1)OR(Combobox1.ItemIndex=2) then 
  begin 
    if not (Key in[#26]) then 
    begin 
  	Key := #0; 
  	Windows.Beep(500, 100); 
  	Windows.Beep(400, 100); 
  	Windows.Beep(300, 100); 
  	//Windows.Beep(200, 100); 
  	//Windows.Beep(100, 100); 
    end 
  end 
  end; 
   
   
  procedure TForm1.ComboBox1Select(Sender: TObject); 
  begin 
  if (Combobox1.ItemIndex=0)OR(Combobox1.ItemIndex=1)OR(Combobox1.ItemIndex=2) then 
    ComboBox1.Style:=csOwnerDrawFixed 
  else 
  begin 
    ComboBox1.Style:=csDropDown; 
    ComboBox1.Focused; 
    ComboBox1.ItemIndex:=3; 
    ComboBox1.SetFocus; 
    //ComboBox1.Refresh 
    //ComboBox1.ItemIndex:=3; 
  end 
  end; 
   
  end.

Ich hoffe es kann mir einer bei mein Problem helfen

mfg
Robert
 
Wenn es wirklich nur am Focus liegt, kannst du den ja über ActiveControl setzen. (Hilfedateien lesen!)

-Gawayn
 
Zurück