AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Mehrdimensionales Array MagSetWindowTransform
Thema durchsuchen
Ansicht
Themen-Optionen

Mehrdimensionales Array MagSetWindowTransform

Ein Thema von EWeiss · begonnen am 29. Jan 2018 · letzter Beitrag vom 30. Jan 2018
Antwort Antwort
Seite 1 von 3  1 23      
EWeiss
(Gast)

n/a Beiträge
 
#1

Mehrdimensionales Array MagSetWindowTransform

  Alt 29. Jan 2018, 09:04
Sollte eigentlich stimmen.

Delphi-Quellcode:
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;
aber beides funktioniert nicht.

Hmmm..
Irgendwelche Ideen?

gruss

Geändert von EWeiss (29. Jan 2018 um 10:08 Uhr)
  Mit Zitat antworten Zitat
freimatz

Registriert seit: 20. Mai 2010
1.442 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Mehrdimensionales Array die Hunderste

  Alt 29. Jan 2018, 09:05
Es wäre hilfreich wenn du noch schreiben würdest was nicht funktioniert und was "MagFactor" und "matrix" ist.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#3

AW: Mehrdimensionales Array die Hunderste

  Alt 29. Jan 2018, 09:07
Es wäre hilfreich wenn du noch schreiben würdest was nicht funktioniert und was "MagFactor" und "matrix" ist.
Das Array? Was sonst.
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.

MagSetWindowTransform(hWndMag, matrix);

gruss

Geändert von EWeiss (29. Jan 2018 um 09:14 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.354 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Mehrdimensionales Array die Hunderste

  Alt 29. Jan 2018, 09:13
aber beides funktioniert nicht.

Hmmm..
Irgendwelche Ideen?
Mein Auto sprang heute Morgen nicht.

Hmmm..
Irgendwelche Ideen?

Oder anders ausgedrückt:
Was funktioniert nicht?
Fehler bei der Zuweisung?
Daten stehen nicht im Array?
Exception?
...
Peter
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#5

AW: Mehrdimensionales Array die Hunderste

  Alt 29. Jan 2018, 09:15
Zitat:
Mein Auto sprang heute Morgen nicht.
Liebe Leute lest doch einfach mal.

Zitat:
Das Array? Was sonst.
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.
Zitat:
Fehler bei der Zuweisung?
Daten stehen nicht im Array?
Alles nein...

Es wird nicht skaliert weder mit der einen noch der anderen Schreibweise.
Wenn beide richtig sind wo liegt dann der Fehler?

gruss
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#6

AW: Mehrdimensionales Array die Hunderste

  Alt 29. Jan 2018, 09:17
Wenn man die Infos erst nachträglich hineineditiert, darf man sich auch nicht wundern. Zum Problem: müssten die Arrays nicht 0-indiziert sein?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#7

AW: Mehrdimensionales Array die Hunderste

  Alt 29. Jan 2018, 09:24
Wenn man die Infos erst nachträglich hineineditiert, darf man sich auch nicht wundern. Zum Problem: müssten die Arrays nicht 0-indiziert sein?
Zitat:
Er: Heute, 09:13
Ich: Geändert von EWeiss (Heute um 09:14 Uhr)
Bevor er das abgeschickt hat hätte er die Änderung mitbekommen müssen.. Aber egal.

Zu deiner frage und laut der API eigentlich nicht.

Delphi-Quellcode:
type
  tagMAGTRANSFORM = record
    v: array[1..3, 1..3] of Single;
  end;
  MAGTRANSFORM = tagMAGTRANSFORM;
  TMagTransform = tagMAGTRANSFORM;
  PMagTransform = ^TMagTransform;
In wie weit das nun richtig ist kann ich nicht sagen.
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:
Laut Microsoft

gruss

Geändert von EWeiss (29. Jan 2018 um 09:27 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.354 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Mehrdimensionales Array die Hunderste

  Alt 29. Jan 2018, 09:26
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?
Peter
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#9

AW: Mehrdimensionales Array die Hunderste

  Alt 29. Jan 2018, 09:29
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?
Es ging mir in erster Linie erst mal um die Schreibweise.
Von daher passt der Titel schon.

Eigentlich nicht.
Die Anwendung ist 32Bit.

gruss
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.354 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: Mehrdimensionales Array die Hunderste

  Alt 29. Jan 2018, 09:37
Deine Verlinkung besagt nur, dass es ein 3x3 Array ist. Dennoch sollte der Zähler null-basiert sein.
Hier ein C++-Beispiel Quelle :
Code:

// 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);
}
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.
Peter
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:26 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz