AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Neue TImage Komponente entwickeln

Ein Thema von pmc · begonnen am 12. Sep 2003 · letzter Beitrag vom 13. Sep 2003
Antwort Antwort
Seite 1 von 2  1 2      
pmc

Registriert seit: 9. Sep 2003
Ort: Düsseldorf
78 Beiträge
 
Delphi 6 Personal
 
#1

Neue TImage Komponente entwickeln

  Alt 12. Sep 2003, 21:21
Ich möchte gerne ein Image so ändern das ich insgesamt drei bilder angeben kann und das je nach MOuse_Event eines der drei bilder angezeigt wird.

Wenn Die MAus über dem image feld ist soll bild 1 gezeigt werden
wenn die Linke maustaste gedrückt wird soll bild 2 gezeigt werden
und wenn die maus nicht über dem feld ist soll bild 3 gezeigt werden.

Kann mir da jdm weiterhelfen????

wäre nett!!

MFG PMC
Woher soll ich wissen was ich denke,
wenn ich noch nicht gehört habe was ich sage?
  Mit Zitat antworten Zitat
Ronny Grabo

Registriert seit: 16. Mai 2003
41 Beiträge
 
#2

Re: Neue TImage Komponente entwickeln

  Alt 12. Sep 2003, 22:54
Das könnte man auch mit THarmFade realisieren, glaub ich.

Kannst es Dir ja mal angucken (harmfade.zip) :

Delphimania

Gruß Ronny.
---
Meine Internetseite : http://www.ronny-grabo.de
  Mit Zitat antworten Zitat
Ronny Grabo

Registriert seit: 16. Mai 2003
41 Beiträge
 
#3

Re: Neue TImage Komponente entwickeln

  Alt 12. Sep 2003, 23:25
Habs getestet und es funktioniert mit HarmFade. Habs mal kurz zusammen gepackt und als Datei angefügt :
Angehängte Dateien
Dateityp: zip harmfade_test.zip (5,9 KB, 18x aufgerufen)
---
Meine Internetseite : http://www.ronny-grabo.de
  Mit Zitat antworten Zitat
pmc

Registriert seit: 9. Sep 2003
Ort: Düsseldorf
78 Beiträge
 
Delphi 6 Personal
 
#4

Re: Neue TImage Komponente entwickeln

  Alt 12. Sep 2003, 23:30
Harmfade kann ich nicht sogut gebrauchen!!!!

Ich müsste eigentlich nur wissen wie ich der property "Picture" von
TImage eine Bitmap zuweisen kann(Inerhalb einer procedure der Komponente, als nicht im späteren programm)

Also angenommen ich nenne meine neue komponente
TNewImage
dann muss ich doch irgendwie auf die vererbten properties zugreifen können.

man kann ja TImage.Picture.loadfromfile('datei.bmp');

ICh möchte das selbe machen nur eben inerhalb der komponente.
Woher soll ich wissen was ich denke,
wenn ich noch nicht gehört habe was ich sage?
  Mit Zitat antworten Zitat
pmc

Registriert seit: 9. Sep 2003
Ort: Düsseldorf
78 Beiträge
 
Delphi 6 Personal
 
#5

Re: Neue TImage Komponente entwickeln

  Alt 12. Sep 2003, 23:36
Hier mal mein Code :
Delphi-Quellcode:
 TBBox = class(timage)
  private
    FBBoxState : TBBoxState;
    FBitmapNormal : String;
    FBitmapOver : String;
    FBitmapClick : String;
    { Private declarations }
  protected
    procedure MouseMove(shift: TShiftState; x,y:Integer); override;
    { Protected declarations }
  public
    property BBoxState : TBBoxState read FBBoxState write FBBoxState;
    { Public declarations }
  published
    property Width;
    property BmpNormal : String read FBitmapNormal write FBitmapNormal;
    property BmpOver : String read FBitmapOver write FBitmapOver;
    property BmpClick : String read FBitmapClick write FBitmapClick;
    { Published declarations }
  end;

procedure Register;

implementation

