![]() |
Probleme mit Property einer Komponente
Hallo,
ich weiss mir keinen Rat mehr :wall: :wall: :wall: Ich habe eine Komponente die als Property ein Icon hat (guckst du Code):
Code:
Wobei gilt:
property Icon: TIcon read FIcon write SetIcon;
Code:
Eigenartiger weise wird die Procedure SetIcon nicht "durchlaufen".
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; Festgestellt hab ich es, indem ich einfach mal eine showmessage('hallo'); eingebaut hab. Weiss jemand warum die Procedure ned durchlaufen wird? mfg Helmi |
Re: Probleme mit Property einer Komponente
Ich würde schatzen, du musst statt
Delphi-Quellcode:
folgendes schreiben
FIcon.Assign(Value);
Delphi-Quellcode:
Damit nicht einfach die Variable geändert wird, sondern Funktion dazu auch aufgerufen wird ...
SetIcon (Value);
|
Re: Probleme mit Property einer Komponente
ne - hat auch nix gebracht
|
Re: Probleme mit Property einer Komponente
gabs da keinen fehler????
also ma logisch... bei dem code:
Delphi-Quellcode:
sollte sich eigentlich so einiges aufhängen :gruebel:
private
FIcon: TIcon; procedure SetIcon(Value: TIcon); procedure TTrayIcon.SetIcon(Value: TIcon); begin //FIcon.Assign(Value); SetIcon(Value); end; kannst du net sagen FIcon:=Value;? |
Re: Probleme mit Property einer Komponente
Achso .... Das ist ja schon die Prozedur seticon ...
Poste mal ein bisschen mehr Code, z.B. die ganze Klassendeklaration ... |
Re: Probleme mit Property einer Komponente
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 |
Re: Probleme mit Property einer Komponente
Liste der Anhänge anzeigen (Anzahl: 1)
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 |
Re: Probleme mit Property einer Komponente
Zeigt doch mal am besten den Code wo das Icon der ComboBox/TrayIcon zugewiesen wird. Ich glaube nämlich das dort der Fehler liegt.
|
Re: Probleme mit Property einer Komponente
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 |
Re: Probleme mit Property einer Komponente
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 :gruebel: Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:50 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz