Startseite › Foren › Deutsches LiveCode-Forum › Eingefügte Images verändern ihre Größe
Schlagwörter: Bilder einfügen, Images einfügen
- Dieses Thema hat 8 Antworten und 3 Teilnehmer, und wurde zuletzt aktualisiert vor 3 Jahren, 11 Monaten von
Alfredas.
-
AutorBeiträge
-
-
November 27, 2020 um 12:23 Uhr #24730
Hallo,
nachdem ich in den letzen Jahren keine Zeit für das Programmieren hatte, will ich jetzt endlich ein Testprogramm meines Kartenspieles fertig machen.
Doch mein Neueinstieg klappt nicht so richtig. Mein Ziel ist es im ersten Abschnitt, 33 Spielkarten als Bilder mit über 10 selbstgewählten Eigenschaften anzulegen.
Mein Versuch die Karten mit Programmcode zu erstellen, hatte zur Folge ich irgendwann ein Compiler-Fehler bekamm, der zur Folge hatte dass, ich den Script nicht mehr einsehen oder bearbeiten konnte.
Also alle Karten Manuell erstellen. Das habe ich zuerst über den Image-Button gemacht und dann Bilder eingefügt. Beim nächsten Start des Programm, wurden sie aber nicht mehr angezeigt, sondern es gab nur noch leere Rahmen.
Also hier ins Forum geschaut und die PNG’s über das Menü als „New refernced Control“ einfügt. Denn wahrscheinlich werde ich die Bilder irgendwann ändern müssten. Alle Bilder mit einer Größe von 740 x ca. 300 auf 181 x 260 verkleinert.
Beim aktuellen Aufruf wurden die Images in Orginal-Größe angezeigt.
Wieso bleibt die eingestelle Größe nicht erhalten? Hat es mit dem Grafikformat PNG zu tun? Gehen PNG’s in Live-Code nicht? Oder muss ich die Bilder als „Import as Control“ einfügen, damit die Größe erhalten bleibt? Dann müsste ich bei jeder Änderung das Bild neu einfügen und auch alle Eigenschaften wieder neu anlegen. Das wäre echt mies.
Ich habe die 9.6 Plus-Version, die auf Windows 10 läuft.
Würde mich freuen, wenn mir jemand weiter helfen könnte.
Viele Grüße
Alfredas -
November 27, 2020 um 12:54 Uhr #24732
Hallo Alfredas,
das hat nichts mit dem Bildformat oder „imported/referenced“ zu tun!
Der Trick ist, nachdem Du die Bilder in LC skaliert hast, im Inspector -> Size and position für die Bilder den Haken bei „lockloc“ („Lock size and position“) zu machen, sonst passiert das, was Du gerade erlebt hast.Idealerweise sollten die Bilder natürlich auch direkt die benötigte Größe haben.
Aber Vorsicht!
Bei „New referneced Control“ wird nur der Pfad des Bildes auf Deiner Festplatte gespeichert, auf anderen Rechnern fehlen dann wieder die Bilder.Also vielleicht besser die Bilder direkt importieren, dann sind sie im Stack!
Falls es SEHR viele Bilder sind, sollten wir uns etwas anderes überlegen, aber das kriegen wir auch hin. 🙂
Gruß
Klaus
-
November 28, 2020 um 15:11 Uhr #24764
Hallo Klaus,
danke für deine Antwort.
Das klappt jetzt gut. Schade nur, dass ich nur Position und Größe zusammen locken kann. Es würde mir im Moment besser passen, wenn ich nur die Größe festsetzen könnte.
Da ich die Objekte wegen meiner neuen Eigenschaften kopiere und dann ein anderes Image zuordne, muss ich jedesmal die Bremse lösen und wieder neu ansetzen.
Danke für deinen Hinweis bzgl. des Einfügens. Da ich die Bilder definitiv noch ändern muss, macht es mehr Sinn sie zu linken. Da ich sonst alle Eigenschaften neu setzen müsste. Und da ich noch nicht genau weis, in welcher Größe ich die Bilder später brauche, schadet es nicht wenn sie deutlich größer sind. In Moment dienen die Grafiken lediglich als Container und für die leichtere Eingabe der darauf angegebenen Daten in die Eigenschaften.
Ich hätte das ganze auch nur mit Arrays machen können, aber so habe ich immer eine Abbildung der materiellen Karten dabei.
Viele Grüße
Alfredas -
November 28, 2020 um 18:19 Uhr #24768
Hallo Alfredas,
Das klappt jetzt gut. Schade nur, dass ich nur Position und Größe zusammen locken kann. Es würde mir im Moment besser passen, wenn ich nur die Größe festsetzen könnte.
Da ich die Objekte wegen meiner neuen Eigenschaften kopiere und dann ein anderes Image zuordne, muss ich jedesmal die Bremse lösen und wieder neu ansetzen.tja, wie sagt der Rheinländer: Et is‘, wie et is‘! 🙂
Da ich die Bilder definitiv noch ändern muss, macht es mehr Sinn sie zu linken.
Ja, das ergibt Sinn. Man kann später immer noch einen Loop über alle Bilder laufen lassen und sie importieren, bevor Du eine Runtime von Deinem Stack erstellst.
Gruß
Klaus
-
November 29, 2020 um 14:53 Uhr #24784
Hallo Andreas,
was Du beschreibst, ist ein meines Erachtens sehr lästiges Problem. Ich setze folgende Lösung ein: MouseEnter / MouseLeave – Handler setzen das LockLoc automatisch, so wie man es eigentlich erwartet, wenn man die Größe von Bildern verändert.
Füge Du die folgenden Handler in das Cardscript der Karte deiner Wahl oder auch ins Stackscript ein.on mouseleave if first word of the name of the target is "image" then set the lockloc of the target to true end if end mouseleave on mouseenter if first word of the name of the target is "image" then set the lockloc of the target to false end if end mouseenter
Happy Coding!
TorstenHappy Coding
Torsten -
November 29, 2020 um 16:18 Uhr #24791
Sehr clever, Torsten! 🙂
-
November 30, 2020 um 01:16 Uhr #24829
Danke Meister, ich lerne von den Besten 🙂
-
Mai 18, 2021 um 16:40 Uhr #28801
Kleine Ergänzung zur obigen Lösung: da man das Kunststück schaffen kann, mit der Maus über dem Image zu sein, während man den Stack speichert und damit den Effekt der beim Neuladen wieder auf Originalgröße gezogenen Bildes zu haben (ist gerade passiert), ist ein weiterer Handler sinnvoll, der vor dem Speichern für alle Bilder im Stack die Property lockLoc auf true setzt.
Dafür einfach diesen Hander ins Stack script kopieren:
on saveStackRequest repeat with i = 1 to the number of cards of this stack repeat with j = 1 to the number of images of card i set the lockloc of image j of card i to true end repeat end repeat end saveStackRequest
Happy Coding
Torsten -
Mai 18, 2021 um 21:44 Uhr #28807
Hallo Thorsten,
danke für die beiden Tips.
Die manuelle Änderung reichte für das obige Projekt, aber in Zukunft lässt sich damit das ganze erleichtern.
Viele Grüße
Alfredas
-
-
AutorBeiträge
- Du musst angemeldet sein, um auf dieses Thema antworten zu können.