Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi benutzen von objektnamen in eigenen prozeduren! (https://www.delphipraxis.net/107866-benutzen-von-objektnamen-eigenen-prozeduren.html)

Torley 3. Feb 2008 19:42


benutzen von objektnamen in eigenen prozeduren!
 
wieso kann man in einer eigenen prozedur nicht die farbe von z.B. einem panel ändern?
ich bräuchte diese funktion aber damit ich mir einiges an quelltext sparen kann!
Delphi-Quellcode:
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;
  procedure farbwechsel(Farbe: integer);

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure farbwechsel(Farbe: integer);
begin
  if Farbe = 1
   then panel1.color:= clred;
  if Farbe = 2
   then panel1.color:= clblue;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 farbwechsel(1);
end;
torley

marabu 3. Feb 2008 19:44

Re: benutzen von objektnamen in eigenen prozeduren!
 
Hallo Torley,

wenn du FarbWechsel() zu einer Methode deiner Form machst, dann kannst du deine Panel problemlos ansprechen.

Grüße vom marabu

peschai 4. Feb 2008 06:42

Re: benutzen von objektnamen in eigenen prozeduren!
 
In Ergänzung zu Marabu ....

Delphi-Quellcode:

  TForm1
    ...
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private-Deklarationen } 
    procedure farbwechsel(Farbe: integer);
  public
    { Public-Deklarationen } 
  end;
 
var
  Form1: TForm1;

implementation

{$R *.dfm} 

procedure TForm1.farbwechsel(Farbe: integer);
begin
  if Farbe = 1 
   then panel1.color:= clred;
  if Farbe = 2 
   then panel1.color:= clblue;
  // else ???? 
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  farbwechsel(1);
end;

cruiser 4. Feb 2008 06:54

Re: benutzen von objektnamen in eigenen prozeduren!
 
Oder du übergibst der Methode, welches panel gefärbt werden soll:

Delphi-Quellcode:
procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;
  procedure farbwechsel(Panel: TPanel; Farbe: integer);

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure farbwechsel(Panel: TPanel; Farbe: integer);
begin
  if Panel = nil then Exit; // Panel ist nicht initialisiert

  if Farbe = 1 then Panel.color:= clred;
  if Farbe = 2 then Panel.color:= clblue;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
farbwechsel(panel1, 1);
end;

Torley 4. Feb 2008 12:19

Re: benutzen von objektnamen in eigenen prozeduren!
 
dankeschön fünktioniert prächtig!

DeddyH 4. Feb 2008 12:22

Re: benutzen von objektnamen in eigenen prozeduren!
 
Kleiner Verbesserungsvorschlag:
Delphi-Quellcode:
procedure farbwechsel(Panel: TPanel; Farbe: integer);
begin
  if Panel = nil then Exit; // Panel ist nicht initialisiert

  case Farbe of
    1: Panel.color:= clred;
    2: Panel.color:= clblue;
  end;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:58 Uhr.

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