新着表示
タイトル
記事No
投稿日
投稿者
: Re: hdb append 時の DX Falg
: 800
: 2017/08/04(Fri) 08:57:53
: JA2BQX 太田
浜田さん、度々ありがとうございます。出来ました。
> 文字列ではなく数値の代入です。
StrPcopy() にこだわっていました。文字列では無いのでStrPcopy() は使えない、 Hi
> Th.QSO.Flag := 8; // Pascal <== これだとエラーになる。
Th.QSO.Flag1: = 8; <== これだとエラーにならない。DXフラグにレ点が付く。 OK
StrPCopy(Th.QSO.Calls,thw_call); の書式にばかりこだわっていましたが
Th.QSO.Calls:=thw_call; でもテストしてOKでした。
どちらでも良いのでしょうが何か差が出るでしょうか?
Pascal 講座みたくなってしまいましたが、もう一つ教えて下さい。
function HamlogOpen(Func: Pointer; var Th: TThLog; const fname: PChar; const isComp: Integer): Integer;
Hamlog.hdb のパスは PChar で与えるとなっています。
そこで hamlog_hdb_path:= 'C:\Hamlog\Hamlog.hdb'; の時に
var
buffs: array [0..255] of Char;
Begin
StrPCopy(buffs,hamlog_hdb_path);
sd := HamlogOpen(nil, Th, @buffs[0], 0); ...としても転送されません。
Hamlog.hdb のパスを直接 sd := HamlogOpen(nil,Th, 'C:\Hamlog\Hamlog.hdb', 0); とするのでは無くて
変数で指定するにはどう書けば良いのでしょうか?
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
タイトル
記事No
投稿日
投稿者
: Re: hdb append 時の DX Falg
: 799
: 2017/08/04(Fri) 07:07:06
: JG1MOU 浜田
> 浜田さん、ありがとうございます。
>
> > Th.QSO.Flag := 8;
>
> まだつまずいています。
>
> StrPCopy(Th.QSO.Flag,8); でも StrPCopy(Th.QSO.Flag:=8); でもエラ-。
え? 太田さんらしくない勘違いですね。
文字列ではなく数値の代入です。
Flag は、16ビットの整数です。文字列ではありません。
Th.QSO.Flag := 8; // Pascal
Th.QSO.Flag = 8 ' VB
Th->QSO.Flag = 8; // C言語
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
タイトル
記事No
投稿日
投稿者
: Re: hdb append 時の DX Falg
: 798
: 2017/08/04(Fri) 05:27:44
: JA2BQX 太田
こんにちは。
Hwnd2 := SendMessage(Hwnd1, WM_COPYDATA, Form1.Handle, LPARAM(@cds)); の方は
.... callsign から順にセットしてから
ttmp:= ttmp + thw_rkm2 + #$0D;
ttmp:= ttmp + '' + #$0D;
ttmp:= ttmp + '8' + #$0D; で出来ました。
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
タイトル
記事No
投稿日
投稿者
参照先
:
Re: hdb append 時の DX Falg
:
797
:
2017/08/03(Thu) 21:59:17
:
JA2BQX 太田
:
浜田さん、ありがとうございます。
> Th.QSO.Flag := 8;
まだつまずいています。
StrPCopy(Th.QSO.Flag,8); でも StrPCopy(Th.QSO.Flag:=8); でもエラ-。
Hwnd2 := SendMessage(Hwnd1, WM_COPYDATA, Form1.Handle, LPARAM(@cds));
で送る時はどう書いたら良いですか。
ttmp:= ttmp + '8' + #$0D; //転送されない。
TH.QSO. として出てくる項目リストには var Flag1 : Word があります。
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
タイトル
記事No
投稿日
投稿者
: Re: hdb append 時の DX Falg
: 796
: 2017/08/03(Thu) 21:38:33
: JG1MOU浜田
> [FLAG 2 DXの場合8~10 数値で保存] とありますが
> StrPCopy(Th.QSO.Flag,'8'); とかでは書き込まれないようです。
Th.QSO.Flag := 8;
です。
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
タイトル
記事No
投稿日
投稿者
参照先
:
hdb append 時の DX Falg
:
795
:
2017/08/03(Thu) 20:10:19
:
JA2BQX 太田
:
こんばんは。
JT65 の HB9HQX 版のソース修正で直接 Hamlog へQSOデータの転送する
基本機能のテストは完了しました。
過去ログにも HAMLOG50.txt にも説明は無いように思うので質問させて下さい。
Free Pascal で、
sd := THW_append(Th, IsQSOdata, mes); を使用時に
StrPCopy(Th.QSO.Calls,'JA2BQX'); で各項目をセットして Hamlog.hdb に直接書き込む際に
DX Flag を 0 や 8 にするにはどうしたら良いでしょうか?
[FLAG 2 DXの場合8~10 数値で保存] とありますが
StrPCopy(Th.QSO.Flag,'8'); とかでは書き込まれないようです。
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
タイトル
記事No
投稿日
投稿者
参照先
:
Re: lazarus-1.6.4 , Pascal
:
794
:
2017/08/02(Wed) 11:00:26
:
JA2BQX 太田
:
長野さん、お手数をお掛けしました。
> 解決なさったようで安心いたしました。
階段を1段登れました。 VB6 ( もう長く VB2010 ですが ) と違って変数のスコープで悩まされます。グローバル変数、関数になる積りが別の *.pas で認識してくれなかったり。
IF 文、 For 文の制御構造も長く VB 環境だったので思うように行きません、 Hi
別に Pascal に乗り換える訳では無いのですが、 JTDX , WSJT-X のソースも修正、コンパイルにも挑戦したいと
思っていますがまだこちらはウインドウ( Form1 等 )を修正したりが反映されるかのテストもまだです。
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
タイトル
記事No
投稿日
投稿者
: Re: lazarus-1.6.4 , Pascal
: 793
: 2017/08/02(Wed) 10:04:13
: je6lao
解決なさったようで安心いたしました。
'hamlog50.pas'のpathを通し、usesに追加しておけば、
THDLL2VB.DLLは使わなくてもいいのではないでしょうか。
> そもそも THDLL2VB.DLL はVB用なので SetThBuffer を使う殊に問題がある?
>
> SetThBuffer の定義、使い方が間違えている?
>
> あれこれ考えている内に下記のテストをしたらOKでした。
>
> StrPCopy(Th.QSO.Calls,'JA2BQX'); で全項目をセットして
> sd := THW_append(Th, IsQSOdata, 0); でエラーは出なくてコンパイル成功、メインウインドウも出て [転送]ボタンを押して
> Hamlog に転送されました。
>
> ありがとうございました。 お騒がせしました。
> 後は cty.dat を分解しコールサインから Entity を取得し Hamlog の code を確定する処理を追加します。
>
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
タイトル
記事No
投稿日
投稿者
参照先
:
Re: lazarus-1.6.4 , Pascal
:
792
:
2017/08/02(Wed) 07:39:44
:
JA2BQX 太田
:
そもそも THDLL2VB.DLL はVB用なので SetThBuffer を使う殊に問題がある?
SetThBuffer の定義、使い方が間違えている?
あれこれ考えている内に下記のテストをしたらOKでした。
StrPCopy(Th.QSO.Calls,'JA2BQX'); で全項目をセットして
sd := THW_append(Th, IsQSOdata, 0); でエラーは出なくてコンパイル成功、メインウインドウも出て [転送]ボタンを押して
Hamlog に転送されました。
ありがとうございました。 お騒がせしました。
後は cty.dat を分解しコールサインから Entity を取得し Hamlog の code を確定する処理を追加します。
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
タイトル
記事No
投稿日
投稿者
参照先
:
Re: lazarus-1.6.4 , Pascal
:
791
:
2017/08/02(Wed) 05:32:39
:
JA2BQX 太田
:
長野さん、こんにちは。ご無沙汰しています。 回答ありがとうございます。
> Hamlog起動時は期待通りにデータが転送できていて、Hamlog未起動時に動作しないのなら、Hamlogの起動に問題があるのではないでしょうか。
今回は Hamlog未起動の状態で転送したいです。
> Hamlog未起動時は、
> 1.HamlogOpenで起動。
> 2.SetThBufferでデータ転送
> という手順なのでしょうか?
「1.HamlogOpenで起動。」は無い状況での動作です。
> 2.SetThBufferをコメントアウトしたとき、Hamlogは正常に起動しますか。また、データ入力画面も開いていますか?
SetThBufferをコメントアウトしたとき、ソフトからはHamlogは起動させません。
THW_append() にて Hamlog.hdb に直接QSOデータの追加をしたいので。
> sd := HamlogOpen(nil, Th, 'C:\Hamlog\Hamlog.hdb', 0);
>
> で、sdにSUCCESSが戻ってきていますか。この判定が無いようですが大丈夫ですか。
sd は ゼロ が戻ってきています。
Hamlog50.bas には下記の記載があるので大丈夫と思います。
' 各関数が返すエラーナンバー
Public Const SUCCESS = 0 ' 成功
> 正常に起動しているのであれば、
> 1.起動してからSetThBufferで書き込むまでに、waitは必要ないのでしょうか。Hamlogが完全に起動してからSetThBufferで転送していますか?
Hamlog が起動しデータ入力画面も開いている時には HamlogMs.txt に記載のある
cmmd = 15
●コマンドを数値で指定し、Turbo HAMLOG/Winの入力ウインドウに文字列を送る...でやっています。
sd := HamlogOpen(nil, Th, 'C:\Hamlog\Hamlog.hdb', 0); の前に
sc:= SetDbsShare(1); を追加しましたが、やはりSetThBufferでエラーが出ます。
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!