Hallo zusammen,
ein kleines Problem hindert mich momentan meine ToDo-Liste abzuarbeiten
Kurz zur Beschreibung:
* Es gibt viele TEdit- Felder fuer die Eingabe (Logisch
)
* Geht der Nutzer nun mit der Maus ueber diese Eingabe soll ein Hilfetext erscheinen.
(Das ganze soll allerdings nicht mit "Hint" geloest werden (Man muss zu lange warten - es liest kaum einer))
* Der Hilfetext steht in einem extra dafuer angelegten TMemo-Feld
- Soweit klappt natuerlich alles
Ich habe alle TEdit-Felder mit der OnMouseEnter- Funktion auf eine Prozedur (OnMouseOverHelp) ausgestattet.
Diese sieht momentan, ganz simpel beispielhaft fuer 2 Felder so aus:
Delphi-Quellcode:
procedure TForm1.OnMouseOverHelp(Sender: TObject);
begin
if (sender as tcomponent).name = 'eingabe1' then
MemoHelp.Text := 'Hilfetext 1 - Test 1 2 3 4 5'
else if (sender as tcomponent).name = 'eingabe2' then
MemoHelp.Text := 'Hilfetext 2 - Test 6 7 8 9 0';
end;
Stellt man sich das ganze fuer 30-40 Felder vor, ist es natuerlich total unuebersichtlich.
Meine Idee war jetzt, das ganze in ein Array, bzw. eine Switch-Case zu setzen.
Problem 1)
So weit mir bekannt ist, kann ich Arrays aber nicht ueber array['eingabe1'] ansprechen - sondern nur ueber array[1].
(Egal ob das Array aus Strings oder Integer besteht)
Problem 2)
Das gleiche gilt fuer Switch-Case. Auch hier kann ich nur ueber Integer gehen.
Eine Moeglichkeit waere, das Switch-Case zu verbiegen - Hier habe ich schon einige Ansaetze gesehen, wie man dieser Funktion auch Strings beibringt. Ist das ganze wirklich so sauber?
Gibt es denn Moeglichkeiten, das Array per Namen anzusprechen? Alternativen?
Wie koennte man das Problem noch schoener loesen?
Bin natuerlich fuer jede Hilfe Dankbar!
Gr.
aayb