[gelöst] Probleme mit Canvas/Image und Ausführung.

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: Code von ButotnClick geht beim 1.mal nur zum Teil?

Beitrag von wp_xyz »

Erwin hat geschrieben:
wp_xyz hat geschrieben:Das Ausgangsbild im TImage ist aber ein transparentes PNG; die im Code vorkommende TBitmap ist nur eine Zwischenstufe.

Was er leider beim kopieren ignoriert, also den Alphakanal. Er erkennt diesen einfach nicht bei so einem Vorgang. Ansonsten könnte ich mir nämlich die Auswahl einer Transparenten Farbe mir sparen, was ich eigentlich vorhatte.

Und wieso funktioniert's in meinem Demoprojekt? Die Lazarus-Pfote habe ich zu einem transparenten PNG gemacht und ins linke TImage geladen. Im rechten TImage wird das temporäre 32-bit TBitmap angezeigt, das per Canvas.CopyRect aus dem linken Bild entstanden ist. Und das rechte Bild ist genauso transparent wie das linke, denn man sieht unter der Pfote den Farbverlauf, der auf dem Formular-Canvas ausgegeben wird.

Erwin
Beiträge: 286
Registriert: Mi 16. Sep 2009, 14:15
OS, Lazarus, FPC: Xubuntu 22.04 / x86_64_linux-gtk 2 / L 2.2.0 / FPC 3.2.2

Re: [geändert] Probleme mit Canvas/Image und Ausführung.

Beitrag von Erwin »

Hm... wo soll ich mich da nur jetzt als erstes wiederholen?

Zum einen ist mir der Code zu viel hin und her kopiererei. Da fällt mir es auch ohne genaue Erklärung schwer zu glauben, dass dies besser sein soll, als ein direktes (1 Codeziele) Image zu Image kopieren.

Zum anderen hat bei mir dein Beispiel nicht funktioniert, welches ich auf mein Programm übertragen haben, nicht funktioniert.
Den Fehler, der mir beim Abschreiben unterlaufen ist, habe ich bereits behoben.
Ich weiß aber nach wie vor nicht, was für Daten er nach dem Rect erwartet? Sind das die Koordinaten von Ziel-Image? Oder Quell-Image? Unter der Unterschied zu ??
Habe es schon mal geschrieben: 0,0 ging nicht, bei -Quellimage.Left und -Quellimage.Top passierte ebenfalls nichts. Vieles dazu darf ich erraten, darauf kann ich verzichten.
Lazarus 2.2.0 / FP 3.2.4

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: [geändert] Probleme mit Canvas/Image und Ausführung.

Beitrag von wp_xyz »

Erwin hat geschrieben:Zum einen ist mir der Code zu viel hin und her kopiererei. Da fällt mir es auch ohne genaue Erklärung schwer zu glauben, dass dies besser sein soll, als ein direktes (1 Codeziele) Image zu Image kopieren.

Oh Mann, ich dachte dein Code funktioniert nicht! Meine "hin und her kopiererei" schon. Wenn mein Code bei dir nicht funktioniert, dann wird dir halt beim Abtippen irgendwo noch ein Fehler unterlaufen sein.

Erwin hat geschrieben:Ich weiß aber nach wie vor nicht, was für Daten er nach dem Rect erwartet? Sind das die Koordinaten von Ziel-Image? Oder Quell-Image? Unter der Unterschied zu ??
Habe es schon mal geschrieben: 0,0 ging nicht, bei -Quellimage.Left und -Quellimage.Top passierte ebenfalls nichts. Vieles dazu darf ich erraten, darauf kann ich verzichten.

Geheimtip, den verrate ich wirklich nicht jedem: Es gibt da oben im Firefox oder Chrome oder was auch immer so eine Zeile, da kann man reinschreiben "OffsetRect Lazarus" und dann erhält man eine Liste von Webseiten, wo erklärt wird was OffsetRect bei Lazarus bedeutet. Aber Achtung: vielleicht muss man auch mehr als eine Fundstelle aufnmachen, bis man das richtige gefunden hat - wenn's dir nicht zu viel Arbeit ist. Und außerdem: da könnten Viren drin sein!

Erwin
Beiträge: 286
Registriert: Mi 16. Sep 2009, 14:15
OS, Lazarus, FPC: Xubuntu 22.04 / x86_64_linux-gtk 2 / L 2.2.0 / FPC 3.2.2

Re: [geändert] Probleme mit Canvas/Image und Ausführung.

Beitrag von Erwin »

Suchen tue ich bereits. Aber eben gezielt im Forums, wie hier und Dalphi-Forum, und auch auf Lazarus-Seite habe ich danach gesucht. Aber bis jetzt wird es nirgends erklärt.
Der nächste, der auf der Suche nach OffsetRect hierher findet, wird sich übrigens sicher freuen, wenn man im rät, im Internet danach zu suchen. Hat dann mal wieder umsonst dann wo reingeschaut, trotz Treffer.
Und wo nach soll ich suchem im großen Internet? Nach einer Seite wie hier, wo es dann heißt, ich soll im Internet suchen?
Sicherlich wird man dann irgendwann, nach langer Suche dann fündig. Aber ebenso wird mit großer Wahrscheinlichkeit Derjenige, der so Anständig und Nett ist, es zu erklären, dies auch noch mit paar Sätzen schaffen, weil es oft dann doch meiner Erfahrung nach nicht mehr dazu bedarf.
Vielleicht solltet Ihr gleich generell zu jedem Problem die Suche im Internet empfehlen, anstatt selber zu helfen/erklären?

Ich für meinen Teil bin jetzt echt am Überlegen, ob ich nicht besser nach einer Programmiersprache suchen sollte, in deren dazugehörigen Forum einem es direkt dort erklärt wird, und nicht einfach nach dem Motto, er wird es irgendwann schon im Internet finden, darauf hin verweist.

Wobei ich mich jetzt überhaupt auch frage, wenn Ihr Euch als Lazarus-Forum nicht für Erklärung für Lazarus-Befehle zuständig fühlt, was will ich dann eigentlich noch hier? Ich sollte mich dann wirklich im großem Internet nach der Antwort auf meine Frage umsehen, und dort in dessen Forum bleiben. Weil dort wird einem da ja dann erwiesenermaßen einem es erklärt, im Gegensatz zu hier.
Lazarus 2.2.0 / FP 3.2.4

MacWomble
Lazarusforum e. V.
Beiträge: 999
Registriert: Do 17. Apr 2008, 01:59
OS, Lazarus, FPC: Mint 21.1 Cinnamon / FPC 3.2.2/Lazarus 2.2.4
CPU-Target: Intel i7-10750 64Bit
Wohnort: Freiburg

Re: [geändert] Probleme mit Canvas/Image und Ausführung.

Beitrag von MacWomble »

Ich habe über das Forum bisher immer einen Lösungsweg gefunden.
Dass hier nicht andauernd Befehle erklärt werden, welche man bereits einfach an anderer Stelle findet, finde ich OK.
Das Forum hilft aber dann weiter, wenn man etwas nicht verstanden hat oder sich verhaspelt.
Allerdings gebe ich dir in so fern recht, dass man manchmal schon etwas knapp mit Informationen umgeht und viel zu viel an Grundwissen voraus setzt. :oops:
Dennoch würde ich deswegen die Sprache nicht wechseln wollen.
Übrigens: Meist helfen auch Tipps und Foren zu Delphi weiter, da FPC sehr weit kompatibel ist.
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.

Erwin
Beiträge: 286
Registriert: Mi 16. Sep 2009, 14:15
OS, Lazarus, FPC: Xubuntu 22.04 / x86_64_linux-gtk 2 / L 2.2.0 / FPC 3.2.2

Re: [geändert] Probleme mit Canvas/Image und Ausführung.

Beitrag von Erwin »

Danke, MacWomble.
Dachte schon, ich bin der Einzige, dem so was in der Richtung auffällt.
Wie gesagt: Habe schon hier (kaum Treffer) und im Delphi-Forum gesucht. Bei zweiteren gibt es mehr Treffer. aber erklärt wird es auch nicht. Dort wird auch (bei anderen Dinge) immer wieder auf das große Internet verwiesen. Ungeachtet dessen, dass man da sich erst-recht/viel-öfter falsche Seiten erwischt. Zumindest habe ich die Erfahrung gemacht, als ich noch gegoogelt habe.
Ich fand zwar viele Beispiele in Delphi-Forum und im Englischen Lazarus-Forum. Aber bei jedem diese Beispiele scheint der Befehl total unabhänig von allem andere zu agieren. Obwohl ich schon über ein Dutzend Codes dazu angesehen habe, kann ich nirgends ein Zusammenspiel, eine Zuweisung zu irgendeiner Grafik und umgekehrt erkennen. Es kommt mir eher so vor, als wäre es ein Gimik ohne Sinn.
Lazarus 2.2.0 / FP 3.2.4

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: [geändert] Probleme mit Canvas/Image und Ausführung.

