![]() |
Re: Combobox nicht 1. Geige
danke für die genauere erläuterungen. ich kann z.zt. nicht viel schreiben da ich eisbeutelchen an die bäckchen halten muss ;-)
|
Re: Combobox nicht 1. Geige
DGL-Luke wollte glaube ich nur sagen, da0 Tobias' Vorschlag Gefahren birgt. Ich finde aber es wäre einen Versuch wert.
|
Re: Combobox nicht 1. Geige
Das Problem liegt in der ComboBox selber vergraben. Diese hat schon von Windows her die Items, diese sind aber erst verfügbar, wenn das Ding ein gültiges Handle hat. Dieses kriegt sie allerdings erst, wenn die Form komplett sichtbar ist. Daher kann man eine ComboBox erst focussieren, wenn sie auch angezeigt wird. Um solche Probleme zu vermeiden greift Delphi zu dem Trick, eben nicht die Box, sondern ein bel. anderes Eleement zu focusieren.
Eine Chance, die ich sehe, ist die Box zu focusieren, NACHDEM sie voll sichtbar wurde. Dazu überschreiben wir die Methode CreateHandle von TCustomComboBox, in der wir ein Ereignis auslösen. Auf dieses Ereignis kann man dann reagieren und den Focus setzen. p.s.: das ist auch der Grund, warum man ComboBoxen erst dann items verpassen kann, wenn sie ein gültiges Handle haben. |
Re: Combobox nicht 1. Geige
@Sidorion: Wieder was gelernt. :thumb:
@Privateer3000: Ich nenne Luke ja auch gerne mal "Klugscheißer", aber dein letzter Beitrag verfehlt sein Ziel wohl meilenweit... :roll: |
Re: Combobox nicht 1. Geige
Zitat:
ändere bitte deinen Ton in der Delphi-PRAXiS :warn: |
Re: Combobox nicht 1. Geige
Danke Sidorion!
Das war was genaues!! Nochmal zu meiner Wortwahl, das war wohl nicht nicht hart wie der Angriff von DGL der !nicht! entfernt wurde. Es steht wohl keinem zu, zu urteilen warum und weshalb man Fragen stellt. Egal wieviel Posts im Avatar stehen. |
Re: Combobox nicht 1. Geige
kleine Frage ZUM Thema funktioniert es jetzt ?!?
|
Re: Combobox nicht 1. Geige
ähm... sorry, wenns so rüberkam, aber ich hatte auf keine fall die absicht, dich irgendwie zu veräppeln! Ich hatte beim ersten Post wegen deines Schreibstils gemeint, du wärst noch Anfänger, und deswegen EDBErrs Aussagen etwas konkretisiert(Seine Antwort darauf ist auch ganz schön). Beim zweiten Mal hab ich eben kurz vorm posten noch gesehen, wie viele posts du schon hast...
nachdem wir das problem jetzt kennen: Es könnte auch helfen, wenn du einen timer mit folgender prozedur erstellst:
Delphi-Quellcode:
Und den timer im Formshow aktivierst. Du musst dann mit dem Interval ein wenig rumprobieren, damit die Combobox ohne merkbare Verzögerung aktiviert wird. Natürlich ist das dann Symptombehandlung, erspart dir aber, TComboBox abzuleiten.
procedure CBTimerTimer(Sender: TObject);
begin (Sender as TTimer).Enabled := false; Combobox1.SetFocus; end; @Daniel G: Bitte Vierauge, da hab ich mich schon dran gewöhnt. |
Re: Combobox nicht 1. Geige
Danke
diese version mit dem Timer funktioniert tatsächlich eine leichte verzögerung reicht aus. Ich denke aber mal auch das dies Rechnerabhängig sein wird. Als zweite Lösung ist auch richtig die box zur Laufzeit zu überschreiben. Allerdings ist mir unbekannt wie sich andere Plattformen also ältere Winversionen da verhalten. Kann es auch nicht testen. Noch mal zum Disput: für mich ist das erledigt. Will keinen Streit. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:34 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz