5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

モナーの *やさしい* Delphi質問スレ Ver.14

1 :Delモナー:03/04/13 12:37
  ∧_∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ( ´∀`)<. Delモナーがどんな厨房疑問でもやさしく答えます。
 (    ) .| Delモナーは時に私であり、時には別の人。
 | | |  | 他のスレに書き込んで罵倒される前に、まずここで質問しよう。
 (__)_)  \_________________________

前スレ
フサギコの *やさしい* Delphi質問スレ Ver.13
http://pc2.2ch.net/test/read.cgi/tech/1048589518/

453 :デフォルトの名無しさん:03/04/20 10:59
>>449
szTip って何? szって付いてるんだからサイズ情報=整数型じゃないの?

それから、Delphiの型は厳格だから i が整数型で、代入の時にエラーが出なければ、IntToStr(i)がエラーにはならない。


複数の要素があるような行でエラーが出たら、

FIconData.szTip := '新着' + IntToStr(i) + '通' <-たとえばここでエラーが出たら

FIconData.szTip :=
'新着'
+ IntToStr(i)
+ '通';

と改行を入れてコンパイルして、どこでエラーが出るか見るといい。

454 :デフォルトの名無しさん:03/04/20 11:01
>>452
TComponent型にしても、そんなに大げさになる訳じゃないよ。
 そのインスタンスを大量に作るなら別だけどね。

455 :447:03/04/20 11:07
>>453

+ '通';
の行で'Array'と'String'には互換性がと言われます。
そこで、
+ IntToStr(i)を抜いて

FIconData.szTip :=
'新着'

+ '通';

と書くと問題なくコンパイルできました。
やはりIntToStr(i)に問題があるようです。
上から、szTipはStringであると思います。

456 :デフォルトの名無しさん:03/04/20 11:07
>>449
StrCopy(FIconData.szTip,PChar('新着' + IntToStr(i) + '通'));

457 :449:03/04/20 11:12
>>456
無事解決しました。
ほんとうにありがとうございました。
今後ともよろしくお願いします<(__)>

458 :456:03/04/20 11:32
>>457
調子乗んなよカス

459 :449:03/04/20 11:44
>>458
うるせーカス

460 :449:03/04/20 11:45
>>458
(゚Д゚)ハァ?
そこまで偉そうにされる筋合いもないが、まっ所詮はネットで粋がる事しかできないような奴か・・・
一応礼はいったので・・じゃ


461 :449:03/04/20 11:47
>>459
意見は同じなんだけど騙らないでね(^_^;)

462 :デフォルトの名無しさん:03/04/20 11:53
タイトルバーの色を画面プロパティのデザインで設定したものではなく、
アプリケーション独自の色にすることは可能ですか?

463 :Delフサギコ ◆A6VzDeLphI :03/04/20 12:20
  ∧,,∧   できるですよ
 ミ,,゚Д゚彡
 ミつ日(ミ
Formをサブクラス化して
WM_NCPAINTを監視して
function GetWindowDC(Handle: HWND): HDC;
で取得したのをCanvasにほりこんで
描画するといいみたいです。

昔はDelphi TechMagってページに
Night2000コンポーネント作成の
よい説明が載ってたんですが、
今、なくなっちゃったですね。


464 :デフォルトの名無しさん:03/04/20 12:24
>>463
ありがとうございます
早速試してみます。

465 :デフォルトの名無しさん:03/04/20 15:30
みなさんこんにちわ!
タイトルバーの色を変える方法はありますか?

466 :デフォルトの名無しさん:03/04/20 15:31
>>465
画面のプロパティ−>デザイン

467 :デフォルトの名無しさん:03/04/20 15:58
指定したファイルの有無をBoolで返すAPIってありますか?

468 :デフォルトの名無しさん:03/04/20 16:06
FileExists

469 :デフォルトの名無しさん:03/04/20 16:13
Oh, thank you very much!

470 :デフォルトの名無しさん:03/04/20 19:39
商業アプリケーションの多くは、画像データや音声データを
バイナリデータとして一纏めにしてますよね。

・そもそもバイナリデータとして保存・利用するにはどうするのか
・一纏めにしたファイルからどうやって中に納められている各ファイルを読み込んでるのか

を教えて頂きたいです。ゲーム作ってるんですが、画像や
音声データをそのままで収録して、簡単に覗かれるのは嫌だなと…

471 :デフォルトの名無しさん:03/04/20 19:44
>>470
リソース


472 :デフォルトの名無しさん:03/04/20 20:40
小数点第1位までを表せる型は、ありませんか?
切捨て四捨五入等は問いません。

473 :デフォルトの名無しさん:03/04/20 20:41
内部では整数表現して後で10分の1するよろし。

474 :デフォルトの名無しさん:03/04/20 20:41
>>472
real

嫌なら10倍しとけ。

475 :デフォルトの名無しさん:03/04/20 20:42
>>470
まぁ、

[ファイル名,サイズ,データ]

ってのの繰り返しってのが一般的じゃないの?


476 :デフォルトの名無しさん:03/04/20 20:42
Real or Currency

477 :デフォルトの名無しさん:03/04/20 20:45
>>470
TMemoryStreamを継承してアーカイブに格納したファイルをstream経由で読めるクラスを作成してLoadFromStreamでTBitmapなどに読み込む。とか。

アーカイブの形式は
struct FileHeader
{
  char ファイル名[16];
  int アーカイブ内の先頭アドレス
  int ファイルサイズ
};

struct ArchiveHeader
{
  int 格納ファイル数;
  FileHeader ファイルヘッダ[格納ファイル数];
};
な感じのヘッダの後ろにファイルを繋げていけばいいかと。



478 :デフォルトの名無しさん:03/04/20 20:49
オンメモリで使うんなら16進で書き出してbyte配列として持たせとくとかね。

479 :デフォルトの名無しさん:03/04/20 20:51
>>473-476
アドバイスありがとうございました!

480 :デフォルトの名無しさん:03/04/20 20:56
>>479
なんだよお前。調子乗ってんじゃねーよクズ。

481 :デフォルトの名無しさん:03/04/20 21:12
↑この数日スレを荒らしてる厨。気にしないでくれ>>479

482 :デフォルトの名無しさん:03/04/20 21:44
>>481
(;´Д`)なんで分かったの?

