TImageList, via Source korrekt um Bilder erweitern

Rund um die LCL und andere Komponenten
Antworten
Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1496
Registriert: Sa 28. Feb 2009, 08:54
OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
CPU-Target: 64Bit
Wohnort: Stuttgart
Kontaktdaten:

TImageList, via Source korrekt um Bilder erweitern

Beitrag von corpsman »

Servus mit einander,

ich habe ein kleines Probram geschrieben, welches auf meinem Linux Mint 1a funktioniert, auf dem Odroid leider nicht so ganz.

Folgendes macht mein Programm.

Eine TImageList wird zur Laufzeit um ein / n Bilder erweitert, dies geschieht mit folgendem Code :

Code: Alles auswählen

Var
  b: Tbitmap;
Begin
  b := TBitmap.Create;
  b.LoadFromFile(IncludeTrailingPathDelimiter(ExtractFilePath(ParamStrutf8(0))) + 'img3.bmp');
  b.TransparentColor := clfuchsia;
  b.Transparent := true;
  ImageList1.Add(b, Nil);
  b.free;


Danach male ich den kompletten Inhalt auf Form1.Canvas

Das Problem ist nun, dass mein Bild , wenn ich es dann nachher auf dem Formular ausgeben will anscheinend die TransparentColor clBlack hat und nicht clFuchsia (siehe Screenshot)
Und jetzt kommts, logge ich mich via X-Forwarding auf dem Odroid ein, dann funktioniert alles so wie es soll (im Falle des Screenshots würde ich 5 Puzzleteile sehen)

Kennt jemand nen Trick, wie ich das Bild "anders" adden kann, so dass es evtl. auch auf meinem Odroid läuft?

Im Zip ist der Source meines Demoprogrammes
Dateianhänge
demo.zip
Kompletter Source zum Spielen.
(5.11 KiB) 71-mal heruntergeladen
Die ersten 3 Icons sind schon zur Compilezeit in der Liste, die letzten 4 wurden zur Laufzeit hin zu gefügt.
Die ersten 3 Icons sind schon zur Compilezeit in der Liste, die letzten 4 wurden zur Laufzeit hin zu gefügt.
Fehler_unter_Odroid.png (4.78 KiB) 1577 mal betrachtet
--
Just try it

Mathias
Beiträge: 6164
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: TImageList, via Source korrekt um Bilder erweitern

Beitrag von Mathias »

So wie es aussieht, hat der Odroid auch eine ARM-CPU, somit habe ich deinen Code mal auf meinem Raspi kompiliert, und dort schein es fehlerfrei zu laufen.
Kompiliert habe ich mit der neusten Trunk von FPC und Lazarus als Cross-Kompiler.

Mit welcher Version hast du kompiliert ?

Wieso machst du dies so kompliziert ?

Code: Alles auswählen

  b.LoadFromFile('img3.bmp');
//  b.LoadFromFile(IncludeTrailingPathDelimiter(ExtractFilePath(ParamStrUTF8(0))) + 'img3.bmp');
 


PS: Direkt auf dem Raspi mit Lazarus 1.6.4 und FPC 3.0.2 kompiliert geht es auch.
Zuletzt geändert von Mathias am Mo 3. Jul 2017, 18:38, insgesamt 1-mal geändert.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: TImageList, via Source korrekt um Bilder erweitern

Beitrag von Christian »

Wieso machst du dies so kompliziert ?

Deine Version und die vom OP sind nicht das selbe.
Wenn das Programm aus einem anderen Pfad gestartet wird als wo img3.bmp liegt, funktioniert nur die Version vom OP
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Mathias
Beiträge: 6164
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: TImageList, via Source korrekt um Bilder erweitern

Beitrag von Mathias »

bitte löschen
Zuletzt geändert von Mathias am Mo 3. Jul 2017, 18:45, insgesamt 1-mal geändert.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1496
Registriert: Sa 28. Feb 2009, 08:54
OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
CPU-Target: 64Bit
Wohnort: Stuttgart
Kontaktdaten:

