AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi OOP / Methodenbezeichner: Anfängerfrage

OOP / Methodenbezeichner: Anfängerfrage

Ein Thema von Tso · begonnen am 5. Mai 2005 · letzter Beitrag vom 8. Mai 2005
Antwort Antwort
Seite 2 von 2     12
Robert_G
(Gast)

n/a Beiträge
 
#11

Re: [OOP / Methodenbezeichner] Anfängerfrage

  Alt 5. Mai 2005, 19:20
Zitat von Jens Schumann:
Hallo Robert_G
toller Beitrag. Nur leider völlig am Thema vorbei . Tso's Problem ist, dass sie/er eine Komponente die sie/er auf ein Form gesetzt hat innerhalb einer globalen procedure aufrufen möchte. Das Problem ist mit einem erweiterten TLabel Nachfahren auch nicht gelöst.
Erwischt!
Ich sah bei ihm das hier:
Delphi-Quellcode:
procedure LabelRefresh;
begin
  Label1.Caption := IntToStr(wert);
end;
Das heißt, diese Prozedur hätte eine fixe globale Variable genommen um ein fixes Label zu besetzen.

Dort wo Wert beschrieben wird, könnte er gleich die typisierte Property des "neuen" Labels besetzen.
Insofern ich es richtig verstanden habe?

Zitat von Jens Schumann:
Ich halte maximov's Vorschlag keine globalen Methoden zu verwenden für den Besten.
Der gilt immer und überall.

Zitat von Jens Schumann:
Du versteckst die published Caption property im protected Abschnitt wie unsauber.
Außerdem funktioniert das gar nicht unter Delphi. Dort gilt: Einmal published immer published. Egal was der Nachfahre macht.
Das ist einfach nicht wahr, Jens. Gehe die Schritte von oben durch und du hast es in unter einer Minute auf deinem Form.
Wenn du jetzt noch die Eigenschaft "Caption" im OI siehst bekommst du 'nen Kasten Bier.
Wenn du ohne Typecast auf TLabel/TCustomLabel/[alle Vorgänger bis TControl] an die Caption per Code zugreifen kannst, gibt's den nächsten.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#12

Re: [OOP / Methodenbezeichner] Anfängerfrage

  Alt 5. Mai 2005, 19:46
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.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#13

Re: [OOP / Methodenbezeichner] Anfängerfrage

  Alt 5. Mai 2005, 19:56
Zitat von SirThornberry:
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.
Ist alles richtig!
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 )
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:
  • Man versteckt die Caption um die Wahrscheinlichkeit zu verringern, dass jemand einen Wert direkt dort reinwirft.
  • Man castet sich überall einen Wolf, freut sich, dass man Caption sichtbar gelassen hat und springt 3-mal im Kreis
Welcher von den beiden Wegen wäre etwas ... nunja ... "umständlich"?
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#14

Re: [OOP / Methodenbezeichner] Anfängerfrage

  Alt 5. Mai 2005, 21:02
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:
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.
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.
Gruß
Hansa
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#15

Re: [OOP / Methodenbezeichner] Anfängerfrage

  Alt 5. Mai 2005, 21:14
@Hansa
Hast du auch nur einen Fetzen von dem kapiert, was ich oben geschrieben habe?
Auch nur einen einzigen, klitzekleinen Fetzen?
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#16

Re: [OOP / Methodenbezeichner] Anfängerfrage

  Alt 5. Mai 2005, 21:39
ne

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.
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#17

Re: [OOP / Methodenbezeichner] Anfängerfrage

  Alt 8. Mai 2005, 17:55
Zitat von Robert_G:
Das ist einfach nicht wahr, Jens. Gehe die Schritte von oben durch und du hast es in unter einer Minute auf deinem Form.
Wenn du jetzt noch die Eigenschaft "Caption" im OI siehst bekommst du 'nen Kasten Bier.
Wenn du ohne Typecast auf TLabel/TCustomLabel/[alle Vorgänger bis TControl] an die Caption per Code zugreifen kannst, gibt's den nächsten.
Hallo Robert,
her mit dem Bier!
Ich habe das Problem auf folgenden Code reduziert und kann im OI wie erwartet die property Caption
Delphi-Quellcode:
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.
Siehe auch das Bild in der Anlage
Miniaturansicht angehängter Grafiken
image1_194.jpg  
I come from outer space to save the human race
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#18

Re: [OOP / Methodenbezeichner] Anfängerfrage

  Alt 8. Mai 2005, 18:12
Zitat von Jens Schumann:
Hallo Robert,
her mit dem Bier!
Ich habe das Problem auf folgenden Code reduziert und kann im OI wie erwartet die property Caption sehen.
Hätte ich mich selbst an meine eigene Anleitung gehalten und das Ergebnis im Form designer (nicht nur im Code Editor) angesehen...
Hätte ich den Käse auch bemerkt. Aber es gibt nur einen Kasten, da die Eigenschaft nicht im Code Editor auftaucht. (auch wenn es keinen Compilierfehler gibt wenn man sie benutzt )

Ich erwarte dann eine PN mit Anschrift und Biermarke...

Ich bin eindeutig zu selten im Form designer
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 14:31 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