AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Wert innerhalb Komponente übergeben

Ein Thema von Sam Spade · begonnen am 8. Apr 2016 · letzter Beitrag vom 9. Apr 2016
Antwort Antwort
Sam Spade

Registriert seit: 11. Nov 2006
Ort: Karlsruhe
3 Beiträge
 
#1

Wert innerhalb Komponente übergeben

  Alt 8. Apr 2016, 19:01
Hoi zusammen,
ich möchte eine Komponente erstellen, soweit so gut.
Delphi-Quellcode:
type
  // Display
  TDisplay = class(TEdit)
  protected
    procedure KeyPress( var Key:Char); override;
  end;
  TSimpleSlide = class(TPanel)
  private { Private-Deklarationen }
    //
    fDisplay : TDisplay;
    //
   end;

//
procedure TDisplay.KeyPress( var Key:Char );
var i :integer; s :string; d :double;
begin
  if key=#13 then
  begin
    s := text;
    val(s,d,i);
    // wie bekomme ich den wert von "text" bzw d
    // nach TSimpleSlide..?
  end;
  inherited KeyPress(Key);
end;
nun möchte ich das Ergebnis (d:double) aus Keypressed der Klasse TSimpleSlide übergeben, damit ich damit weiterarbeiten kann.
Wie geht das?
Sam
schon seit Jahren geheilter Versionen-Junkie!
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
26.882 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: Wert innerhalb Komponente übergeben

  Alt 8. Apr 2016, 19:33
Wie wäre es mit einem Event?

[edit] Beispiel:
Delphi-Quellcode:
type
  TOnWuppdiChanged = procedure(Sender: TObject; Value: double) of object;

  TChild = class
  private
    FOnWuppdiChanged: TOnWuppdiChanged;
  public
    procedure Test;
    property OnWuppdiChanged: TOnWuppdiChanged read FOnWuppdiChanged
      write FOnWuppdiChanged;
  end;

  TParent = class
  private
    FChild: TChild;
    procedure DoOnWuppdiChanged(Sender: TObject; Value: double);
  public
    constructor Create;
    destructor Destroy; override;
  end;

...

{ TParent }

constructor TParent.Create;
begin
  FChild := TChild.Create;
  FChild.OnWuppdiChanged := DoOnWuppdiChanged;
end;

destructor TParent.Destroy;
begin
  FChild.Free;
  inherited;
end;

procedure TParent.DoOnWuppdiChanged(Sender: TObject; Value: double);
begin
  ShowMessage(Format('Wert von Wuppdi: %f', [Value]));
end;

{ TChild }

procedure TChild.Test;
begin
  //Das hier gehört dann dorthin, wo der Wert tatsächlich weitergegeben werden soll
  if Assigned(FOnWuppdiChanged) then
    FOnWuppdiChanged(self, 3.1415);
end;
[/edit]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen

Geändert von DeddyH ( 8. Apr 2016 um 19:44 Uhr)
  Mit Zitat antworten Zitat
Sam Spade

Registriert seit: 11. Nov 2006
Ort: Karlsruhe
3 Beiträge
 
#3

AW: Wert innerhalb Komponente übergeben

  Alt 9. Apr 2016, 08:07
Klasse - Es funktioniert!

Vielen Dank DeddyH.

Die Mechanik die dahinter steckt muss ich erst noch verstehen!
Sam
schon seit Jahren geheilter Versionen-Junkie!
  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:40 Uhr.
Powered by vBulletin® Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf