Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi OnChange Ereigniss in eine Combobox/Listbox legen (https://www.delphipraxis.net/114284-onchange-ereigniss-eine-combobox-listbox-legen.html)

Roefe68 22. Mai 2008 20:57


OnChange Ereigniss in eine Combobox/Listbox legen
 
Hallo zusammen

Wie kann ich ein
Delphi-Quellcode:
     

OnChange          := Ereignis_OnChange;   //TNotify
OnKeyPress        := Ereignis_OnKeyPress; //TKeyPressEvent
In eine Combobox oder Listbox legen, damit ich zur Laufzeit Komponente mit der
gewünschten procedure verbinden kann?
Die Komponente werden zur Laufzeit erzeugt:


Delphi-Quellcode:
   
...

    Edit_Array[AktuellesDynamischesEditfeld] := TEdit.Create(self);
    with Edit_Array[AktuellesDynamischesEditfeld] do
    begin
      Parent            := ParentForm;
      Name              :='Edit_'+KompName;
      Left              := PositionLinks+150;
      Top               := PositionOben;
      OnChange          := Ereignis_OnChange;   //TNotify
      OnKeyPress        := Ereignis_OnKeyPress; //TKeyPressEvent
      OnMouseMove       := Komponente_OnMouseMove;
      Color             := clWhite;
      Text              := KompText;
      Visible           := Sichtbar;
      Enabled           := Aktiv;
      Width             := Breite;
    end;
...

Danke für Eure Hilfe

Gruss RWP

Fussball-Robby 22. Mai 2008 20:59

Re: OnChange Ereigniss in eine Combobox/Listbox legen
 
Hey & herzlich willkommen in der DP :dp:
Das hier dürfte dir weiterhelfen.

Roefe68 22. Mai 2008 21:21

Re: OnChange Ereigniss in eine Combobox/Listbox legen
 
Danke für die Willkommenswünsche und die schnelle Antwort.

Ich bin wohl Heute zu lange vor der Kiste gehockt und raffe es nicht mehr.
Die Beschreibung hilft mir im Moment nicht weiter.
Alles was ich möchte ist nur den Wert von

OnKeyPress_Integer_Only
oder
OnKeyPress_Real_Only;

in eine Combo oder Listbox auswählen können und bei der Auswahl an die entsprechende Komponente anhängen.
Hat das schon jemand gemacht von Euch?

Danke

mkinzler 22. Mai 2008 21:24

Re: OnChange Ereigniss in eine Combobox/Listbox legen
 
Einfach in einem Case

oki 22. Mai 2008 21:25

Re: OnChange Ereigniss in eine Combobox/Listbox legen
 
Ähm,

was meinst du jetzt damit?
Zitat:

Alles was ich möchte ist nur den Wert von

OnKeyPress_Integer_Only
oder
OnKeyPress_Real_Only;

in eine Combo oder Listbox auswählen können und bei der Auswahl an die entsprechende Komponente anhängen.
Das mußt du jetzt aber noch mal genauer erklären. Ich hätte die gleiche Antwort wie Fußball-Robby gegeben.

Gruß oki

Roefe68 22. Mai 2008 21:37

Re: OnChange Ereigniss in eine Combobox/Listbox legen
 
Ich möchte auf einem Form diverse Komponente zur Laufzeit erzeugen.
Gerne möchte ich die Möglichkeit geben, dass der Benutzer der Software zur Laufzeit sagen kann, dass er ein Editfeld erstellen kann wo er nur Zahlen eingeben kann.
Dort kann er dann dem OnKeyPress die Hardgecodete OnKeyPress_Integer_Only zuweisen oder OnKeyPress_Real_Only.

Damit er diese einfach Zuweisen kann sollte diese in einer Combobox oder Listbox aufgelistet werden.

mkinzler 22. Mai 2008 21:41

Re: OnChange Ereigniss in eine Combobox/Listbox legen
 
Wie schon erwähnt, würde ich in einem Case anhand des Indexes das .onKeyPress setzen.

Roefe68 22. Mai 2008 21:49

Re: OnChange Ereigniss in eine Combobox/Listbox legen
 
Danke für die Hilfe erstmal, werde mich Morgen melden, muss mich mal hinlegen

Gruss
RWP

oki 22. Mai 2008 21:59

Re: OnChange Ereigniss in eine Combobox/Listbox legen
 
Ich glaub, jetzt hab ich es gerafft. Was das mit KeyPress zu tun hat hab ich zwar immer noch nicht verstanden, aber egal. Klar ist es dann so wie es mkinzler schreibt.
Ich würde dann aber ein Property implementieren bei dem man den Typ setzt. Das ist zum Beispiel eine Möglichkeit:
Delphi-Quellcode:
TValueTyp = (vt_Integer, vt_Real); // oder noch mehr

TValueTypeEdit = class(TEdit)
private
  FValueTyp : Integer;
...
public
  property ValueTyp : TValueTyp read FValueTyp write FValueTyp;
...
Das ist natürlich eine eigene neue Klasse. Du kannst dann zum Beispiel den Typ im Code über dieses neue Property einstellen. Dann vererbst du alle relevanten Methoden und behandelst die Werte indem du den Typ abfragst und ihn dementsprechend behandels. Das dann auch über eine Case:
Delphi-Quellcode:
...
case FValueTyp of
  vt_Integer : // hier alles tun damit nur ein Integer übrig bleibt (z.B. Trunc)
  vt_Real : ..........
end;
Gruß

marabu 23. Mai 2008 05:28

Re: OnChange Ereigniss in eine Combobox/Listbox legen
 
Moin,

ich glaube Markus meinte in Beitrag #7 eher sowas:

Delphi-Quellcode:
procedure TDemoForm.ComboBoxChange(Sender: TObject);
begin
  case ComboBox.ItemIndex of
    0: Edit.OnKeyPress := EditKeyPressIntOnly;
    1: Edit.OnKeyPress := EditKeyPressRealOnly;
    else Edit.OnKeyPress := nil;
  end;
end;
Freundliche Grüße


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:38 Uhr.
Seite 1 von 2  1 2      

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