483 :金正日:03/04/20 21:47

   ,rn                 
  r「l l h.                / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  | 、. !j                | 
  ゝ .f         _      |  
  |  |       ,r'⌒  ⌒ヽ、.  │  http://www.freeweb2.kakiko.com/saitama/
  ,」  L_     f ,,r' ̄ ̄ヾ. ヽ. │   こんなのあったニダ
 ヾー‐' |     ゞ‐=H:=‐fー)r、)  | 
  |   じ、     ゙iー'・・ー' i.トソ   | 
  \    \.     l ; r==i; ,; |'  .人_ 
   \   ノリ^ー->==__,..-‐ヘ___
     \  ノ ハヽ  |_/oヽ__/     /\
      \  /    /        /  |.  
        y'    /o     O  ,l    |


484 :デフォルトの名無しさん:03/04/20 22:06
IdPOP3についての質問です。
POP3サーバーやらユーザー名などをが合っていれば
無事サーバーに接続することができたのですが、
接続できなかった時にどう対処するかで変更すると
うまくいきません。
try
IdPOP31.Host := Edit1.Text;
IdPOP31.Port := 110;
IdPOP31.Username := Edit2.Text;
IdPOP31.Password := Edit3.Text;
if IdPOP31.Connected then
begin
 if IdPOP31.CheckMessages <> 0 then
begin
〜〜〜
end;
end
  else
ShowMessage('接続に失敗しました');
  end;
finally
IdPOP31.Disconnect;
end;
とすると接続してくれません。
接続を監視して調べて見ると
接続する動作もしてくれないみたいです。
〜〜〜部分はあまり関係のないイベントなので
省略しました。
どうかうまくいくようにアドバイスください。

485 :よく考えずにカキコ:03/04/20 22:13
なんかendの数多くない?

486 :484:03/04/20 22:20
>>485
あ、beginが一つ入れ忘れてますすみません。
スペースいれて書いたのにかなりズレてしまいました。
すみません。

