![]() |
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); } |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:46 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