Beitrag von wp_xyz »

Also wenn ich die zweite Fundstelle meines Geheimtipps oben öffne, dann steht da:
function OffsetRect(var Rect: TRect; DX: Integer; DY: Integer): Boolean;

OffsetRect offsets the rectangle Rect by a horizontal distance DX and a vertical distance DY. [...]

Falls der Englisch-Unterricht in der Schule schon zu lange zurück liegt, dann kann man diesen Text bei translate.google.com reinkopieren und erhält:

OffsetRect versetzt das Rechteck Rect um einen horizontalen Abstand DX und einen vertikalen Abstand DY.

Was ist daran nicht zu verstehen?

mse
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: [geändert] Probleme mit Canvas/Image und Ausführung.

Beitrag von mse »

wp_xyz hat geschrieben:Also wenn ich die zweite Fundstelle meines Geheimtipps oben öffne, dann steht da:

Bei mir ist es sogar die erste:
offsetrect.png

Code: Alles auswählen

 
OffsetRect
 
Increments the TopLeft and BottomRight coordinates of the rectangle.
Declaration
 
Source position: lclproc.pas line 141
 
function OffsetRect(
 
  var ARect: TRect;
 
  dx: Integer;
 
  dy: Integer
 
):Boolean;
Function result
 
True when the TopLeft coordinates are all positive.
 

Allgemein bringt Google Suche für Free Pascal und Lazarus bessere Ergebnisse als die Suchfunktionen der einzelnen Foren. Ohne ein wenig Englischkenntnisse geht es allerdings nicht, dagegen sollte man sich nicht sträuben sondern die wenigen notwendigen Wörter lernen. Ausser Google Übersetzung ist auch Leo zum Nachschlagen zu empfehlen.

https://dict.leo.org/englisch-deutsch/

Erwin
Beiträge: 286
Registriert: Mi 16. Sep 2009, 14:15
OS, Lazarus, FPC: Xubuntu 22.04 / x86_64_linux-gtk 2 / L 2.2.0 / FPC 3.2.2

Re: [geändert] Probleme mit Canvas/Image und Ausführung.

Beitrag von Erwin »

Es ist erstaunlich, wie viel Aufwand ihr 2 (wp_xyz und mse) betreibt, um mich aus dem Forum zu vertreiben.
Weil genau so wirkt all das auf mich. Ihr kopiert sogar Ausschnitte aus gefunden Google-Suche (wobei es nicht sicher ist, dass bei mir das gleiche angezeigt wird, da google eine 'intelligente' suche hat).
Aber mir es mit 2-3 Sätzen zu erklären, das kommt für Euch nicht in Frage.
DX? Wenn ich nicht durch gut 1 Stunde ausgiebigen testen des Programms, was nach dem Entferne der einen Störzeile dann ging, bereits selber alles herausgefunden habe, müsste ich raten. Aber so kann ich davon aus gehen, das D der Anfangsbuchstabe für Englisches Fenster ist? Deshalb ging es auch bei mir nicht, weil mein Image noch zusätzlich in einem Panel ist.

Mal schauen ... :
'Bei OffsetRect muss neben dem Rechteck (TRect als Variable, direkt 'Rect(0,0,50,50)' scheint nicht zu gehen), auch noch die zusätzliche Differenz des Image zu den Fensterranden (Left und Top) abziehen. Dies sind dann die 2 weiteren Variablen/Zahlen, die man nach dem TRect eintragen muss. (OffsetRect(TRectVariable,-Gesamter.Abstand.Des.Bildes.Vom.Fenster.Links,-Gesamter.Abstand.Des.Bildes.Vom.Fenster.Oben)
Das auslesen des gewünschten Image geschieht indirekt automatisch durch den aufruf des Üblichen 'CopyRect', und zwar so, als würde man ganz normal eben von einem Image in das andere Kopieren.'
So, ich denke, da dürfte jetzt dann jeder andere, der versehentlich hierher findet, verstehen ,wie OffsetRect funktioniert.
Und so was ist Euch zu viel Aufwand? Aber mich dazu überreden zu wollen, im Internet zu suchen, ist Euch alle mal mehr Aufwand wert?
Beinahe vergessen: Wenn der zu kopierende Ausschnitt nur aus Transparent (Alphakanal) besteht, wird die Kopie Schwarz.

Meine andere Frage ist nach wie vor unbeantwortet.
Worin liegt denn bei dem Kopiervorgang ...

Code: Alles auswählen

 
ZielImage.Canvas.CopyRect(Rect(0,0,32,32), QuelleImage.Picture.PNG.Canvas, Rect(0,0,32,32));
 

... im Gegensatz zu dem andern, das Problem?
Ach nein, schreib lieber nichts, wp_xyz. Ich kann mir die Antwort schon denken.
Obwohl Du es bist, dem dabei der Magen umdreht, wenn man etwas auf Canvas zeichnet (ist aber nicht dafür die Canvas da?), willst Du es nicht beantworten, bzw. soll ich selber im Internet suchen. Aber ja nicht hier, obwohl dies ein Lazarus-Forum ist.
Wird bei dem anderen nicht auch das Ganze in den Canvas gezeichnet? Nein! ich weiß schon inwzsichen! Internet/Gooogle und Co.
Aber zu Lazarus ja nicht ... zu viel hier dazu fragen. Nur paar wenige einfache fragen, um den Schein zu waren, dass es ein Lazarusforum ist, aber sonst: Das restliche Internet.
Ok, bin dann mal lieber weg, ins Internet. Oder jetzt wo ich es langsam begreife, dass fragen zu Lazarus hier im Lazarusforum ungern beantwortet werden, sollte ich mich eh nach anderem Forum umsehen. Hm... vielleicht Basic-Forum? Wird da einem dann vielleicht Fragen zu Lazarus beantworte?
Jedenfalls bin ich hier mit meinen Lazarus-Fragen falsch aufgehoben.
Lazarus 2.2.0 / FP 3.2.4

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2636
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: [gelöst] Probleme mit Canvas/Image und Ausführung.

Beitrag von m.fuchs »

Erwin hat geschrieben:Es ist erstaunlich, wie viel Aufwand ihr 2 (wp_xyz und mse) betreibt, um mich aus dem Forum zu vertreiben.
[...]Jedenfalls bin ich hier mit meinen Lazarus-Fragen falsch aufgehoben.


Naja, es ist auch immer die Frage wie man hier selber aufschlägt. Und mit Aussagen "Zu kompliziert" und dem Hinweis dass du ein Demo-Projekt nicht herunterladen möchtest, das jemand für dich zusammengebaut hat, bekommt man eventuell etwas weniger Hilfe.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

mse
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: [geändert] Probleme mit Canvas/Image und Ausführung.

Beitrag von mse »

Erwin hat geschrieben:DX? Wenn ich nicht durch gut 1 Stunde ausgiebigen testen des Programms, was nach dem Entferne der einen Störzeile dann ging, bereits selber alles herausgefunden habe, müsste ich raten. Aber so kann ich davon aus gehen, das D der Anfangsbuchstabe für Englisches Fenster ist?

Äh, nein.
Beim Programmieren musst du dir angewöhnen nicht zu raten oder Sachen hinein zu interpretieren, sondern die Informationen trocken so zu nehmen wie sie vorliegen. Schau noch mal, was wp_xyz zitiert hat:
function OffsetRect(var Rect: TRect; DX: Integer; DY: Integer): Boolean;

OffsetRect offsets the rectangle Rect by a horizontal distance DX and a vertical distance DY. [...]

Kapiert?
Und das sich Profis die Zeit nehmen um einem blutigen und erst noch frechen Anfänger wie dir zu helfen versuchen wirst du vermutlich in keinem anderen Forum finden. Wir versuchen dir sogar aufzuzeigen, wie man vorgehen sollte, um sich das Programmieren an zu eignen.

Erwin
Beiträge: 286
Registriert: Mi 16. Sep 2009, 14:15
OS, Lazarus, FPC: Xubuntu 22.04 / x86_64_linux-gtk 2 / L 2.2.0 / FPC 3.2.2

Re: [geändert] Probleme mit Canvas/Image und Ausführung.

Beitrag von Erwin »

mse hat geschrieben:Kapiert?

Nein, außer dass es in meinen eigentlichen Programm, wo ich es vorhin versucht habe, wiederum gar nichts so funktioniert, wie es sollte.
Und vermutlich könntest Du es mit einem Satz mir 'D'x erklären, aber stattdessen schreibst lieber darüber, dass ich im Netz suchen soll.

