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 ListBox horizontal scrollen, Liste Kopieren, ... (https://www.delphipraxis.net/101457-listbox-horizontal-scrollen-liste-kopieren.html)

taktaky 13. Okt 2007 16:24


ListBox horizontal scrollen, Liste Kopieren, ...
 
Hallo,

in Obj Inspektor kann man nicht alle Eigenschaften von ListBox ändern

1. Rechte Maustaste ist deaktiviert
2. horizontal scrollen nicht vorhanden
3. man kann nicht alle liste auswählen mit Strg + A, wenn man die List kopieren will

wie kann ich diese Eigenschaften bekommen?


<>

Sharky 13. Okt 2007 16:27

Re: ListBox horizontal scrollen, Liste Kopieren, ...
 
Zitat:

Zitat von taktaky
...wie kann ich diese Eigenschaften bekommen?...

:gruebel: In dem DU Code schreibst der diese Funktionen bereitstellt?

brinkee 13. Okt 2007 16:28

Re: ListBox horizontal scrollen, Liste Kopieren, ...
 
Naja, die musst Du dir selbst reinbasteln.

* die rechte Maustaste braucht bei Dir ja mitunter ganz eigene Funktionen
* und mit STRG + A kannst Du dir auch selber helfen

Musst halt nur die Ereignisse OnKeyDown/Up abfragen und OnMouseUp und ein PopUp aufrufen.

LG, Markus

taktaky 13. Okt 2007 16:37

Re: ListBox horizontal scrollen, Liste Kopieren, ...
 
Problem 2 ist mit diesem Code gelöst :
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var i, intWidth, intMaxWidth: Integer;
begin
  intMaxWidth := 0;
  for i := 0 to ListBox1.Items.Count-1 do
  begin
    intWidth := ListBox1.Canvas.TextWidth(ListBox1.Items.Strings[i] + 'x');
    if intMaxWidth < intWidth then
      intMaxWidth := intWidth;
  end;
  SendMessage(ListBox1.Handle, LB_SETHORIZONTALEXTENT, intMaxWidth, 0);
end;
1., 3. offen!


<>

brinkee 13. Okt 2007 16:43

Re: ListBox horizontal scrollen, Liste Kopieren, ...
 
Mann!

Rechte Maustaste im OnMouseUp/Down: Popup.popup!
Strg * A -> Mach ein OnKeyUp und gucke, ob beide Tasten gedrückt sind. Wenn ja, markier die Sachen in der ListBox.

Wenn man Dir nicht alles vorkaut ist auch nicht gut, oder? Ich will ned wissen, wie deine Programme von innen aussehen. Ein Flickwerk aus tausenden Foren-Beirägen und Code-Snippets...

LG, Markus

marabu 13. Okt 2007 16:57

Re: ListBox horizontal scrollen, Liste Kopieren, ...
 
Ahoj taktaky,

wenn du der ListBox ein Kontext-Menü zuordnest (property PopupMenu), dann musst du dich um die rechte Maustaste nicht kümmern.

Den horizontalen Rollbalken setze ich so:

Delphi-Quellcode:
procedure AdjustScrollWidth(lb: TCustomListBox);
var
  i, maxWidth: Integer;
begin
  maxWidth := 0;
  with lb do
  begin
    for i := 0 to Pred(Items.Count) do
      maxWidth := Max(Canvas.TextWidth(Items[i]), maxWidth);
    ScrollWidth := maxWidth + 4;
  end;
end;
Die Auswahl aller Items kannst du mit der Methode SelectAll() machen.

Grüße vom marabu

Sharky 13. Okt 2007 17:05

Re: ListBox horizontal scrollen, Liste Kopieren, ...
 
Zitat:

Zitat von taktaky
...1., 3. offen!

Und da wir die Regel "nur eine Frage pro Thread" haben schliesse ich an dieser Stelle.


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