AGB  ·  Datenschutz  ·  Impressum  







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

Komponente speichert Font-Property nicht mehr

Ein Thema von RBiniasch · begonnen am 6. Nov 2008 · letzter Beitrag vom 7. Nov 2008
 
RBiniasch

Registriert seit: 23. Mär 2006
4 Beiträge
 
#1

Komponente speichert Font-Property nicht mehr

  Alt 6. Nov 2008, 12:47
Hallo,

ich habe von TPanel abgeleitete Komponente gebaut, welche auf eine Änderung des Fonts reagieren muss (der wer weiß wievielte erweiterte Button 8) ).
Dafür habe ich im Konstruktor den Eintrag

Font.OnChange := OnFontChanged;

stehen. In 'OnFontChanged' passieren dann die spannenden Dinge.

Das Problem ist nun, wenn diese Zeile im Konstruktor steht speichert Delphi (7 und 2009) Änderungen am Font nicht mehr in der dfm-Datei. Zur Entwurfszeit ist alles ok, die Komponente reagiert auf die Änderungen und das Leben ist schön. Starte ich das Programm sind alle Änderungen vergessen. Ebenso beim neu Laden des Projektes oder Kopieren des Buttons.
Kommentiere ich die Zuweisung von 'OnFontChanged' aus funktioniert der Spaß wieder.
Steckt die Zuweisung im 'Loaded' landen Änderungen am Font wieder in der dfm, aber die Komponente reagiert zur Entwurfszeit nicht mehr auf Änderungen.

Falls wer bis hierher gelesen hat und noch einen Blick auf den Konstruktor werfen möchte, hier kommt er :

Delphi-Quellcode:
constructor TMQButton.Create(tcOwner: TComponent);
begin
  inherited;

  Width := 90;
  Height := 22;

  InitBMPs;
  
  F_toGraphics := TtoGraphics.Create;

  F_toBorders := TtoDrawFrame.Create;

  F_strBtnText := EmptyStr;
  F_tcColorMain := SB_DEF_COLOR_STD_MAIN;
  F_tcColorShade := SB_DEF_COLOR_STD_SHADE;
  F_tcColorFrame := SB_DEF_COLOR_STD_FRAME;
  F_tcColorActiveMain := SB_DEF_COLOR_STD_SHADE;
  F_tcColorActiveShade := SB_DEF_COLOR_STD_MAIN;
  F_tcColorHotMain := SB_DEF_COLOR_HOT_MAIN;
  F_tcColorHotShade := SB_DEF_COLOR_HOT_SHADE;
  F_iGradientSteps := 100;
  F_iEllipseHeight := 0;
  F_iEllipseWidth := 0;
  F_setBtnStates := [bsBase];
  F_bDrawBorder := TRUE;
  F_bActive := FALSE;
  F_bShowHot := FALSE;
  F_bStayDown := FALSE;
  F_bDisableDblClick := TRUE;

  BevelOuter := bvNone;
  DoubleBuffered := TRUE;

  F_tneOnMouseEnter := nil;
  F_tneOnMouseLeave := nil;

  Font.OnChange := OnFontChanged; // Hier passierts ...

  CreateBMPs;
  ChangeBtnState;
end;
Danke fürs Lesen und falls wer eine Idee hat, immer her damit
Ralf Biniasch
  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:36 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 by Thomas Breitkreuz