![]() |
Mehrdimensionales Array MagSetWindowTransform
Sollte eigentlich stimmen.
Delphi-Quellcode:
aber beides funktioniert nicht.
type
tagMAGTRANSFORM = record v: array[1..3, 1..3] of Single; end; const MagFactor = 2.0; ... matrix.v[1][1] := MagFactor; matrix.v[2][2] := MagFactor; matrix.v[3][3] := 1.0; //oder matrix.v[1,1] := MagFactor; matrix.v[2,2] := MagFactor; matrix.v[3,3] := 1.0; Hmmm.. Irgendwelche Ideen? gruss |
AW: Mehrdimensionales Array die Hunderste
Es wäre hilfreich wenn du noch schreiben würdest was nicht funktioniert und was "MagFactor" und "matrix" ist.
|
AW: Mehrdimensionales Array die Hunderste
Zitat:
Und was die Matrix ist sieht man doch oben beim Type oder? Beide Schreibweisen bringen kein Resultat.. Das Bitmap vom Window soll dann um den Faktor 2 skaliert werden.
Delphi-Quellcode:
MagSetWindowTransform(hWndMag, matrix);
gruss |
AW: Mehrdimensionales Array die Hunderste
Zitat:
Hmmm.. Irgendwelche Ideen? Oder anders ausgedrückt: Was funktioniert nicht? Fehler bei der Zuweisung? Daten stehen nicht im Array? Exception? ... |
AW: Mehrdimensionales Array die Hunderste
Zitat:
Zitat:
Zitat:
Es wird nicht skaliert weder mit der einen noch der anderen Schreibweise. Wenn beide richtig sind wo liegt dann der Fehler? gruss |
AW: Mehrdimensionales Array die Hunderste
Wenn man die Infos erst nachträglich hineineditiert, darf man sich auch nicht wundern. Zum Problem: müssten die Arrays nicht 0-indiziert sein?
|
AW: Mehrdimensionales Array die Hunderste
Zitat:
Zitat:
Zu deiner frage und laut der API eigentlich nicht.
Delphi-Quellcode:
In wie weit das nun richtig ist kann ich nicht sagen.
type
tagMAGTRANSFORM = record v: array[1..3, 1..3] of Single; end; MAGTRANSFORM = tagMAGTRANSFORM; TMagTransform = tagMAGTRANSFORM; PMagTransform = ^TMagTransform; Die Unit ist nicht von mir. Habe es mal umgeschrieben funktioniert auch nicht. Sobald ich die Matrix addiere zeichnet er das Bitmap nicht mehr. Auch ein resize hilft da nicht. Ohne die Matrix bekomme ich bei deaktivierter Desktoptheme "Floating Point invalid Operation" EDIT: ![]() gruss |
AW: Mehrdimensionales Array die Hunderste
Titel passt halt nicht zum Fehler. Deine Änderungen habe ich nicht gemeldet bekommen beim Abschicken. Aber egal.
Die Magnification API ist nur für 32Bit. Unter 64Bit wirst du Probleme bekommen. Könnte es daran liegen? |
AW: Mehrdimensionales Array die Hunderste
Zitat:
Von daher passt der Titel schon. Eigentlich nicht. Die Anwendung ist 32Bit. gruss |
AW: Mehrdimensionales Array die Hunderste
Deine Verlinkung besagt nur, dass es ein 3x3 Array ist. Dennoch sollte der Zähler null-basiert sein.
Hier ein C++-Beispiel ![]()
Code:
Außerdem macht Delphi aus einem Record üblicherweise ein packed Record, wenn ich mich richtig erinnere. Evtl. musst du das über den entsprechenden Compiler-Schalter deaktivieren.// Description: // Sets the magnification factor for a magnifier control. // Parameters: // hwndMag - Handle of the magnifier control. // magFactor - New magnification factor. // BOOL SetMagnificationFactor(HWND hwndMag, float magFactor) { MAGTRANSFORM matrix; memset(&matrix, 0, sizeof(matrix)); matrix.v[0][0] = magFactor; matrix.v[1][1] = magFactor; matrix.v[2][2] = 1.0f; return MagSetWindowTransform(hwndMag, &matrix); } |
AW: Mehrdimensionales Array die Hunderste
Zitat:
Zitat:
![]() Übrigens hat die Matrix 0 bis 2 in beiden Dimensionen und nicht 1 bis 3. Sieht man in der Doku zu MagSetWindowTransform. |
AW: Mehrdimensionales Array die Hunderste
OK habe das auf 0 hin geändert.
Das Problem lag wohl eher da dran das ich das Array vorher nicht genullt (FillChar) habe. ![]() Habe den Kram jetzt komplett neu geschrieben. Es funktioniert 100% mit ausgeschalteter DesktopTheme nach dem ich die Matrix jetzt korrigiert habe. Mit eingeschalteter geht es nur wenn man das Fenster in der Größe verändert bis das Bitmap angezeigt wird. Es scheint das es hier Probleme mit DWM gibt. Hab das Projekt mal angehängt. Wer es testen möchte. Bitte schön. (D2010) gruss |
AW: Mehrdimensionales Array die Hunderste
Zitat:
Dort war es nun mal so definiert. ![]() Habe es lediglich neu geschrieben. Und sie arbeitet gut mit 64Bit nur nicht in Verbindung mit DWM. gruss |
AW: Mehrdimensionales Array die Hunderste
Zitat:
Nur weil irgendwer irgendwann irgendwas als Delphi-Übersetzung gepostet hat, entbindet dich doch nicht von "Pflicht" trotzdem in der MSDN nachzuschauen, was die einzelnen Sachen bedeuten und wie man sie anwendet. |
AW: Mehrdimensionales Array MagSetWindowTransform
:thumb:
Wir lieben uns nicht. :( Und ja weil genau das 2 Beiträge vorher schon gepostet wurde. Zitat:
![]() greets |
AW: Mehrdimensionales Array MagSetWindowTransform
Zitat:
|
AW: Mehrdimensionales Array die Hunderste
Zitat:
Zitat:
|
AW: Mehrdimensionales Array MagSetWindowTransform
Zitat:
Das es Leute gibt die sich immer für so wichtig halten und die glauben das es ohne sie nicht geht. Kann es sein das du dich gerne selber lesen hörst und oder überschätzt. Mal anders rum gefragt.. Wieviele Tips, Quelltext, Schnipsel, Ideen hast du aus meinen Projekten entnommen wo du nicht weiter gekommen bist? EDIT: Manche meinen wenn sie bei einem Problem geholfen haben wer weis was für eine Leistung sie vollbracht haben. Ich setze mich auch schon mal hin und schreibe auch ein Projekt komplett neu wenn es denn sein muss, nur um jemanden zu helfen weil es mit einer einfachen Zeile nicht lösbar ist. Ihr missversteht hier einiges ich brauchte und ich verwende das Projekt persönlich nicht es war eine Hilfestellung für jemand anderem. Und auf solche Leute wie dich kann ich gern verzichten. Ihr solltet mal alle nicht so tun als hätte noch niemand von meinen Quelltexten profitiert also kommt von euren hohen Ross herunter. Egal von daher. gruss |
AW: Mehrdimensionales Array MagSetWindowTransform
Darf man erfragen, worum es bei dem MagXXXX überhaupt handelt?
Ich hab auch den anderen Thread gelesen aber werd irgendwie daraus nicht schlau was das Ziel sein soll. Ich vermute das es eine Api funktion ist mit der man Bildschirmfotos erstellen kann, nur verstehe ich Sinn und Zweck noch nicht so ganz warum per Api und nicht einfach per Delphi Bildschirmfoto Code wie hier ![]() Oder geht es um das vergrößern (=magnification) eines Fotos? Ich blick da noch nicht so ganz durch. Also ich mein, warum diese api überhaupt nutzen wollen wenn microsoft schreibt: Zitat:
Grüße & Frieden in der Galaxie |
AW: Mehrdimensionales Array MagSetWindowTransform
Zitat:
Nur um einen Screenshot zu erstellen hätte man nicht die Magnification.dll verwenden müssen. Das wäre einfacher gegangen wie in deinem Beispiel. Und wenn eine DLL dann madVr damit kann ich Screenshots von 800% der original Größe erstellen. gruss |
AW: Mehrdimensionales Array MagSetWindowTransform
Dem kann ich nur beipflichten,
In diesem Sinne, Grüße ps: ja helfen ist immer gut, egal ob blödsinn (keine direkte lösung, andere möglichkeit zeigen) ist oder direkt auf einen source reagieren und verbesserungen vorschlagen, ich pers. find jede hilfe gut da man ja nur daraus lernen kann wie andere an ein problem und dessen lösung rangehen. Welche möglichkeit genutzt wird, liegt ja dann beim "Leser". |
AW: Mehrdimensionales Array MagSetWindowTransform
Da freimatz auf meinen Kommentar eingegangen ist und eweiss darauf reagiert hat, möchte ich abschließend auch noch was dazu loswerden.
Wenn ich schreibe, dass mir das egal ist, dann meine ich das so. Ich brauche Niemanden, der sich dann bei sowas nochmal einklinkt. Das war eine Sache zwischen eweiss und mir. Welche Konsequenzen mein "egal" hat, habe ich nirgendwo geschrieben. Daher kann es durchaus so sein, wie freimatz es selbst geschrieben hat. Aber das ist dann meine Sache. Dass die Korrekturen nach meinem Post gemacht wurden, ist offensichtlich, wie man leicht am Beitrag #7 sehen kann. Ich habe um 9:13 gepostet, die Änderungen waren um 9:14. Dass eweiss das falsch herum interpretiert hat, ist ein klassisches Eigentor. Daher war mir der Rest egal. Das musst durch Niemanden noch mal extra erwähnt werden. Wie oben schon geschrieben, hoffe ich, dass damit dieses Thema abgeschlossen ist. Wenn dazu noch jemand was loswerden will, empfehle ich PN, da das Forum dafür zu schade ist. |
AW: Mehrdimensionales Array MagSetWindowTransform
Zitat:
Entschuldige bitte. Manchmal ist es so das man einen roten Kasten zu sehen bekommt wenn vorher ein neuer bzw. ein Post editiert wurde. In deinem Fall konntest du das natürlich nicht sehen da du diese eine Minute vorher abgeschickt hast. Gut für mich ist das auch erledigt. Und danke für deine Hilfe so konnte ich dadurch anderen helfen. gruss |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:57 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz