AGB  ·  Datenschutz  ·  Impressum  







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

Formular zur Laufzeit gestalten

Ein Thema von LarsSchwencke · begonnen am 5. Feb 2014 · letzter Beitrag vom 5. Feb 2014
 
LarsSchwencke

Registriert seit: 28. Sep 2012
19 Beiträge
 
#1

Formular zur Laufzeit gestalten

  Alt 5. Feb 2014, 14:49
Hallo,

ein Formular einer VCL-Formularanwendung(Unit1) möchte ich zur Laufzeit gestalten.
Dazu habe ich eine Unit2 erstellt, in der die Gestaltung beschrieben ist.
Ob man das so macht weiß ich nicht, vielleicht kennt ja jemand eine besse Lösung.

Hier der Quellcode zur Anwendung, ist nur ein Beispiel.

Delphi-Quellcode:
unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Unit2, AdvSmoothSlider;

type
 TForm1 = class(TForm)
  procedure FormCreate(Sender: TObject);
 private
  { Private-Deklarationen }
 public
  { Public-Deklarationen }
end;

var
Form1: TForm1;

implementation
{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var
 Slider: TMeineSlider;

begin
 Slider := TMeineSlider.Create(self);
end;
end.
Delphi-Quellcode:
unit Unit2;

interface

uses
 AdvSmoothSlider, System.Classes, Controls, System.SysUtils;

type
 TMeineSlider = class(TComponent)
  Slider1: TAdvSmoothSlider;
  Slider2: TAdvSmoothSlider;
  procedure StateChanged(Sender: TObject;
           State: TAdvSmoothSliderState; Value: Double);
 public
  constructor Create(AOwner: TComponent);
end;

implementation

constructor TMeineSlider.Create(AOwner: TComponent);
begin
 Slider1 := TAdvSmoothSlider.Create(AOwner);
 Slider1.Parent := AOwner as TWinControl;
 Slider1.Top := 50;
 Slider1.Left := 50;
 Slider1.OnStateChanged := StateChanged;
 
 Slider2 := TAdvSmoothSlider.Create(AOwner);
 Slider2.Parent := AOwner as TWinControl;
 Slider2.Top := 100;
 Slider2.Left := 100;
 Slider2.OnStateChanged := StateChanged;
end;

procedure TMeineSlider.StateChanged(Sender: TObject;
          State: TAdvSmoothSliderState; Value: Double);
begin
 beep;
end;
end.
Das funktioniert soweit auch ganz gut, habe jedoch einige Probleme.

In der procedure TMeineSlider ist der Sender immer (), wie kann ich erreichen das der
Sender einern richtigen Wert bekommt?

Und weiter, OnStateChanged ist ja immer StateChanged zugewiesen,
wie kann ich es anstellen, dass ich die Zuweisung nicht für jeden Slider zuweisen muß?
Habe mir schon gedacht eine neue abgeleitet Klasse von TAdvSmoothSlider zu erstellen, etwa so:

Delphi-Quellcode:
type
 TMeinSlider = class(AdvSmoothSlider)
  private
   procedure StateChanged(Sender: TObject;
           State: TAdvSmoothSliderState; Value: Double);
 end;
Delphi-Quellcode:
 Slider1: TMeinSlider;
 Slider2: TMeinslider;
 usw.
Nur wird StateChanged dann nicht ausgeführt.

Weiß jemand wie es richtig geht?

Für Antworten wäre ich sehr dankbar.

MfG
Lars
  Mit Zitat antworten Zitat
 


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