Bladeren bron

adding scrolling to list of books

Bernardo Magri 8 jaren geleden
bovenliggende
commit
828dcab7e9
5 gewijzigde bestanden met toevoegingen van 96 en 34 verwijderingen
  1. 4 4
      src/main.lfm
  2. 34 12
      src/main.pas
  3. 0 1
      src/myBookShelf.lpi
  4. 58 17
      src/myBookShelf.lps
  5. BIN
      src/myBookShelf.res

+ 4 - 4
src/main.lfm

@@ -6,7 +6,6 @@ object Form1: TForm1
   Caption = 'myBookShelf'
   ClientHeight = 573
   ClientWidth = 817
-  OnClick = FormClick
   OnClose = FormClose
   OnCreate = FormCreate
   OnPaint = FormPaint
@@ -702,15 +701,16 @@ object Form1: TForm1
     }
     Stretch = True
   end
-  object PanelBackground: TPanel
+  object PanelBackground: TScrollBox
     Left = 0
     Height = 537
     Top = 36
     Width = 817
+    HorzScrollBar.Page = 1
+    VertScrollBar.Page = 1
     Align = alClient
-    Color = clGray
-    ParentColor = False
     TabOrder = 0
+    OnResize = PanelBackgroundResize
     OnPaint = PanelBackgroundPaint
   end
   object OpenDialog1: TOpenDialog

+ 34 - 12
src/main.pas

@@ -18,13 +18,14 @@ type
     ImageToolBar: Timage;
     ButtonAdd: Timage;
     Opendialog1: Topendialog;
-    PanelBackground: Tpanel;
+    PanelBackground: Tscrollbox;
     procedure Buttonaddclick(Sender: Tobject);
-    procedure Formclick(Sender: Tobject);
     procedure Formclose(Sender: Tobject; var Closeaction: Tcloseaction);
     procedure Formcreate(Sender: Tobject);
     procedure Formpaint(Sender: Tobject);
     procedure Panelbackgroundpaint(Sender: Tobject);
+    //procedure DrawBooks();
+    procedure Panelbackgroundresize(Sender: Tobject);
   private
     { private declarations }
   public
@@ -37,6 +38,7 @@ var
   X,Y, Xdelta, Ydelta:integer;
   dataPath:String;
   background:TPicture;
+  bookWidth,bookHeight:Integer;
 
 
 implementation
@@ -51,20 +53,38 @@ begin
 End;
 
 procedure Tform1.Panelbackgroundpaint(Sender: Tobject);
-var rect:TRect;
 begin
- rect.Left:=0;
- rect.top:=0;
- rect.Width:=PanelBackground.Width;
- rect.Height:=PanelBackground.Height;
- PanelBackground.Canvas.StretchDraw(rect, background.Graphic);
+ PanelBackground.Canvas.StretchDraw(PanelBackground.Canvas.ClipRect, background.Graphic);
 End;
 
-procedure Tform1.Formclick(Sender: Tobject);
+//procedure Tform1.Drawbooks();
+//var i:integer;
+//    tempBook:TBook;
+//begin
+//   for i:=0 to BookList.Count-1 do
+// begin
+//  tempBook:=BookList.Books[i];
+//  if X+Xdelta > PanelBackground.Width-150 then
+//  begin
+//    X:=0;
+//    Y:=Y+Ydelta+200;
+//  end;
+//  tempBook.Cover.Left:=X+Xdelta;
+//  tempBook.Cover.Top:=Y+Ydelta;
+//  tempBook.Cover.Width:=150;
+//  tempBook.Cover.Height:=200;
+//  if tempBook.Cover.Parent=nil then
+//     tempBook.Cover.Parent:=PanelBackground;
+//  X:=X+Xdelta+150;
+// end;
+//end;
+
+procedure Tform1.Panelbackgroundresize(Sender: Tobject);
 begin
-  //OpenDocument(myBook.FilePath);
+ // DrawBooks();
 End;
 
+
 procedure Tform1.Formclose(Sender: Tobject; var Closeaction: Tcloseaction);
 begin
 BookList.StoreData(dataPath);
@@ -115,7 +135,8 @@ if not DirectoryExists(GetEnvironmentVariable('HOME') + '/.mybookshelf/') then
  if FileExists(dataPath) then
     BookList.LoadData(dataPath, PanelBackground);
 
- for i:=0 to BookList.Count-1 do
+
+   for i:=0 to BookList.Count-1 do
  begin
   tempBook:=BookList.Books[i];
   if X+Xdelta > PanelBackground.Width-150 then
@@ -127,7 +148,8 @@ if not DirectoryExists(GetEnvironmentVariable('HOME') + '/.mybookshelf/') then
   tempBook.Cover.Top:=Y+Ydelta;
   tempBook.Cover.Width:=150;
   tempBook.Cover.Height:=200;
-  tempBook.Cover.Parent:=PanelBackground;
+  if tempBook.Cover.Parent=nil then
+     tempBook.Cover.Parent:=PanelBackground;
   X:=X+Xdelta+150;
  end;
 

+ 0 - 1
src/myBookShelf.lpi

@@ -8,7 +8,6 @@
       <Title Value="myBookShelf"/>
       <ResourceType Value="res"/>
       <UseXPManifest Value="True"/>
-      <Icon Value="0"/>
     </General>
     <i18n>
       <EnableI18N LFM="False"/>