Re: TImageList, via Source korrekt um Bilder erweitern

Beitrag von corpsman »

Compiliert mit
Lazarus : SVN Revision 49155M
FPC: 2.6.2
Arm-Linux-gtk2

Odroid wird leider nicht ganz richtig von Lazarus unterstützt, kann die IDE auf dem Odroid nicht starten muss immer alles via

Code: Alles auswählen

Lazbuild -B project.lpi 


machen.

Wenn ich das Richtig sehe müsste man beim Add doch nur die Maske selbst erstellen (da wo ich NIL geschrieben habe), oder ? Wie macht man das?
--
Just try it

Mathias
Beiträge: 6164
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: TImageList, via Source korrekt um Bilder erweitern

Beitrag von Mathias »

Odroid wird leider nicht ganz richtig von Lazarus unterstützt, kann die IDE auf dem Odroid nicht starten muss immer alles via

Wen das nicht das gleiche Lazarus wie für den Raspi ist, scheint diese Version einen Bug zu haben.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1496
Registriert: Sa 28. Feb 2009, 08:54
OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
CPU-Target: 64Bit
Wohnort: Stuttgart
Kontaktdaten:

Re: TImageList, via Source korrekt um Bilder erweitern

Beitrag von corpsman »

Mit nicht ganz Richtig unterstützt meinte ich

Code: Alles auswählen

 
odroid@odroid:~$ startlazarus
 is a file
TLazarusManager.Run starting /home/odroid/lazarus/lazarus ...
TMainIDE.ParseCmdLineOptions:
  PrimaryConfigPath="/home/odroid/.lazarus"
  SecondaryConfigPath="/etc/lazarus"
Hint: (lazarus) [TBuildManager.SetBuildTarget] Old=arm-linux-gtk2 New=arm-linux-gtk2 FPC=True LCL=False
TLazSourceFileManager.LoadLFM Creating designer for hidden component of /home/odroid/Temp/Test/unit1.pas
TLazSourceFileManager.InitOpenedProjectFile select form in designer: Form1:TForm1 TDesigner
The program 'lazarus' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadMatch (invalid parameter attributes)'.
  (Details: serial 9622 error_code 8 request_code 66 minor_code 0)
  (Note to programmers: normally, X errors are reported asynchronously;
   that is, you will receive the error a while after causing it.
   To debug your program, run it with the --sync command line
   option to change this behavior. You can then get a meaningful
   backtrace from your debugger if you break on the gdk_x_error() function.)
odroid@odroid:~$
 


Deswegen nutze ich Lazbuild und entwickle alle Programme auf nem anderen Rechner..
--
Just try it

Mathias
Beiträge: 6164
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: TImageList, via Source korrekt um Bilder erweitern

Beitrag von Mathias »

The program 'lazarus' received an X Window System error.

Irgendwie scheint dein Lazarus nicht kompatibel mit deiner GUI zu sein.

Was läuft für ein OS auf deinem Odroid ?
Ist dies ein Ubuntu ?


Deswegen nutze ich Lazbuild und entwickle alle Programme auf nem anderen Rechner..

Dies mache ich mit dem Raspi aus, da dieser gähnend langsam ist.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1496
Registriert: Sa 28. Feb 2009, 08:54
OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
CPU-Target: 64Bit
Wohnort: Stuttgart
Kontaktdaten:

Re: TImageList, via Source korrekt um Bilder erweitern

Beitrag von corpsman »

Du meinst ..

Code: Alles auswählen

 
odroid@odroid:~$ uname -a
Linux odroid 3.8.13.30 #1 SMP PREEMPT Wed Mar 4 17:26:56 BRT 2015 armv7l armv7l armv7l GNU/Linux
odroid@odroid:~$
 
--
Just try it

Mathias
Beiträge: 6164
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: TImageList, via Source korrekt um Bilder erweitern

Beitrag von Mathias »

Sieht nach etwas eigenem aus, man kann nirgends Ubuntu öder ähnliches lesen.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Antworten