AGB  ·  Datenschutz  ·  Impressum  







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

Probleme mit TScrollBars...

Ein Thema von daschaos · begonnen am 11. Dez 2007 · letzter Beitrag vom 11. Dez 2007
Antwort Antwort
daschaos

Registriert seit: 23. Mai 2007
117 Beiträge
 
Delphi 2006 Professional
 
#1

Probleme mit TScrollBars...

  Alt 11. Dez 2007, 10:51
Hi!
Habe folgendes Problem. Ich habe eine visuelle Komponente, die ich von TCustomPanel ableite.
Nun will ich in diese Ausgabe der Komponente auch hinein- bzw. hinauszoomen können. Damit man
aber nun die neu berechnete Ausgabe auch komplett bewundern kann, bräuchte man Scrollbalken, um
den kompletten Bereich anschauen zu können. Die hab ich auch angelegt, die werden auch angezeigt,
aber wenn ich den Regler verschiebe tut sich nichts am Bild. Ich hab bestimmt hundert Dinge vergessen
zu beachten. Könnte mir da vielleicht jemand auf die Sprünge helfen? Das wäre toll, danke!!


Delphi-Quellcode:
constructor Create(AOwner: TComponent);
begin
  ScrollBarHor := TScrollBar.Create(Self);
  ScrollBarHor.Parent := Self;
  ScrollBarHor.Align := alBottom;
  ScrollBarHor.Kind := sbHorizontal;
  ScrollBarHor.Visible := False;
  ScrollBarHor.SmallChange := 5;
  ScrollBarHor.LargeChange := 50;
  ScrollBarHor.OnScroll := ScrollBarHorScroll;

  ScrollBarVer := TScrollBar.Create(Self);
  ScrollBarVer.Parent := Self;
  ScrollBarVer.Align := alRight;
  ScrollBarVer.Kind := sbVertical;
  ScrollBarVer.Visible := False;
  ScrollBarVer.SmallChange := 5;
  ScrollBarVer.LargeChange := 50;
  ScrollBarVer.OnScroll := ScrollBarVerScroll;
end;
Delphi-Quellcode:
procedure TCustomTreemapChart.Zoom;
var
  Scale: Double;
  Image: TImage;
begin
  IsZoom := True;

  ScrollBarVer.Visible := True;
  ScrollBarHor.Visible := True;

  Scale := (100 + ZoomFactor) / 100;

  ZoomRect.Left := 0;
  ZoomRect.Top := 0;
  ZoomRect.Right := Round(Width * Scale);
  ZoomRect.Bottom := Round(Height * Scale);

  if (ZoomRect.Bottom < Height) or (ZoomRect.Right < Width) then
  begin
    ScrollBarVer.Visible := False;
    ScrollBarHor.Visible := False;
    IsZoom := False;
    ZoomRect := Rect(0,0,Width,Height);
  end;

  if (ZoomRect.Bottom > 3*Height) or (ZoomRect.Right > 3*Width) then
  begin
    IsZoom := False;
    exit;
  end;

  DoublebufferedBitmap.Height := ZoomRect.Bottom - ScrollBarHor.Height;
  DoublebufferedBitmap.Width := ZoomRect.Right - ScrollBarVer.Width;

  ScrollBarHor.Min := 0;
  ScrollBarHor.Max := DoublebufferedBitmap.Width;

  ScrollBarVer.Min := 0;
  ScrollBarVer.Max := DoublebufferedBitmap.Height;

  DrawChart(DoublebufferedBitmap.Canvas, ZoomRect);

  Canvas.Draw(0,0, DoublebufferedBitmap);
end;
  Mit Zitat antworten Zitat
daschaos

Registriert seit: 23. Mai 2007
117 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Probleme mit TScrollBars...

  Alt 11. Dez 2007, 11:00
Muss ich irgendwie noch mein Panel vergrößern, damit das DoubleBufferedBitmap komplett drauf passt? Wenn ja, wie ginge das denn zur Laufzeit? Oder bin ich auf dem Holzweg ? Aber dann würden die Scrollbars ja auch teilweise nicht sichtbar sein, weil diese dann auch außerhalb des sichtbaren Bereichs liegen würden...
  Mit Zitat antworten Zitat
DelphiKlaus

Registriert seit: 18. Okt 2006
100 Beiträge
 
Delphi 6 Professional
 
#3

Re: Probleme mit TScrollBars...

  Alt 11. Dez 2007, 12:00
Hallo,

wäre es nicht einfacher, wenn Du Deine Komponente auf eine Scrollbox legst. Dann dürfte das Scrollen im wesentlichen automatisch gehen.


MfG

Klaus
  Mit Zitat antworten Zitat
daschaos

Registriert seit: 23. Mai 2007
117 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Probleme mit TScrollBars...

  Alt 11. Dez 2007, 12:06
Ich hab schon versucht, damit irgendwas zustande zubekommen, aber ich weiß nich, wie ich meine Komponente auf
die Scrollbox packen soll, was auch immer ich versucht habe, hat diverse Fehlermeldungen ausgelöst. Zwar nich
beim compilieren, aber zur Laufzeit .
  Mit Zitat antworten Zitat
daschaos

Registriert seit: 23. Mai 2007
117 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Probleme mit TScrollBars...

  Alt 11. Dez 2007, 15:30
In einem anderen Forum wurde mir schon ein Tipp gegeben, wie es weiter gehen könnte.

Delphi-Source
  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 14:51 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