AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Keine Scrollbar bei ListBox?

Ein Thema von Teekeks · begonnen am 23. Aug 2009 · letzter Beitrag vom 23. Aug 2009
Antwort Antwort
Teekeks

Registriert seit: 19. Okt 2008
Ort: Dresden
765 Beiträge
 
FreePascal / Lazarus
 
#1

Keine Scrollbar bei ListBox?

  Alt 23. Aug 2009, 07:23
Hi!
Wie kann ich verhindern das meine Form eine Horizontale oder Vertikale ScrollBar bildet?
OnResize schiebe ich meine Komponenten genau bis an den Rand, doch dadurch das eine ListBox eine Scrollbar hat, kommt das noch dazu --> Komponenten schieben sich über den Rand hinweg --> Scrollbar bildet sich.
Mein Problem ist eigentlich das ich nicht rauskriege ob jetzt gerade die Komponente eine Scrollbar gebildet hat... Wie kann ich das rauskriegen? HorzScrollBar und VertScrollBar hat ja eine ListBox leider nicht...

Also als endfrage:
Wie kriege ich raus ob eine ListBox eine Scrollbar hat?

Achso: Ich habe Hier Linux und Lazarus...

Gruß Teekeks
Peter
"Div by zero Error" oder auch: "Es geht auch ohne Signatur!".
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.230 Beiträge
 
Delphi 12 Athens
 
#2

Re: Keine Scrollbar bei ListBox?

  Alt 23. Aug 2009, 07:37
Also irgendwie versteh ich grade dein Problem nicht

Erst dachte ich du redest hier von der ScrollBar der Form und dann isses plötzlich die der ListBox?


Die ScrollBars der Form kannst du über .VertScrollBar und .HorzScrollBar verhindern.
Ich weiß grad nicht, ob es eine "einfache" Möglichkeit gibt, um rauszubekommen, ob z.B. bei einer Form Eine eingeblendet ist, aber notfalls braucht man da ja nur zu schauen, ob irgendwelche untergeordnete Komponenten außerhalbdes Client-Bereichs liegen.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Teekeks

Registriert seit: 19. Okt 2008
Ort: Dresden
765 Beiträge
 
FreePascal / Lazarus
 
#3

Re: Keine Scrollbar bei ListBox?

  Alt 23. Aug 2009, 08:30
Also mein Problem ist das sich durch die Scrollbar der ListBox eine bei der Form bildet.
Die bei der ListBox ist ok, die bei der Form nicht.
Um die bei der Form zu verhindern möchte ich rauskriegen ob die ListBox eine hat.
Eine ListBox hat kein HorzScrollBar oder VertScrollBar.

Ich hoffe ich konnte mich diesesmal verständigen
Peter
"Div by zero Error" oder auch: "Es geht auch ohne Signatur!".
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.230 Beiträge
 
Delphi 12 Athens
 
#4

Re: Keine Scrollbar bei ListBox?

  Alt 23. Aug 2009, 08:53
ich versteh einfach nicht, warum die ScrollBar der ListBox die der Form beeinflussen soll,
da sich diese nach innen (in die ListBox hinein) ausdehnt, wobei sich die Größe der ListBox nicht ändert und es somit nach außen keinen Einfluß, z.B. auf die Form, haben sollte.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#5

Re: Keine Scrollbar bei ListBox?

  Alt 23. Aug 2009, 10:11
Zitat von Teekeks:
Also mein Problem ist das sich durch die Scrollbar der ListBox eine bei der Form bildet.
Wäre da ein Bild möglich?

Wie himitsu schon geschrieben hat, ist das irgendwie kein typisches Verhalten... wenn es so auftritt wie beschrieben.
  Mit Zitat antworten Zitat
Oldy

Registriert seit: 12. Dez 2008
135 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Keine Scrollbar bei ListBox?

  Alt 23. Aug 2009, 13:37
Zitat von Teekeks:
OnResize schiebe ich meine Komponenten genau bis an den Rand,
Wenn man das mit Anchors (direkt in der Komponente) macht spart man sich schonmal viel Programmierzeit (außer die Felder werden verschoben)

Aber nun zum Hauptproblem.

Zitat von Teekeks:
Mein Problem ist eigentlich das ich nicht rauskriege ob jetzt gerade die Komponente eine Scrollbar gebildet hat... Wie kann ich das rauskriegen? HorzScrollBar und VertScrollBar hat ja eine ListBox leider nicht...
Ich weiß zwar nicht, weshalb die Listbox-Scrollbar die Form Scrollbar beeinflusst, aber dennoch..