487 :デフォルトの名無しさん:03/04/20 22:38
PopupMenuが非アクティブになったときに
PopupMenuを閉じるにはどのように書けばいいのか
簡単なようでずっと悩んでおります。
PopupMenu1.Popup(Point.x, Point.y);
とポップアップを出したはいいが
いったいどのイベントで
もし非アクティブになったら
閉じる
というように書けばいいかさえ分かりません。
詳しい方が見たら一瞬で答えれるのでしょう…
どうかお助けください。

488 :あまり考えずにカキコ:03/04/20 22:51
>>487
非アクティブになったら勝手に閉じるんじゃない?

489 :デフォルトの名無しさん:03/04/20 23:13
Personal版は無料じゃないよ。
個人情報を登録しないと落とせないし、その情報は転売されてるという話。
捨てアドレスで落としてみな。
そのアドレスに突然スパムがいっぱい来るから。
それはすべてBorlandのせい。  

490 :デフォルトの名無しさん:03/04/20 23:21
>>489
名誉毀損で訴えられる準備はあるんだな?

491 :487:03/04/20 23:22
>>488
それが閉じないんです…
システムトレイのアイコンを右クリックした時の
イベントで
case Msg.wParam of
  WM_RBUTTONDOWN:
begin
PopupMenu1.Popup(Point.x, Point.y);
end;
とすると右クリックでポップアップしたはいいが
非アクティブになっても閉じてくれないです。

492 :デフォルトの名無しさん:03/04/20 23:26
>>489
( ゚д゚)ポカーン

493 :デフォルトの名無しさん:03/04/20 23:26
コピペ嵐に反応するなよ

494 :デフォルトの名無しさん:03/04/20 23:35
>>491
定石だが、
SetForegroundWindow(Handle);

PopupMenu1.Popup(Point.x, Point.y);

PostMessage(Handle, WM_NULL, 0, 0);
としてみろ。
理由は、↓の番号のMSDN Articleを読め。
http://www.alpha-net.ne.jp/users2/junchoon/tips017.html


495 :487:03/04/21 00:40
>>494
ありがとうございます。
できました。
Articleを読みましたが難しいですね。
ほんとうにありがとうございました。

496 :デフォルトの名無しさん:03/04/21 01:33
だから、、、、Visual Pascal だろ?

497 :デフォルトの名無しさん:03/04/21 01:39
だからVPでいいつうーの

498 :デフォルトの名無しさん:03/04/21 09:44
みなさんにお聞きしたいのですが、TDateTime値が無効なことを示すときに
どんな値を入れてます?漏れは適当に0とか-1を入れてるんですが。

499 :デフォルトの名無しさん:03/04/21 10:26
>>496
 マイクロソフトが出した失敗作は クイックパスカルだよ。

500 :デフォルトの名無しさん:03/04/21 10:27
TDateTime が無効かどうかの設定が必要なら、Variantを使う方がいいんじゃないの?

501 :デフォルトの名無しさん:03/04/21 11:52
とあるバイナリの並びが文字列であるかただのバイナリであるかを判定する方法ってありますか?

502 :何も考えないでカキコ:03/04/21 11:54
>>501
バイナリ自体が文字列だった場合はどうするの?

503 :デフォルトの名無しさん:03/04/21 12:15
生成する時点で判定できるようなフラグ立てとけ 

504 :デフォルトの名無しさん:03/04/21 13:25
#0が入ってるかどうかとか・・・・(不確実だけど)

505 :デフォルトの名無しさん:03/04/21 19:33
DBGridのRowSelectをtrueにして、選択行すべてをハイライトさせてる場合
選択行の一つ一つのフィールドの項目を取得するにはどのようにすれば
よいのでしょうか?

506 :デフォルトの名無しさん:03/04/21 19:45
小数点以下切り上げの場合どうすればよいのでしょうか?
http://homepage1.nifty.com/MADIA/delphi/DelphiTips/Syouuu.htm
これだと整数の場合でも+1されるので困っています。

507 :デフォルトの名無しさん:03/04/21 19:49
>>506
TruncとFloorとCeilのヘルプを見てみませう

508 :デフォルトの名無しさん:03/04/21 19:57
>>250
レス遅れましたが丁寧親切にありがとうございます。
がんがります。

509 :デフォルトの名無しさん:03/04/21 20:17
>>507
FloorとCeilはProfessional Edition以上ですよね?
環境が6のPersonalなので。

