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 Warum sehe ich keine Scrollbalken (https://www.delphipraxis.net/86689-warum-sehe-ich-keine-scrollbalken.html)

schuetzejanett 17. Feb 2007 19:10


Warum sehe ich keine Scrollbalken
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

ich erstelle mir eine gewisse anzahl von stringgrids dynamisch.
Denen weise ich mit dem Befehl scrollbars := ssVertical einen Vertikalen Scrollbalken zu , den ich im Programm aber nicht sehe woran liegt das?

Hier der Code zur Erstellung
Delphi-Quellcode:
astringgrid[(i*2+j)] := TStringgrid.Create(atabsheet[j]);
                    with astringgrid[(i*2+j)] do
                      begin
                        parent := atabsheet[j];
                        top:=5;
                        width := 150;
                        defaultrowheight := 15;
                        scrollbars := ssvertical;
                        if j = 0 then
                          begin
                            rowcount := 2;
                            colcount := 4;
                            fixedrows := 1;
                            defaultcolwidth := 30;
                            colwidths[0] := 20 ;
                            cells[1,0]:= '1';
                            cells[2,0]:= '2';
                            cells[3,0]:= '3';                          
                          end
                        else
                          begin
                            colcount := 2;
                            fixedCols := 0;
                            defaultcolwidth := 50;
                            cells[0,0]:= 'Feld';
                            cells[1,0]:= 'Treffer';
                            afields := playerList.Player[i].fields;
                            rowcount := length(afields);                          
                            for k := 0 to high(afields) do
                              begin
                                cells[0,k+1] := inttostr(afields[k].field);
                                Cells[1,k+1] := inttostr(afields[k].anz);
                              end;//for
                          end;//else
                      end;//with stringgrid(2i+1)
Habe das Programm mal gepackt und angehängt falls ihr noch mal direkt reingucken wollt. Die Stringggrds werden in der unit Game erzeugt in der Methode Form.show ziemlich weit am ende.

marabu 17. Feb 2007 19:39

Re: Warum sehe ich keine Scrollbalken
 
Hallo,

hast du bedacht, dass der ScrollBar erst sichtbar wird, wenn er auch benötigt wird?

Grüße vom marabu

schuetzejanett 17. Feb 2007 19:40

Re: Warum sehe ich keine Scrollbalken
 
Ja, habe iich sehe si aber trotzdem nicht

marabu 17. Feb 2007 21:37

Re: Warum sehe ich keine Scrollbalken
 
Das mit dem Sehen, das ist so eine Sache. Du erzeugst dein Stringgrid mit der Standardhöhe von 120 Pixeln und packst es auf ein TabSheet, welches auf ein PageControl mit Height 100 Pixel gequetscht wird. Wenn du genügend Würfe machst, dann erscheint schon irgendwann dein Rollbalken. Oder du fügst eine Zeile ein:

Delphi-Quellcode:
// ab Zeile 183 in Unit Game.pas
                    astringgrid[(i*2+j)] := TStringgrid.Create(atabsheet[j]);
                    with astringgrid[(i*2+j)] do
                      begin
                        parent := atabsheet[j];
                        Align := alClient; // besser ist das
// ...
Freundliche Grüße

schuetzejanett 18. Feb 2007 09:41

Re: Warum sehe ich keine Scrollbalken
 
Ja danke das war es , jetzt sehe ich sie.
schönes wochenende noch

dino 18. Feb 2007 10:04

Re: Warum sehe ich keine Scrollbalken
 
was hat diese Zeile nun bewirckt?

marabu 18. Feb 2007 10:23

Re: Warum sehe ich keine Scrollbalken
 
Hallo dino,

durch alClient wird das ClientRect des StringGrids an das ClientRect des Tabsheets (ohne den Platz der von den Tabs beansprucht wird) angepasst. Vorher war das TabSheet zwar das ParentControl, aber deutlich kleiner als das StringGrid. Dadurch war es möglich dem Grid eine vierte und fünfte Zeile hinzuzufügen, ohne dass dieses sich genötigt sah seinen ScrollBar einzublenden. Das geschieht nämlich erst dann, wenn das Grid feststellt, dass es mehr anzeigen möchte als in sein ClientRect hinein passt.

Freundliche Grüße


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:17 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz