AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language FreePascal Auswahl eines ComboBox-Elements per ENTER/durch das System
Thema durchsuchen
Ansicht
Themen-Optionen

Auswahl eines ComboBox-Elements per ENTER/durch das System

Ein Thema von qiLy4n · begonnen am 6. Jun 2015 · letzter Beitrag vom 11. Jun 2015
Antwort Antwort
Seite 1 von 3  1 23      
qiLy4n

Registriert seit: 1. Jun 2015
Ort: MV / Germany
22 Beiträge
 
FreePascal / Lazarus
 
#1

Auswahl eines ComboBox-Elements per ENTER/durch das System

  Alt 6. Jun 2015, 17:30
Delphi-Version: 5
Abend,

ich habe eine ComboBox wie folgt eingestellt (relevante Eigenschaften):

AutoComplete: False
AutoDropDown: True
AutoSelect: True
Style: csDropDown

D.h.: Wenn ich die Box anklicke, wird der vorgeschriebene Text markiert, ich kann daraufhin etwas eingeben, worauf sich die Liste öffnet, und wenn das Eingegebene mit einem Listen-Element übereinstimmt, bewegt sich die Scrollbar zu den Übereinstimmungen. Wenn ENTER gedrückt wird, wird das nun oben in der Liste der ComboBox stehende (und somit am meisten mit zuvor eingegebenem Text übereinstimmende) Element ausgewählt.

Das Problem ist jetzt bloß, das durch diesen Auswahlweg nicht die entsprechende Prozedur ausgeführt wird, da ich OnChange benutze (und durch diese Auswahl - nach meinem Verständnis - der Code das Ausgewählte Element festlegt, was aber bei OnChange nicht legitim ist).

Welches Ereignis könnte ich dafür benutzen (habe noch kein entsprechendes entdeckt) bzw wie könnte ich das beheben?

EDIT.: ich seh grad da oben steht Delphi Version 5 - stimmt nicht, habe es bloß übersehen, sollte das was bringen

Geändert von qiLy4n ( 7. Jun 2015 um 10:24 Uhr)
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.610 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: Auswahl eines ComboBox-Elements per ENTER/durch das System

  Alt 6. Jun 2015, 17:33
Möglichweise bringt dir OnCloseUp oder OnSelect etwas?!
  Mit Zitat antworten Zitat
qiLy4n

Registriert seit: 1. Jun 2015
Ort: MV / Germany
22 Beiträge
 
FreePascal / Lazarus
 
#3

AW: Auswahl eines ComboBox-Elements per ENTER/durch das System

  Alt 6. Jun 2015, 17:51
Nope, leider nicht.

Ich hab mir ein Label gemacht, um den ItemIndex zu überprüfen, aber es bleibt leer.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Auswahl eines ComboBox-Elements per ENTER/durch das System

  Alt 6. Jun 2015, 23:32
Nope, leider nicht.

Ich hab mir ein Label gemacht, um den ItemIndex zu überprüfen, aber es bleibt leer.
Dann hast du bei der Darstellung etwas falsch gemacht, denn leer dürfte das nicht bleiben, aber anscheinend ist der Code zu geheim ... da können wir nicht helfen.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
qiLy4n

Registriert seit: 1. Jun 2015
Ort: MV / Germany
22 Beiträge
 
FreePascal / Lazarus
 
#5

AW: Auswahl eines ComboBox-Elements per ENTER/durch das System

  Alt 6. Jun 2015, 23:36
Hab schon gemerkt und behoben. Wert bleibt trdm auf -1

Geändert von qiLy4n ( 7. Jun 2015 um 10:22 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Auswahl eines ComboBox-Elements per ENTER/durch das System

  Alt 8. Jun 2015, 06:24
Wie wärs mit OnClick?
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
qiLy4n

Registriert seit: 1. Jun 2015
Ort: MV / Germany
22 Beiträge
 
FreePascal / Lazarus
 
#7

AW: Auswahl eines ComboBox-Elements per ENTER/durch das System

  Alt 8. Jun 2015, 09:20
Nein, leider nicht. Hatte es schon ausprobiert, aber es ergibt an sich auch wenig Sinn, wenn es in diesem Zusammenhang (wo ich doch per ENTER auswählen können will) genutzt würde.

Ich hatte eine Idee für ein Work-Around mit meinen Mitteln:

Code:
if Key=13 //müsste Enter sein
then do
if ComboBox1.Text:='x' then ComboBox1.Itemindex:=0 else
 if ComboBox1.Text:='y' then ComboBox1.Itemindex:=1 else ... etc etc
Wäre zwar haufenweise Schreibarbeit, aber ich sehe mit meinem Können momentan keine andere Lösung.
Die Sache dabei ist auch, dass ich es schon so versucht hatte, darauf aber die Antwort kam, dass Boolean expected wäre (bei jeder einzelnen Zeile)...
Kann mir das wer erklären bzw meinen Fehler beheben (möglichst simpel)?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.114 Beiträge
 
Delphi 12 Athens
 
#8

AW: Auswahl eines ComboBox-Elements per ENTER/durch das System

  Alt 8. Jun 2015, 09:42
Zitat:
if ComboBox1.Text:='xthen
Zuweisung oder Vergleich?

Delphi-Quellcode:
if Key = Char(VK_RETURN) then begin
  i := ComboBox1.Items.IndexOf(ComboBox1.Text);
  if i >= 0 then
    ComboBox1.ItemIndex := i;
end;
bzw.
Delphi-Quellcode:
if Key = Char(VK_RETURN) then
  ComboBox1.ItemIndex := ComboBox1.Items.IndexOf(ComboBox1.Text);
Schreibarbeit? Die CB kennt doch ihre Einträge, also fragt man sie einfach.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu ( 8. Jun 2015 um 09:53 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Auswahl eines ComboBox-Elements per ENTER/durch das System

  Alt 8. Jun 2015, 09:48
*war mal wieder zu spät*
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
qiLy4n

Registriert seit: 1. Jun 2015
Ort: MV / Germany
22 Beiträge
 
FreePascal / Lazarus
 
#10

AW: Auswahl eines ComboBox-Elements per ENTER/durch das System

  Alt 8. Jun 2015, 10:14
Hi, danke für diese - wie immer (seit 13 Jahren) - schnelle Antwort.
Hätte ich gewusst, dass man das so abfragen kann, hätte ich es vllt auch so aufgeschrieben

Eine Sache gibt es noch: ich kenn mich mit KeyDown nicht aus und in den Nachrichten erhalte ich den Hinweis:

Zitat:
unit1.pas(81,28) Error: Incompatible types: got "Char" expected "LongWord"
... bei diesem Code:

Code:
procedure TForm1.ComboBox1KeyDown(Sender: TObject; var Key: word;
  Shift: TShiftState);
begin
  if Key = Char(VK_RETURN) then begin
  i := ComboBox1.Items.IndexOf(ComboBox1.Text);
  if i >= 0 then
    ComboBox1.ItemIndex := i;
  end;
  end;
Was ist da das Problem?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:48 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz