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 2 von 3     12 3      
Benutzerbild von baumina
baumina

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

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

  Alt 8. Jun 2015, 10:21
Lass einfach die Umwandlung in Char weg if Key = VK_RETURN then
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
 
#12

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

  Alt 8. Jun 2015, 10:31
Danke, wieder so eine Sache von der ich gar nicht wusste, dass man sie machen darf.

Werd ich also so umsetzten.
Just in case: Warum gibt es denn beim Doppelklicken auf das Ereignis im Objektinspektor eine Prozedur und offensichtlich - da ich den Code ja von himitsu hab - noch eine ähnliche mit einer anderen Variablen?
Ist für das Programm nicht mehr wichtig btw
  Mit Zitat antworten Zitat
qiLy4n

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

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

  Alt 8. Jun 2015, 10:40
Hi, himitsu's Code hat leider nicht funktioniert.

Kann man dem ENTER-Klicken auch zuweisen, dass es wie ein Mausklick wirkt und somit wie eine Auswahl des Items durch den User?

Das wäre das einzige, was mir noch einfallen würde...
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#14

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

  Alt 8. Jun 2015, 10:42
Der Paramter key ist schon ein Integer

if Key = VK_RETURN then begin
Markus Kinzler
  Mit Zitat antworten Zitat
qiLy4n

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

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

  Alt 8. Jun 2015, 10:58
Wieso Integer, es doch um Word und Char?
  Mit Zitat antworten Zitat
BadenPower

Registriert seit: 17. Jun 2009
616 Beiträge
 
#16

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

  Alt 8. Jun 2015, 11:27
Wieso Integer, es doch um Word und Char?
Delphi F1 Hilfe:

Zu den fundamentalen Integer-Typen gehören Shortint, Smallint, Longint, Int64, Byte, Word, Longword und UInt64.


Du solltest Dich dringend mit den Variabel-Typen auseinandersetzen.
Programmieren ist die Kunst aus Nullen und Einsen etwas sinnvollen zu gestalten.
Der bessere Künstler ist allerdings der Anwender, denn dieser findet Fehler, welche sich der Programmierer nicht vorstellen konnte.
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#17

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

  Alt 8. Jun 2015, 15:27
Delphi-Quellcode:
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?
Das Problem ist die Inkompatibilität zwischen Integer und Char. Chars enthalten immer nur ein Zeichen: 'a' oder 'X' oder '&' usw. Der Wert, der in dieser Variablen gespeichert wird, bezieht sich auf die ASCII-Tabelle: Wenn du die linke Alt-Taste gedrückt hältst und auf deinem Nummernblock 65 eingibst, erhältst du ein 'A'. Das 'A' erhältst du auch durch Angabe von Chr(65). In KeyDown wird nun genau dieser Wert übergeben, und zwar als Word. Erst durch Chr(65)oder #65 wird daraus ein Char. VK_Return ist ebenfalls ein Integer, gespeichert in irgend einer der Delphi-System-Units als Konstante, Um den Wert von VK_Return ermitteln, kannst du ihn z.B. in einem Label anzeigen: Label1.Caption := IntToStr(VK_Return);

Integer-Typen sind z.b: Word, Byte, LongInt, aber auch abgeleitete Typen wie z.B. TColor. Alle Integer-Typen können weder Zeichen noch Kommazahlen (Float-Werte) aufnehmen. Manche Integer-Typen können nur positive Zahlen (0 bis ...) aufnehmen, andere dagegen auch negative (-32768 bis 32768). Wenn im Parameter ein Word als Typ angegeben ist, kannst du diesen Wert nicht mit einem Char vergleichen (das wäre nicht mal Äpfel mit Birnen, das wäre Äpfel mit Broten).

Schau dir doch diese Seite für Einsteiger einmal etwas genauer an. Es gibt noch mehr solche Einsteiger-Tutorials im Netz, die findest du aber sicher auch alleine

