Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi DelphiX + Scrollbar (https://www.delphipraxis.net/57234-delphix-scrollbar.html)

Neutral General 17. Nov 2005 15:06


DelphiX + Scrollbar
 
Hi,

Ich habe einen RPG-Editor programmiert. Wenn das Level jetzt nicht ganz auf den Bildschirm passt benutze ich Scrollbars. Das funktioniert auch - einmal. Denn wenn man danach noch eine große Map erstellt, wo man die Scrollbars braucht, dann funktionieren die nicht mehr richtig.. Sie Scrollen nicht weit genug..

Quelltext:

Neue Map erstellen:
Delphi-Quellcode:
procedure TForm1.NeueMap1Click(Sender: TObject);
begin
  Form2.ShowModal; // Einstellungen
  World.Engine.Engine.X := 0; // An die Ausgangsposition gehn
  World.Engine.Engine.Y := 0;
  m1 := (World.lWidth)-(World.DXDraw.Width div 32); // Max von Horizontaler Scrollbar ausrechnen
  m2 := (World.lHeight)-(World.DXDraw.Height div 32); // Min von Vertikaler Scrollbar ausrechnen
  if m1 > 0 then begin // Wenn die Horizontale Scrollbar gebraucht wird...
   DoScroll1 := 1; // nicht wichtig..
   ScrollBar1.Min := 0;
   ScrollBar1.Position := 0;
   ScrollBar1.Max := m1;
  end
  else begin
   DoScroll1 := 0;
   ScrollBar1.Min := 1;
   ScrollBar1.Max := 1;
  end;
  if m2 > 0 then begin // Wenn die Horizontale Scrollbar gebraucht wird...
   DoScroll2 := 1;
   ScrollBar2.Min := 0;
   ScrollBar2.Position := 0;
   ScrollBar2.Max := m2;
  end
  else begin
   DoScroll2 := 0;
   ScrollBar2.Min := 1;
   ScrollBar2.Max := 1;
  end;
end;
ScrollbarChange
Delphi-Quellcode:
procedure TForm1.ScrollBar1Scroll(Sender: TObject; ScrollCode: TScrollCode;
  var ScrollPos: Integer);
begin
if ScrollBar1.Max <> ScrollBar1.Min then begin
  if ScrollPos > ScrollAlt1 then begin
   World.Engine.Engine.X := World.Engine.Engine.X - 32;
  end;
  if ScrollPos < ScrollAlt1 then begin
   World.Engine.Engine.X := World.Engine.Engine.X + 32;
  end;
  ScrollAlt1:= ScrollPos;
end;  
end;
Und damit die Scrollbar sich der Form anpasst:

Delphi-Quellcode:
procedure TForm1.FormResize(Sender: TObject);
begin
 m1 := (World.lWidth)-(World.DXDraw.Width div 32);
 m2 := (World.lHeight)-(World.DXDraw.Height div 32);
end;
Ich weiß nicht warum das nicht funktioniert -.-
Bei der ersten Map die ich erstelle funktionierts und bei der zweiten nicht mehr..

Neutral General 18. Nov 2005 14:24

Re: DelphiX + Scrollbar
 
Sind zwar noch nicht ganz 24 Stunden aaaber:

*PUSH*

Ihr wollt doch alle das mein Editor fertig wird :mrgreen:

mimi 20. Nov 2005 11:46

Re: DelphiX + Scrollbar
 
du hast bestimmt irgenwo vergessen variabeln neu zu installisieren z.b.
ScrollPos
würde ich bei neuer karte neu installisieren.
oder schau mal nach welche variablen du beim ersten starten installisiert und dann vergleiche die mit der neuen karte variabeln.

weil der Fehler deutet auf sowas hin....


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