新着表示
タイトル
記事No
投稿日
投稿者
: Re: hdb append 時の DX Falg
: 801
: 2017/08/04(Fri) 15:08:15
: je6lao
こんにちは、長野です。
StrPcopy(fname: PChar, hdb_file: string)
なのでシンプルにファイル名の変数をstringで宣言し
そこにファイル名を代入すればいいと思います。
ポインタを使う必要があるのでしょうか。
var
hdb_file: string;
fname: PChar;
Begin
hdb_file := 'c:\hamlog\hamlog.hdb';
StrPCopy(fname, hdb_file);
sd := HamlogOpen(nil, Th, fname, 0);
end;
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
タイトル
記事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 を確定する処理を追加します。
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!