Frage zu TImagelist
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1435
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
Frage zu TImagelist
Wenn ich eine neue TImagelist erzeuge und dieser Bilder hinzufüge, dann ist il.count entsprechend und mit bitmaps[index] kann ich auf die einzelnen Bilder zugreifen.
Wenn die Imagelist aus dem Stream geladen wurde, dann ist count immer noch richtig, ich habe aber nur noch einen Eintrag bitmaps[0] in dem sozusagen alle Bilder als ein großes enthalten ist.
Wie kann ich jetzt wieder auf die Einzelbilder zugreifen?
Wenn die Imagelist aus dem Stream geladen wurde, dann ist count immer noch richtig, ich habe aber nur noch einen Eintrag bitmaps[0] in dem sozusagen alle Bilder als ein großes enthalten ist.
Wie kann ich jetzt wieder auf die Einzelbilder zugreifen?
-
- Beiträge: 2013
- Registriert: Do 16. Okt 2008, 10:22
- OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
- CPU-Target: x86,x64,ARM
Re: Frage zu TImagelist
In TImageList werden die einzelnen Bilder in einer grossen möglichst quadratischen Pixmap gespeichert.
Die paint()-Funktionen kopieren dann den von der Indexnummer abgeleiteten Ausschnitt auf den Canvas. Eine TMaskedBitmap kann man mit GetImage() mit einem Einzelbildausschnitt laden, einen Einzelbildausschnitt überschreibt man mit SetImage().
TImageList.Bitmap ist die gesamt-Pixmap. Es ist möglich mehrere Versionen der Bilder vorzuhalten wenn VersionCount > 1 gesetzt wird. Die "AVersion" Parameter bestimmen das angesprochene Layer. Bitmaps[n] spricht die gesamt-Pixmap des entsprechenden Layers an ("Bitmaps[0]" = "Bitmap").
Die paint()-Funktionen kopieren dann den von der Indexnummer abgeleiteten Ausschnitt auf den Canvas. Eine TMaskedBitmap kann man mit GetImage() mit einem Einzelbildausschnitt laden, einen Einzelbildausschnitt überschreibt man mit SetImage().
TImageList.Bitmap ist die gesamt-Pixmap. Es ist möglich mehrere Versionen der Bilder vorzuhalten wenn VersionCount > 1 gesetzt wird. Die "AVersion" Parameter bestimmen das angesprochene Layer. Bitmaps[n] spricht die gesamt-Pixmap des entsprechenden Layers an ("Bitmaps[0]" = "Bitmap").
Zuletzt geändert von mse am Mi 13. Dez 2017, 09:51, insgesamt 1-mal geändert.
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1435
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
Re: Frage zu TImagelist
Danke für die Info,
ich habe versucht die repazdemo zu compilieren. Da ist eine Variable vom typ imagebufferinfoty deklariert, die in msebitmap.pas auskommentiert ist. Wenn ich den Kommentar entferne, findet er loadfromimagebuffer nicht, was ebenfalls auskommentiert ist. Wodurch muss ich das ersetzen damit es compiliert bzw. funktioniert?
ich habe versucht die repazdemo zu compilieren. Da ist eine Variable vom typ imagebufferinfoty deklariert, die in msebitmap.pas auskommentiert ist. Wenn ich den Kommentar entferne, findet er loadfromimagebuffer nicht, was ebenfalls auskommentiert ist. Wodurch muss ich das ersetzen damit es compiliert bzw. funktioniert?
-
- Beiträge: 2013
- Registriert: Do 16. Okt 2008, 10:22
- OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
- CPU-Target: x86,x64,ARM
Re: Frage zu TImagelist
RepazDemo kompiliert und funktioniert hier so weit ich sehe. Was funktioniert nicht? Einen Verweis auf imagebufferinfoty finde ich in RepazDemo nicht.
Edit: Du hast eine alte Version. Aktuelle Version ist hier:
https://gitlab.com/mseide-msegui/mseuniverse
Edit: Du hast eine alte Version. Aktuelle Version ist hier:
https://gitlab.com/mseide-msegui/mseuniverse
Zuletzt geändert von mse am Mi 13. Dez 2017, 10:22, insgesamt 1-mal geändert.
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1435
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
Re: Frage zu TImagelist
Ich hab das Problem gefunden. Man muss ja die addons in das Verzeichnis mseide-msegui/lib/addon kopieren. Da war noch eine ältere Version. Ich musste jetzt nur den typecast in universalprinter.pas Zeile 1494 wegmachen. Dann hat es fehlerfrei compiliert.
-
- Beiträge: 2013
- Registriert: Do 16. Okt 2008, 10:22
- OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
- CPU-Target: x86,x64,ARM
Re: Frage zu TImagelist
Günstiger ist die MSEuniverse addons zu verwenden. Habe repazdemo.prj entsprechend angepasst.
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1435
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
Re: Frage zu TImagelist
Dazu muss ich diese doch nach lib/addon unterhalb von mseide-msegui und die entsprechende regcomponents.inc nach mseide/apps/ide kopieren oder gibt es eine Möglichkeit diese addons im mseuniverse Verzeichnis zu belassen (dort werden sie schliesslich von git aktualisiert).
-
- Beiträge: 2013
- Registriert: Do 16. Okt 2008, 10:22
- OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
- CPU-Target: x86,x64,ARM
Re: Frage zu TImagelist
Zur Kompilierung von RepazDemo die Angabe des Pfades in 'Project'-'Options'-'Directories', siehe die aktuelle repazdemo.prj.
Für MSEide muss der Pfad entsprechend angepasst werden. Es empfiehlt sich sich die Repaz-Daten im MSEgui lib/addon Verzeichnis zu löschen, damit es kein Durcheinander gibt.
Falls du ein eigenes regcomponents.inc hast, kann dort der Inhalt von Repaz regcomponent.inc angefügt werden.
Für MSEide muss der Pfad entsprechend angepasst werden. Es empfiehlt sich sich die Repaz-Daten im MSEgui lib/addon Verzeichnis zu löschen, damit es kein Durcheinander gibt.
Falls du ein eigenes regcomponents.inc hast, kann dort der Inhalt von Repaz regcomponent.inc angefügt werden.
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1435
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
Re: Frage zu TImagelist
Ah jetzt hab ich's.
Ich hab mseide-msegui/lib/addon gelöscht und in den Projektoptionen d:/msegui/mseuniverse/addon/lib/addon/* hinzugefügt.
${MSEDIR}../mseuniverse/... hat nicht funktioniert. Der absolute Pfad geht.
Ich hab mseide-msegui/lib/addon gelöscht und in den Projektoptionen d:/msegui/mseuniverse/addon/lib/addon/* hinzugefügt.
${MSEDIR}../mseuniverse/... hat nicht funktioniert. Der absolute Pfad geht.
-
- Beiträge: 2013
- Registriert: Do 16. Okt 2008, 10:22
- OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
- CPU-Target: x86,x64,ARM
Re: Frage zu TImagelist
Ist ${MSEDIR} = d:/msegui/? dann ist der Pfad = ${MSEDIR}mseuniverse/addon/lib/addon/*
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1435
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
Re: Frage zu TImagelist
${MSEDIR} ist D:\msegui\mseide-msegui\
deshalb ja auch ${MSEDIR}..\mseuniverse\..
die beiden Verzeichnisse liegen nebeneinander in D:\msegui
deshalb ja auch ${MSEDIR}..\mseuniverse\..
die beiden Verzeichnisse liegen nebeneinander in D:\msegui
-
- Beiträge: 2013
- Registriert: Do 16. Okt 2008, 10:22
- OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
- CPU-Target: x86,x64,ARM
Re: Frage zu TImagelist
Bitte kontrolliere 'Project'-'Options'-'Make'-'Show command line', vielleicht kommen wir dem Rätsel so auf die Spur.
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1435
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
Re: Frage zu TImagelist
sorry mein Fehler. Das Verzeichnis unterhalb von mseuniverse heisst add-on. Ich hatte addon geschrieben. Den absoluten Pfad hatte ich mit dem Filedialog gewählt und da hat es natürlich gestimmt.