Delphi-PRAXiS
Seite 2 von 2     12   

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 TImage um Eigenschaften und Ereignissen erweitern (https://www.delphipraxis.net/60521-timage-um-eigenschaften-und-ereignissen-erweitern.html)

marabu 9. Jan 2006 18:16

Re: TImage um Eigenschaften und Ereignissen erweitern
 
Du kannst einem oder mehreren Images jetzt das gewünschte Verhalten beibringen. Da wo du keine Routine an OnMouseEnter() zuweist, da verhält sich das Image dann so wie gehabt. Jetzt klarer?

Delphi-Quellcode:
procedure TMainForm.ImageMouseEnter(Sender: TObject);
begin
  // hier dein Code
end;

procedure TMainForm.ButtonClick(Sender: TObject);
var
  bi: TBetterImage;
begin
  bi := TBetterImage.Create(self);
  bi.OnMouseEnter := ImageMouseEnter;
end;
marabu

bluescreen25 9. Jan 2006 18:50

Re: TImage um Eigenschaften und Ereignissen erweitern
 
funktioniert bei mir leider net so ganz....

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var BImage :TBetterImage;
 begin
   BImage := TBetterImage.Create(self);
   BImage.OnMouseEnter := ImageMouseEnter;
   BImage.OnMouseLeave := ImageMouseLeave;
   Hintergrund.Picture.LoadFromFile(extractfilepath(paramstr(0))+'back.jpg');
   close_btn_img.SetBounds(0, 225, 210, 60);
   close_btn_img.Picture.LoadFromFile(extractfilepath(paramstr(0))+'button.jpg');
 end;


procedure TForm1.ImageMouseEnter(Sender: TObject);
 begin
  close_btn_img.Picture.LoadFromFile(extractfilepath(paramstr(0))+'buttonB.jpg');
 end;


procedure TForm1.ImageMouseLeave(Sender: TObject);
 begin
   close_btn_img.Picture.LoadFromFile(extractfilepath(paramstr(0))+'button.jpg');
 end;


procedure TForm1.close_btnClick(Sender: TObject);
 begin
   form1.Close;
 end;

nochmal eben editiert, weil Images nicht erkennbar !

ichbins 9. Jan 2006 18:52

Re: TImage um Eigenschaften und Ereignissen erweitern
 
Als erstes vergisst du das Image und leitest deine Komponente am besten von TWinControl ab. Das hat die ganzen Events nämlich schon.

bluescreen25 9. Jan 2006 18:57

Re: TImage um Eigenschaften und Ereignissen erweitern
 
Zitat:

Zitat von ichbins
Als erstes vergisst du das Image und leitest deine Komponente am besten von TWinControl ab. Das hat die ganzen Events nämlich schon.

Hintergrund: TImage;
close_btn_img: TImage;

marabu 9. Jan 2006 19:48

Re: TImage um Eigenschaften und Ereignissen erweitern
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo bluescreen,

schau dir einmal diese Demo an.

Freundliche Grüße vom marabu

bluescreen25 9. Jan 2006 20:55

Re: TImage um Eigenschaften und Ereignissen erweitern
 
Hmm das funktioniert, doch ich suchte eigendliche eine globalere Lösung, deshalb hatte ich versucht es auf ein in der VCL erstelltes Image zu beziehen. Deshalb funktionierte meines nicht.
Das wird ja eine Menge Code für jeden Button werden.... Leider kann ich jetzt nicht mehr die Vorzüge der VCL nutzen um die anderen Eigenschaften und Ereignisse zu setzen.

Vielen Dank !

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
 begin
   Hintergrund.Picture.LoadFromFile(extractfilepath(paramstr(0))+'back.jpg');
   img := TBetterImage.Create(self);
    with img do
    begin
      Parent := self; //<--- was steckt dahinter? ohne dem kein Image sichtbar !
      SetBounds(0, 225, 210, 60);
      OnMouseEnter := ImageMouseEnter;
      OnMouseLeave := ImageMouseLeave;
      Picture.LoadFromFile(extractfilepath(paramstr(0))+'button.jpg');
    end;
 end;

procedure TForm1.ImageMouseEnter(Sender: TObject);
 begin
   img.Picture.LoadFromFile(extractfilepath(paramstr(0))+'buttonB.jpg');
 end;


procedure TForm1.ImageMouseLeave(Sender: TObject);
 begin
   img.Picture.LoadFromFile(extractfilepath(paramstr(0))+'button.jpg');
 end;

SirThornberry 9. Jan 2006 21:13

Re: TImage um Eigenschaften und Ereignissen erweitern
 
Liste der Anhänge anzeigen (Anzahl: 2)
Im anhang ist mal ein Beispiel wie man das ganze macht damit es für die auf das Formular gepackten TImages funktioniert (gibt da noch eine andere Variante bei der man die abgeleitete Komponente in eine extra Unit packt).

[Edit]Bei der Variante mit Auslagerung in eine seperate Unit muss man darauf achten das diese seperate Unit hinter der eigentlichen Unit (ExtCtrls) in den Uses aufgeführt wird.[/Edit]

bluescreen25 9. Jan 2006 21:35

Re: TImage um Eigenschaften und Ereignissen erweitern
 
Zitat:

Zitat von SirThornberry
Im anhang ist mal ein Beispiel wie man das ganze macht damit es für die auf das Formular gepackten TImages funktioniert (gibt da noch eine andere Variante bei der man die abgeleitete Komponente in eine extra Unit packt).

[Edit]Bei der Variante mit Auslagerung in eine seperate Unit muss man darauf achten das diese seperate Unit hinter der eigentlichen Unit (ExtCtrls) in den Uses aufgeführt wird.[/Edit]

Das ist ja genau die Erweiterung von marabus Beispiel in Kombination mit der VCL.
Da kann ich nur sagen :

:thumb: Großen Dank an euch beiden für die Mühe!
Das hätte ich nie hinbekommen, aber hier kann ich die Zusammenhänge mir mal einprägen.


Gruß aus Geldern


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:31 Uhr.
Seite 2 von 2     12   

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