Bilderliste - Lazarus
-
- Beiträge: 59
- Registriert: Fr 2. Nov 2012, 19:44
Bilderliste - Lazarus
Guten Abend,
Seit nun ca. einer Woche arbeite ich an einem Lazarus Programm.
Nun wollte ich ein Element einbauen das aussieht wie wenn man den Windows Explorer aus "große Symbole" einstellt.
Es sollen also Bilder nebeneinander stehen mit einer Schrift darunter.
Ich habe versucht dies mit dem Objekt "TListView" zu lösen aber das Objekt leider nicht verstanden.
Ich höffe ihr könnt mir helfen,
T. B.
Seit nun ca. einer Woche arbeite ich an einem Lazarus Programm.
Nun wollte ich ein Element einbauen das aussieht wie wenn man den Windows Explorer aus "große Symbole" einstellt.
Es sollen also Bilder nebeneinander stehen mit einer Schrift darunter.
Ich habe versucht dies mit dem Objekt "TListView" zu lösen aber das Objekt leider nicht verstanden.
Ich höffe ihr könnt mir helfen,
T. B.
-
- Beiträge: 770
- Registriert: Sa 21. Feb 2009, 13:46
- OS, Lazarus, FPC: Windows 7 (L 1.3 Built 43666 FPC 2.6.2)
- CPU-Target: 32Bit
Re: Bilderliste - Lazarus
TListView ist dafür da um mehrere gleichgroße Bilder im Speicher zu behalten.
Für deine Fälle eher weniger geeignet.
Versuchs einfach mit mehreren TImage oder zeichne alle Bilder auf 1 TImage.
Für deine Fälle eher weniger geeignet.
Versuchs einfach mit mehreren TImage oder zeichne alle Bilder auf 1 TImage.
Code: Alles auswählen
Signatur := nil;
Re: Bilderliste - Lazarus
Ich verstehe nicht genau, was das Ding können soll.
Vllt. sowas? www.lazarusforum.de/viewtopic.php?f=29&t=3929
Vllt. sowas? www.lazarusforum.de/viewtopic.php?f=29&t=3929
-
- Beiträge: 59
- Registriert: Fr 2. Nov 2012, 19:44
Re: Bilderliste - Lazarus
Erstmal danke für eure Hilfe 
@MAC: Das hatte ich mir erst auch so überlegt, aber da ich insgesamt so um die 106 Bilder habe wäre das viel Arbeit.
@Theo: genau das meine ich
danke für den link.
habe sowas leider nicht gefunden, sonst hätte ich nicht gefragt.
Schönen Tag euch
T. B.

@MAC: Das hatte ich mir erst auch so überlegt, aber da ich insgesamt so um die 106 Bilder habe wäre das viel Arbeit.
@Theo: genau das meine ich

danke für den link.
habe sowas leider nicht gefunden, sonst hätte ich nicht gefragt.
Schönen Tag euch

T. B.
-
- Beiträge: 3444
- Registriert: Mo 11. Sep 2006, 10:24
- OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
- CPU-Target: X32 / X64 / ARMv5
- Wohnort: Krefeld
Re: Bilderliste - Lazarus
Man kann jede visuelle Komponente (wie TImage) auch programmatisch erzeugen, platzieren und darstellen. Mache eine ordentliche Schleife über die 106 Bilder und alles wird gut. Bei deutlich über zwei sehr ähnlichen Komponenten sollte man immer so arbeiten.Have a nice Day hat geschrieben:aber da ich insgesamt so um die 106 Bilder habe wäre das viel Arbeit.
-Michael
-
- Beiträge: 958
- Registriert: Mo 11. Sep 2006, 22:56
Re: Bilderliste - Lazarus
Virtual treeview wäre auch eine Möglichkeit.
-
- Beiträge: 59
- Registriert: Fr 2. Nov 2012, 19:44
Re: Bilderliste - Lazarus
Ich erkläre nochmal genauer was ich machen will.
Ich habe insgesamt 106 Bilder.
Diese will ich nun in eine Liste machen so das ich 10 Spalten habe und 11 Zeilen.
Jedes Bild soll unter sich ein Namen haben.
Es sollen in der Ansicht nur 5 Zeilen zu sehen sein und halt alle 10 Spalten.
Dann soll man mit einer Scrollbar an der Seite nach unten gehen können.
Auf die einzelnen Bilder soll man drauf klicken können.
Eigentlich genau so wie das Programm von Theo, aber nicht mit so ganz vielen Funktionen.
Ich bekomme darüber irgendwie keinen Überblick (Programmiere mit Lazarus seit 1nem Monat).
Also ehr ein simples Programm
Ich habe insgesamt 106 Bilder.
Diese will ich nun in eine Liste machen so das ich 10 Spalten habe und 11 Zeilen.
Jedes Bild soll unter sich ein Namen haben.
Es sollen in der Ansicht nur 5 Zeilen zu sehen sein und halt alle 10 Spalten.
Dann soll man mit einer Scrollbar an der Seite nach unten gehen können.
Auf die einzelnen Bilder soll man drauf klicken können.
Eigentlich genau so wie das Programm von Theo, aber nicht mit so ganz vielen Funktionen.
Ich bekomme darüber irgendwie keinen Überblick (Programmiere mit Lazarus seit 1nem Monat).
Also ehr ein simples Programm

