Morgen,
Ich hab ein kleines Problem, allerdings komm ich grad auf keine Lösung.
Ich arbeite gerade ein einem Projekt das doch schon so an die 20 Forms enthält.
Unter diesen Forms befinden sich viele Suchmasken, also ein ganzer Dialog voller Input Felder und eine Suche kann gestartet werden in dem ich auf einen Suchenknopf drücke.
Jetzt hatte ich mir aber gedacht das ich das doch komfortabler machen könnte indem ich es dem Benutzer ermögliche durch einen Druck der Enter-Taste in jedem der Eingabefelder die Suche auszulösen.
Allerdings bin ich zu faul dazu für jeden TEdit oder TLabeledEdit ein eigenes onKeyPress zu schreiben das einfach nur prüft ob die gedrückte Taste "Enter" ist und dann die Suche-Funktion startet.
Also hab ich mir gedacht ich schreib eine kleine Funktion die mir alle Inputs auf der Form zusammen sucht und ihnen die entsprechende Funktion zuweist (prüfe auf Enter und dann Suche starten).
Delphi-Quellcode:
// Weist allen input Feldern auf der Sendernform (Dialog) ihre dazugehörige Suchenfunktion zu
procedure assignOnEnterSearch (Sender : TForm);
var
iCompCount : integer;
tmpComp : TComponent;
begin
// Gehe alle Komponenten durch
For iCompCount := Sender.ComponentCount-1 downTo 0 do
begin
tmpComp := Sender.Components[iCompCount];
// Prüfe ob die Komponente ein Inputfeld ist
if (tmpComp is TEdit) or (tmpComp is TLabeledEdit) then
begin
TCustomEdit(tmpComp).onKeyUp := {spätere Funktion};
end;
end;
end;
Jetzt erhalte ich allerdings immer die Nachricht (vom Compiler) das onKeyUp ein undefinierter Bezeichner ist.
Erster Gedanke: "Klar, da fehlt nur noch die entsprechende
Unit beim Uses."
Also gleich mal nachgeschaut woher TCustomEdit seine Ereignisse erbt, von TWinControl.
Und das stammt aus der
Unit Controls und das steht inzwischen in meinem Uses, aber immer noch die gleiche Compilermeldung.
Delphi-Quellcode:
uses SysUtils, Dialogs, StrUtils, DBTables, Variants, Math, records,
Forms, StdCtrls, ExtCtrls, Classes, Controls;
Muss ich das anderst deklarieren oder hab ich sonst was übersehen?
Bin auch offen wenn irgendjemand ne Idee hat um das ganze Problem eleganter zu lösen...