+ 58 - 17
src/myBookShelf.lps

@@ -8,7 +8,7 @@
         <Filename Value="myBookShelf.lpr"/>
         <IsPartOfProject Value="True"/>
         <CursorPos Y="20"/>
-        <UsageCount Value="36"/>
+        <UsageCount Value="38"/>
         <Loaded Value="True"/>
       </Unit0>
       <Unit1>
@@ -18,10 +18,10 @@
         <HasResources Value="True"/>
         <ResourceBaseClass Value="Form"/>
         <IsVisibleTab Value="True"/>
-        <EditorIndex Value="3"/>
-        <TopLine Value="97"/>
-        <CursorPos X="9" Y="123"/>
-        <UsageCount Value="36"/>
+        <EditorIndex Value="4"/>
+        <TopLine Value="122"/>
+        <CursorPos X="7" Y="27"/>
+        <UsageCount Value="38"/>
         <Loaded Value="True"/>
         <LoadedDesigner Value="True"/>
       </Unit1>
@@ -29,20 +29,20 @@
         <Filename Value="book.pas"/>
         <IsPartOfProject Value="True"/>
         <UnitName Value="Book"/>
-        <EditorIndex Value="1"/>
+        <EditorIndex Value="2"/>
         <TopLine Value="38"/>
         <CursorPos X="30" Y="64"/>
-        <UsageCount Value="36"/>
+        <UsageCount Value="38"/>
         <Loaded Value="True"/>
       </Unit2>
       <Unit3>
         <Filename Value="bookcollection.pas"/>
         <IsPartOfProject Value="True"/>
         <UnitName Value="bookCollection"/>
-        <EditorIndex Value="2"/>
+        <EditorIndex Value="3"/>
         <TopLine Value="68"/>
         <CursorPos X="71" Y="109"/>
-        <UsageCount Value="33"/>
+        <UsageCount Value="35"/>
         <Loaded Value="True"/>
       </Unit3>
       <Unit4>
@@ -97,8 +97,9 @@
       </Unit10>
       <Unit11>
         <Filename Value="main.lfm"/>
-        <EditorIndex Value="-1"/>
-        <UsageCount Value="10"/>
+        <EditorIndex Value="1"/>
+        <UsageCount Value="11"/>
+        <Loaded Value="True"/>
         <DefaultSyntaxHighlighter Value="LFM"/>
       </Unit11>
       <Unit12>
@@ -110,7 +111,7 @@
         <UsageCount Value="10"/>
       </Unit12>
     </Units>
-    <JumpHistory Count="18" HistoryIndex="17">
+    <JumpHistory Count="28" HistoryIndex="27">
       <Position1>
         <Filename Value="bookcollection.pas"/>
         <Caret Line="48" TopLine="26"/>
@@ -165,24 +166,64 @@
       </Position13>
       <Position14>
         <Filename Value="main.pas"/>
-        <Caret Line="86" Column="37" TopLine="92"/>
+        <Caret Line="122" Column="49" TopLine="92"/>
       </Position14>
       <Position15>
         <Filename Value="main.pas"/>
-        <Caret Line="122" Column="49" TopLine="92"/>
+        <Caret Line="30" Column="9" TopLine="9"/>
       </Position15>
       <Position16>
         <Filename Value="main.pas"/>
-        <Caret Line="30" Column="9" TopLine="9"/>
+        <Caret Line="92" Column="44" TopLine="62"/>
       </Position16>
       <Position17>
         <Filename Value="main.pas"/>
-        <Caret Line="92" Column="44" TopLine="62"/>
+        <Caret Line="60" Column="61" TopLine="39"/>
       </Position17>
       <Position18>
         <Filename Value="main.pas"/>
-        <Caret Line="60" Column="61" TopLine="39"/>
+        <Caret Line="123" Column="9" TopLine="97"/>
       </Position18>
+      <Position19>
+        <Filename Value="main.pas"/>
+        <Caret Line="122" Column="9" TopLine="96"/>
+      </Position19>
+      <Position20>
+        <Filename Value="main.pas"/>
+        <Caret Line="27" Column="25" TopLine="7"/>
+      </Position20>
+      <Position21>
+        <Filename Value="main.pas"/>
+        <Caret Line="57" Column="45" TopLine="44"/>
+      </Position21>
+      <Position22>
+        <Filename Value="main.pas"/>
+        <Caret Line="27" Column="26" TopLine="6"/>
+      </Position22>
+      <Position23>
+        <Filename Value="main.pas"/>
+        <Caret Line="60" Column="29" TopLine="25"/>
+      </Position23>
+      <Position24>
+        <Filename Value="main.pas"/>
+        <Caret Line="63" TopLine="45"/>
+      </Position24>
+      <Position25>
+        <Filename Value="main.pas"/>
+        <Caret Line="64" TopLine="45"/>
+      </Position25>
+      <Position26>
+        <Filename Value="main.pas"/>
+        <Caret Line="66" TopLine="45"/>
+      </Position26>
+      <Position27>
+        <Filename Value="main.pas"/>
+        <Caret Line="67" Column="32" TopLine="45"/>
+      </Position27>
+      <Position28>
+        <Filename Value="main.pas"/>
+        <Caret Line="61" Column="61" TopLine="49"/>
+      </Position28>
     </JumpHistory>
   </ProjectSession>
   <Debugging>

BIN
src/myBookShelf.res