AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Fehler bei Bereichsprüfung in SendMessage
Thema durchsuchen
Ansicht
Themen-Optionen

Fehler bei Bereichsprüfung in SendMessage

Ein Thema von TUX_der_Pinguin · begonnen am 8. Jun 2009 · letzter Beitrag vom 9. Jun 2009
 
Muetze1
(Gast)

n/a Beiträge
 
#9

Re: Fehler bei Bereichsprüfung in SendMessage

  Alt 9. Jun 2009, 10:29
Zitat von sirius:
@Muetze.
Du solltest aber Assertions und Exceptions nicht durcheinanderbringen.
Dito, habe ich nämlich nicht! Ich habe nichts von Exceptions geschrieben oder beschrieben. Anscheinend verwechselst du Exceptions und Assertions.

Zitat von TUX_der_Pinguin:
Naja ich dachte wenn ich verhinder das SendMessage ausgeführt wird wenn das Handle größer MaxInt ist dann der Fehler in der Bereichsprüfung nicht mehr auftaucht. Das hatte ich wohl falsch verstanden. :gruebel:
Der Fehler würde dann nicht mehr auftauchen, aber die Message auch nicht versandt - und die ist bestimmt nicht an der Codestelle, weil es so schöner aussieht...

Zitat von TUX_der_Pinguin:
Und wie sag ich dem Compiler das er das als LongWord bzw. Cardinal senden soll, ich dachte die Handle sind vom Typ Cardinal!?
Senden tut er 32 Bit für den WParam und LParam, also inklusive des 31. Bits. Ob dies aber nun als Vorzeichen oder nicht interpretiert wird, definiert der Datentyp. Die Funktion will einen Datentyp wo das 31. Bit ein Vorzeichen ist. Also direkt casten, also Delphi sagen, er soll die 32 Bits als Integer sehen. Bisher sieht er es als Cardinal an und sieht er braucht integer. Somit wandelt er es um, aber löst eine exception aus, wenn der Wert nicht in das Ziel passt, was bei Werten > MaxInt der Fall ist. Um diese Umwandlung (damit die Prüfung) zu umgehen, einfach hart sagen: Delphi, das ist kein Cardinal, das siehst du falsch - das ist ein Integer. Also nix machen, das passt doch...

SendMessage(barStatus.Handle, SB_SETICON, integer(Panel), integer(AnimatedIcon.Handle));
  Mit Zitat antworten Zitat
 


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 05:34 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-2025 by Thomas Breitkreuz