![]() |
Wie Sender ermitteln ?
Hi,
hoffe der Titel stimmt wenigstens etwas zu dem was jetzt kommt. Habe ein paar Editfelder und in diese kann ich mit Mausrechtsklick per Einfügen aus dem PopUpMenu paar Zahlen einfügen. Nun hab ich hier im Forum mal gesucht und auch was in der Art was ich meine glaub auch gefunden aber ich steig da nicht ganz durch. :freak: bis jetzt ist es so (also nur der einfügen Codeteil !):
Delphi-Quellcode:
usw. da kommen dann noch ein paar. Aber das was eingefügt wird ist immer in der Variable "Ausgabe".
if PopUpMenu1.PopupComponent = Innendurchmesser then
begin Innendruchmesser.Text := Ausgabe; end; if PopupMenuComponent = Querbohrdurchmesser then begin Querbohrdurchmesser.Text := Ausgabe; end; So nun wollt ich wissen ob man das nicht auch kürzer machen kann. Quasi ein Satz für alle Edit's die davon betroffen sind. So auf die Art wie das hier hab ich mir gedacht:
Delphi-Quellcode:
und fertig. Aber irgendwie mach ich da wohl nen Denkfehler. Aber anderseits wenn ich 100 Editfelder habe dann müßte ich ja 100 mal if bnla bla bla then usw. schreiben da wird man ja Wahnsinnig. (bin ich eh schon aber egal).
PopupComponent.Text := Ausgabe;
Please Help me. Gruß Arma. Hoppla was schreib den ich da fürt nen Käse, nicht PopupComponent sonder halt das Editfeld als Sender und Empfänger. Ich hoffe Ihr wißt wie ich das meine. |
Re: Wie Sender ermitteln ?
Wenn du ein array nimmst, dann müsste es gehen.
Code:
Gruß Matze
Zahlen: array[1..irgendeineZahl] of TEdit;
... Zahlen[integer-Variable]:=TEdit.Create; |
Re: Wie Sender ermitteln ?
Oder:
Alle EditFelder markieren und dann im OI bei Ereignisse z.B. auf OnChange doppelklicken und dann das hier einfügen:
Code:
if Sender=Edit1 then...
if Sender=Edit2 then... |
Re: Wie Sender ermitteln ?
Hi Matze,
ähm also genau das wollte ich ja nicht machen mit den ganzen if Abfragen. Geht das den nicht kürzer? und da hatte ich noch nen Fehler hab die Hälfte beim zweiten if Popup usw. vergessen.
Delphi-Quellcode:
if PopUpMenu1.PopupComponent = Innendurchmesser then
begin Innendruchmesser.Text := Ausgabe; end; if PopupMenu1.PopupComponent = Querbohrdurchmesser then begin Querbohrdurchmesser.Text := Ausgabe; end; |
Re: Wie Sender ermitteln ?
die 1-Zeiler-Variante:
Delphi-Quellcode:
(PopUpMenu1.PopupComponent as TEdit).Text := Ausgabe;
|
Re: Wie Sender ermitteln ?
Wow,
ich bin sprachlos. Danke Basilikum. Das ist genau das was ich gesucht habe. :hello: Perfekt. Nun kann ich weiter :coder: und mir nen Haufen Zeilen im Programm sparen. Arma sagt Dankschääää :dancer: |
Re: Wie Sender ermitteln ?
Sorry für meine Posts! :duck:
|
Re: Wie Sender ermitteln ?
Nix passiert Matze.
Ist doch ok. Wir versuchen uns ja alle Gegenseitig zu helfen. :love: Hab euch doch alle lieb. |
Re: Wie Sender ermitteln ?
Hmmm hab nun nochmal ein Prob das genau mit dem zusammenhängt!
Kann ich das mit dem Component as bla bla bla auch mit dem Code machen:
Delphi-Quellcode:
Hab von demselben 8 Stück in meinem Programm aber ändern würde sich immer nur das Z_Position.*** weil das ja je nach aktivem Editfeld wo ich reinschreibe nen andern Namen hat.
procedure TForm1.Z_PositionKeyPress(Sender: TObject; var Key: Char);
var Position: Integer; Stellenpuffer: String; Zeichenpuffer: String; Stellenanzahl: Integer; begin Komma := False; Zeichenpuffer := Z_Position.Text; if Pos(',', Zeichenpuffer) > 0 then Komma := True; if (Komma = True) and (Key = #44) then Key := #0; if (Komma = True) and (Key = #46) then Key := #0; if (Komma = False) and (Key = #46) then Key := ','; if Z_Position.SelStart < Pos(',', Z_Position.Text) then else if Pos(',', Zeichenpuffer) > 0 then begin Stellenanzahl := Length(Zeichenpuffer); Position := Pos(',', Zeichenpuffer); Stellenpuffer := Copy(Zeichenpuffer, Position+1, Stellenanzahl-Position); Stellenanzahl := Length(Stellenpuffer); if Stellenanzahl = 3 then begin if (Key in [#44, #46, #48..#57]) then Key := #0 end; end; if Z_Position.SelStart < Pos('-', Z_Position.Text) then begin if (Key in [#48..#57]) then Key := #0; end; if Key = #13 then Key := #0; if not (Key in [#8, #44..#46, #48..#57]) then Key := #0; if Z_Position.SelStart = 0 then begin if Key = #45 then Key := #45; end; if Z_Position.SelStart > 0 then begin if Key = #45 then Key := #0 end; if Pos('-', Z_Position.Text) > 0 then begin if Key = #45 then Key := #0 end; end; Wär für jede Hilfe dankbar. Gruß Arma. |
Re: Wie Sender ermitteln ?
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:09 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz