- このトピックは空です。
-
投稿者投稿
-
2021年6月30日 5:34 PM #1923
宇佐美
ゲストWin95からWin-Xpへのマシン交換のため、Delphi6でコンパイルしたところ 定数式が範囲を超えました という警告が出てexeフィルはできるのですが、ボーダーの色の指定が反映されず枠つき、bmp画像つきで印字されてしまいます
ソースの一部を下記に記しますのでアドバイスをお願いします
//枠線をセット
FillChar(wrObjectProperty,sizeof(sizeof(wrObjectProperty)),0);
if WRPMode=WRP_MDPREVIEW then wrObjectProperty.rgbBorderColor:=WOP_BCMAGENTA
else wrObjectProperty.rgbBorderColor:=WOP_TRANSPARENT; //印刷時は枠線をなくすif wrSetObjectProp(hReport,PChar(WRField),WON_BORDERCOLOR,@wrObjectProperty)=0 then begin
if NoWRFieldCheck then {エラーを無視する}//伝票取り込みイメージの表示・非表示をセット
FillChar(wrObjectProperty,sizeof(sizeof(wrObjectProperty)),0);
wrObjectProperty.fVisible:=Ord(WRPMode=WRP_MDPREVIEW);
if wrSetObjectProp(hReport,’伝票取込イメージ’,WON_VISIBLE,@wrObjectProperty)=0 then
if NoWRFieldCheck then {エラーを無視する}2021年6月30日 5:34 PM #1924松嶋@ソフトウィング
ゲストお世話になります。
『定数式が範囲を超えました』が発生する箇所は特定できま
すか?特定できる場合は大変お手数ですが、発生箇所のソー
スをお知らせ頂けないでしょうか?以上です。宜しくお願い致します。
2021年6月30日 5:34 PM #1925宇佐美
ゲスト記の行で警告が出ています
よろしくお願いしますelse wrObjectProperty.rgbBorderColor:=WOP_TRANSPARENT; //印刷時は枠線をなくす
2021年6月30日 5:35 PM #1926宇佐美
ゲスト下記のように WORD(WOP_TRANSPARENT)と型変換すると警告は出なくなりましたが、フォームのプロパティの変更が反映されていません
(Delphi4でのコンパイルではプロパティへの変更が反映されています)Delphi5以降の何かしらの変更が影響しているのでしょうか?
wrObjectProperty.rgbBorderColor:=WORD(WOP_TRANSPARENT); //印刷時は枠線をなくす
2021年6月30日 5:35 PM #1927松嶋@ソフトウィング
ゲストお世話になります。
その後、調査したところv4とv6では構造体のパディングが異
なっている事がわかりました。つきましては、プロパティ設
定用の構造体宣言を以下の様に変更してご利用頂けないでし
ょうか?○構造体宣言
※構造体名は変更してあります。
WROBJPROPERTYDP5= packed record
szName : array[0.. WR_OBJNAMESIZE-1] of Char ;
cRes0 :char ; {予約}
fGroupFlag : Integer; {グループ化フラグ(TRUE/FALSE)}
dm1,dm2:char;
dbxStart : Double; {開始位置X[論理ユニット]}
dbyStart : Double; {開始位置Y[論理ユニット]}
dbxEnd : Double; {終了位置X[論理ユニット]}
dbyEnd : Double; {終了位置Y[論理ユニット]}
lpszText : Pointer; {ソーステキストへのポインタ(NULL指定時は無視)}
szFontName :array[0..LF_FACESIZE-1] of Char ; {フォントフェイス名}
dbFontSize : Double; {フォントサイズ[ポイント]}
wFontAttr : Longword; {フォント属性}
dbCharacterPitch : Double; {文字間ピッチ[論理ユニット]}
dbLinePitch : Double; {行間ピッチ[論理ユニット]}
wOrientation : Cardinal; {テキスト展開方法}
wMultipleLine : Cardinal; {マルチライン 0:単一行 1:複数行}
wTextLayout : Cardinal; {テキスト配置}
wStatic : Cardinal; {テキスト固定属性}
rgbTextColor : LongInt; {文字色}
rgbBackColor : LongInt; {背景色}
wBorderStyle : Cardinal; {境界線種}
BorderWidth : Integer; {境界線幅}
rgbBorderColor : LongInt; {境界線色}fVisible : Integer; {表示/非表示}
lpszImageFileName : Pointer; {イメージファイル名へのポインタ}
wImageQuality : Cardinal; {イメージ描画品質[ドット/インチ]}
wImageScalingMode : Cardinal; {スケーリングモード}
lpDIBBuffer : Pointer; {DIBバッファ領域へのポインタ}
dbxRoundSize : Double; {ボックスの角丸めXサイズ[論理ユニット]}
dbyRoundSize : Double; {ボックスの角丸めYサイズ[論理ユニット]}
wMeshKind : Cardinal; {網掛け種別}
rgbMeshColor : LongInt; {網掛け色}
end;※上記宣言の変更で同様なメッセージが表示される場合は
rgbBorderColorの宣言をLongWordへ変更し、確認してを
お願い致します。以上です。宜しくお願い致します。
2021年6月30日 5:35 PM #1928宇佐美
ゲストお世話になります
無事プロパティの変更が反映されました
尚、rgbBorderColor : LongInt; {境界線色} のままで警告は出ませんでした
本当にありがとうございました
-
投稿者投稿
- フォーラム「旧サポート掲示板」には新規投稿および返信を追加できません。