procedure TBBox.MouseMove(shift: TShiftState; x,y:Integer);
begin
TBBox.picture.loadfromfile(FBitmapOver); (aber das funzt ja so nicht)
inherited MouseMove(shift,x,y);
end;
Woher soll ich wissen was ich denke,
wenn ich noch nicht gehört habe was ich sage?
  Mit Zitat antworten Zitat
Ronny Grabo

Registriert seit: 16. Mai 2003
41 Beiträge
 
#6

Re: Neue TImage Komponente entwickeln

  Alt 13. Sep 2003, 11:49
Hallo,

Zitat:
Ich müsste eigentlich nur wissen wie ich der property "Picture" von
TImage eine Bitmap zuweisen kann(Inerhalb einer procedure der Komponente, als nicht im späteren programm)
Hier mal ein bischen Code :
Delphi-Quellcode:
    TBBox = class(timage)
    private
// FBBoxState : TBBoxState;
    FBitmapNormal : String;
    FBitmapOver : String;
    FBitmapClick : String;
    MyPicture:TPicture;
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
    { Private declarations }
  protected
    procedure SetzeBild(Bild: TPicture);
    procedure MouseMove(shift: TShiftState; x,y:Integer); override;
    { Protected declarations }
  public
// property BBoxState : TBBoxState read FBBoxState write FBBoxState;
    { Public declarations }
  published
    property Width;
    property BmpNormal : String read FBitmapNormal write FBitmapNormal;
    property BmpOver : String read FBitmapOver write FBitmapOver;
    property BmpClick : String read FBitmapClick write FBitmapClick;
    { Published declarations }
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('Beispiele', [TBBox]);
end;

constructor TBBox.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
MyPicture:=TPicture.Create;
end;

destructor TBBox.Destroy;
begin
MyPicture.Free;
inherited Destroy;
end;
procedure TBBox.SetzeBild(Bild: TPicture);
begin
MyPicture:=Bild;
Self.picture:=Bild;
end;

procedure TBBox.MouseMove(shift: TShiftState; x,y:Integer);
begin
MyPicture.LoadFromFile(FBitmapOver); //aber das funzt jetzt
SetzeBild(MyPicture);
inherited MouseMove(shift,x,y);
end;
Gruß Ronny.
---
Meine Internetseite : http://www.ronny-grabo.de
  Mit Zitat antworten Zitat
pmc

Registriert seit: 9. Sep 2003
Ort: Düsseldorf
78 Beiträge
 
Delphi 6 Personal
 
#7

Re: Neue TImage Komponente entwickeln

  Alt 13. Sep 2003, 12:59
Wie kann ich denn eine Liste machen wo ich im design modus
dann eingeben kann.
ICh will das so ähnlich machen wie bei einer FileListBox mit dem FIlter.

Z.B. Bezeichnung - Wert1 - Wert2 (als property-praktisch wie eine Stringliste)

Beispiel :
Die property soll z.b. "Koordinaten" heisen
und die liste sähe dann z.B. so aus :

BEzeichnung - X - Y
Punkt1 10 5
Punkt2 205 55
:
:
Punktn xx yy
Woher soll ich wissen was ich denke,
wenn ich noch nicht gehört habe was ich sage?
  Mit Zitat antworten Zitat
Ronny Grabo

Registriert seit: 16. Mai 2003
41 Beiträge
 
#8

Re: Neue TImage Komponente entwickeln

  Alt 13. Sep 2003, 14:49
Das war die Vorgabe :
Zitat:
Ich möchte gerne ein Image so ändern das ich insgesamt drei bilder angeben kann und das je nach MOuse_Event eines der drei bilder angezeigt wird.
Jetzt hätte ich doch ganz gern gewußt in welche Richtung gegangen werden soll.

Meiner Meinung nach müssten ersteinmal MouseOver, MouseLeave und MouseEnter eingebunden werden, oder ?

Gruß Ronny.

PS: Oder ich hab´s nicht ganz geschnallt.
---
Meine Internetseite : http://www.ronny-grabo.de
  Mit Zitat antworten Zitat
pmc

Registriert seit: 9. Sep 2003
Ort: Düsseldorf
78 Beiträge
 
Delphi 6 Personal
 
#9

Re: Neue TImage Komponente entwickeln

  Alt 13. Sep 2003, 15:00
Zitat von Ronny Grabo:
Meiner Meinung nach müssten ersteinmal MouseOver, MouseLeave und MouseEnter eingebunden werden, oder ?
Kann ich MouseLeave auch bei einer TImage Komponente Überschreiben und wenn ja wie???
Auf jeden fall müsste das BmpNormal geladen werden sobald die maus nicht mehr auf dem objekt ist.

Jetzt zum eigentlichen :
Ich brauche eine Property der ich insgesamt 7 werte zuweisen kann
(das würde ich ja eigentlich mit einem Record machen)
Delphi-Quellcode:
Eigenschft = Record
  BmpNormal : TPicture;
  BmpOver : TPicture;
  BmpClick : TPicture;
  x : Integer;
  y : Integer;
  xx : Integer;
  yy : Integer;
end;
Aber das möchte ich wie in so eine tabelle eingeben können
aber dann noch als eine Art Array.

So das bei MouseMove nach den coordinaten(x,y,xx,yy) das BmpOver geladen wird usw.
Woher soll ich wissen was ich denke,
wenn ich noch nicht gehört habe was ich sage?
  Mit Zitat antworten Zitat
Ronny Grabo

Registriert seit: 16. Mai 2003
41 Beiträge
 
#10

Re: Neue TImage Komponente entwickeln

  Alt 13. Sep 2003, 21:47
Hallo,

hier die Komponente, laut Vorgabe, ohne Fehlerbehandlungen :
Delphi-Quellcode:
type
    TBBox = class(timage)
    private
    FBitmapOver : String;
    FBitmapLeave: String;
    FBitmapClick : String;
    MyPicture:TPicture;
    procedure MausRaus(var WinNachricht:TMessage);message CM_MOUSELEAVE;
    procedure MausRein(var WinNachricht:TMessage);message CM_MOUSEENTER;
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
    { Private declarations }
  protected
    FOnMouseEnter: TNotifyEvent;
    FOnMouseLeave:TNotifyEvent;
    FOnMouseClick: TNotifyEvent;
    procedure Click; override;
    procedure SetzeBild(Bild: TPicture);
    { Protected declarations }
  public
    { Public declarations }
  published
    property BmpOver : String read FBitmapOver write FBitmapOver;
    property BmpLeave : String read FBitmapLeave write FBitmapLeave;
    property BmpClick : String read FBitmapClick write FBitmapClick;
    property OnMouseLeave: TNotifyEvent read FOnMouseLeave
        write FOnMouseLeave;
    { Published declarations }
  end;

procedure Register;
implementation

procedure Register;
begin
  RegisterComponents('Beispiele', [TBBox]);
end;

constructor TBBox.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
MyPicture:=TPicture.Create;
end;

destructor TBBox.Destroy;
begin
MyPicture.Free;
inherited Destroy;
end;

procedure TBBox.SetzeBild(Bild: TPicture);
begin
MyPicture:=Bild;
Self.picture:=Bild;
end;

procedure TBBox.Click();
begin
inherited Click;
   MyPicture.LoadFromFile(FBitmapClick);
   SetzeBild(MyPicture);
end;

procedure TBBox.MausRaus(var WinNachricht:TMessage);
begin
  inherited;
  if WinNachricht.Msg=CM_MOUSELEAVE then
  MyPicture.LoadFromFile(FBitmapLeave);
  SetzeBild(MyPicture);
end;

procedure TBBox.MausRein(var WinNachricht:TMessage);
begin
  inherited;
  if WinNachricht.Msg=CM_MOUSEENTER then
  MyPicture.LoadFromFile(FBitmapOver);
  SetzeBild(MyPicture);
end;
Gruß Ronny.
---
Meine Internetseite : http://www.ronny-grabo.de
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:45 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