- このトピックは空です。
-
投稿者投稿
-
2021年6月29日 11:12 AM #53
王
ゲスト環境:WindowsXP+Delphi2005+WR2.0
(WR2.0のXP対応DLL適用済み)
以前WinNT+Delphi3.1+WR2.0で作成したアプリをDelphi2005に
移行するところ、WR帳票処理がおかしくなっていましたので、なにか、ヒントを教えて頂きませんか。
1.条件によって、表示と非表示を制御した項目が全て印刷されてしまった。
2.wrGetObjectProp()がWindowsのアドレス違反を起こした。
3.wrCreateObject()が「ErrorCode=(C0000005)」という例外が発生した。上記APPはDelphi3.1+WindowsXPで全て正常動作確認済み
2021年6月29日 11:12 AM #54中嶋@ソフトウィング
ゲストお世話様になっております。
wrGetObjectPropの動作が異常になるとの事ですが
Delphi5よりWROBJPROPATY構造体のアライメントが
変更されているようです。
お手数ですが、以下の構造体の定義を使用していただきご確認いただければと思います。//追加していただく構造体 ここから
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;//ここまで
以上、よろしくお願いいたします。
-
投稿者投稿
- フォーラム「旧サポート掲示板」には新規投稿および返信を追加できません。