Zum Üben mit KeyDown und KeyPress empfehle ich den Keyboard-Tutor vom Leuselator.
  Mit Zitat antworten Zitat
qiLy4n

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

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

  Alt 8. Jun 2015, 15:49
Ich will nicht großmäulig sein, aber letzteres wusste ich sogar schon (das von Perlsau, werde natürlich trdm fehlendes Wissen aufbessern). Mein Problem war das, dass ich:

1. nicht wusste, das Word eine integer Var ist. Mir wurde in der Schule beigebracht, dass es integer, longint, real, char und string gibt - hab aber schon etwas länger angezweifelt, dass das irgendwo komplett ist. Word erschien mir (weil 'Wort') eher wie etwas von char oder string, weswegen ich die Aussage von mkinzler nicht verstanden hab.

2. nicht wusste - wie ich schrieb -, dass man KeyDown mit verschiedenen Variablen 'erstellen' kann.



Um zum eigentlichen Tread-Thema zurück zu kommen:

Zitat:
Kann man dem ENTER-Klicken auch zuweisen, dass es wie ein Mausklick wirkt und somit wie eine Auswahl des Items durch den User?
Oder hat jmd eine andere Idee?
Wie gesagt, himitsus Code ist zwar logisch und sollte auch funktionieren, tut er aber aus irgendeinem Grund nicht.

EDIT: klar würde ENTER wie ein Mausklick wirken, bzw wie eine User-Aktion, aber das tut es eben nicht
ich hatte es mit OnChange (eigentlich auszuführende Prozedur) und himitsus Idee versucht.

Geändert von qiLy4n ( 8. Jun 2015 um 15:51 Uhr)
  Mit Zitat antworten Zitat
BadenPower

Registriert seit: 17. Jun 2009
616 Beiträge
 
#19

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

  Alt 8. Jun 2015, 15:55
EDIT: klar würde ENTER wie ein Mausklick wirken, bzw wie eine User-Aktion, aber das tut es eben nicht
ich hatte es mit OnChange (eigentlich auszuführende Prozedur) und himitsus Idee versucht.
Beim Drücken der Entertaste und bei einem Mausklick auf ein Element in der DropDown-Liste wird ein OnEditDone-Event ausgelöst.
Programmieren ist die Kunst aus Nullen und Einsen etwas sinnvollen zu gestalten.
Der bessere Künstler ist allerdings der Anwender, denn dieser findet Fehler, welche sich der Programmierer nicht vorstellen konnte.

Geändert von BadenPower ( 8. Jun 2015 um 16:05 Uhr) Grund: Event berichtigt
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#20

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

  Alt 8. Jun 2015, 16:09
Ich will nicht großmäulig sein, aber letzteres wusste ich sogar schon (das von Perlsau, werde natürlich trdm fehlendes Wissen aufbessern). Mein Problem war das, dass ich:

1. nicht wusste, das Word eine integer Var ist. Mir wurde in der Schule beigebracht, dass es integer, longint, real, char und string gibt - hab aber schon etwas länger angezweifelt, dass das irgendwo komplett ist. Word erschien mir (weil 'Wort') eher wie etwas von char oder string, weswegen ich die Aussage von mkinzler nicht verstanden hab.
Um es mal genau zu sagen, WORD ist ein Datentyp für positive ganzzahlige Werte. Ein Integer kann auch negative ganzzahlige Werte enthalten.
(In der Schule lernt auch niemand mehr etwas vernünftiges)

Zitat:
Kann man dem ENTER-Klicken auch zuweisen, dass es wie ein Mausklick wirkt und somit wie eine Auswahl des Items durch den User?
Oder hat jmd eine andere Idee?
Was bitte ist "ENTER-Klicken" ?

Wie gesagt, himitsus Code ist zwar logisch und sollte auch funktionieren, tut er aber aus irgendeinem Grund nicht.
Was tut er nicht? und wie sieht Dein aktueller Sourcecode aus?

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 07:27 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