AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Komponentenentwicklung Problem mit Run- und DesignTime
Thema durchsuchen
Ansicht
Themen-Optionen

Komponentenentwicklung Problem mit Run- und DesignTime

Ein Thema von BAMatze · begonnen am 23. Okt 2009 · letzter Beitrag vom 27. Okt 2009
 
Tryer

Registriert seit: 16. Aug 2003
200 Beiträge
 
#6

Re: Komponentenentwicklung Problem mit Run- und DesignTime

  Alt 23. Okt 2009, 15:30
Im Setter führe ich Aktioneneigentlich immer nur dann aus, wenn der Wert sich auch verändert hat. Dadurch läßt sich hier z.B. ein zirkulärer Aufruf von SetValue und TrckChange stoppen.

Delphi-Quellcode:
procedure TLabTrackBar.TrckBarAnpassung(TrackBar: TMouseTrackBar);
begin
  TrackBar.Width := Width - 20;
  TrackBar.Height := Height - 15;
  TrackBar.Left := 10;
  TrackBar.Top := 12;
  if Assigned(FLblTrckBar) and Assigned(FTrckBar) then
  begin
    FLblTrckBar.Caption := floattostr(FTrckBar.Position * FScaleFactor) + FsLabelAdd;
    LblAnpassung(FLblTrckBar);
  end;
end;

procedure TLabTrackBar.LblAnpassung(FLabel: TLabel);
begin
  if Assigned(FLblTrckBar) and Assigned(FTrckBar) then
    FLblTrckBar.Left := Round((FTrckBar.Left + 11 - FLblTrckBar.Width / 2) +
      (FTrckBar.Position / (FTrckBar.Max - FTrckBar.Min) * (FTrckBar.Width - 22)));
end;

procedure TLabTrackBar.Resize;
begin
  inherited Resize;
  TrckBarAnpassung(FTrckBar);
  // LblAnpassung(FLblTrckBar); unnötig, geschieht in TrckBarAnpassung.
  // warum werden überhaupt die eigenen Felder übergeben?
end;

procedure TLabTrackBar.SetValue(dValue: Double);
begin
  if dValue <> FdValue then
  begin
    FdValue := dValue;
    if Assigned(FTrckBar) then
      FTrckBar.Position := Round(FdValue / FScaleFactor);
    LblAnpassung(FLblTrckBar);
  end;
end;

procedure TLabTrackBar.TrckChange(Sender: TObject);
begin
  SetValue(FTrckBar.Position * FScaleFactor);
end;
Grüsse, Dirk
  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 01:41 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