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 Wie Sender ermitteln ? (https://www.delphipraxis.net/7841-wie-sender-ermitteln.html)

Armageddon 22. Aug 2003 16:18


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:
if PopUpMenu1.PopupComponent = Innendurchmesser then
begin
  Innendruchmesser.Text := Ausgabe;
end;
if PopupMenuComponent = Querbohrdurchmesser then
begin
  Querbohrdurchmesser.Text := Ausgabe;
end;
usw. da kommen dann noch ein paar. Aber das was eingefügt wird ist immer in der Variable "Ausgabe".

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:
PopupComponent.Text := Ausgabe;
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).

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.

Matze 22. Aug 2003 16:21

Re: Wie Sender ermitteln ?
 
Wenn du ein array nimmst, dann müsste es gehen.

Code:
Zahlen: array[1..irgendeineZahl] of TEdit;

...

Zahlen[integer-Variable]:=TEdit.Create;
Gruß Matze

Matze 22. Aug 2003 16:24

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...

Armageddon 22. Aug 2003 16:28

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;

Basilikum 22. Aug 2003 16:33

Re: Wie Sender ermitteln ?
 
die 1-Zeiler-Variante:
Delphi-Quellcode:
(PopUpMenu1.PopupComponent as TEdit).Text := Ausgabe;

Armageddon 22. Aug 2003 16:41

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:

Matze 22. Aug 2003 16:45

Re: Wie Sender ermitteln ?
 
Sorry für meine Posts! :duck:

Armageddon 22. Aug 2003 16:49

Re: Wie Sender ermitteln ?
 
Nix passiert Matze.

Ist doch ok. Wir versuchen uns ja alle Gegenseitig zu helfen.

:love: Hab euch doch alle lieb.

Armageddon 22. Aug 2003 18:09

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:
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;
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.

Wär für jede Hilfe dankbar.


Gruß Arma.

Niko 22. Aug 2003 20:00

Re: Wie Sender ermitteln ?
 
Zitat:

Zitat von Armageddon
Kann ich das mit dem Component as bla bla bla auch mit dem Code machen:

Ja, einfach Z_Position durch (Sender as TEdit) ersetzen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:22 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