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 3 von 3     123   
qiLy4n

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

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

  Alt 8. Jun 2015, 17:25
Zitat:
Um es mal genau zu sagen, WORD ist ein Datentyp für positive ganzzahlige Werte. Ein Integer kann auch negative ganzzahlige Werte enthalten.
Das mit den negativen ganzzahligen Werten wusste ich - kannte nur Word nicht.

Zitat:
(In der Schule lernt auch niemand mehr etwas vernünftiges)
Stimme zu, in Sachen Informatik. Allerdings weiß ich nicht, ob man da wirklich "mehr" schreiben kann.

Zitat:
Was bitte ist "ENTER-Klicken" ?
Wenn man ENTER drückt

Zitat:
Was tut er nicht?
Funktionieren im Sinne der Fragestellung am Anfang des Threads

Zitat:
wie sieht Dein aktueller Sourcecode aus?
Soll ich den als ZIP hochladen?
  Mit Zitat antworten Zitat
BadenPower

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

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

  Alt 9. Jun 2015, 12:04
Zitat:
Was tut er nicht?
Funktionieren im Sinne der Fragestellung am Anfang des Threads
Hast Du OnEditDone ausprobiert?

Zitat:
wie sieht Dein aktueller Sourcecode aus?
Soll ich den als ZIP hochladen?
Am Besten die .pas und die zugehörige .lfm - Datei zippen.
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
qiLy4n

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

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

  Alt 9. Jun 2015, 19:40
Zitat:
Hast Du OnEditDone ausprobiert?
Jetzt ja und nein, es funktioniert leider nicht.

Im Anhang
Zitat:
die .pas und die zugehörige .lfm - Datei
Angehängte Dateien
Dateityp: zip qily4n.zip (7,2 KB, 2x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

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

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

  Alt 10. Jun 2015, 11:25
Nun, ich hab mir den Source angeschaut, und nach ein paar Anpassungen mit D7 ausprobiert.
Ich konnte kein Fehlverhalten erkennen. Es ist übrigens nie verkehrt, wenn man Oberfläche und Daten, in Deinem Fall die Daten für die Auswahl, voneinander trennt. Und die Verwendung von halbwegs sprechenden Namen für Variablen ist eigentlich auch kein Fehler.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector

Geändert von p80286 (10. Jun 2015 um 11:25 Uhr) Grund: Interppppunktion
  Mit Zitat antworten Zitat
BadenPower

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

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

  Alt 10. Jun 2015, 12:33
Auch ich habe mir den Source angeschaut, allerdings mit Lazarus.

Dabei habe ich festgestellt, dass die Property .ItemIndex im OnChange-Ereignis hinterherhinkt, wenn man zum Beispiel den Letzten Buchstaben eines Eintrages im Eingabefeld löscht.

Auch bei anderen Events ist ein "Fehlverhalten" zu entdecken.

Folgende Lösung funktioniert im OnChange (und in den anderen Events):

Im OI die Property AutoComplete der ComboBox auf "false" setzen.

Im OnChange-Ereignis nicht die Property ItemIndex verwenden, sondern den ItemIndex, welcher zum Text passt, selbst ermitteln.
Delphi-Quellcode:
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
  case ComboBox1.Items.IndexOf(ComboBox1.Text) of

    14: begin
         ComboBox3.Items.Clear;
         ComboBox3.Items.Add('Nanometer');
         ComboBox3.Items.Add('Mikrometer');
         ComboBox3.Items.Add('Millimeter');
         ComboBox3.Items.Add('Zentimeter');
         ComboBox3.Items.Add('Dezimeter');
         ComboBox3.Items.Add('Meter');
         ComboBox3.Items.Add('Dekameter');
         ComboBox3.Items.Add('Hektometer');
         ComboBox3.Items.Add('Kilometer');
        end;

  else
    begin
     ComboBox3.Items.Clear;
    end;

  end;
end;
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 (10. Jun 2015 um 12:45 Uhr) Grund: Else-Block in Case eingefügt
  Mit Zitat antworten Zitat
qiLy4n

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

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

  Alt 10. Jun 2015, 12:56
Zitat:
Es ist übrigens nie verkehrt, wenn man Oberfläche und Daten, in Deinem Fall die Daten für die Auswahl, voneinander trennt.
Ja, habe ich schon gehört, allerdings weiß ich (noch) nicht wie. Hatte in letzter Zeit leider keine Zeit für mehr als das Nötige für's Programm.

Zitat:
Im OI die Property AutoComplete der ComboBox auf "false" setzen.
Mhm. Habe das sogar, aber wohl ohne:

Zitat:
Im OnChange-Ereignis nicht die Property ItemIndex verwenden, sondern den ItemIndex, welcher zum Text passt, selbst ermitteln.
Werde es so machen, danke ^^
  Mit Zitat antworten Zitat
BadenPower

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

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

  Alt 10. Jun 2015, 13:15
Ich hab mal schnell zum Testen der Events und der Property .ItemIndex einer ComboBox ein Quick'n'Dirty-Programm generiert.

Zip-Datei enthält:

Source für Lazarus
Projekt-Dateien
ausführbare Exe (erstellt mit Lazarus 1.4RC2)


Im Memo sieht man den Namen der Combo, das Event, Property . ItemIndex und als letztes den ermittelten Index des Textes in der Itemsliste.

Hier werden die Unterschiede deutlich.
Angehängte Dateien
Dateityp: zip ComboBox2.zip (3,91 MB, 3x aufgerufen)
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
qiLy4n

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

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

  Alt 11. Jun 2015, 21:38
Danke für das Programm. Ich seh, was Du meinst (@BadenPower).

Hab's nochmal versucht und irgendwie klappt's jetzt per KeyDown:

Nach dem ersten Enter wird der Text der ComboBox vervollständigt, nach einem zweiten die eigentliche Prozedur ausgelöst.
Kann ich irgendwo einstellen, dass durch das erste Enter-Klicken erst der Text vervollständigt wird und danach - durch Berufung auf diesen Text - die Prozedur ausgeführt wird?
Bzw wo finde ich die Prozedur dafür, dass durch Enter der Text vervollständigt wird? Könnte ich dort nicht einfach meine Prozedur hinzupacken?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


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 15:41 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