Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Wie funktioniert die Delphi Trackbar ?!? (https://www.delphipraxis.net/4926-wie-funktioniert-die-delphi-trackbar.html)

Trouble_Maker 16. Mai 2003 22:30


Wie funktioniert die Delphi Trackbar ?!?
 
Hiho alle...
hab mal wieder ne Frage:
Wie funktioniert die Trackbar in Delphi ?!? Ich möchte damit das Zoomlevel für meinen TWebBrowser einstellen!!!
(WebBrowser1.OleObject.Document.Body.Style.Zoom := 0.50;)
Dies hab ich bisher auf verschiedene Buttons gelegt! Möchte jetzt aber eine Trackbar verwenden.
Wie realisiere ich das und muss man dann noch soetwas wie "übernehmen" drücken ?!?!
Wäre nett, wenn mir das jemand an einem (diesem) Beispiel erklären könnte!


Danke

Trouble_Maker

Christian Seehase 16. Mai 2003 22:39

Moin Trouble Maker,

Du musst nur die Eigenschaften Min/Max der Trackbar wie gewünscht (erforderlich) setzen, und kannst dann im OnChange Ergeignis die Eigenschaft Position abfragen (bzw. verarbeiten). Die bewegt sich (logisch ;-) ) immer zwischen Min und Max.

Trouble_Maker 16. Mai 2003 22:43

hmm ...

bedeutet das min/max wieveil "Schritte" die Trackbar macht ?!?
Hab nämlich insgesamt 5 Zoomlevel... also min5, max 5 !?!?

hmm ich kapier das nich so richtig. Verstehe nich, wie ich dem sag, dass wenn die Trackbar ganz links steht, dass dann Zoomlevel 100 is und bei ganz rechts nur 50 % is ...

wie geht das ?!?

kann mir das jemand an einem Code oder ähnliches erklären ?!?

danke

cu Trouble_MAker

Christian Seehase 16. Mai 2003 23:04

Moin Trouble Maker,

wie die Namen schon sagen:
Min gibt den niedrigsten Wert an, Max den höchsten.

Bei 5 Stufen könnte man also Min = 1 und Max = 5 setzen.

Wie Du jetzt die Werte Interpretierst ist Deine Sache.
Im OnChange kannst Du ja mittels einer Case Anweisung, oder einer Tabelle die Zoomlevel zuordnen.

Delphi-Quellcode:
procedure TForm1.TrackBar1Change(Sender : TObject);
begin
  case TrackBar1.Position of
    1 : FiZoomLevel := 100;
    2 : FiZoomLevel := 90;
    //...
  end;
end;

procedure TForm1.TrackBar1Change(Sender : TObject);
begin
  FiZoomLevel := _aiZoomLevel[TrackBar1.Position];
end;
FiZoomLevel ein private Feld des Formulares ist (Typ integer), und _aiZoomLevel ein konstantes Array [1..5] of integer = (100,90, usw.

Trouble_Maker 16. Mai 2003 23:22

Hiho

sorry... kapiers immer noch nich !!!

Also so sehen die Buttons aus, mit denen in den Webbrowser zoome (nur 2)

WebBrowser1.OleObject.Document.Body.Style.Zoom := 1;
WebBrowser1.OleObject.Document.Body.Style.Zoom := 0.50;

Jetzt möchte ich einfach nur dies anstatt mit den Buttons mit der Trackbar machen!
WIE GEHT DAS ?!?

@Christian Seehase:
Was hat es mit deisem FiZoomLevel auf sich! will doch den code von oben verwenden! Und wieso hast du 2 Prozeduren aufgelistet, obwohl diese identisch sind ?!?

danke

Trouble_Maker

PS: Wäre dankbar für ein kleines verständliches Beispiel mit Code. Thx

Christian Seehase 16. Mai 2003 23:29

Moin Trouble Maker,

Delphi-Quellcode:
procedure TForm1.TrackBar1Change(Sender : TObject);
begin
  case TrackBar1.Position of
    1 : WebBrowser1.OleObject.Document.Body.Style.Zoom := 1;
    2 : WebBrowser1.OleObject.Document.Body.Style.Zoom := 0.9;
    //...
  end;
end;

procedure TForm1.TrackBar1Change(Sender : TObject);

const
  _aZoomLevel : array [1..5] of double = (1,0.9 usw.)
begin
  WebBrowser1.OleObject.Document.Body.Style.Zoom := _aZoomLevel[TrackBar1.Position];
end;
ausserdem sind die Funktionen nicht identisch, sie tun nur das Gleiche ;-)

Der erste Fall ist sinnvoll, falls eventuell noch mehr passieren soll, in Abhängigkeit der Position der Trackbar.

Trouble_Maker 17. Mai 2003 10:37

hiho

JUHUU

Danke Christian Seehase! Habs endlich hinbekommen :-)

bis dann

Trouble_Maker

Trouble_Maker 17. Mai 2003 10:45

so hi ich bins nochmal!
Hab aber jetzt noch eine Frage:
Wie stell ich die Track bar so ein, dass der "Zeiger" beim Start des Programms nicht links sondern in der Mitte steht ?!?

Will bei dem Mittelpunkt 100 % haben dann nach links reinzoomen und nach rechts rauszoomen !

Geht das ?!?

danke

Trouble_Maker

Trouble_Maker 17. Mai 2003 10:48

ah hat sich schon erledigt!

geht mit Position und dann wert 5 z.b

cu


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:54 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