510 :デフォルトの名無しさん:03/04/21 20:33
>>509
PersonalにはMathがないのか〜
じゃTruncしといて
整数じゃない場合だけ+1するのがいいでしょう
(整数かどうかの判定は分かるでしょ?)

511 :デフォルトの名無しさん:03/04/21 20:34
Mathをusesしてないだけだろ >>509
Personalでも使えるぞ。

512 :デフォルトの名無しさん:03/04/21 20:52
>>511
すみません、使えました。
ありがとうございました。

513 : :03/04/21 22:08
Q0.1,E0.8,E0.4
正しい括弧付けかどうかをテストするプログラムを教えてください

514 :デフォルトの名無しさん:03/04/21 22:18
>>505
ヘルプでTDBGrid#Columnsを参照
(手元にDelphiないので間違ってたらそれっぽいのを探してくれ)

直接DataSource.DataSetを参照するのも可
ちなみにRowSelectは関係ない

515 :デフォルトの名無しさん:03/04/21 23:26
>>513
意味が分かりません。もっと具体的に言ってくださいな

516 :デフォルトの名無しさん:03/04/22 00:31
>>509
ワラタ

517 :509:03/04/22 00:44
>>516
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね

518 :デフォルトの名無しさん:03/04/22 06:56
>>509
ハゲシクワラタ

519 :本7:03/04/22 11:18
ブラウザ情報を編集するにはどうすればよいですか?

520 :デフォルトの名無しさん:03/04/22 13:08
>>484

これって接続してないじゃん。
そりゃ接続されんよ。


521 :509:03/04/22 16:25
http://www2.big.or.jp/~osamu/Delphi/Tips/key.cgi?key=41#0073.txt
ここ見てProfessional Edition 以上かと・・・。

522 :デフォルトの名無しさん:03/04/22 17:32
>>521
warotayo〜^^

523 :デフォルトの名無しさん:03/04/22 18:45
ぬるぽについて簡単にでいいので教えてください

524 :デフォルトの名無しさん:03/04/22 18:49
スレ違いでしたごめんなさい

525 :デフォルトの名無しさん:03/04/22 18:50
>>524
お前誰? 氏ねよ。

526 :デフォルトの名無しさん:03/04/22 18:56
コンソールアプリケーションに
画像(ベタでもBmpでも)を表示する方法というのは、
標準では存在しないのでしょうか。

527 :デフォルトの名無しさん:03/04/22 18:57
>>526
お前も氏ね

528 :デフォルトの名無しさん:03/04/22 19:48
>>526
難しいです。力技しかないと思われます。w95系ならDOSプログラムとして
レガシーにIOを叩くのが近道かと思うのですが。。

529 :デフォルトの名無しさん:03/04/22 20:10
>>527
お前が氏ね!なんだよそのダサいIDw

530 :デフォルトの名無しさん:03/04/22 20:13
>>529
IDは勝手につくからしょうがないでしょう(w

531 :デフォルトの名無しさん:03/04/22 20:15
>>530
普段からの行いが悪いからそんなださいIDになるんだよ(w

532 :526:03/04/22 20:44
>>528
やはりそうですか。ご助言ありがとうございました。

533 :デフォルトの名無しさん:03/04/22 20:47
見えない…何も見えないぞ!!仕事のしすぎかな

534 :デフォルトの名無しさん:03/04/22 21:39
v:=TCanvas.Create;
try
v.Handle:=GetDC(0);
・・・・

 というようにして Windows全体に描く事はコンソールアプリでも可能なので、

後はコンソールのサイズにあわせてクリッピングする方法を探す方法を考えることだね。


535 :ななしへたぐらま ◆XcB18Bks.Y :03/04/22 21:48
>>391
Sがカラの時,S[1]を参照するとエラーになるので要注意.
>>404
書き込むときに使ってもよいと思います.
>>407
フォーム,コントロール(コンポーネント),プロパティ,イベント,統合開発環境….
これらはまさにVisual Pascalなのですが
それは表面だけの話でつ.
>>521
これは情報が古いです.
Delphi 5(4かも)から一番安い版にもMathユニットが付属するようになっています.


536 :デフォルトの名無しさん:03/04/22 23:10
ListViewの各アイテムの文字、またはバックに色をつけることは可能でしょうか?

537 : :03/04/22 23:54
(´-`)。o ○ (「オナニードロドロ」は禁止ね)

538 :デフォルトの名無しさん:03/04/23 00:12
オナニードロドロをトゥルッてする。

539 :528:03/04/23 02:43
>>534
何と、そんな手もあるですか。。失礼しました。

540 :526:03/04/23 11:37
>>534
ありがとうございます。
希望通りの動作を、安全に実現できそうです。
API の奥の深さと、TCanvas の懐の広さに感激いたしました。

541 :デフォルトの名無しさん:03/04/23 13:08
Windowsに付いているcalc.exe
が起動していたら、それを前面に出して、
起動していなかったら起動するような場合はどんなコードになりますか?

あと、このcalc.exeを自アプリの計算機能として使用しちゃっても問題ないですか?
後でMicroSoftに訴えたれたりしないですよね?(^^;

542 :デフォルトの名無しさん:03/04/23 13:17
>>541

HWND hWnd;
hWnd = FindWindow(NULL, "電卓");
if (hWnd)
{
  //電卓起動
}
else
{
  //ウィンドウ最前面処理
}

適当にPascalに翻訳しる

543 :デフォルトの名無しさん:03/04/23 13:23
>>536
カスタムドロー


544 :デフォルトの名無しさん:03/04/23 13:36
>>541
 そのcalcを使って、どんなことをやりたいの?
 簡単な電卓計算なら自分で作った方が速いんじゃないの?

 括弧付の足算掛算をさせたいなら、
http://www.geocities.co.jp/SiliconValley-Oakland/8522/data/uSpliter.txt

関数が欲しいなら GikoBasicを使えば簡単



545 :541:03/04/23 14:11
>>542
ありがとうございます。
自分なりに翻訳してみました。

h : HWND;

h := FindWindow(nil,'.\calc.exe');
if h = 0 then begin
//電卓起動
ShellExecute(Handle,'open',PChar('.\calc.exe'),'',
PChar(ExtractFilePath(Application.Exename)),SW_SHOWDEFAULT);

end else begin
  //電卓前面

end;

うーむ、これだと、電卓が既に立ち上がってても、そうでなくても常に
hの値が0になる・・・。

>>544
そうですね。
簡単な電卓で良いので自分で作った方が速いかも。


546 :デフォルトの名無しさん:03/04/23 14:15
>>545
( д ) ゚   ゚

>h := FindWindow(nil,'.\calc.exe');
なんでこうなるのか説明plz

547 :541:03/04/23 14:26
>>546
>hWnd = FindWindow(NULL, "電卓");
より。

根本的に何か勘違いしているかも(^^;

548 :デフォルトの名無しさん:03/04/23 15:09
('A`)ノ http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/windows/windowreference/windowfunctions/findwindow.asp

549 :デフォルトの名無しさん:03/04/23 20:13
パスワードを入力してもらったEdit1.Textを
iniファイルに書き出したいのですが、
何か変換を入れたいです。
色々調べたのですが
Unicodeに変換するのがいいみたいなのですが
どう書いていいのか分かりませんでした。
WriteString('Section', 'Value' , Edit1.Text);
を変えて書いて頂けませんか?
下手な日本語ですみません。
どうぞよろしくおねがいします<(__)>

550 :デフォルトの名無しさん:03/04/23 21:19
var
S: TMemoryStream;
Unko: WideString;
begin
S:=TMemoryStream.Create;
Unko:='パスワード';
S.Seek(0, soFromBeginning);
S.Write(Unko[1], Length(Unko));
with TMemIniFile.Create(Application.ExeName+'.ini') do
begin
WriteBinaryStream('a', 'b', S);
UpdateFile;
Free;
end;
with TMemIniFile.Create(Application.ExeName+'.ini') do
begin
ReadBinaryStream('a', 'b', S);
Unko:='';
SetLength(Unko, S.Size);
S.Read(Unko[1], S.Size);
ShowMessage(Unko);
Free;
end;
S.Free;
end;


551 :550:03/04/23 21:35
今のは間違ってるから無視してね。

552 :549:03/04/23 23:41
>>550
すみませんよく理解できませんでした…。
XORという関数を使えば比較的簡単に
書けるそうです。
WORの例を書いて頂けませんか?

553 :552:03/04/23 23:42
あ、WOR→XORでしたすみません。

209 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)