Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Was ist hieran falsch? (https://www.delphipraxis.net/7765-ist-hieran-falsch.html)

Pseudemys Nelsoni 21. Aug 2003 01:23


Was ist hieran falsch?
 
sorry für den topic namen, aber mir fällt dafür keine bezeichnung ein. Also es geht darum das ich jedem label eine andere farbe geben möchte sobald die maus drauf ist, aber irgendwie geht das:

Code:
procedure mEnterLabel(Sender: TLabel);
begin
  with sender do
  begin
    Color := $00E1AE7A;
    Font.Color := $00603A0C;
  end;
end;


procedure TForm1.Label5MouseEnter(Sender: TObject);
begin
  mEnterLabel(self);
end;


der aufruf "mEnterLabel(self);" ist falsch, mit "mEnterLabel(self.label5);" gehts aber.... self ist doch aber schon label5, da das ereignis auf dem label5 stattfindet, oder nicht? also wozu noch .label5 hinter self? dann reicht ja auch "label5" allein

oder mach ich ganz was falscH?

Luckie 21. Aug 2003 01:26

Re: Was ist hieran falsch?
 
Self ist deine Form1, wenn es eien Methode von TForm1 ist.

Und probier mal
Delphi-Quellcode:
with (Sender as TLable) do

Pseudemys Nelsoni 21. Aug 2003 01:31

Re: Was ist hieran falsch?
 
hi luckie, das mit "with (Sender as TLabel) do" hatte ich auch, ich habs nur hier um es zu posten gelöscht, da ich dachte das es quatsch ist, denn da: "procedure mEnterLabel(Sender: TLabel); " ist der sender doch schon TLabel, oder?

Luckie 21. Aug 2003 01:40

Re: Was ist hieran falsch?
 
Nein. Das habe ich dir doch gerade gesagt. Da Label1MouseEnter eine Methode von TForm1 ist, bezeichent self das Formular1.

Mach mal einen Button auf dein Formular, Doppelklick darauf und dann schreib mal:
Delphi-Quellcode:
  ShowMessage(self.Caption);
Aber da ich mir schon fast dachte, dass du es nicht hinbekommst, deswegen habe ich dir in der Zwischenzeitz mal schnell was gemacht:
Delphi-Quellcode:
type
  TForm1 = class(TForm)
    Label1: TLabel;
    procedure MyLabelMouseEnter(Sender: TObject);
    procedure MylableMouseLeave(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.MyLabelMouseEnter(Sender: TObject);
begin
  with (Sender as TLabel) do
  begin
    Font.Color := clRed;
  end;
end;

procedure TForm1.MylableMouseLeave(Sender: TObject);
begin
  with (Sender as TLabel) do
  begin
    FOnt.Color := clBlack;
  end;
end;
Du mußt deinen Labels jetzt nur noch die Methoden MyLabelMouseEnter und MyLabelMouseLeave im OI zuweisen.

Pseudemys Nelsoni 21. Aug 2003 01:48

Re: Was ist hieran falsch?
 
Zitat:

Aber da ich mir schon fast dachte, dass du es nicht hinbekommst
danke :mrgreen:


der code funktioniert, die erklärung war auch gut, danke :)


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