Hier die Lösung
Delphi-Quellcode:
if listbox1.items.Count*listbox1.itemheight > listbox1.height then
showmessage('Scrollbar ist da') else
showmessage('Scrollbar ist auf Reisen');
Denn sobald mehr items*13 da sind (die immer eine größe von 13 haben, aber wir wollen ja variabel sein ) als die listbox groß ist, bildet sich eine scrollbar

in meinem Testprogramm sieht das so aus:
(natürlich nur zum testen, keinerlei ordnung drinnen)

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
if listbox1.items.Count*listbox1.itemheight > listbox1.height then label1.caption:='Da!else label1.caption:='Weg!' ;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
listbox1.items.add('a');
Button1Click(nil);
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
listbox1.items.Delete(0);
//Nur zum Test, natürlich wird das bei dir ausführlicher (sicherung, abfrage etc.)
Button1Click(nil);
end;

Hoffe das bringt dir was
Alexander
  Mit Zitat antworten Zitat
Oldy

Registriert seit: 12. Dez 2008
135 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Keine Scrollbar bei ListBox?

  Alt 23. Aug 2009, 13:40
//sry doppelpost
Alexander
  Mit Zitat antworten Zitat
Teekeks

Registriert seit: 19. Okt 2008
Ort: Dresden
765 Beiträge
 
FreePascal / Lazarus
 
#8

Re: Keine Scrollbar bei ListBox?

  Alt 23. Aug 2009, 15:02
Hi!
Ich habe mittlerweile heraus gefunden dass das Problem auch ohne ScrollBar der ListBox auftritt.

Daher bitte ich euch:
Könnt ihr mir bei meinem Fehler in den Berechnungen Helfen?
Delphi-Quellcode:
procedure TFrmMain.FormResize(Sender: TObject);
begin
  HorzScrollBar.Visible:=false;
  VertScrollBar.Visible:=false;
  with BtnPlay do
  begin
    Top:=FrmMain.Height-Height;
    Width:=(FrmMain.Width div 4);
    Left:=0;
  end;
  with BtnPause do
  begin
    Top:=FrmMain.Height-Height;
    Width:=(FrmMain.Width div 4);
    Left:=(FrmMain.Width div 4);
  end;
  with BtnStop do
  begin
    Top:=FrmMain.Height-Height;
    Width:=(FrmMain.Width div 4);
    Left:=(FrmMain.Width div 4)*3;
  end;
  with BtnPrevTrack do
  begin
    Top:=FrmMain.Height-Height;
    Width:=(FrmMain.Width div 8);
    Left:=(FrmMain.Width div 8)*4;
  end;
  with BtnNextTrack do
  begin
    Top:=FrmMain.Height-Height;
    Width:=(FrmMain.Width div 8);
    Left:=(FrmMain.Width div 8)*5;
  end;
  with LBTracks do
  begin
    Top:=1;
    Left:=1;
    Width:=(FrmMain.Width div 16)*7;
    Height:=FrmMain.Height-(BtnPlay.Height*2+3);
  end;
  with MTrackInfo do
  begin
    Top:=1;
    Left:=4+((FrmMain.Width div 16)*7);
    Height:=FrmMain.Height-(BtnPlay.Height*4+3);
    Width:=(FrmMain.Width-Left-1);
  end;
{...}
  HorzScrollBar.Visible:=false;
  VertScrollBar.Visible:=false;
end;
Der Fehler Tritt nicht bei jedem Resize auf...
Ich bin Ratloß, irgendetwas muss ja irgendwann über die Form hinweg wollen...

Findet ihr das?
[edit] im anhang die anordnung...[/edit]

Gruß Teekeks
Miniaturansicht angehängter Grafiken
bild1_133.png  
Peter
"Div by zero Error" oder auch: "Es geht auch ohne Signatur!".
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.230 Beiträge
 
Delphi 12 Athens
 
#9

Re: Keine Scrollbar bei ListBox?

  Alt 23. Aug 2009, 15:08
nimm mal Form.ClientHeight statt .Height usw.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Teekeks

Registriert seit: 19. Okt 2008
Ort: Dresden
765 Beiträge
 
FreePascal / Lazarus
 
#10

Re: Keine Scrollbar bei ListBox?

  Alt 23. Aug 2009, 15:14
Hi!
Das hats gebracht!
DANKE an euch alle!

Gruß Teekeks
Peter
"Div by zero Error" oder auch: "Es geht auch ohne Signatur!".
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 19: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