AGB  ·  Datenschutz  ·  Impressum  







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

Probleme mit Property einer Komponente

Ein Thema von Helmi · begonnen am 17. Nov 2004 · letzter Beitrag vom 28. Dez 2004
Antwort Antwort
Seite 1 von 3  1 23      
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.312 Beiträge
 
Delphi XE2 Professional
 
#1

Probleme mit Property einer Komponente

  Alt 17. Nov 2004, 20:18
Hallo,

ich weiss mir keinen Rat mehr

Ich habe eine Komponente die als Property ein Icon hat (guckst du Code):

Code:
    property Icon: TIcon read FIcon write SetIcon;
Wobei gilt:
Code:
private
  FIcon: TIcon;
  procedure SetIcon(Value: TIcon);

{...}


procedure TTrayIcon.SetIcon(Value: TIcon);
begin
  //Wird aufgerufen, wenn sich die Variable "FIcon" ändert
  FIcon.Assign(Value);

  ModifyIcon;
end;
Eigenartiger weise wird die Procedure SetIcon nicht "durchlaufen".
Festgestellt hab ich es, indem ich einfach mal eine showmessage('hallo'); eingebaut hab.

Weiss jemand warum die Procedure ned durchlaufen wird?

mfg
Helmi
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#2

Re: Probleme mit Property einer Komponente

  Alt 17. Nov 2004, 20:23
Ich würde schatzen, du musst statt
  FIcon.Assign(Value); folgendes schreibenSetIcon (Value); Damit nicht einfach die Variable geändert wird, sondern Funktion dazu auch aufgerufen wird ...
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.312 Beiträge
 
Delphi XE2 Professional
 
#3

Re: Probleme mit Property einer Komponente

  Alt 17. Nov 2004, 20:25
ne - hat auch nix gebracht
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#4

Re: Probleme mit Property einer Komponente

  Alt 17. Nov 2004, 20:38
gabs da keinen fehler????

also ma logisch...

bei dem code:

Delphi-Quellcode:
private
  FIcon: TIcon;
  procedure SetIcon(Value: TIcon);


procedure TTrayIcon.SetIcon(Value: TIcon);
begin
  //FIcon.Assign(Value);
   SetIcon(Value);
end;
sollte sich eigentlich so einiges aufhängen


kannst du net sagen FIcon:=Value;?
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#5

Re: Probleme mit Property einer Komponente

  Alt 17. Nov 2004, 20:39
Achso .... Das ist ja schon die Prozedur seticon ...

Poste mal ein bisschen mehr Code, z.B. die ganze Klassendeklaration ...
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.312 Beiträge
 
Delphi XE2 Professional
 
#6

Re: Probleme mit Property einer Komponente

  Alt 17. Nov 2004, 20:43
ich schätze mal du willst das sehen (guckst du):


Code:
unit TrayIcon;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
  Menus, ShellApi, ExtCtrls, Dialogs, StdCtrls, Variants;

const
  IconID       = 100;
  WM_TRAYNOTIFY = WM_USER + 1024;
  TRAY_CALLBACK = WM_USER + 20;

type
  TBalloonTipFlags     = (BT_Info, BT_Warning, BT_Error, BT_WinSymbol, BT_Question);
  TBalloonTipDirection = (BT_Left, BT_Middle, BT_Right);

  TTrayIcon            = class(TComponent)
  private
    { Private-Deklarationen }
    IconData             : TNotifyIconData;

    FBalloonTip          : TForm;
    FLabelInfo           : TLabel;
    FLabelTitle          : TLabel;
    FFlagImage           : TImage;
    FForegroundTimer     : TTimer;

    FBalloonTipFlags     : TBalloonTipFlags;
    FBalloonTipDirection : TBalloonTipDirection;
    FBalloonTipTimer     : TTimer;
    FBalloonTipTimeOut   : Integer;
    FBalloonTipTitle     : String;
    FBalloonTipInfo      : String;
    FBalloonTipColor     : TColor;
    FBalloonTipTitleColor : TColor;
    FBalloonTipInfoColor : TColor;
    FBalloonTipAlwaysOnTop: Boolean;
    FBalloonTipAutoSize  : Boolean;

    FIcon                : TIcon;
    FIconVisible         : Boolean;
    FHint                : String;
    FShowHint            : Boolean;
    FShowBalloonTip      : Boolean;
    FPopupMenu           : TPopupMenu;
    FLeftPopup           : Boolean;
    FOnClick             : TNotifyEvent;
    FOnDblClick          : TNotifyEvent;
    FOnMouseDown         : TMouseEvent;
    FOnMouseUp           : TMouseEvent;
    FOnMouseMove         : TMouseMoveEvent;
    FStartMinimized      : Boolean;
    FClicked             : Boolean;

    ShowFirst            : Boolean;
    X_Pos_Icon           : Integer;
    Y_Pos_Icon           : Integer;

    function InitIcon: Boolean;
    function InitBalloonTip: Boolean;
    function FindTrayIcon(IcoDat: TNotifyIconData): TPoint;

    procedure HandleMessage(var Msg: TMessage); message TRAY_CALLBACK;
    procedure PopupAtCursor;
    procedure DoBalloonTipFlags;
    procedure BalloonTip_erzeugen;

    procedure SetIcon(Value: TIcon);
    procedure SetIconVisible(Value: Boolean);
    procedure SetHint(Value: String);
    procedure SetBalloonTipInfo(Value: String);
    procedure SetBalloonTipTitle(Value: String);
    procedure SetBalloonTipAlwaysOnTop(Value: Boolean);
    procedure SetBalloonTipColor(Value: TColor);
    procedure SetBalloonTipAutoSize(Value: Boolean);
    procedure SetShowHint(Value: Boolean);
    procedure SetShowBalloonTip(Value: Boolean);
    procedure SetBalloonTipFlag(Value : TBalloonTipFlags);
    procedure SetBalloonTipDirection(Value: TBalloonTipDirection);
    procedure SetBalloonTipTimeOut(Value: Integer);
    procedure SetBalloonTipTitleColor(Value: TColor);
    procedure SetBalloonTipInfoColor(Value: TColor);
  protected
    { Protected-Deklarationen }
    function ShowIcon: Boolean; virtual;
    function HideIcon: Boolean; virtual;
    function ModifyIcon: Boolean; virtual;
    function ModifyBalloonTip: Boolean; virtual;

    procedure Loaded; override;

    procedure Click; dynamic;
    procedure DblClick; dynamic;
    procedure MouseDown(Button: TMouseButton; Shift: TShiftState;
      X, Y: Integer); dynamic;
    procedure MouseUp(Button: TMouseButton; Shift: TShiftState;
      X, Y: Integer); dynamic;
    procedure MouseMove(Shift: TShiftState; X, Y: Integer); dynamic;

    procedure OnBalloonTipTimer(Sender: TObject);
    procedure OnForegroundTimer(Sender : TObject);

    procedure AppMinimize(Sender: TObject);
  public
    { Public-Deklarationen }
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;

    procedure ShowMainForm;
    procedure HideMainForm;
  published
    { Published-Deklarationen }
    // Properties:
    property Hint: String read FHint write SetHint;

    property BalloonTipInfo: String read FBalloonTipInfo write SetBalloonTipInfo;

    property BalloonTipTitle: String read FBalloonTipTitle write SetBalloonTipTitle;

    property BalloonTipAlwaysOnTop: Boolean read FBalloonTipAlwaysOnTop
      write SetBalloonTipAlwaysOnTop default false;

    property BalloonTipFlags: TBalloonTipFlags read FBalloonTipFlags
      write SetBalloonTipFlag default BT_Info;

    property BalloonTipDirection: TBalloonTipDirection read FBalloonTipDirection
      write SetBalloonTipDirection default BT_Right;

    property BalloonTipTimeOut: Integer read FBalloonTipTimeOut write SetBalloonTipTimeOut
      default 1000;

    property BalloonTipColor: TColor read FBalloonTipColor write SetBalloonTipColor
      default clYellow;

    property BalloonTipTitleColor: TColor read FBalloonTipTitleColor write SetBalloonTipTitleColor
      default clBlack;

    property BalloonTipInfoColor: TColor read FBalloonTipInfoColor write SetBalloonTipInfoColor
      default clBlack;

    property BalloonTipAutoSize: Boolean read FBalloonTipAutoSize
      write SetBalloonTipAutoSize default false;

    property ShowHint: Boolean read FShowHint write SetShowHint
      default false;

    property ShowBalloonTip: Boolean read FShowBalloonTip write SetShowBalloonTip
      default false;

    property Icon: TIcon read FIcon write SetIcon stored true;

    property IconVisible: Boolean read FIconVisible write SetIconVisible
      default false;

    property PopupMenu: TPopupMenu read FPopupMenu write FPopupMenu;

    property LeftPopup: Boolean read FLeftPopup write FLeftPopup
      default False;

    property StartMinimized: Boolean read FStartMinimized write FStartMinimized
      default False;

    // Events:
    property OnClick: TNotifyEvent read FOnClick write FOnClick;
    property OnDblClick: TNotifyEvent read FOnDblClick write FOnDblClick;
    property OnMouseDown: TMouseEvent read FOnMouseDown write FOnMouseDown;
    property OnMouseUp: TMouseEvent read FOnMouseUp write FOnMouseUp;
    property OnMouseMove: TMouseMoveEvent read FOnMouseMove write FOnMouseMove;
  end;

procedure Register;

implementation
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.312 Beiträge
 
Delphi XE2 Professional
 
#7

Re: Probleme mit Property einer Komponente

  Alt 17. Nov 2004, 22:50
ich hab mal ein wenig getestet und hab mal eine testkombo gebastelt
in der ein Icon geladen wird

eigenartigerweise gehts dort auch ned

aber hier mal die kombo
Angehängte Dateien
Dateityp: pas testcompo.pas (876 Bytes, 11x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von jim_raynor
jim_raynor

Registriert seit: 17. Okt 2004
Ort: Berlin
1.251 Beiträge
 
Delphi 5 Standard
 
#8

Re: Probleme mit Property einer Komponente

  Alt 18. Nov 2004, 06:21
Zeigt doch mal am besten den Code wo das Icon der ComboBox/TrayIcon zugewiesen wird. Ich glaube nämlich das dort der Fehler liegt.
Christian Reich
Schaut euch mein X-COM Remake X-Force: Fight For Destiny ( http://www.xforce-online.de ) an.
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.312 Beiträge
 
Delphi XE2 Professional
 
#9

Re: Probleme mit Property einer Komponente

  Alt 18. Nov 2004, 07:57
ich denke nicht dass der fehler dort liegt wo das Icon dem trayIcon zugewiesen wird

den in der TestCombo wird das Icon niemanden zugewiesen, geht dort aber trotzdem auch ned

sprich die Procedure SetIcon wird dort auch nicht durchlaufen, obwohl das Icon nirgends zugewiesen wird
  Mit Zitat antworten Zitat
Benutzerbild von jim_raynor
jim_raynor

Registriert seit: 17. Okt 2004
Ort: Berlin
1.251 Beiträge
 
Delphi 5 Standard
 
#10

Re: Probleme mit Property einer Komponente

  Alt 18. Nov 2004, 08:04
Ist ja auch richtig, dass SetIcon nicht aufgerufen wird. SetIcon wird nur aufgerufen wenn du Icon :=TIcon.Create machen würdest (also Icon direkt einen Wert zuweist). Machst du dass jetzt in deinem Code, dürfte es Probleme geben, aber SetIcon wird aufgerufen.

Da du aber dem Feld FIcon etwas zuweist, wird SetIcon nicht aufgerufen.

Aber ehrlich ich verstehe deine Logik nicht mehr

Zitat:
sprich die Procedure SetIcon wird dort auch nicht durchlaufen, obwohl das Icon nirgends zugewiesen wird
SetIcon wird doch nicht automatisch aufgerufen. Wenn Icon nirgends zugewiesen wird, dann dürfte doch klar sein, das SetIcon nicht aufgerufen wird.
Christian Reich
Schaut euch mein X-COM Remake X-Force: Fight For Destiny ( http://www.xforce-online.de ) an.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 12:22 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