AGB  ·  Datenschutz  ·  Impressum  







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

Linie in abgeleiteter Komponente zeichnen

Ein Thema von Andreas L. · begonnen am 23. Mai 2011 · letzter Beitrag vom 24. Mai 2011
Antwort Antwort
Andreas L.

Registriert seit: 23. Mai 2011
Ort: Furth im Wald
308 Beiträge
 
Delphi 11 Alexandria
 
#1

AW: Linie in abgeleiteter Komponente zeichnen

  Alt 24. Mai 2011, 07:24
@DeddyH: Genau so mache ich es. In TBasis.Paint werden die Border gezeichnet, in TAbgeleitet.Paint die DrawBorderShadow-Methode. Wenn ich das mache wir die Komponente zur DesignTime nicht mehr richtig angezeigt (Nur Umrisse, keine Size-Grips, ...). Packe ich das DrawBorderShadow in die TAbgeleitet.Refresh-Methode wird alles angezeigt, nur eben ohne die weiße Linie.

Siehe Anhang
Angehängte Dateien
Dateityp: txt CsPanels.txt (15,3 KB, 4x aufgerufen)
Andreas Lauß
Blog
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.545 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Linie in abgeleiteter Komponente zeichnen

  Alt 24. Mai 2011, 07:34
Refresh gibt es bereits in TControl, diese Methode wird von Dir also verborgen. Wieso nicht alles ins Paint schieben? Und ich finde es etwas unglücklich, dass sich TCsNavigationButtonOptions und TCsPageNavigation gegenseitig kennen (müssen). Über Events wäre das IMO eleganter zu lösen.
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
  Mit Zitat antworten Zitat
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#3

AW: Linie in abgeleiteter Komponente zeichnen

  Alt 24. Mai 2011, 07:45
Ich finde ja, dass in Refresh überhaupt nicht rein gehört.

Im Setter von BorderTop ein Invalidate und alles/nur zeichnen in Paint.

€: Sehe gerade DeddyH war wieder schneller, also das Prinzip wie im Schema von Post #6
  Mit Zitat antworten Zitat
EarlyBird

Registriert seit: 29. Mär 2007
235 Beiträge
 
#4

AW: Linie in abgeleiteter Komponente zeichnen

  Alt 24. Mai 2011, 08:01
ich habs mal getestet:
Delphi-Quellcode:
procedure TCsPageNavigation.Paint;
begin
  inherited Paint;
  if FStyle = cwsWin2000 then
    DrawBorderShadow;
  //Refresh;
end;

procedure TCsPageNavigation.Refresh;
begin

  case FStyle of
    cwsFlat:
    begin
      BorderTop.Visible := False;
    end;
    cwsWin2000:
    begin
      BorderTop.Visible := True;
      BorderTop.Color := clGray;


    end;
    cwsVista:
    begin
      BorderTop.Visible := True;
      BorderTop.Color := clSilver;
    end;
  end;

end;
da flackert nix
und gezeichnet wird es auch
  Mit Zitat antworten Zitat
Andreas L.

Registriert seit: 23. Mai 2011
Ort: Furth im Wald
308 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Linie in abgeleiteter Komponente zeichnen

  Alt 24. Mai 2011, 08:12
ich habs mal getestet:
Delphi-Quellcode:
procedure TCsPageNavigation.Paint;
begin
  inherited Paint;
  if FStyle = cwsWin2000 then
    DrawBorderShadow;
  //Refresh;
end;

procedure TCsPageNavigation.Refresh;
begin

  case FStyle of
    cwsFlat:
    begin
      BorderTop.Visible := False;
    end;
    cwsWin2000:
    begin
      BorderTop.Visible := True;
      BorderTop.Color := clGray;


    end;
    cwsVista:
    begin
      BorderTop.Visible := True;
      BorderTop.Color := clSilver;
    end;
  end;

end;
da flackert nix
und gezeichnet wird es auch
So hatte ich das gestern schon und da hats wie verrückt geflackert. Jetzt gehts auf einmal

Danke an alle für eure Hilfe
Andreas Lauß
Blog
  Mit Zitat antworten Zitat
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#6

AW: Linie in abgeleiteter Komponente zeichnen

  Alt 24. Mai 2011, 08:17
Unschön bleibt allerdings, das Du in Paint einen Setter aufrufst (BorderTop) der u.U. auch erst in einer Ableitung Invalidate aufrufen könnte und damit nochmal Paint auslöst.

(Wobei, kann mich auch irren )

Geändert von Satty67 (24. Mai 2011 um 08:24 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


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