hm? schlecht kurz zu beschreiben!

znysk

Erfahrenes Mitglied
Ich habe eine Gruppe von Editfeldern, und möchte eigentlich für alle die gleiche Ausführung machen, nur eben für dieses Feld speziel!

Ein Algorytmus für mehrere Felder is ja kein Problem, aber wenn ich nun das speziel für dieses Feld haben möchte, wie finde ich raus, welchs Feld aktiviert wurde?

Also bsp.!

für 50 Editfelder möchte ich sagen, wenn man auf das Feld doppelt klickt, soll sich genau dieses Feld deaktivieren, bzw aktivieren!

Also:
PROCEDURE Edit1bis50Click(Sender: TObject);
BEGIN
Tedit.ausgewählteFeld.enabled:=True bzw False
END;
 
Hallo,

ich hoffe, ich habe dich richtig verstanden ...

Hier:
Code:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Button1: TButton;
    procedure Aendern(Objekt: TEdit);
    procedure Edit1Click(Sender: TObject);
    procedure Edit2Click(Sender: TObject);
    procedure Edit3Click(Sender: TObject);
  private
    { Private-Deklarationen }

  public
    { Public-Deklarationen }
    
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Aendern(Objekt: TEdit);
begin
  if Objekt.Enabled = True then Objekt.Enabled:= False;
  if Objekt.Enabled = False then Objekt.Enabled:= True;
  //Objekt.Text:= 'Hallo';
end;


procedure TForm1.Edit1Click(Sender: TObject);
begin
  Aendern(Sender as TEdit);
end;

procedure TForm1.Edit2Click(Sender: TObject);
begin
  Aendern(Sender as TEdit);
end;

procedure TForm1.Edit3Click(Sender: TObject);
begin
  Aendern(Sender as TEdit);
end;

end.

Ich habe eben schon die ganze Zeit gerätselt warum der Code erst nicht ging, bis ich bemerkt habe, dass ich den Funktionsaufruf im OnChange-Ereignis hatte ... ich Depp ich. ;-)
 
Ja klar, aber da muss ich ja trotzdem noch für jedes einzelne Feld ne eigene Procedure machen, das wollte ich ja eigentlich vermeiden, und ich wollte in deer einen Procedure rausfinden, welches Feld geklickt wurde?

Aber danke erstmal für die Idee das mit dem Senden, des Objekts brauch ich für ne andere Sache!
THX!
--------------------------------------------------------------------
warte mal, ich habe mir das grade nochmal angeguckt, kan es sein, das in dem "Sender" beim Aufruf der
Procedure EditxyClick(Sender : TObject)
der Name des geklickte Elements steht, wenn das so ist, dann ginge das ja!
Ich melde mich, wenn ich probiert habe!

THX!
 
Zuletzt bearbeitet:
:| :| :|

Code:
PROCEDURE Edit1bis50Click(Sender : TObjekt);
BEGIN
IF Tedit(Sender).enabled = TRUE THEN
Tedit(Sender).enabled := False
                                ELSE
Tedit(Sender).enabled := TRUE;
END;

;(( ;(( ;((
Jetz muss ich mein ganzes Prog nochmal umschreiben, und ann mir die ganzen Schleifen sparen, die immer alle Felder berücksichtigen, denn ich kann ja jetzt gezielt das gewählte Feld nehmen!(spart Rechenleistung!)
 
ich wollte nur mal folgendes anmerken:

dein code:
if Objekt.Enabled = True then Objekt.Enabled:= False;
if Objekt.Enabled = False then Objekt.Enabled:= True;

mein cod:
objekt.enabled := not objekt.enabled;

bei deinem code sollte es egtl. zu einer endlosschleife kommen.
oder täusche ich mich da?

noch was: wenn ich 50 felder (buttons, ...) habe, und alle das selbe (oder etw. ähnl.) tun sollen, dann kann es NIE sein, dass ich 50 mal den selben code schreiben muss. wenn du da mal überlegst, kann das gar nicht sein, es sei denn die delphi entwickler hätten schon alle programme vorher geschrieben, bevor sie die benutzer geschrieben hätten. Fazit: es gibt immer den passenden code!

fertig.
 
Zurück