AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Text in Combobox nach Auswahl ändern

Ein Thema von oki · begonnen am 19. Dez 2007 · letzter Beitrag vom 20. Dez 2007
 
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#1

Text in Combobox nach Auswahl ändern

  Alt 19. Dez 2007, 17:22
Sorry für den doofen Titel. Mir fällt im Moment kein besserer ein.

Folgende Aufgabenstellung:

Ich habe eine Eingabemaske für Adressdaten. Hier soll ein Anzeigename automatisch generiert werden. Folgende Möglichkeiten stehen zur Auswahl:
Delphi-Quellcode:
type
  (* Typ zur automatischen Bildung des Anzeigenamens *)
  TVisibleNameBuild = (
                       vnb_Free, // freier Eintrag für Anzeigename
                       vnb_Vorname_Name, // Anzeigename aus Vorname Name zusammensetzen
                       vnb_Name_Vorname, // Anzeigename aus Name, Vorname zusammensetzen
                       vnb_Firma, // Anzeigename aus Firma bilden
                       vnb_Name_Firma, // Anzeigename aus Name, Firma zusammensetzen
                       vnb_Firma_Name // Anzeigename aus Firma, Name zusammensetzen
                       );
In der verwendeten Combobox sind dann für die Items folgende Einträge gesetzt:

Zitat:
freier Eintrag
Vorname Name
Name, Vorname
Firma
Name, Firma
Firma, Name
Das ganze soll folgendermaßen funzen. Wählt der Benutzer einen Eintrag aus der Combobox aus, so soll der Text der Anzeige der Combobox aus den entsprechenden EditFeldern für Name, Vorname und Firma der Eingabemaske gebildet werden. Also Click auf Eintrag "Name, Vorname" und im Edit-Bereich der Combobox erscheint "Mustermann, Klaus".

nun klappt das aber gar nicht so wie ich es möchte. Wenn ich im OnChange oder OnClick ereignis folgenden Code aufrufe wird nicht mein neuer Text gesetzt, sondern der Item-Eintrag der Combobox.

Folgender Code:
Delphi-Quellcode:
procedure TAddressEntryForm.BuildVisibleName(BuildMode: TVisibleNameBuild);
begin
  case BuildMode of
    vnb_Free: ;
    vnb_Vorname_Name: ComboAnzeigename.Text := Format('%s %s', [EditVorname.Text, EditName.Text]);
    vnb_Name_Vorname: ComboAnzeigename.Text := Format('%s, %s', [EditName.Text, EditVorname.Text]);
    vnb_Firma: ComboAnzeigename.Text := EditFirma.Text;
    vnb_Name_Firma: ComboAnzeigename.Text := Format('%s, %s', [EditName.Text, EditFirma.Text]);
    vnb_Firma_Name: ComboAnzeigename.Text := Format('%s, %s', [EditFirma.Text, EditName.Text]);
  end;
end;

procedure TAddressEntryForm.ComboAnzeigenameChange(Sender: TObject);
begin
  FVisibleNameBuild := TVisibleNameBuild(ComboAnzeigename.ItemIndex);
  ComboAnzeigename.ItemIndex := -1;
  BuildVisibleName(FVisibleNameBuild);
  FOldComboEntry := Comboanzeigename.Text;
end;
Ich habe in den Anhang noch schnell einen Screenshot meiner Eingabemaske gelegt. Vielleicht wird es damit noch etwas verständlicher.

Wenn mir einer den rechten Weg weisen kann, würd mich freuen.

Ach ja, erst mal suche ich einen einfachen Weg, eine eigene abgeleitete Komponente ist immer noch möglich wenn ich nichts passendes höre.

Dank und Gruß

oki

[edit] Ups, Anhang vergessen. oki [edit]
Angehängte Grafiken
Dateityp: png combobox_186.png (8,7 KB, 46x aufgerufen)
42
  Mit Zitat antworten Zitat
 


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