mse hat geschrieben:Und das sich Profis die Zeit nehmen um einem blutigen und erst noch frechen Anfänger wie dir zu helfen versuchen wirst du vermutlich in keinem anderen Forum finden. Wir versuchen dir sogar aufzuzeigen, wie man vorgehen sollte, um sich das Programmieren an zu eignen.

Wenn ich nicht teils mit jemanden aufgewachsen wäre, der einerseits viel wusste, anderseits dann absichtlich mich in Unkenntnis lies, könnte man dies für möglich halten. Aber so wirkt es auf mich eher nach einer Ausrede. Einfach auch deshalb: Weil vieles mit nur paar Sätzen zu erklären wäre. Wenn es länger dauern würde, würde ich es sofort verstehen. Aber bei paar Sätzen, oder in einem anderem Fall hätte man mir etwas mit nur einen Satz, mit gerade mal bis zu 10 Wörtern, eine Sache erklären können, tat man aber nicht.

Das hier erinnert mich eher an den Vorfall vor einer Woche in meiner Buchhandlung, wo ich nach einem Buch über KI fragte. Dort meinte die Verkäuferin, dass es dazu 1 200 Treffer gibt, und ich solle [ohne dem Wort: Bitte] vorher auf Amazon nachsehen, was für ein Buch ich dann haben will.
Bedenken hat die scheinber keine, dass selbst in Fällen wie bei mir (ich will mit Amazon nichts zu tun haben) dies dann doch dazu führen kann, dass ich gleich bei Amazon dann bestelle, hat die scheinbar nicht?

Und hier hat man wohl keine Bedenken, das einem Fragenden es mehr und mehr komisch vorkommen kann, dass hier welche viel mehr Sätze zur Aufforderung woanders zu suchen schreiben, anstatt mit weniger nötigen Sätzen es gleich zu erklären.
Mir jedenfalls kommt das sehr komisch vor. Auf mich wirkt das eben, als will man mir eben im unklaren lassen.
Lazarus 2.2.0 / FP 3.2.4

mse
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: [geändert] Probleme mit Canvas/Image und Ausführung.

Beitrag von mse »

Erwin hat geschrieben:
mse hat geschrieben:Kapiert?

Nein

Dann nochmals. Was siehst du hier?
function OffsetRect(var Rect: TRect; DX: Integer; DY: Integer): Boolean;

OffsetRect offsets the rectangle Rect by a horizontal distance DX and a vertical distance DY. [...]

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: [geändert] Probleme mit Canvas/Image und Ausführung.

Beitrag von wp_xyz »

Erwin hat geschrieben:
mse hat geschrieben:Kapiert?

Nein

Ich verstehe ja, dass nicht jeder sich an Ausdrücke der Differentialrechnung in der Schule wie y' = dy/dx erinnern kann, aber wenn der Satz so geheißen hätte,

"function OffsetRect(var Rect: TRect; X: Integer; Y: Integer): Boolean - OffsetRect offsets the rectangle Rect by a horizontal distance X and a vertical distance Y."

bzw. google-übersetzt
"OffsetRect versetzt das Rechteck Rect um einen horizontalen Abstand X und einen vertikalen Abstand Y",

hättest du ihn dann verstanden?

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2636
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: [geändert] Probleme mit Canvas/Image und Ausführung.

Beitrag von m.fuchs »

Erwin hat geschrieben:Das hier erinnert mich eher an den Vorfall vor einer Woche in meiner Buchhandlung, wo ich nach einem Buch über KI fragte. Dort meinte die Verkäuferin, dass es dazu 1 200 Treffer gibt, und ich solle [ohne dem Wort: Bitte] vorher auf Amazon nachsehen, was für ein Buch ich dann haben will.

Ich steige mal auf diesen Off-Topic-Teil ein, weil ich glaube dass das auch tatsächlich dein Problem ist. Dein Wunsch ist ungefähr so, als wenn ich in die Buchhandlung gehe und nach einem Kochbuch frage. Auch dann wird das Angebot sehr breit gefächert sein und ohne nähere Angabe (asiatisch? italienisch? arabisch? Fleisch? Vegan? et.c) werde ich keine klare Empfehlung vom Buchhändler bekommen. Und bei einem Fachthema wie KI wird dir ein Mitarbeiter einer Standardbuchhandlung keinen Ratschlag geben können. Wie auch im Forum gilt hier: mehr Output für mehr Input.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

Antworten