![]() |
Re: [OOP / Methodenbezeichner] Anfängerfrage
Zitat:
Ich sah bei ihm das hier:
Delphi-Quellcode:
Das heißt, diese Prozedur hätte eine fixe globale Variable genommen um ein fixes Label zu besetzen.
procedure LabelRefresh;
begin Label1.Caption := IntToStr(wert); end; Dort wo Wert beschrieben wird, könnte er gleich die typisierte Property des "neuen" Labels besetzen. Insofern ich es richtig verstanden habe? :gruebel: Zitat:
Zitat:
Wenn du jetzt noch die Eigenschaft "Caption" im OI siehst bekommst du 'nen Kasten Bier. :mrgreen: Wenn du ohne Typecast auf TLabel/TCustomLabel/[alle Vorgänger bis TControl] an die Caption per Code zugreifen kannst, gibt's den nächsten. ;) |
Re: [OOP / Methodenbezeichner] Anfängerfrage
es macht aber auch keinen sinn etwas das einmal published war in protected zu verschieben. Denn durch casten auf den Vorgängertyp kann man ohne ableitung oder andere schwierigkeiten dann doch auf den wert zugreifen.
|
Re: [OOP / Methodenbezeichner] Anfängerfrage
Zitat:
Aaaabeer wenn du dann bitte die Freundlichkeit hättest um den Typen mit Anlauf in den Hintern zu treten, der diese Property in TControl eingebaut hat OHNE den Setter als virtual protected zu deklarieren? (Ist übrigens der gleiche Getter/Setter wie bei Text :wall: ) Da TLabel kein richtiges WindowsControl sondern nur ein selbst gezeichnetes ist, kann man nichtmal auf die scheußliche WM_XXX-Vorschlaghammer -Methode eine Änderung des Wertes abfangen. Es gibt also nur zwei Lösungen:
|
Re: [OOP / Methodenbezeichner] Anfängerfrage
Insbesondere Robert : nur nicht nervös werden. Vor allem nicht mit Sachen rumwerfen, die nur in seltenen Spezialfällen gebraucht werden. 8) Was soll überhaupt gemacht werden ? Ein Label erhält ein zusätzliches integer-Feld, welches im OI eingestellt werden kann, oder ? Dieser Wert soll dann später als Caption angezeigt werden. Warum deshalb die Caption verschwinden soll ist mir schleierhaft und wohl auch eher uninteressant.
Delphi-Quellcode:
Reicht das nicht aus ? Falls eine kleinere Änderung eines Labels nur mit "virtual strict protected overload abstract" und dem verstecken vorhandener Sachen gemacht werden soll, dann aber ohne mich. 8) Falls es den Fragesteller überhaupt noch interessiert : alles schließen -> Datei -> neu -> weitere -> Package -> da den Code hier einfügen als Unit (vorher in Unit abspeichern). Dann noch compilieren und installieren. Was im OI in das Feld Wert eingetragen wird, das steht dann in der Caption.
unit Intlbl;
interface uses Windows, Messages, SysUtils, Graphics, Classes, Controls, DBCtrls, StdCtrls; procedure Register; type TIntLabel = class(TCustomLabel) private FWert : integer; procedure SetWert(const Value: integer); public constructor Create(AOwner: TComponent); override; destructor Destroy; override; published property Wert: integer read FWert write SetWert; end; implementation constructor TIntLabel.Create(AOwner: TComponent); begin inherited; Wert := 0; Caption := IntToStr (Wert); end; destructor TIntLabel.Destroy; begin inherited; end; procedure TIntLabel.SetWert(const Value: integer); begin FWert := Value; Caption := IntToStr (Value); end; procedure Register; begin RegisterComponents('Eigene', [TIntLabel]); end; end. |
Re: [OOP / Methodenbezeichner] Anfängerfrage
@Hansa
Hast du auch nur einen Fetzen von dem kapiert, was ich oben geschrieben habe? Auch nur einen einzigen, klitzekleinen Fetzen? :roll: |
Re: [OOP / Methodenbezeichner] Anfängerfrage
ne :mrgreen:
Edit : allerdings habe ich Dein WertDings gesehen. Wollte es allerdings so machen, daß es geht und deshalb lieber selber neu. Ist doch sowieso nur ein Quickie. :lol: |
Re: [OOP / Methodenbezeichner] Anfängerfrage
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
her mit dem Bier! Ich habe das Problem auf folgenden Code reduziert und kann im OI wie erwartet die property Caption
Delphi-Quellcode:
Siehe auch das Bild in der Anlage
sehen.
unit TestLabel; interface uses SysUtils, Classes, Controls, StdCtrls; type TTestLabel = class(TLabel) private { Private-Deklarationen } protected { Protected-Deklarationen } property Caption; public { Public-Deklarationen } published { Published-Deklarationen } end; procedure Register; implementation procedure Register; begin RegisterComponents('Beispiele', [TTestLabel]); end; end. |
Re: [OOP / Methodenbezeichner] Anfängerfrage
Zitat:
Hätte ich den Käse auch bemerkt. Aber es gibt nur einen Kasten, da die Eigenschaft nicht im Code Editor auftaucht. :zwinker: (auch wenn es keinen Compilierfehler gibt wenn man sie benutzt :wall: ) Ich erwarte dann eine PN mit Anschrift und Biermarke... :roll: Ich bin eindeutig zu selten im Form designer :lol: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:20 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