AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

SelText bei ComboBoxen buggy?

Ein Thema von Neg · begonnen am 1. Feb 2004 · letzter Beitrag vom 3. Feb 2004
Antwort Antwort
Neg

Registriert seit: 16. Jan 2004
Ort: Berlin
63 Beiträge
 
Delphi 5 Professional
 
#1

SelText bei ComboBoxen buggy?

  Alt 1. Feb 2004, 17:15
Kann es sein, dass die Eigenschaft SelText der ComboBox ein wenig buggy implementiert ist? SelText gibt ja den aktuell selektierten Text zurück. Bei Edits und MemoBoxen funktioniert das wunderbar, auch wenn die Komponente gerade nicht den Fokus besitzt. Schließlich ist diese Selektierung ja eigentlich unabhängig von der aktuell tatsächlich sichtbaren Markierung (durchs Fokussieren). Bei der ComboBox scheint dies nicht so zu sein. Sobald die Komponente nicht mehr den Fokus besitzt, scheint sie ihre Selektierung zu vergessen und somit liefert SelText immer den Leerstring und SelStart immer 0. Wenn ich versuche zu tricksen und der ComboBox einfach vor der Abfrage kurz den Fokus "zurück gebe", dann wird automatisch der gesammte Text markiert.

Gibt es eine Möglichkeit dieses Verhalten der ComboBox irgendwie zu umgehen?

Was ich machen will:
Mein Programm soll eine interne "Character Map" besitzen, mit der man Zeichen, die man nicht auf der Tastatur hat und die man sonst über umständliche Tastencodes eingeben müsste, per Knopfdruck in eine beliebige Eingabe-Komponente des Hauptforms einfügen kann. Die Character Map wird als Unterformular geöffnet, so dass keine Möglichkeit besteht, der ComboBox nicht ihren Fokus "weg zu nehmen". Die OnClick-Methode der Buttons der Character Map sieht so aus:

Delphi-Quellcode:
procedure TFormCharmap.HandleCharButtonClick(Sender: TObject);
var
  Key: integer;
begin
  Key:=(Sender as TButton).Tag;

  if (FormMain.ActiveControl is TCustomEdit) then
  begin
    (FormMain.ActiveControl as TCustomEdit).SelText:=Chr(Key);
  end;

  if (FormMain.ActiveControl is TCustomComboBox) then
  begin
   (FormMain.ActiveControl as TCustomComboBox).SelText:=Chr(Key);
  end;
end;
Mit den CustomEdits funktioniert es, mit den CustomComboBoxes nicht. Weil die stets den SelText vergessen, wird der Text immer am Anfang eingefügt, was nicht wirklich Sinn der Sache ist.

Kennt jemand eine Möglichkeit, wie ich mein Vorhaben dennoch in die Tat umsetzen kann?
  Mit Zitat antworten Zitat
Neg

Registriert seit: 16. Jan 2004
Ort: Berlin
63 Beiträge
 
Delphi 5 Professional
 
#2

Re: SelText bei ComboBoxen buggy?

  Alt 3. Feb 2004, 01:36
*push*
  Mit Zitat antworten Zitat
Nightshade

Registriert seit: 7. Jan 2003
Ort: Menden
192 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: SelText bei ComboBoxen buggy?

  Alt 3. Feb 2004, 06:47
(FormMain.ActiveControl as TCustomEdit).Text := (FormMain.ActiveControl as TCustomEdit).Text + Chr(Key);
Christian
Killing for peace is like fucking for virginity

Nightshade
  Mit Zitat antworten Zitat
Neg

Registriert seit: 16. Jan 2004
Ort: Berlin
63 Beiträge
 
Delphi 5 Professional
 
#4

Re: SelText bei ComboBoxen buggy?

  Alt 3. Feb 2004, 12:56
So hänge ich den Text ja nur am Ende an. Ich will aber den Text genau da einfügen, wo der Cursor aktuell steht. Außerdem funktioniert es ja, wie gesagt, bereits mit den CustomEdits. Nur mit den CustomComboBoxes habe ich Probleme...
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: SelText bei ComboBoxen buggy?

  Alt 3. Feb 2004, 16:24
Moin Neg,

vielleicht hilft Dir der Umweg über die API weiter (ausprobiert hab' ich das noch nicht).

Schau Dir doch mal im PSDK oder auf MSDN die Message CB_SETEDITSEL an.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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:09 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