TImageList, via Source korrekt um Bilder erweitern

Rund um die LCL und andere Komponenten

TImageList, via Source korrekt um Bilder erweitern

Beitragvon corpsman » 3. Jul 2017, 16:39 TImageList, via Source korrekt um Bilder erweitern

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
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
--
Just try it
corpsman
 
Beiträge: 1013
Registriert: 28. Feb 2009, 08:54
Wohnort: Stuttgart
OS, Lazarus, FPC: Kubuntu 14.04, Lazarus SVN Trunk, FPC 3.0 | 
CPU-Target: 32Bit
Nach oben

Beitragvon Mathias » 3. Jul 2017, 17:30 Re: TImageList, via Source korrekt um Bilder erweitern

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 3. Jul 2017, 17:38, insgesamt 1-mal geändert.
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 3025
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon Christian » 3. Jul 2017, 17:38 Re: TImageList, via Source korrekt um Bilder erweitern

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/
Christian
 
Beiträge: 6089
Registriert: 21. Sep 2006, 06:51
Wohnort: Dessau
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z) | 
CPU-Target: AVR,ARM,x86(-64)
Nach oben

Beitragvon Mathias » 3. Jul 2017, 17:41 Re: TImageList, via Source korrekt um Bilder erweitern

bitte löschen
Zuletzt geändert von Mathias am 3. Jul 2017, 17:45, insgesamt 1-mal geändert.
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 3025
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon corpsman » 3. Jul 2017, 17:44 Re: TImageList, via Source korrekt um Bilder erweitern

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
corpsman
 
Beiträge: 1013
Registriert: 28. Feb 2009, 08:54
Wohnort: Stuttgart
OS, Lazarus, FPC: Kubuntu 14.04, Lazarus SVN Trunk, FPC 3.0 | 
CPU-Target: 32Bit
Nach oben

Beitragvon Mathias » 3. Jul 2017, 17:48 Re: TImageList, via Source korrekt um Bilder erweitern

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 gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 3025
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon corpsman » 3. Jul 2017, 18:02 Re: TImageList, via Source korrekt um Bilder erweitern

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
corpsman
 
Beiträge: 1013
Registriert: 28. Feb 2009, 08:54
Wohnort: Stuttgart
OS, Lazarus, FPC: Kubuntu 14.04, Lazarus SVN Trunk, FPC 3.0 | 
CPU-Target: 32Bit
Nach oben

Beitragvon Mathias » 3. Jul 2017, 18:53 Re: TImageList, via Source korrekt um Bilder erweitern

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 gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 3025
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon corpsman » 3. Jul 2017, 20:24 Re: TImageList, via Source korrekt um Bilder erweitern

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
corpsman
 
Beiträge: 1013
Registriert: 28. Feb 2009, 08:54
Wohnort: Stuttgart
OS, Lazarus, FPC: Kubuntu 14.04, Lazarus SVN Trunk, FPC 3.0 | 
CPU-Target: 32Bit
Nach oben

Beitragvon Mathias » 3. Jul 2017, 21:36 Re: TImageList, via Source korrekt um Bilder erweitern

Sieht nach etwas eigenem aus, man kann nirgends Ubuntu öder ähnliches lesen.
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 3025
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

• Themenende •

Zurück zu Komponenten und Packages



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste

porpoises-institution
accuracy-worried