ListView eigene Scrollbar verpassen

Rund um die LCL und andere Komponenten
Antworten
Nils
Beiträge: 130
Registriert: Mo 28. Mai 2007, 12:36
Kontaktdaten:

ListView eigene Scrollbar verpassen

Beitrag von Nils »

Hi,

da ich keine Lust habe eine eigene skinbare ListView zu entwickeln (Zeitmangel), möchte ich einer TListView meine eigene geskinnte Scrollbar verpassen. Nur ginge das plattformunabhängig ? Im Notfall könnte ich ja auch ein IFDEF reinschreiben, welches mir dafür sorgt, dass unter Windows eben die Windowsmessages und unter Linux eben die Alternative verwendet wird, wenn mir jemand sagen kann, wie.

Euklid
Lazarusforum e. V.
Beiträge: 2808
Registriert: Fr 22. Sep 2006, 10:38
OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
Wohnort: Hessen
Kontaktdaten:

Re: ListView eigene Scrollbar verpassen

Beitrag von Euklid »

Wird wohl das Einfachste sein, deine eigene ListView-Komponente auf die vorhandene aufzubauen.
Nils hat geschrieben:Nur ginge das plattformunabhängig ?
Wenn du dazu ausschließlich LCL-Befehle verwendest, keine APIs, dann geht es ohne Umstände plattformunabhängig. Ansonsten musst du, wie du schon selbst erkannt hast, auf IFDEF satteln. Das geht zum Beispiel so:

Wenn du dein Programm für Win und Lin auslegen willst reicht:

Code: Alles auswählen

{$IFDEF windows}
      // hier Windows-Spezifischer Code
    {$ELSE}
      // Hier z.B. Linux-Code.
    {$ENDIF}
Viele Grüße, Euklid

Nils
Beiträge: 130
Registriert: Mo 28. Mai 2007, 12:36
Kontaktdaten:

Beitrag von Nils »

Wie sähe denn der Linux-Code aus ?
Meine Musik: spiker-music.net

Euklid
Lazarusforum e. V.
Beiträge: 2808
Registriert: Fr 22. Sep 2006, 10:38
OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
Wohnort: Hessen
Kontaktdaten:

Beitrag von Euklid »

Nils hat geschrieben:Wie sähe denn der Linux-Code aus ?
Verstehe deine Frage nicht. Ich kann doch nicht wissen, was du unter Linux erreichen willst?

Nils
Beiträge: 130
Registriert: Mo 28. Mai 2007, 12:36
Kontaktdaten:

Beitrag von Nils »

Wie im ersten Beitrag schon stand, möchte ich der ListView eine eigene Scrollbar verpassen.
Meine Musik: spiker-music.net

Euklid
Lazarusforum e. V.
Beiträge: 2808
Registriert: Fr 22. Sep 2006, 10:38
OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
Wohnort: Hessen
Kontaktdaten:

Beitrag von Euklid »

Nils hat geschrieben:Wie im ersten Beitrag schon stand, möchte ich der ListView eine eigene Scrollbar verpassen.
Wie im zweiten Eintrag schon stand: Wenn du dich auf die LCL verlässt, bleibst du prinzipiell plattformunabhängig. Das ist auch das, was ich dir am ehesten empfehlen würde.

Nils
Beiträge: 130
Registriert: Mo 28. Mai 2007, 12:36
Kontaktdaten:

Beitrag von Nils »

Hm ok. Nun stelle ich also einfach bei der TListView ScrollBars auf ssNone. Wie sage ich dann genaugenommen der LCL-ListView dass sie scrollen soll ? Denn ich muss ja meine eigene Scrollbar verwenden.
Meine Musik: spiker-music.net

alexander
Beiträge: 423
Registriert: Di 5. Feb 2008, 12:45
OS, Lazarus, FPC: Linux, Lazarus svn, FPC svn
CPU-Target: 64Bit
Kontaktdaten:

Beitrag von alexander »

hmmm also wie schon gesagt wurde: Bleib bei der LCL, die IFDEF's nur wenn es absolut keine andere Möglichkeit gibt.

Insgesamt finde ich dass man mit dem skinbar vorsichtig sein sollte. Denn eine einheitliche Oberfläche ist ein Wert für sich. (In Linux bemerkt man das)
Du magst Freiheit? Gönne es auch deinem Computer mit Linux!
www.alexanderroth.eu

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

Eine Listview ist gar nicht mal so Kompiliert !
Wenn man sich an die Lazarus ListView hält ist die sogar recht einfach.
Ich denk in wenigen tagen dürfte sowas Fertig sein.

Du müsstest erstmal ein Item Erstellen. Dann eine Object Liste verwenden.
Du könntest einen Fertigen Header Nehmen oder einen eigenen machen.
Den Header Packst du dann so wie du ihn haben möchtest.

Eine Eigene LW hat einfach viel mehr Vorteile. Z.B. könntest du sie viel Besser anpassen.
Eigentlich könntest du auch die ScrollBox nutzen. Wobei TCustomControl hat selbst ScrollBalken, die du besser Steuern kannst.

Ich wollte zwar auch schon eine eigene Listview anfangen, aber ich denke mein anders Projekt ist Interessanter !

Aber glaube mir: Eine LW ist gar nicht so Aufwendig. Einige Tage dürfte das dauern...
Wenn ich das richtig einschätzte !!!
MFG
Michael Springwald

Antworten