Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Edit.Name auf teilname untersuchen???


Killi - Fr 10.01.03 16:49
Titel: Edit.Name auf teilname untersuchen???
Hi!

Wenn ich auf n Label, das EPatient700_1 heißt klicke - will ich das "700" rausholen - wie mach ich das? Gibts da auch n Befehl wie FindComponent o.ä.???
Bitte helft mir - brauche es schnellstmöglich...
Schonmal danke!


Klabautermann - Fr 10.01.03 17:58

Hallo,

wen du feststellen willst ob der Teilstring enthalten ist kannst du das mit pos machen. Wenn du ihn rauskopieren willst verwendest du zusätzlich noch copy.
Genauere Informationen dazu findest du wie immer in der Delphi-Hilfe.

Gruß
Klabautermann


Wolff68 - Fr 10.01.03 18:28

Sie will aber nicht den Inhalt, sondern den Namen der Komponente, die gedrückt wurde, oder?

Ich nehme mal an, du verwendest bei mehreren Labels die gleiche OnClick. (Sonst wüsstest Du ja den Name)
Der Name ist in der Eigenschaft .Name enthalten.
Nur hast Du ja 'nur' den Sender, und Sender.Name funktioniert leider nicht.
Also mußt Du für alle Typen die dieses OnClick aufrufen folgendes machen:

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
procedure TForm1.IrgendwasClicked(Sender: TObject);
begin
  If Sender is TLabel then
    Edit1.Text := (Sender as TLabel).Name;
  If Sender is TButton then
    Edit1.Text := (Sender as TButton).Name;
  // eventuell andere aufrufende ObjektKlassen hinzufügen
end;
Wobei es egal ist wieviele Labels oder Buttons das aufrufen.

Den Rest kannst wie gesagt mit pos, copy oder sonstigem erledigen.


Killi - Mo 13.01.03 18:13

Danke für die Antwort, aber sowas brauche ich nicht...ich hab zum Bsp. n Edit-Feld, das EPatient700_1 heißt und noch ein paar andere, die zum Bsp. EPatient1000_1 o.ä. heißen - wie ihr seht, nach Zeit geordnet (7:00 und 10:00) - jetzt will ich die Zahl hinter dem Unterstrich, also 1! Wie krieg ich das raus??? Brauch also ne Prozedur, mit der ich die letzte Stelle des Namens rausbekomme....!


Tino - Mo 13.01.03 20:10

Killi hat folgendes geschrieben:
Wenn ich auf n Label, das EPatient700_1 heißt klicke - will ich das "700" rausholen

Killi hat folgendes geschrieben:
jetzt will ich die Zahl hinter dem Unterstrich

Was denn nun? Die 700 oder die 1? Wie auch immer: Mit der Funktion Copy sollte das eigentlich klappen!

Gruß
TINO


Wolff68 - Mo 13.01.03 20:33

Und falls Du wirklich nur die letzte Stelle benötigst kannst das auch mit NameString[Length(NameString)-1] machen.
Wobei hier NameString für die Stringvariable steht, in der Du den Name hast den Du auswerten willst.