Farbanpassung je nach Wert

Für Probleme bezüglich Grafik, Audio, GL, ACS, ...
Komoluna
Beiträge: 565
Registriert: So 26. Aug 2012, 09:03
OS, Lazarus, FPC: Windows(10), Linux(Arch)
CPU-Target: 64Bit

Re: Farbanpassung je nach Wert

Beitrag von Komoluna »

Also mindestens ein Video Tutorial zum Thema TImageList kenne ich:
https://www.youtube.com/watch?v=wkyuI5Y ... B&index=19

MFG
Komoluna
Programmer: A device to convert coffee into software.

Rekursion: siehe Rekursion.

McReier
Beiträge: 48
Registriert: Sa 17. Aug 2013, 11:35

Re: Farbanpassung je nach Wert

Beitrag von McReier »

Komoluna hat geschrieben:Also mindestens ein Video Tutorial zum Thema TImageList kenne ich:
https://www.youtube.com/watch?v=wkyuI5Y ... B&index=19

MFG
Komoluna


Hallo Komoluna,
danke für den Link, kenne die Videos von TheRegRunner. Sind genial und eine meiner ersten Anlaufstellen :lol:
Kenne auch diese Tutorial, in diesen Video geht es aber mehr um TabSheets. Die TImageList wird nur für das Icon im TabSheet benutzt.
Mir wäre ein Video mit Überblendungen von Images wichtig gewesen. Oder wie man die eingefügten Images exakt positioniert.
Dank Michl's Download hab' ich das ganze nun gut lösen können :lol:

Trotzdem danke für den Hinweis auf das Video!
McReier

McReier
Beiträge: 48
Registriert: Sa 17. Aug 2013, 11:35

Re: Farbanpassung je nach Wert

Beitrag von McReier »

Hallo,
soweit habe ich meinen Quelltext nun in einen kleinen eigenständigen Programm drinnen und läuft auch gut.
Wollte nun den "Baustein" in mein eigentliches Programm einfügen und "kämpfe" mit folgenden Fehlermeldungen:

Code: Alles auswählen

unit1.pas(1365,56) Error: Identifier not found "dsTransparent"
unit1.pas(1365,64) Error: Identifier not found "itImage"
unit1.pas(1366,17) Error: Incompatible types: got "Boolean" expected "LongInt"
unit1.pas(1367,56) Error: Identifier not found "dsTransparent"
unit1.pas(1367,64) Error: Identifier not found "itImage"
unit1.pas(1369,56) Error: Identifier not found "dsTransparent"
unit1.pas(1369,64) Error: Identifier not found "itImage"
unit1.pas(1519) Fatal: There were 7 errors compiling module, stopping


Dachte ich muss evtl. "dsTransparent" und "itImage" noch unter "uses" im Quelltext angeben aber in der Musterlösung ist da auch nix drinnen. Evtl. eine Eigenschaftseinstellung im Objektinspektor?
Was habe ich übersehen bzw. mache ich falsch?
Danke!

Michl
Beiträge: 2505
Registriert: Di 19. Jun 2012, 12:54

Re: Farbanpassung je nach Wert

Beitrag von Michl »

Fehler 1, 2, 4, 5, 6, 7: liegt höchst wahrscheinlich daran, dass du noch die unit "IMGList" bei "uses" einbinden musst.

Fehler 3: du definierst einen boolean, von der Procedure/Function wird an der Stelle aber ein LongInt erwartet. Da kann man dir ohne den Quellcode keine weiteren Tips geben.

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

McReier
Beiträge: 48
Registriert: Sa 17. Aug 2013, 11:35

Re: Farbanpassung je nach Wert

Beitrag von McReier »

Michl hat geschrieben:Fehler 1, 2, 4, 5, 6, 7: liegt höchst wahrscheinlich daran, dass du noch die unit "IMGList" bei "uses" einbinden musst.

Bingo! :D Genau so war es, bin aber nach suchen sogar selber drauf gekommen.
Wenn ich vor dem "procedure TForm1.Image1Paint(Sender: TObject);" einen Zahlenwert berechnen lasse (wird per procedure TForm1.Button1Click(Sender: TObject); ausgelöst) und diesen dann innerhalb der procedure verwenden will kommt:

Code: Alles auswählen

unit1.pas(1369,19) Error: Identifier not found "Test1"

Hab dann vor den begin in der procedure die Variable nochmals definiert und dann compiliert er zwar aber bringt die Warnung:

Code: Alles auswählen

unit1.pas(1367,8) Warning: Local variable "Test1" does not seem to be initialized 


Die Variable "Test1" soll quasi in beiden Proceduren (TForm1.Image1Paint und TForm1.Button1Click) verwendet werden.

Michl
Beiträge: 2505
Registriert: Di 19. Jun 2012, 12:54

Re: Farbanpassung je nach Wert

Beitrag von Michl »

McReier hat geschrieben:Die Variable "Test1" soll quasi in beiden Proceduren (TForm1.Image1Paint und TForm1.Button1Click) verwendet werden.

Dann musst du die Variable global und nicht lokal deklarieren! Siehe http://www.delphi-treff.de/object-pascal/variablen-und-konstanten/

Oder du kannst die Variable/Property in deiner Objektklasse deklarieren. Siehe http://www.delphi-treff.de/object-pascal/klassen-und-objekte/#c4938

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

McReier
Beiträge: 48
Registriert: Sa 17. Aug 2013, 11:35

Re: Farbanpassung je nach Wert

Beitrag von McReier »

Michl hat geschrieben:
McReier hat geschrieben:Die Variable "Test1" soll quasi in beiden Proceduren (TForm1.Image1Paint und TForm1.Button1Click) verwendet werden.

Dann musst du die Variable global und nicht lokal deklarieren! Siehe http://www.delphi-treff.de/object-pascal/variablen-und-konstanten/

Oder du kannst die Variable/Property in deiner Objektklasse deklarieren. Siehe http://www.delphi-treff.de/object-pascal/klassen-und-objekte/#c4938


Hallo Michl,
danke funktioniert nun und die Links erklären das wirklich super :D

McReier
Beiträge: 48
Registriert: Sa 17. Aug 2013, 11:35

Re: Farbanpassung je nach Wert

Beitrag von McReier »

Ich bins mal wieder :wink:

In Upload werden die Teile (Reifen, Kotflügel) über das TImage (Auto) "überblendet". Meine Version arbeitet hinter dem TImage. Wenn ich das TImage lösche oder aus dem Bereich der Imagelist verschiebe, funktioniert die Imagelist.
Kann im Quelltextvergleich den Unterschied nicht entdecken.
Was mein Ihr dazu?

Michl
Beiträge: 2505
Registriert: Di 19. Jun 2012, 12:54

Re: Farbanpassung je nach Wert

Beitrag von Michl »

McReier hat geschrieben:Wenn ich das TImage lösche oder aus dem Bereich der Imagelist verschiebe, funktioniert die Imagelist.
Das verstehe ich nicht, wie kann eine ImageList angezeigt werden?! Sie hält doch nur Images bereit, die dann z.B. auf ein Canvas gezeichnet werden.

Könnte mir vorstellen, du zeichnest im falschen Event oder auf die falsche Oberfläche, sind aber nur Mutmaßungen und ohne entsprechenden Quelltext schlecht zu bewerten!

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

McReier
Beiträge: 48
Registriert: Sa 17. Aug 2013, 11:35

Re: Farbanpassung je nach Wert

Beitrag von McReier »

Michl hat geschrieben:
McReier hat geschrieben:Wenn ich das TImage lösche oder aus dem Bereich der Imagelist verschiebe, funktioniert die Imagelist.
Das verstehe ich nicht, wie kann eine ImageList angezeigt werden?! Sie hält doch nur Images bereit, die dann z.B. auf ein Canvas gezeichnet werden.
Könnte mir vorstellen, du zeichnest im falschen Event oder auf die falsche Oberfläche, sind aber nur Mutmaßungen und ohne entsprechenden Quelltext schlecht zu bewerten!


Der Fehler war ein zu kleines Bild und somit war keine Oberfläche verfügbar. :oops:
Nun heißt es Bilder erzeugen...
Wünsch Euch was!

Antworten