-
- 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)
Re: Bilderliste - Lazarus
ganz einfach:
Man nehme eine ScrollBox, und schreibt eine Methode, die die scrollBox mit Pannels füllt. Diese Pannels beinhalten ein Image und ein Label.
Soweit klar?
Das füllen passiert dann Dynamisch. Ich verrate erst mal nur so viel:
Pannel:=TPannel.Create(ScrollBox1);
damit erstellst du Dynamisch Komponenten. Pannel ist in diesen Fall eine Locale Variable von Typ: TPannel.
Das Pannel braucht noch eine Größe und eine Position.
Panel.Widht(könnte Falsch geschrieben sein):=300;
Panel.Height(könnte Falsch geschrieben sein):=300;
panel.Parent:=ScrollBox1;
genau so geht es mit dem TImage und dem TLabel.
Wie liegen die Bilder vor? In einer StringList? in einer TListBox?
Eigentlich müsste es auch mit der Komponente ListView gehen. Aber nur in verbindung mit einer ImageList Komponente, wo du die Bilder drin hast.
Man nehme eine ScrollBox, und schreibt eine Methode, die die scrollBox mit Pannels füllt. Diese Pannels beinhalten ein Image und ein Label.
Soweit klar?
Das füllen passiert dann Dynamisch. Ich verrate erst mal nur so viel:
Pannel:=TPannel.Create(ScrollBox1);
damit erstellst du Dynamisch Komponenten. Pannel ist in diesen Fall eine Locale Variable von Typ: TPannel.
Das Pannel braucht noch eine Größe und eine Position.
Panel.Widht(könnte Falsch geschrieben sein):=300;
Panel.Height(könnte Falsch geschrieben sein):=300;
panel.Parent:=ScrollBox1;
genau so geht es mit dem TImage und dem TLabel.
Wie liegen die Bilder vor? In einer StringList? in einer TListBox?
Eigentlich müsste es auch mit der Komponente ListView gehen. Aber nur in verbindung mit einer ImageList Komponente, wo du die Bilder drin hast.
MFG
Michael Springwald
Michael Springwald
-
- Beiträge: 59
- Registriert: Fr 2. Nov 2012, 19:44
Re: Bilderliste - Lazarus
1. Frage:pluto hat geschrieben:ganz einfach:
Man nehme eine ScrollBox, und schreibt eine Methode, die die scrollBox mit Pannels füllt. Diese Pannels beinhalten ein Image und ein Label.
Soweit klar?
Das füllen passiert dann Dynamisch. Ich verrate erst mal nur so viel:
Pannel:=TPannel.Create(ScrollBox1);
damit erstellst du Dynamisch Komponenten. Pannel ist in diesen Fall eine Locale Variable von Typ: TPannel.
Das Pannel braucht noch eine Größe und eine Position.
Panel.Widht(könnte Falsch geschrieben sein):=300;
Panel.Height(könnte Falsch geschrieben sein):=300;
panel.Parent:=ScrollBox1;
genau so geht es mit dem TImage und dem TLabel.
Wie liegen die Bilder vor? In einer StringList? in einer TListBox?
Eigentlich müsste es auch mit der Komponente ListView gehen. Aber nur in verbindung mit einer ImageList Komponente, wo du die Bilder drin hast.
Mit Methoden habe ich noch nicht gearbeitet,
kannst du mir erklären wie ich sowas hinbekomme?
2. Frage:
Ich habe einen Ordner mit allen Bildern,
wie bekomme ich die alle in eine Liste?
3. Frage: (hat nicht ganz was mit der anderen Frage zu tun)
Kann man Objekte in der Form ausblenden, also beim Erstellen.
Weil ich hab da schon viele Objekte und das wir bei mir alles ein wenig unübersichtlich
-
- 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)
Re: Bilderliste - Lazarus
Eine Methode ist eine Procedure die zu einer Klasse gehört z.b. könntest du in TFrom1 im public Bereich:1. Frage:
Mit Methoden habe ich noch nicht gearbeitet,
kannst du mir erklären wie ich sowas hinbekomme?
procedure ReadDir; schreiben und dann weiter unten procedure TForm1.ReadDir; schreiben
Das ganze sieht dann so aus:
Code: Alles auswählen
procedure TForm1.ReadDir;
begin
//... Code um ein Verzeichnis einzulesen
end;
Das einfachste wäre es, du bindest die Unit FileUtil ein und schaust dir mal die Funktion FindAllFiles an.2. Frage:
Ich habe einen Ordner mit allen Bildern,
wie bekomme ich die alle in eine Liste?
Die meisten Visuellen Komponenten haben die Eigenschaft Visible wenn du die auf False stellst, siehst du sie nicht mehr. Das gilt jedoch nur wenn du das Programm startest.3. Frage: (hat nicht ganz was mit der anderen Frage zu tun)
Kann man Objekte in der Form ausblenden, also beim Erstellen.
Weil ich hab da schon viele Objekte und das wir bei mir alles ein wenig unübersichtlich
Zu Desiner Zeit müsstest du andere Komponenten verwenden, um eine bessere Übersicht zu bekommen z.b. TNoteBookt oder TPageControl
Hinweis: Das was du als Objekte bezeichnest sind im allgemeinen "KOMPONENTEN". Objekte sind eigentlich was anders... habe gerade kein Beispiel zur Hand.
Hinweis2: Es gibt eine FileListBox die zeigt dir den Inhalt eines angebenden Verzeichnisses an. Dann hättest du schon mal zugriff auf die Dateien.
MFG
Michael Springwald
Michael Springwald
-
- Beiträge: 59
- Registriert: Fr 2. Nov 2012, 19:44
Re: Bilderliste - Lazarus
Was bedeutet das "ReadDir" ?pluto hat geschrieben:Code: Alles auswählen
procedure TForm1.ReadDir; begin //... Code um ein Verzeichnis einzulesen end;
-
- 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)
Re: Bilderliste - Lazarus
ReadDir ist der Name der Methode. In diesen Fall ohne Parameter. Eine Methode ist eine Procedure oder Funktion die zu einer Klasse gehört.
Aber das war nur ein Beispiel.
Ein Vorschlag:
1. Fange ein komplett neues Projekt an.
2. Speichere das Projekt unter MyBilderListe ab, am besten in einem eigenen Ordner mit Passenden Namen
3. Wähle in der Komponenten liste zwei Komponenten aus: TFileListBox und TScrollBox
Klicke nun die TFileListBox mit der Linken Maustaste an und im OI(In der Regel auf der Rechten Seite) befinden sich die Eigenschaften, die diese "Komponente" hat.
Schau dir mal die Eigenschaften aus, da müsste eine dabei sein, wo du dein Verzeichnis angeben kannst.
Schon sollte in der TFileListBox, der Inhalt von deinem Verzeichnis zu finden sein.
Mehr machen wir erst mal nicht. Fortsetzung Folgt.
Aber das war nur ein Beispiel.
Ein Vorschlag:
1. Fange ein komplett neues Projekt an.
2. Speichere das Projekt unter MyBilderListe ab, am besten in einem eigenen Ordner mit Passenden Namen
3. Wähle in der Komponenten liste zwei Komponenten aus: TFileListBox und TScrollBox
Klicke nun die TFileListBox mit der Linken Maustaste an und im OI(In der Regel auf der Rechten Seite) befinden sich die Eigenschaften, die diese "Komponente" hat.
Schau dir mal die Eigenschaften aus, da müsste eine dabei sein, wo du dein Verzeichnis angeben kannst.
Schon sollte in der TFileListBox, der Inhalt von deinem Verzeichnis zu finden sein.
Mehr machen wir erst mal nicht. Fortsetzung Folgt.
MFG
Michael Springwald
Michael Springwald
-
- Beiträge: 59
- Registriert: Fr 2. Nov 2012, 19:44
Re: Bilderliste - Lazarus
Du machst dir richtig Mühe mit mir 
Ich habe leider keinen der mir das erklären kann.
Das was du erläutert hast habe ich nun hinbekommen.
Was nun mein Problem ist:
Wie bekomme ich es hin das er diese Inhalte als Bild in meine ScrollBox kopiert und anzeigt.
Hoffe nun auf Lesson 2 im Kurs von Herrn pluto

Ich habe leider keinen der mir das erklären kann.
Das was du erläutert hast habe ich nun hinbekommen.
Was nun mein Problem ist:
Wie bekomme ich es hin das er diese Inhalte als Bild in meine ScrollBox kopiert und anzeigt.
Hoffe nun auf Lesson 2 im Kurs von Herrn 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)
Re: Bilderliste - Lazarus
Kein Thema. Ich erstelle gerade eine Beispiel Anwendung, ist glaube ich einfacher, ich denke, ich werde "bald" Fertig sein.
MFG
Michael Springwald
Michael Springwald
-
- 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)
Re: Bilderliste - Lazarus
Wie versprochen, hier ein sehr kleines Beispiel Projekt.
Ich hoffe du kannst damit etwas anfangen.
Ich hoffe du kannst damit etwas anfangen.
- Dateianhänge
-
bilderliste.zip
- (281.21 KiB) 113-mal heruntergeladen
MFG
Michael Springwald
Michael Springwald