[表示 : 全て 最新50 1-99 101- 201- 301- 401- 2chのread.cgiへ]
Update time : 12/23 22:07 / Filesize : 101 KB / Number-of Response : 406
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

くだすれDelphi(超初心者用)その49



1 名前:デフォルトの名無しさん [2009/02/22(日) 22:10:29 ]
Delphi(デルファイ)について、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を
勇気を持って書き込むスレッドです。
Delphi使いが優しくコメントを返しますが
お礼はDelphiの布教と初心者の救済をお願いします。

<前スレ>
くだすれDelphi(超初心者用)その48
pc11.2ch.net/test/read.cgi/tech/1225641040/

<過去スレ>
DelWiki避難所(Delphi 関連の過去スレッド)
delwiki.info/?%E3%83%AA%E3%83%B3%E3%82%AF%2F%E3%82%B3%E3%83%9F%E3%83%A5%E3%83%8B%E3%83%86%E3%82%A3%2FDelphi%20%E9%96%A2%E9%80%A3%E3%81%AE%E9%81%8E%E5%8E%BB%E3%82%B9%E3%83%AC%E3%83%83%E3%83%89


2 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 22:11:16 ]
<関連スレ>
【Delphi】 Indyコンポーネント 【C++Builder】
pc11.2ch.net/test/read.cgi/tech/1093654251/
Delphi初心者のための寺子屋
pc11.2ch.net/test/read.cgi/tech/1132756268/
delphiで作った有名ソフトって何があるの?
pc11.2ch.net/test/read.cgi/tech/1135654787/
Delphi持ってるならGLSceneを使え
pc11.2ch.net/test/read.cgi/tech/1163269079/
【Delphi互換!?】FreePascal【GPL】
pc11.2ch.net/test/read.cgi/tech/1137051510/

【Delphi】 ゲームつくるぞ(゚Д゚)ゴルァ 2【Delphi】
pc11.2ch.net/test/read.cgi/gamedev/1097836469/
Delphiでアクションゲームが作りたい!! Part2
pc11.2ch.net/test/read.cgi/gamedev/1027482533/
ネットワークゲーム作成のお勉強(Delphi専用スレ)
pc11.2ch.net/test/read.cgi/gamedev/1028278884/
delphiでMMO
pc11.2ch.net/test/read.cgi/gamedev/1072515100/

3 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 22:38:28 ]
>>1

4 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 23:55:30 ]
>1乙です

5 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 02:16:18 ]
>>1乙でありまする

6 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 02:36:12 ]
>>1乙;


7 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 05:46:47 ]
            /.:.:.:.:.:.:.:.:.:.:.:.:.:.:.ミY:.:.:.:.:.:.:.:.:ヽ
         //::/:/.:.:.:.:.:.:.:.:.';:.:.:.}:.:.:.:.:.:.:.:.:.:.:'.
       //:〃::/:/::/:::/::/ |:::j::ト、\::::::::::::::.
       イ/|/j:::/l/ヽ{::/::/ j::/::j ヾ::ヽ::::::::::i
        -=7{:小{イf心/l:/  ノ⌒メ  {ヽ:ハ:::::::::|
          /:/V} Vリ     アi心  ミ:::}::j/:::::j
.        /イ:::/:⊂⊃ ,    V_ソノ ノ`Y:::::::::リ
.         |/l ::八      ⊂⊃ .)^ノ :::::;':|
            |:∧::\ `     ィー::1::::::/:::{   >>1
            |::ハ::}::::>‐r   爪::{:::::::∧::::N八 
           '´ j∧/   }__,/{:从::::::|
             /\/|       ヘヽ{
           乙イ 、\  /⌒ヽ
            | L{.∨ / : : ⌒∧
             |   ̄/: : : :/: : : : :}
              |    |: : :j/ : : : : : |

8 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 07:27:43 ]
ある条件によってフォーム上のコントロールを切り替えたいのですが何か楽な
方法はないでしょうか?
1.ページコントロールを使い条件によって表示するタブを切り替える。
2.フレームを使って条件によってフレームを動的生成して切り替える。
の2通り考えましたが、他にないでしょうか?
1の場合、タブとページコントロールの枠線が消せないので気になります。



9 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 13:18:46 ]
パネルに乗せる

10 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 19:17:31 ]
>>8
PageControlの何かのプロパティの設定で完全に消せた記憶もあるが…
かなり以前のことなので覚えてないし、ソースも何もないんでゴメンね



11 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 20:50:28 ]
>>88
フラットにしてtab非表示にしたら消えなかったっけ?

SpTBXLibっての使ってる方います?


12 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 21:15:36 ]
>>88に期待

13 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 21:30:35 ]
>>8です。
>>10,11
色々プロパティいじってみましたが消せないですね。
>>9
のパネルで切り替える方法でやってみたいと思います。
ありがとうございました。


14 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 23:16:21 ]
タブの部分がフォームからはみ出るように配置という姑息なことをしたことがあるw

15 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 23:25:23 ]
StyleをtsFlatButtonsにして各ページのTabVisibleをFalseにすれば完全に消える
デザイン時はPageControlのActivePageを切り替えて編集すればおk
まあ、パネルに決めたんなら止めはしないけど

16 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 23:48:04 ]
最新版にあるか分からないけどTNotebookは?

17 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 13:08:28 ]
教えてください。
フォームをリポジトリに登録する方法で
RegisterComponentsみたいなやり方って無いですか?

18 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 01:34:07 ]
BlockList: TImageList;
omoteGa: TImage;
FBord: array[0..9, 0..12] of Integer;
//(1)背景を敷き詰める
procedure TForm1.BackPaint;
var
 i,j : Integer;
begin
 for j := 0 to 14 do
  for i := 0 to 20 do
   BlockList.draw(omoteGa.Canvas,i*XYDOT,j*XYDOT,BCK);
end;
//(2)ワクを描く 
procedure TForm1.BordPaint;
var
 i,j :Integer;
begin
 for j := 0 to 12 do
  for i := 0 to 9 do
  begin
   FBord[i,j] := 0;
   if (i = 0) or (i = 9) then FBord[i,j] := WAK;
   if j = 12 then FBord[i,j] := WAK;
   BlockList.draw(omoteGa.Canvas,(i+5)*XYDOT,(j+1)*XYDOT, FBord[i,j]);
  end;
end;


19 名前:続き mailto:sage [2009/02/25(水) 01:34:31 ]
//(3)テキスト表示
procedure TForm1.TextShow;
var
 j,i: Integer;
begin
 for j := 0 to 12 do
  for i := 0 to 9 do
    omoteGa.Canvas.TextOut(i*10,j*10, inttostr(FBord[i,j]));
end;
 (1)、(2)を単独で最初に実行すれば意図されたとおり描かれるのですが、(1)で背景を描き
その上に枠を囲うとして(1)→(2)の順で実行してもうまくいきません。ところが
(1)→(2)→(3)の順に実行するとうまくいきます。(2)→(1)としたい場合もいっしょです。
 なぜ(1)→(2)だけではだめなのでしょう?


20 名前:訂正 mailto:sage [2009/02/25(水) 01:35:20 ]
> 囲うとして
描こうとして



21 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 03:39:21 ]
どううまくいかないの?

22 名前:18 mailto:sage [2009/02/25(水) 09:41:38 ]
 たとえば
 BackPaint;//背景
 BordPaint;//枠
としても、背景が描かれたままで枠が描写されません。ところがこの後
 TextShow;
を実行すれば「枠」が描かれるのです。当然この後テキストを消そうとして
 BackPaint;//背景
を実行してもそのままです。ソースを以下の通り。
toku.xdisc.net/cgi/up/ttt/nm10417.lzh.html


23 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 10:50:18 ]
>>22
(1)ではBitmapが生成されていないので、描画されたときにPictureプロパティが変更されて表示される。
(2)ではRefreshメソッドが呼ばれてないので、再描画されない。
(3)ではTCanvasの描画メソッドを呼んでいるので再描画される。

(1)を実行前にTImageのPicture.BitmapオブジェクトのWidth,Heightを指定して
事前にTBitmapを生成しておけば(2)と同様に描画されない。
要は内部ビットマップへは描画されているが、TImageがまだ表示していないってことです。

24 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 11:29:06 ]
最前面表示について色々調べたら以下のAPIでできることが分かりました。
SetWindowPos(Handle,HWND_TOPMOST,0,0,0,0,SWP_NOSIZE or SWP_NOMOVE);
ですが、メインフォームは問題なく最前面表示されますが、別のフォーム(Form2)を
表示させた場合、以下の動作になります。

MainFormをクリックして別アプリをクリックするとMainForm、Form2両方最前面
Form2をクリックして別アプリをクリックするとMainFormだけ最前面
※Form2のCreateイベントにもSetWindowPosを書いています。

実際にはメインフォームは表示させずに複数のフォームを表示させて、それを
全て最前面にしようと思っています。
このようなことをやる場合は別の方法でやるのでしょうか。

25 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 12:14:41 ]
最前面表示は止めた方がいいよ。べつのアプリも最前面表示をしようとすると
ハチャメチャ。マルチタスク環境での反則技と心得るべし。

複数の最前面表示は意味が矛盾してる・

26 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 12:50:28 ]
>>24
homepage1.nifty.com/MADIA/delphi/delphi_bbs/200309/200309_03090055.html

27 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 13:14:36 ]
>>26
ありがとうございます。望んでいた動作をさせることができました!

28 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 16:03:19 ]
>>23
> 要は内部ビットマップへは描画されているが、TImageがまだ表示していないってことです。
 なるほどそういうものですか。
(1)(2)に omoteGa.Refresh; を追加しただけでOKでした。
 TPaintBoxと異なり TImage は OnPaint で再描画しなくていいというのが頭に
あったものですからRefreshは不要だと思っていました。
 TImage、TBitmap、TCanvas などをもう少し勉強してみます。


29 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 06:47:38 ]
昔Canvas直描きでゲーム作ってたらチラつきにはまったの思い出した
自前でダブルバッファしてあげて解決したけど

チラ裏おしまい

30 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 10:27:54 ]
Delphi2009の新規プロジェクトにTButtonを貼るとXPスタイルで表示されますが
Delphi7で作ったプロジェクトを開くとIDE上ではクラシックスタイルで表示されます。
実行すればXPスタイルで表示されますが、IDE上でも新規プロジェクトと同じように
表示するにはどうすればいいんでしょうか?




31 名前:30 mailto:sage [2009/02/27(金) 10:52:33 ]
自己解決。
ランタイムテーマを有効にして保存後、開き直したらできました。
失礼しました。

32 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 18:49:28 ]
Delphi2009? 今年じゃん! いつの間にかそんなに進んでたのか…

Delphi6や7と比べて良くなったのかな
簡単なツールしか作ってないけど、久しぶりにバージョンアップしようかな

33 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 20:48:23 ]
Delphi2009はUnicode対応(専用)版だよ

34 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 23:19:41 ]
現在、QuadrupleDを使って2Dゲームを作っています。
Zバッファを使用するにはどのようにすればいいでしょうか?
具体的にいうと、後から描画したテクスチャを
後ろに回りこませたりといったことがしたいのです。
チュートリアルのプロジェクトを改造して作ってみましたが、
デプスバッファに書き込む値を0以外にすると
テクスチャそのものが表示されなくなってしまいます。

procedure TForm1.FormCreate(Sender: TObject);
begin
//とりあえずクライアント領域のサイズに合わせて画面を初期化
DG.WindowMode(ClientWidth, ClientHeight, DGFMT_ZDetail);


procedure TForm1.ApplicationEvents1Idle(Sender: TObject;
var Done: Boolean);
begin


//スプライトを一個置け
Scene.PushSprite(Vector2D(Tick,50),
[SXVertexSP(0,0, $FFFFFFFF, 0.0,0.0),
SXVertexSP(Texture.Width, 0, $FFFFFFFF, Texture.U, 0.0),
SXVertexSP(0,Texture.Height, $FFFFFFFF, 0.0,Texture.V),
SXVertexSP(Texture.Width,Texture.Height, $FFFFFFFF, Texture.U,Texture.V)],
Texture,sxbAlpha,False,false,0.0);
Scene.PushSprite(Vector2D(Tick,100),
[SXVertexSP(0,0, $FFFFFF00, 0.0,0.0),
SXVertexSP(Texture.Width, 0, $FFFF00FF, Texture.U, 0.0),
SXVertexSP(0,Texture.Height, $FF00FFFF, 0.0,Texture.V),
SXVertexSP(Texture.Width,Texture.Height, $FFFFFFFF, Texture.U,Texture.V)],
Texture,sxbAlpha,False,false,0.0);

35 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 23:25:13 ]
上の通りにコンパイルすると
imepita.jp/20090227/842150
こうなります
Zバッファの値は同じ0のはずなのに
なぜか先に書いた普通の色のDG子が前に・・・

36 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 14:31:10 ]
function TForm1.BlockSet(ix,jy:Integer):Integer;
begin // FBord[ix,jy1] 0 --> 背景、1 --> 壁、2 --> ブロック
 Result := 1;
 if jy+1 <= YMAX then //下へ(1)
  if FBord[ix,jy+1] =0 then
  begin
   FBord[ix,jy+1] := 2;  Result := Result + SubPaint(ix,jy+1);
  end;
 if jy-1 >= 0 then   //上へ(2)
  if FBord[ix,jy-1] =0 then
  begin
   FBord[ix,jy-1] := 2;  Result := Result + SubPaint(ix,jy-1);
  end;
 if ix+1 <= XMAX then //右へ(3)
  if FBord[ix+1,jy] =0 then
  begin
   FBord[ix+1,jy] := 2;  Result := Result + SubPaint(ix+1,jy);
  end;
 if ix-1 >= 0 then   //左へ(4)
  if FBord[ix-1,jy] =0 then
  begin
   FBord[ix-1,jy] := 2;  Result := Result + SubPaint(ix-1,jy);
  end;
end;
//使い方
 for j := 0 to YMAX do
  for i := 0 to XMAX do
   ImageList1.Draw(offBmp.Canvas, i*DOT, j*DOT, FBord[i,j]);


37 名前:続き mailto:sage [2009/02/28(土) 14:37:00 ]
 マウスをクリックしたところから壁に囲まれた範囲を塗りつぶす処理をネット上で
見つけたのですが、なぜこれでいいのでしょう(笑)。人力トレースでは以下のよ
うになると思うのですが。ix,jy をチェックしたら(1)の再帰が終わって(2)を実行す
るとき ix が 1 増えています。これがわかりません。
■■■■■■ ■■■■■■ ■■■■■■ ■■■■■■  ■■■■■■
■      ■ ■      ■ ■  ●   ■ ■  ●   ■ ■  ●  ■
■  ●   ■ ■  ●   ■ ■  ●   ■ ■  ●●●■ ■●●●●■
■      ■ ■  ●   ■ ■  ●   ■ ■  ●   ■ ■  ●  ■
■      ■ ■  ●   ■ ■  ●   ■ ■  ●   ■ ■  ●  ■
■■■■■■ ■■■■■■ ■■■■■■ ■■■■■■  ■■■■■■
  最初      (1)下へ      (2)上へ      (3)右へ      (4)左へ


38 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 00:36:37 ]
>>36が端折りすぎてると思うのは俺だけか?
どこに再帰があるのかさっぱりわからん。

39 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 02:03:31 ]
SubPaintも何してるか分からないしな

40 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 09:12:37 ]
基本的な質問で失礼します。
Delphi言語でJSPのようなWeb開発って出来ますか?
開発環境としてのDelphiではなく
言語としてのDelphiです。
つまりObject Pascal。



41 名前:デフォルトの名無しさん [2009/03/01(日) 11:40:37 ]
Delphi7で下記用に記述すると
procedure TForm1.FormCreate(Sender: TObject);
var
i:integer;
begin
  i:=-2147483648;
end;

[エラー] Unit2.pas(31): 数値演算のオーバーフロー
[致命的エラー] Project2.dpr(7): 'Unit2.pas' ユニットはコンパイルできませんでした
コンパイルが通らないなぜでしょう


42 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 12:10:10 ]
>>41 釣りじゃないよな?
Integerの範囲は-2147483648〜2147483647

43 名前:デフォルトの名無しさん [2009/03/01(日) 12:14:22 ]
>>42
delphi6,d2009は通りますけどd7は通らないので困っています


44 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 12:53:56 ]
>>42
え?

45 名前:42 mailto:sage [2009/03/01(日) 13:01:03 ]
すまん、-が見えてなかったorz

確かに編だな。なぜかi:=Low(Integer)は通る。

46 名前:42 mailto:sage [2009/03/01(日) 13:02:44 ]
×編
○変
ダメすぎ…

47 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 16:26:40 ]
Delphi 2009 で ドライブ名(C: 等) から、
DeviceIoControl に渡すハンドルを得る為の
CreateFile へ渡すファイル名の取得にはどの様な手順を踏まえたらよろしいのでしょうか?

1. QueryDosDevice
2. GetDevNodeRegistryProperty

の手順でよろしいのでしょうか?
…なんか、全然Delphiっぽくない質問ですね…。
該当スレッドなどがあればそちらを照会させてくれると嬉しいです。

48 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 17:16:37 ]
ttp://www.page.sannet.ne.jp/kenjia/J_usb.html

49 名前:34 mailto:sage [2009/03/01(日) 21:20:59 ]
自己解決しました。
デプスバッファへの書き込み値を0≦rhw<1にすると
正常に描画できました。

50 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 22:55:39 ]
自前の手続きの引数にはvarを付けた方がいいの?
有りと無しの違いは?



51 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 23:00:46 ]
ヘルプの「値パラメータと変数パラメータ」嫁

52 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 12:04:37 ]
var str:string;
Copy(str,1,4)とCopy(str,0,4)の結果が同じなんですが
どっちでもいいんですかね?

53 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 17:16:41 ]
Copyの場合のインデックスは1から始まりますよ。
0にした場合エラーにならなくてもワーニングが出てませんか?

54 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 18:34:14 ]
Unicode対応のアプリで TNTのコンポーネントを使ってるんですけど、
TStringStream のUnicode版が無いんです(Delphi7)。
代替案かよさげなライブラリなどありましたら教えてください。

55 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 23:50:08 ]
作れ

56 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 10:29:25 ]
54です。TMemoryStreamのWriteとReadを使って何とかできました。

57 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 22:43:48 ]
文字コードの変換の事で教えてください。
この手のコードとかは検索して見つかったのですが、
word型というのを使うみたいですが何故word型なんでしょうか?



58 名前:デフォルトの名無しさん [2009/03/07(土) 14:18:49 ]
Delphi7ではTCoolBarやTActionToolBarは不具合のあるので
ちょうどDelphi2007も持ってるので
2007のTCoolBarやTActionToolBarをDel7にインストールして使いたいんですが
こういったことはやはり無理なんでしょうか?
もし可能ならよろしかったら方法を教えて頂けないでしょうか。
2007を使えばいいんでしょうが重くて使いづらくって…

59 名前:デフォルトの名無しさん [2009/03/07(土) 14:54:10 ]
パソコンを買い換えるのが吉

60 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 20:08:54 ]
やっぱ買うしかないか…



61 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 21:31:03 ]
Del7のに不具合とかあったっけ?
問題なく使っているかも

62 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 10:06:53 ]
XPモード表示でTCoolBarにツールバーを何個か置いて
位置を移動すると変な動作をしたり、表示・非表示したりすると位置がずれたりします。
他コンポも何個かあった。

63 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 11:04:12 ]
WndProcでWM_USER + $500を無視するといいんじゃなかったっけ?

64 名前: ◆XcB18Bks.Y mailto:sage [2009/03/08(日) 18:11:33 ]
>>57
文字コードが2バイトの符号なしなら変数も2バイトの符号なしのWord型だと扱いやすい。


65 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 09:09:03 ]
Delphi使うとある面では業効率がいいのですが、Delphiのバグと格闘するという
何のためにもならない時間が増大します。誰か助けてください。

66 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 11:25:07 ]
稚拙な質問の上に伝わらなかったらすまん。
Form上に動的に生成したパネルを4つalTopで配置。幅はform.height/4
それぞれのcaptionを1..4にしたとして、これの並び替えってどうやればいいんですか?
上から1234にしたり4321にしたり。

67 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 11:29:42 ]
>>65
上にもちょっと出てるけど、よかったらDelphiのバグ教えてくれませんか?
なるべくそのコンポ使うの避ける。

68 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 11:41:57 ]
>>66
一度全てをalNoneにして、上にしたいものからalTopではダメかな?

>幅はform.height/4
これがよくわからないけど。

69 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 14:55:20 ]
Delphi2006のプロジェクトを2007でコンパイルすると、アプリケーションがタスクバーに出なくなるのは
何か解決方法ありますか。

70 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 15:22:33 ]
>>69
Delphi2009でコンパイルする。



71 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 17:59:09 ]
>>69
なんか
Application.MainFormOnTaskbar := True;
みたいなコードが必要だった気がする

72 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 18:00:09 ]
procedure A(param:integer)みたいなのがあって、
ボタン1が押された時に実行させるのですが、
この時Aが終了する前にボタン1が押されたら、
Aを別に複数実行みたいなことをマルチタスクを使わずに
行えますか?


73 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 18:26:32 ]
>>68
失礼 高さです。フォームを4枚のパネルで埋め尽くす感じです。
教えていただいた方法では駄目でした。

74 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 19:25:42 ]
>>73 いい加減ですまん。
各PanelのAlignをalNone
各PanelのTopに(Form.Height - PanelN.Height)を代入
上に置きたいPanelからAlignにalTop

これでそれっぽい動きをしたので、試してみて。


75 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 21:46:38 ]
>72
マルチタスクが駄目ならマルチスレッドで。

76 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 22:26:06 ]
マルチタスクってなに?

77 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 22:27:56 ]
Windowsの世界ではマルチプロセスってことだと思う。

78 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 23:14:34 ]
ファイルをD&Dすればunixサーバのscriptが実行されるものを作りたいんだけど、
何を調べればいいのでしょう?
また、Cygwin、unix for windows、を使わずにできるものでしょうか?

WinXPでDelphi6 personal 使ってます。

79 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 23:28:08 ]
D&Dしたファイルがscriptにどう影響を与えるのかとか
script本体はどこにあるのかとかさっぱりわからない。
sshを使うとかそういうイメージなんだろうか…。

80 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 00:50:54 ]
>>78
あなたを使わずに別の開発者を使えば可能です



81 名前:78 mailto:sage [2009/03/10(火) 06:50:53 ]
>79
"calc"ってscriptがunixサーバ側に用意されてて、
たとえばWindows側にunix環境ができていれば、
$calc AAA.txt ってやるとAAA.txtがサーバで処理されて
AAA.resultsが返ってくる。

これを、cygwinなどのunix環境無しで、AAA.txtをD&Dしてできないかと思いまして。
"calcstat"で処理の進捗を表示させるのが最終目標です。


82 名前:72 mailto:SAGE [2009/03/10(火) 07:17:36 ]
マルチタスクじゃなくて、スレッドでした。
ヘルプを見たりしましたが、別スレッドで実行するしかない
みたいですね。
クリエートなんちゃらとかあるかと思いました。

83 名前:デフォルトの名無しさん [2009/03/10(火) 10:27:31 ]
>>78
セキュリティがザルなのでおすすめできないが
windowsプログラムからrcp,rshを起動すればいけんじゃない
rcp,rshならXPなら標準で入ってる
セキュアにしたいならssh
ただしWindowsには入ってないので自分で入手

84 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 17:19:30 ]
突然でスイマセン
誰かdelphi perssonal もってたらください。

85 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 17:27:27 ]
お断りします

86 名前:78 mailto:sage [2009/03/10(火) 18:20:23 ]
>>83
ありがとう。試してみる。


87 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 19:02:24 ]
>>74ども。確かに結果は得られました。
ありがとうございます。
しかし結局設計時に配置変えるときのような動作をさせるより他ないのかなぁ。

88 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 19:26:24 ]
希望とは違うだろうけどalNoneのままそれぞれのTopを
0
Form.ClientHeight div 4
(Form.ClientHeight div 4)*2
(Form.ClientHeight div 4)*3
でOKなような。

89 名前:alCustom mailto:sage [2009/03/10(火) 23:02:32 ]
俺の出番か

90 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 23:36:16 ]
そんなものがあったのかorz



91 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 14:28:50 ]
D6Personal
reservoir.cc.kyushu-u.ac.jp/delphi/BorlandDelphiPersonalEditionJP.exe
reservoir.cc.kyushu-u.ac.jp/delphi/d6perdoc.zip
reservoir.cc.kyushu-u.ac.jp/delphi/delphi6update1.exe
でもアクティベーションが出来るかはわからない

92 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 17:31:25 ]
>>88ですな。
結局top,left,width,heightを希望するよう逐次設定してやれば希望の動作はします。
アンカーやタグの存在に気付いたときのように、もっとスマートな方法があるのでは
ないかと思い、質問してみた次第です。お騒がせしました。

93 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 22:22:52 ]
それぞれのalTopのパネルの上にalClientなパネルを置いて
配置換えするときはalClientなパネルのParentを変える
ってのはどうかな?

94 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 13:24:52 ]
forの中にforを作ったとして、すべてのループをBreakさせる手続きってありますか?
BreakAllみたいな。

95 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 13:57:44 ]
goto

96 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 14:18:14 ]
exit

97 名前:デフォルトの名無しさん [2009/03/12(木) 15:30:40 ]
ECUで書かれたページを直接読み込んで、その中からキーワードを拾うときに
ソースの1行がTStringList1行に入るようにはできませんか?
ダウンロードするプログラムは初心者本のコピーなんですが、
どうも1単語になっているものが途中で切られて次行に行ったりするみたいで
うまくキーワードを拾えないときがあるんです。
どなたか教えてください。

98 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 15:36:07 ]
LoadFromFileをやめてReadlnで読む

99 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 18:58:04 ]
ECUとか何だか内容が良く分からないけど全部1行というか改行を削除して
検索すれば良い気がするが、外してる感じも大。

100 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 21:33:16 ]
>>94
if BreakAll then Break;



101 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 22:21:12 ]
try
for ...
for ...
if ... then raise Exception.Create('BreakAll');
...
except
end;

102 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 22:38:36 ]
多重ループは例外で抜けるのがよさげ

103 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 17:46:24 ]
APIに関係しているかもしれないのですが、winsightで見ても表示されていないボタンに
メッセージを送りたい時の調べ方について教えてください。
一応、optionでトレースするメッセージをマウスのクリックに絞って、メッセージを
見てるのですがイマイチ分かりません。
どう調べればいいんでしょうか?
よろしくお願いします。


104 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 18:07:44 ]
それは、絵に描いた牡丹だからメッセージは送れないよ。

105 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 20:05:11 ]
そう思うんですけど、そのソフトの画面を切り替える外部ソフトがあるので
何とかならんかなと思って。

106 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 21:39:24 ]
Spyでしらべてみれば。


107 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 21:58:55 ]
つWindowTree.exe

108 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 03:35:58 ]
del7pro
actionmainmenuと同等のプロパティが付いてるpopupmenuがあったと思ったんだがない。
このバージョンには付いてないんだっけか?

109 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 08:49:54 ]
ちょっと質問があります。

IDEのエディタが改行しなくなりました。ENTERを押しても次の行にカーソルが進むだけで、
実際の改行がされないのです。

・既存のプロジェクトでも駄目
・新規作成でも駄目
・IDEの再起動でも駄目
・OSの再起動でも駄目

開発がまったくできず困っております。
10年来Delphiを使ってきて始めて遭遇しました。
解決方法はないものでしょうか?

環境:BDS2006 Vista SP1

110 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 08:52:20 ]
>>109
自己解決しました。
エディタが上書きモードになっていましたwwww

今まで上書きモード使ったことなかったぜ
ホフォすぎる俺・・・



111 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 08:55:12 ]
>>34-35
QuadrupleDしらんけど、ZバッファONなら、
後から書いてZバッファが同じなら、先に書いたものの上に上書きはされないよ。

112 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 01:01:16 ]
いいなぁ、RSSつながって。

113 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 14:44:41 ]
TForm上でDirectXを表示させる事は可能でしょうか?
可能ならばどのようにすればいいのでしょうか?

114 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 16:33:15 ]
Clootie

115 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 16:33:21 ]
そのフォームのキャンバスのハンドルを表示先に指定する

116 名前:113 mailto:sage [2009/03/15(日) 18:57:52 ]
>>114-115
返信ありがとうございます。
ハンドルを指定すればいいのですね。
検索したらやり方がいろいろ出てきました。
アドバイスありがとうございました。

117 名前:デフォルトの名無しさん mailto:SAGE [2009/03/16(月) 21:36:18 ]
外部プログラムのボタンの位置をスクリーン座標で取得するにはどうすればいいですか?
ClientToScreenにハンドルを指定する引数がないので、あれ?って感じです。

118 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 22:02:29 ]
そのClientToScreen関数はTControlのもの
Win32APIを使う場合はWindows.ClientToScreenとして、Windows.pasのものを使うと明示すするべし

119 名前:117 mailto:SAGE [2009/03/16(月) 23:31:49 ]
ありがとうございました。
外部アプリのボタンをハンドルではなく座標を指定して押すプログラムを
書いていて、Mouse_Eventで押すことは出来たんですがマウスカーソルが
動くのが嫌で調べていたら、SendInputというのがありました。
今回は別に使う必要はないのですが、これも座標を指定してクリックのメッセージ
を送ることは出来るのでしょうか?

120 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 14:21:35 ]
delphi2009で、それ以前のString[n]と同じような宣言をしたいときは
どうしたらいいですか?AnsiString[n]というのは無いらしいし、
そのままString[n]では、全角を1文字としてしまうので使えないし。



121 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 14:40:44 ]
>>120
ちゃんと試してからお聞きください。

122 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 14:49:16 ]
>120
ウンコードの弊害です。あきらめてください。

123 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 14:49:46 ]
>>119
WindowFromPointでその点にあるコントロールが分かるので、
そのハンドルを使ってWM_LBUTTONDOWNとWM_LBUTTONUPを送るとか
Win32でGroupBoxの上にコントロールを置いてると、
Zオーダーの関係でGroupBoxのハンドルが返ることがあるので注意

124 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 15:20:03 ]
>>121
すまん、俺が勘違いしていたらしい。
そのままでいいみたいだった。ありがとう。

125 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 17:09:02 ]
https://lazarus-ccr.svn.sourceforge.net/svnroot/lazarus-ccr/components/virtualtreeview-new/
にある VirtualTreeview のインストール方法を誰か知りませんか?

126 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 17:20:26 ]
>>125
www.delphi-gems.com/
本家本元のをインストールしたら?
というか今見たら3月16日付で4.8.5にアップデートされてるね。

127 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 18:16:32 ]
複数のレコードを1つのレコードとしてアクセスする方法って無い?
type rec1 = rec2 + rec3;とか
type rec1 = record(rec2, rec3);とか

128 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 19:23:19 ]
r2、r3の記述は必須なので、望み通りではないかな?

rec1 = record
r2: rec2;
r3: rec3;
end;

129 名前:117 mailto:SAGE [2009/03/17(火) 20:43:18 ]
HD入れ替えてXPを入れ直したいんだけど、
Del7って認証受けなきゃダメだよね?
今でもページあるのかな?
アップデートあるのかな?

130 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 20:55:36 ]
D7なら認証を受けなくても使えないことはないわけだが。
認証しろとは言われるけど。



131 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 06:21:13 ]
うちのPCには昨年末にDelphi7を入れたぞ。
確かやり方がややこしかったけど、それはVistaだったからのような気がする。

132 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 07:10:17 ]
Delphi 6 updates and downloads for registered users
edn.embarcadero.com/article/38607
これがあるんだから7もありそうだけど、
さがしたけどよくわからんかった。


133 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 17:30:32 ]
デバイコンテキストを使って文字列を書く時はTexteOutですけど、
その反対の書かれたテキストを取り出すのってないですか?

134 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 17:35:09 ]
>>132
ttp://cc.embarcadero.com/reg/delphi7

135 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 17:38:45 ]
>>133
それが出来たらCAPTCHAで苦労しねーよ

136 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 18:00:01 ]
>>133
これが超初心者の成せる技か…

137 名前:デフォルトの名無しさん [2009/03/18(水) 18:25:13 ]
アイコン選択ダイアログのアイコンリストのような32×32の
アイコンをリストアップできるコンポーネントを
どなたかご存知ないでしょうか?
リストビューで代用しようと思ったんですが
アイコン同士の間隔が広すぎて思ったようには出来ませんでした。

138 名前:132 mailto:sage [2009/03/18(水) 18:47:06 ]
>>135,136
ハイハイ、プロプロ


139 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 18:49:09 ]
>>137
TListBoxでもTDrawGridでも好きなの使えばいい。

140 名前:137 mailto:sage [2009/03/18(水) 23:27:16 ]
>>139
ありがとうございます。
おかげでTDrawGridを継承してアイコン表示コンポを作ることが出来ました。



141 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 13:34:00 ]
スルー推奨

142 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 08:27:54 ]
Excelのセル範囲指定の時って
Range['B6:N14']
の書き方しか駄目ですか?
VBAで書くみたいに
Range[Cells[1,1]:Cells[10,10]]
って書いてもエラーになってしまいます。

143 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 09:31:19 ]
うろ覚えですが。
[]を()にしてみたりするとどうですかね?



144 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 21:53:31 ]
>>143
レスありがとうございます。
()にしてもだめで、Range['Cells(1,1):Cells(10,10)']見たいに
文字列にしてみても駄目でした。

145 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 01:11:35 ]
Delphi7のエディタってVSのエディタみたいに
2行目の行頭で←キーで1行目の行末へカーソル移動
って出来ないのでしょうか?
何か設定とかあればお教え願えませんか?

146 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 01:13:53 ]
FAQだな
www.google.co.jp/search?num=30&hl=ja&q=Delphi7+%E3%83%95%E3%83%AA%E3%83%BC%E3%82%AB%E3%83%BC%E3%82%BD%E3%83%AB&btnG=%E6%A4%9C%E7%B4%A2&lr=

147 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 01:19:08 ]
ありがとうございます
フリーカーソルっていうのか…用語が分からんとかこの時点で失格な気がしてきたorz

148 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 11:21:04 ]
winsightのことで教えてください。
Aというソフトのキーボードクリックをフックして、
押されたキーによってAを操作するBというソフトがあります。
(Aにはショートカットの設定が全くないので無理やりショートカット操作する
ソフトです)
Bからどういうメッセージが出てるのか調べたいのですが、Aにフォーカスが
移るとAのメッセージを拾うようになるみたいです。
Bのメッセージをいつも監視する設定って出来ますか?

149 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 11:24:07 ]
Winspectorとか使えば?
WinSightは正直使えない。

150 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 11:28:20 ]
>>142
:演算子、Delphiで使えないだろ。
Range[Cells[1,1],Cells[10,10]] でどう?




151 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 12:06:41 ]
148
Spy | Follow Focus にチェックがついてない?

152 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 13:09:59 ]
>>145
Ctrl + ←

153 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 13:16:12 ]
VisualStudio エミュレーション時のフリーカーソル抑制って、QC に入っていたっけ?
Weaver でどうにかしたいね。

154 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 19:32:41 ]
Delphi7でずっとやってきたんすけど、Delphi2009 他の案内封筒きた。
アップすべきか、ちと迷ってます。ご意見とかこれはとか、あったら
お願いします。

155 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 19:40:42 ]
制約事項のあまりないアマグラマだと仮定して、Unicode対応をいまやっておきたいですか?ならD2009で。
いや、まだもう少し様子見、ならD2007で。

2007は最後のANSI系開発環境なので、Unicodeへの移行を急がないのであれば押さえておくのをお勧めする。
逆にいやもうUnicodeの時代でしょというなら2009なわけだが、これは人と事情によりお勧め度が異なる。

156 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 22:12:56 ]
プリンタダイアログで「部単位での印刷」チェック時の処理を制御仕様としたときに
if (PrintDialog1.Execute) then begin
a := PrintDialog1.Collate;
ShowMessage(BoolToStr (a));
end;

な感じでチェック状態を取得してみたんだけどFalseでしか帰ってこない。

C# 2008 Express Editionでも
MessageBox.Show(System.Convert.ToString(printDialog1.PrinterSettings.Collate));
ってやってみたけどFalseしか帰ってこなかった

これってウチプリンタが対応してないとかなんかなぁ

157 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 12:41:41 ]
>>155
内部的なテキストとか、TMemoを保存する時とかにUnicodeになるのん?
それともソースファイルがUnicodeって事?

出来上がるソフトウェアにまでunicode強制なら、旧版使うかなー。

158 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 12:59:27 ]
Windows 9x のことを忘れていいなら、Unicode 化のほうが OS の制限も少ないし速度も上がる。
NT OS 自身の内部コードは Unicode で、Ansi 文字列を API に渡すたびに OS が文字セット変換を
かけている。
そのオーバーヘッドがなくなる分、ちっと早いし、メモリオーバーヘッドも減る。

ソースコードは、Delphi8 (Delphi .NET) 以降 SJIS でも UTF8/UNICODE でも利用可能。
必要であれば Unicode 系円コーディングを使えばいい。

TMemo を保存するとき, SaveToFile とかするときにはエンコーディングを選べる。デフォルトは...
どっちだっけ。ちとわすれた。

コンソール読み書きは ANSI のまま。
LoadFromFile とかの読み込み系は、必要ならエンコーディングの自動判定

159 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 14:16:01 ]
>そのオーバーヘッドがなくなる分、ちっと早いし、メモリオーバーヘッドも減る。
うそつけw


160 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 18:46:18 ]
ある決まったアプリのキーストロークをフックするプログラムを
作ったんですが、フックが有効な間キーボードの反応が悪くなってしまいます。
(関係ないアプリの入力まで影響されてしまいます。)

CallNextHookExを実行させればキーコードはすぐに次のフック?キュー?にいって
キーボードの反応が悪くなったりはしないのではないですか?

フックを始めて作ったので質問がおかしいかもしれませんがよろしくお願いします。



161 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 20:40:37 ]
>157
くわしくはどっかまとめたところを探せ。エンバカデロにもいくつかあるはず。かいつまんでいうと、String型は
UTF-16になる。従来の文字列型はAnsiStringと明示しなければならない(ついでに従来のWideStringは
そのままで変更なし)。またPCharもUTF-16の要素へのポインタになる。ソースコードはUTF-8だな。

162 名前:160 mailto:sage [2009/03/23(月) 22:03:06 ]
A-Z、0-9をフック処理するんですが、押されたキーはそのまま
アプリに送りたいんですが、どうも消されてしまっているみたいです。

どうすればいいですかね?
すみません、質問の仕方がぜんぜん思い浮かばない。

163 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 22:17:12 ]
最低限の再現ソースと詳細な状況、かな。でもスレチじゃないか?まぁWin32APIスレでフックとかいうと
それだけで荒れるからな。

164 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 12:10:28 ]
てか、どうみてもキーロガーにしか見えない

165 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 14:45:40 ]
それは単に物を知らなさすぎるだけ。

166 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 20:09:48 ]
キーロガーといわれればそうですね。
でも、キーストロークを監視するのって
よくあることじゃない?

167 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 13:46:49 ]
今DLできるのってturboと7ですが、違いってどれ位あるのでしょう?

turboはコンポーネントがインストール出来ないとかなにかで見たのですが、それって致命的なような。。。
zip扱うコンポーネントとかも使えないって事ですよね? DELPHIコミュニティでコンポーネント配布のコミュが有ったと思うのですが、それも完全に無意味になるのでしょうか。

168 名前:167 mailto:sage [2009/03/26(木) 14:23:27 ]
勘違い、7はDL出来る訳じゃなかったですね・・
取り敢えずturbo explorer入れてみます。

サードパーティのコンポーネントを追加したかったら、有料版を買えって事なんですかね。
例えばTEditorとか、Iriaの作者が作ってたマウスジェスチャコンポーネントとか。
有用なワクワクするコンポーネントたくさんあったのになー。

Janeをいじったりもしたかったのに、確かアレも大量にコンポーネント使ってた筈。
Delphi6personalをアンインスコしなきゃ良かった・・。

169 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 14:25:45 ]
7 は「ダウンロード」はできないと思ったが。タダで使いたい。ということだよね?

コンポーネントを IDE に追加登録できない。というのはデザイナから貼れない。ということなので
苦労をいとわなければ任意のコンポーネントを使うことは可能。
まぁデザイナで使えない時点で使い物にはならないが。

あと、有料で製品を買うユーザーもいるので「無意味」ということにはならないと思うぞ。


170 名前:167 mailto:sage [2009/03/26(木) 14:40:44 ]
>>169
レスありがとうございます。

その通りです。タダで使いたいという事です。
Delphi6からのアップデートで、「金払えやゴルァ」となったという認識で良いのでしょうか。
金金とがっついてるイメージでボーランドに対する印象が悪くなりましたw

一応使う方法が有るという事で、ちょっと安心しました。
有料版を買うのは避けたいんですよねー。でも、利便性考えたら買うべきなのかなー。



171 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 14:59:26 ]
TPanelをダミーで作って、中にコード上で生成したコントロールをalClientで貼り付けりゃいいじゃん

172 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 15:38:28 ]
>>168
> 取り敢えずturbo explorer入れてみます。
>
> サードパーティのコンポーネントを追加したかったら、有料版を買えって事なんですかね。

TurboExplorer無料版使いだけど、自前で生成すれば使えることは使える。
VirtualTreeviewを自分好みに継承して自前の引数付けてCreateさせたりね。
ただ、不便なところも多々あるから、やっぱりコンポは使えるに越したことはない。

173 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 16:11:11 ]
>金金とがっついてる
うーん。不便をいとわなければ、選択肢はあなたの「自由」だしなぁ。
時間と利便性に対価を払うと思えばよいわけで。高いか安いかという話は別にして。

無料であることをほかの何よりも優先するのであれば VisualStudio / C# という手もありますし。


174 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 16:13:03 ]
>金金とがっついてる
破綻したんだからあたりまえじゃん。

175 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 23:08:33 ]
はいはい破綻した破綻した

ところで
Extend Delphi Components Without the Need to Install in the IDE - Delphi Interceptor Classes
ttp://delphi.about.com/od/delphitips2009/qt/interceptor.htm
こんな手法はどうよ?

176 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 23:37:33 ]
それTMemoでCtrl+A押した時に全選択とかの時にしか使ったことねーな

177 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 01:25:50 ]
えーと Delphi7Lite ってキーワードで調べてみなさい

178 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 04:41:13 ]
>>177
違法なもの勧めてんじゃねーよ厨房

179 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 11:30:50 ]
>>175
日本でもちょっと前に紹介されてるね
ttp://twc.xrea.jp/20080116/
知ってる人は普通にやってるテクニックだとは思うけど

180 名前:|Д゚彡 ◆A6VzDeLphI mailto:sage [2009/03/28(土) 00:54:36 ]
すばらしいテクですな。



181 名前:デフォルトの名無しさん mailto:sage [2009/03/28(土) 01:03:05 ]
〜Exと拡張していたコンポをそれでリプレースしたい誘惑に駆られるな・・・
フサは日常的に置き換えちゃったりしてる?

182 名前:|Д゚彡 ◆A6VzDeLphI mailto:sage [2009/03/28(土) 11:00:35 ]
時々。

コンポインストールは最近は使わない。
複数のDelphiバージョンつかっていたりして
面倒だし。

コンポインストールしないほうが楽かと。


183 名前:デフォルトの名無しさん mailto:sage [2009/03/28(土) 11:08:13 ]
それじゃ Delphi 使う意味何所にあるのかしら。

184 名前:デフォルトの名無しさん mailto:sage [2009/03/28(土) 11:16:56 ]
コンポインストールするとIDE重くなるしな

185 名前:デフォルトの名無しさん mailto:sage [2009/03/28(土) 11:20:50 ]
インストールするけど使わなきゃ起動時間にも影響でないよ。
使いたいときに、プロジェクトオプションで有効にするだけですむ


186 名前:デフォルトの名無しさん mailto:sage [2009/03/28(土) 12:05:01 ]
パレットにロードする時間が増えるから影響がないことはないっしょ

187 名前:デフォルトの名無しさん mailto:sage [2009/03/28(土) 16:05:47 ]
それで遅くなるような PC / Video カードなら窓から投げ捨てな

188 名前:デフォルトの名無しさん mailto:sage [2009/03/28(土) 17:12:00 ]
俺が拾ってやるから

189 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 23:12:03 ]
IDEとコンポーネントが癒着しすぎてるのは確かだな。
プロジェクトごとにインストール出来るような仕組みが欲しい所。
現状一応チェックボックスで選べるようになってるけどもうちょっと進めて。

190 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 10:02:08 ]
パッケージ化しなくても、プロジェクト内のソースファイルからプロジェクト限定でパレットに登録できるようになればなぁ



191 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 20:10:16 ]
プロジェクト全体で定数を共有したいんだが方法ありますか?

192 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 20:33:18 ]
uAppCommon.pas
をusesしてるな

193 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 22:07:30 ]
おれもそんな感じ

194 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 13:20:34 ]
ファイルから読み込みたいお年頃

195 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 15:52:23 ]
2つ質問したいことがあります。

・Indyについて質問
homepage3.nifty.com/KENCH/open/indy/delphi_indy.htm
このサイトの通りにIndyをインストールしようとしたのですが、
「開くメニューから読み込んで以下の順番でインストールします」
と書いてあるのですが、インストールとは何をすればいいのでしょうか?
一応コンパイルかと思い、順番にコンパイルしてみたのですが、画像のようにIndyのアイコンがでてきません。

・プログレスバーについて質問
ウェブブラウザを作っているのですが、プログレスバーの記述の仕方がわかりません。
IEのようにページを表示してる最中に進度をプログレスバーにしたいのですがどのように記述すればいいのでしょうか。


WindowsXP SP3 Delphi6 Personal
お願いします。

196 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 18:37:31 ]
ttp://d.hatena.ne.jp/dayflower/20070926/1190787926

197 名前: ◆XcB18Bks.Y mailto:sage [2009/04/02(木) 19:19:30 ]
最近全然書き込みがないなぁと思ったら板移転していたのですね。
(お気に入りからだと移転に気づかない罠でした)



198 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 20:36:55 ]
マウスがフォームから出たらフラグを立てるというのはどうすればいいんでしょうか
OnMouseMoveではフォーム上でしかイベントが起きませんし

199 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 21:22:13 ]
CM_MOUSEENTER CM_MOUSELEAVE
メッセージが飛ぶからそれを捕まえる。

Delphi CM_MOUSEENTER
で検索するとサンプルが出てくるよ。

200 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 21:38:03 ]
回答ありがとうございます
さっきまさにその方法で解決した所だったんですが今度はフォームの外でマウスボタンを放したイベントをキャッチできないか悩み中です
やりたいことは、えーとお絵かきソフトの消しゴムみたいな物で、クリック中に発動
操作中にカーソルがフォームの外に出てまた戻ってきてもボタンを押したままならそのまま作業できるが、
ボタンをどこかで離したら、無効になる
というものです
乱暴に操作するとカーソルがフォームの外に出ちゃう事もあると思うんですがそれでいちいちボタンを押しなおすのが面倒だと思うので



201 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 22:04:07 ]
MouseCaptureでできますた
スレ汚しすみませn

202 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 22:45:28 ]
delphi自体のツールバーでも使われてるようなアイコンって、何処にありますか?
ネットで検索しててdelphiインストール時に一緒にインストールされると見たのですが、場所が分からずImageListに追加出来ません。

使用しているのはDelphi6です。


203 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 22:52:19 ]
C:\Program Files\Common Files\Borland Shared\Images\Buttons
にあるけど古臭すぎて使い物にならない。

Visual C# Express入れるとProgram Files\Common Files\MSなんちゃら
にそこそこモダンなビットマップが詰まってるよ。

204 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 23:30:58 ]
>>203
それってVC以外でコンパイルする物に使って良いの?

205 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 23:44:59 ]
>>203
入れてみましたが見当たりませんでした。。。
「Program Files\Common Files\MSなんちゃら」というフォルダが見当たりません。

Pro版にはzipでアイコンが固めてあるという情報をグーグル先生が教えてくれたので、そっちを当たってみます。

206 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 23:51:17 ]
\Common7\VS2005ImageLibrary\VS2005ImageLibrary.zip
でそ

207 名前:デフォルトの名無しさん [2009/04/03(金) 03:05:58 ]
SQLiteのラッパー、Simple Delphi Wrapperについての質問です。
ttp://www.itwriting.com/blog/a-simple-delphi-wrapper-for-sqlite-3

下記の様にして、テーブルのインスタンスを作るとします。

 sqlTb := sqlDb.GetTable( 'SELECT * FROM hoge' );

この時、sqlTbのテーブルにある「カラム(列)の数」が知りたいのですが、
どうすればいいでしょうか?

ちなみにsqlTbには、まんまColCountというプロパティがあるのですが、
何故か、値は常に'0'です。
Delphi 2009です。よろしくお願いします。

208 名前:デフォルトの名無しさん [2009/04/03(金) 03:39:59 ]
2009+indy10のsmtpを使用してメ−るを送信すると、
空白メール届くのです。
2005でコンパイルしたものは正常に送信できるのですが、
教えていただけませんか



209 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 03:48:50 ]
普通に文字コード絡みの問題だと思うが

210 名前:207 mailto:sage [2009/04/03(金) 03:54:51 ]
すみません、自己解決しました。
colcountはCarginal型なのですが、表示の際にハマっていただけでした…



211 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 05:59:39 ]
すいません、言語ではなくこのソフトに関する質問なんですが
左下にある(初期レイアウトでは)プロパティの中の設定する値が記述されてる部分のフォントの色って変えること出来ますか?

ターボ、xpです。よろしくお願いします。

212 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 07:15:27 ]
できません。

213 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 09:53:53 ]
なんでBooleanは8ビットも使ってしまうん?(´・ω・`)

214 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 09:58:22 ]
パソコンのしくみ

215 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 14:55:57 ]
8つのbooleanが詰まった1バイトのbooleans型を定義するといいよ。

216 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 15:20:02 ]
2009のサンプルコンポーネントが相変わらす古いものしか入っていないんですが、
使えるShellListViewって何処にありますか?

217 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 18:56:04 ]
指定フォルダ内のファイル数を、サブフォルダ内のファイルも含めて取得したいです。

hoge
-test1
hogehoge
-test2
-test3

というようなフォルダ構造の場合、3を得たいという事です。
何か簡単な方法は無いものでしょうか。


FindFirstとFindNextでやろうとすると、サブフォルダ内の処理をする時に対象フォルダが移動する為、
FindNextで親フォルダを正しく検索する事ができません。

218 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 19:26:54 ]
はいはい再帰再帰
俺は太ってるから書けないけどね

219 名前:217 mailto:sage [2009/04/03(金) 19:48:16 ]
FindFirstでフォルダを列挙して、それをFileListBoxに突っ込んでCountを足す事でファイルカウントにしました。
再帰は良く分かりませんが、動くので取り敢えず上記ので実装しますorz

220 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 21:53:05 ]
>219
つ ttp://www.google.co.jp/search?q=delphi+findfirst+%E5%86%8D%E5%B8%B0&sourceid=navclient-ff&ie=UTF-8&rlz=1B3GGGL_ja___JP225



221 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 22:40:14 ]
ttp://ja.uncyclopedia.info/wiki/%E5%86%8D%E5%B8%B0

222 名前: ◆XcB18Bks.Y mailto:sage [2009/04/06(月) 19:11:33 ]
>>199
Turbo Delphi Explorerとか最近のバージョンだと
OnMouseLeaveイベントが実装されていますね。

最初は知らなかったので今までのように
自分でメッセージに応答するコードを書き終わってから見つけて涙目でした。


223 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 09:32:11 ]
Delphi7でFirebirdのクライアントアプリケーションを開発してましたが、
この度Delphi2009にバージョンアップしました。以前のソースを一部修正して
コンパイルは出来たのですが、実行すると一部文字列フィールドでサイズ不一致のエラーがでます。
データはVARCHAR(8)のSJIS_0208の項目に半角英数字で10文字セットされた行でエラーが出ていますが
対処法がわかりません。テーブルのデータ構造をVARCHAR(16)に再構築すればいけるかと思いますが、
できればテーブルはそのまま使いたいのですが、無理でしょうか?

224 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 20:45:23 ]
    ∧__∧
    (´・ω・)   無理どす
    ハ∨/^ヽ
   ノ::[三ノ :.、
   i)、_;|*く;  ノ
     |!: ::.".T~
     ハ、___|
"""~""""""~"""~"""~"


225 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 13:07:58 ]
TMenuItemに複数のShortCutを設定するにはどうすればいいでしょうか?

226 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 13:55:40 ]
パーテーションなどディスク上のデータを直接読みたいのですがどうすればいいでしょうか?
Delphi3です。10年くらいブランクがあるのでほとんど忘れてしまったorz
低レベルなアクセスだとやっぱりAPIを駆使でしょうか?
Delphi側で手軽に扱える便利な手続きが用意されてると有り難いのですが。。。
詳細はググりますんで、検索キーワードだけでもご紹介くださいませ

227 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 14:07:16 ]
>>225
TActionList&TActionだとセカンダリを指定できる。
MenuItemよりAction使っといた方が全体的に便利だよ。

228 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 15:01:38 ]
>226
それはWin32APIスレにいったほうがいいような。Delphiで簡単に、という性質のものではない。
あとOS(2000/XP/Vista)によってもプログラミングに違いがあると思う。UACとか。

229 名前:226 mailto:sage [2009/04/08(水) 15:31:34 ]
>>228
やっぱりAPIですか。誘導してくださってありがとうございます。

230 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 16:52:16 ]
>>227
Actionは使ったこと無かったので思いつきませんでした
ありがとうございます



231 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 23:11:02 ]
今DDEのヘルプを読んでるんですが、
サーバーからデータA、データB 、データCを取得したいときって
DDEクライアントを3つ置かないといけないですか?

232 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 04:57:24 ]
統合アーカイバコンポーネント
ってもうどこにもないですかねぇ…?
ググったけどDelphian Worldは閉鎖されてるし…

233 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 10:09:28 ]
>>232
www.geocities.jp/norg1964/delphianworld/data/mi/cmarc150.lzh

234 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 16:06:29 ]
>>233
ありがとうございます。

235 名前:デフォルトの名無しさん mailto:sage [2009/04/10(金) 12:28:12 ]
質問です。
ToolBarコンポーネント上にボタンを複数配置し、
実行中にボタンのVisibleプロパティを変更した場合、
ボタン新規作成でToolButtonを配置していた場合は
自動的にVisibleがFalseになったボタンより右のボタンは
自動的に左詰めしてくれるのですが、
SpeedButtonを配置していた場合、
VisibleをFalseにしたボタンの部分が空いてしまい、
それより右のボタンが左詰されません。
(設計時にVisibleをFalseにして実行した場合は左詰してくれますが)
SpeedButtonでも自動的に左詰してくれるようになる
プロパティとかはないでしょうか。
Delphi4を使用しています。

236 名前:デフォルトの名無しさん mailto:sage [2009/04/10(金) 12:32:25 ]
if Visible then Width := 32 else Width := 0;

237 名前:デフォルトの名無しさん mailto:sage [2009/04/10(金) 13:07:43 ]
CombBoxってタブオーダー無視する?
タブストップはTrueにしてるんだけど次のやつにいっちゃう。
DEL7です。
どなたかよろしく。

238 名前:デフォルトの名無しさん mailto:sage [2009/04/10(金) 13:17:56 ]
>>237
まず新規アプリケーションにComboBoxを100個並べてTABキー押してみてくれ。

239 名前:デフォルトの名無しさん mailto:sage [2009/04/10(金) 16:57:20 ]
高級INIファイル程度の感じで簡単にXML読み書きするのってどうやるのが楽?
Delphi XMLで検索するとOpenXMLとかいうのがヒットするみたいだけど。

240 名前:デフォルトの名無しさん mailto:sage [2009/04/10(金) 19:07:23 ]
大人しく付属してるTXMLDocument使えばいいんじゃ。デフォルトでMicrosoftのXMLパーサー使うように
なってたような。嫌なら切り替えれたような。




241 名前:デフォルトの名無しさん mailto:sage [2009/04/11(土) 23:39:00 ]
>>237
今試してみたが普通にTAB移動するぞ D2007,D5
Styleプロパティも変えてみたけどOKだ
新規フォームでもう一度試してみな
また、そんなときはうまくいかないComboBoxを選択してCtrl+Cして
エディタにでも貼り付けて違いを調べるんだ
お前の言う「昆布ボックス」がカスタムコンポーネントなら知らん

242 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 09:49:26 ]
製品版を購入するには2009だと10万弱かかるので、ためらっています。
バージョンアップ版は4万強ですが、例えばTurboをインストしていれば、
それが使えるとかの技はありませんでしょうか?それとも素直に10万弱
出すしかないのでしょうか?どうかご教示ください。

243 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 09:55:37 ]
DEL6なんだけど今時のインターフェイスのフォルダー選択コンポーネントないかな?

244 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 10:38:45 ]
ライセンス関係は Codegear に聞いてください
電話かメールで尋ねられるとおもいます

実のところ、アップデート版のインストーラーは既存製品のインストール状況を
チェックしません。純粋に、ライセンス、契約の問題です。
もっとわかりやすく言うと「アップデート版はアップデートユーザーが使うと信じてるよ」です

245 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 12:29:59 ]
んなこたーない

246 名前:デフォルトの名無しさん mailto:sage [2009/04/13(月) 09:13:16 ]
>>243
今時って?こういうコンポーネントじゃなくて?
mrxray.on.coocan.jp/Delphi/plFileDialog/index.htm

247 名前:デフォルトの名無しさん mailto:sage [2009/04/13(月) 20:48:22 ]
Delphi6 personalでIndyインスコしてIdHTTPをForm1に貼り付けると「IdBaseComponent.dcuが見つかりません」とでてコンパイルできません。
なぜでしょうか?

もしかしてDelphi6 PersonalとTurbo Delphiの両方をインスコしてあるからなんですかね?

248 名前:デフォルトの名無しさん mailto:sage [2009/04/13(月) 21:49:45 ]
ライブラリパスは設定したのか?

249 名前:デフォルトの名無しさん mailto:sage [2009/04/13(月) 22:00:52 ]
>>248
すいませんライブラリパスとは何ですか?
具体的に教えてもらえると助かります;;

250 名前:デフォルトの名無しさん mailto:sage [2009/04/13(月) 22:34:31 ]
ツール(T)→環境オプション(O)→ライブラリ→ディレクトリ→ライブラリパス(B)
ここにIndyの入ってるディレクトリを追加する



251 名前:デフォルトの名無しさん mailto:sage [2009/04/13(月) 23:31:12 ]
>>246
レストン
左側にマイコンピューターとかマイネットワーク
とか出て、フォルダーの新規作成も出来てみたいなの
が無いかなと思ったんですが、紹介してもらったのは
ソースつきなんで勉強がてら改造してみます。


252 名前:デフォルトの名無しさん mailto:sage [2009/04/14(火) 00:21:16 ]
dllインジェクションやりたいお

253 名前:デフォルトの名無しさん mailto:sage [2009/04/14(火) 00:29:45 ]
>>251
> 左側にマイコンピューターとかマイネットワーク

それってただのTOpenDialogでは?
Vista風の見た目とかなら探せばコンポ落ちてるだろうけど

254 名前:デフォルトの名無しさん mailto:sage [2009/04/14(火) 02:57:10 ]
blog.toratech.net/article/25228591.html
を参考に、Delphi2009にQuadruple Dをインストールしようとしてるのですが、
再構築のところでエラーが出てコンパイルが出来ません・・・
何が悪いのか見当すら付かないんですがヒントをお願いします

255 名前:デフォルトの名無しさん mailto:sage [2009/04/14(火) 04:07:02 ]
せめてエラーメッセージをおしえて

256 名前:デフォルトの名無しさん mailto:sage [2009/04/14(火) 04:13:23 ]
いきなり30個くらいあったので・・・
最初は定義の多重宣言とか言われて、とりあえず//でコメントアウトしていくと、
constの所で、(が必要な所に;があります、とか言われて
もうわけわかめでした

257 名前:デフォルトの名無しさん mailto:sage [2009/04/14(火) 08:43:06 ]
解決する気がないならチラシの裏へどうぞ。

258 名前:デフォルトの名無しさん mailto:sage [2009/04/14(火) 08:49:41 ]
はあ
何を根拠にそんなアオリを入れてるのか知りませんが
kazina.seesaa.net/article/38725486.html
↑の通りにやっても同じ結果でしたね
TurboDelphiでは問題なく実行出来ましたが

259 名前:デフォルトの名無しさん mailto:sage [2009/04/14(火) 08:58:18 ]
めんどくさがらずに、エラーの最初の10行ぐらいをコピペしてみろよ

260 名前:デフォルトの名無しさん mailto:sage [2009/04/14(火) 09:23:12 ]
何の権利があって人に命令してるんですか?
物の頼み方を知らない人ですね。



261 名前:デフォルトの名無しさん mailto:sage [2009/04/14(火) 09:33:51 ]
>>254-259
ID無いからわかりにくい。アンカーくらい付けろや!



262 名前:デフォルトの名無しさん mailto:sage [2009/04/14(火) 09:52:03 ]
わからないのなら黙っててください。

263 名前:254 mailto:sage [2009/04/14(火) 09:58:51 ]
すいません、自己解決しました!

264 名前:251 mailto:SAGE [2009/04/14(火) 10:27:47 ]
>>253
そうなんですけど、OpenDialogではファイルを選ばないといけないでしょ?
2,3フォルダーコンポ落としたんですが、フォルダーの新規作成とかが
ないものばかりで。

265 名前:デフォルトの名無しさん mailto:sage [2009/04/14(火) 10:29:21 ]
なんか荒らされてるのはスルーしつつ一応ログの一部貼っときます

[DCC エラー] DInput.pas(803): E2004 識別子の多重定義 : 'DIACTIONFORMAT'
[DCC エラー] DInput.pas(883): E2004 識別子の多重定義 : 'DICONFIGUREDEVICESPARAMS'
[DCC エラー] DInput.pas(938): E2004 識別子の多重定義 : 'DIDEVICEIMAGEINFO'
[DCC エラー] DInput.pas(978): E2004 識別子の多重定義 : 'DIDEVICEIMAGEINFOHEADER'
[DCC エラー] DInput.pas(1076): E2029 '(' が必要な場所に ';' があります
[DCC エラー] DInput.pas(1082): E2026 定数式が必要です
[DCC エラー] DInput.pas(1359): E2004 識別子の多重定義 : 'DIDEVICEINSTANCE'
[DCC エラー] DInput.pas(1429): E2026 定数式が必要です
[DCC エラー] DInput.pas(1433): E2003 未定義の識別子 : 'IDirectInputDeviceWVtbl'
[DCC エラー] DInput.pas(1551): E2029 '(' が必要な場所に ';' があります
[DCC エラー] DInput.pas(1555): E2026 定数式が必要です

266 名前:デフォルトの名無しさん mailto:sage [2009/04/14(火) 18:01:06 ]
>>250
ありがとうございます!
解決しました!

267 名前:デフォルトの名無しさん mailto:sage [2009/04/14(火) 19:04:19 ]
>>264

>>246 のは新規作成できるみたいだね。でもフォルダ選択で
> 左側にマイコンピューターとかマイネットワーク
ってのは見たことないなあ。あったら便利な感じもするけど…
もし作ったら公開してくださいね^^

268 名前:デフォルトの名無しさん mailto:sage [2009/04/14(火) 20:24:05 ]
function BrowseFolderProc(hWindow: HWND; uMsg: UINT; lParam: LPARAM;lpData: LPARAM): Integer; stdcall;
var
  PathName: array[0..MAX_PATH] of Char;
begin
  case uMsg of
    BFFM_INITIALIZED:
      SendMessage(hWindow,BFFM_SETSELECTION,1,integer(PChar(lpData)));
    BFFM_SELCHANGED:
    begin
      SHGetPathFromIDList(PItemIDList(lParam),PathName);
      SendMessage(hWindow,BFFM_SETSTATUSTEXT, 0,LongInt(PChar(@PathName)));
    end;
  end;
  Result:=0;
end;

269 名前:デフォルトの名無しさん mailto:sage [2009/04/14(火) 20:24:54 ]
function OpenFolder(IniDir,Title:string;OwnerHandle:HWND;
AddCreateFolder:Boolean;Files:Boolean=False):string;
var
IDList: PItemIDList;
BrowseInfo: TBrowseInfo;
PathName: array[0..MAX_PATH] of Char;
DisplayName: array[0..MAX_PATH] of Char;
const
BIF_USENEWUI=$0050;
begin
with BrowseInfo do
begin
hwndOwner :=OwnerHandle;
pidlRoot:=nil;
pszDisplayName:=DisplayName;
lpszTitle:=PChar(Title);
if Files then
ulFlags:=BIF_STATUSTEXT or BIF_RETURNONLYFSDIRS or BIF_BROWSEINCLUDEFILES or BIF_USENEWUI else
ulFlags:=BIF_STATUSTEXT or BIF_RETURNONLYFSDIRS;
if AddCreateFolder then ulFlags:=ulFlags or BIF_USENEWUI;
lpfn:=BrowseFolderProc;
lParam:=integer(PChar(IniDir));
end;
//つづく

270 名前:デフォルトの名無しさん mailto:sage [2009/04/14(火) 20:25:50 ]
IDList:=SHBrowseForFolder(BrowseInfo);
if IDList=nil then
begin
Result:='';
exit;
end;
SHGetPathFromIDList(IDList,PathName);
Result:=PathName;
end;




271 名前:デフォルトの名無しさん mailto:sage [2009/04/15(水) 23:19:33 ]
DELPHIのブラウザコンポーネント使ったら、
ブラウザ画面から目的の文字列を探すことって簡単に出来ますか?
ソースをダウンロードして検索したほうが簡単ですか?

272 名前:デフォルトの名無しさん mailto:sage [2009/04/16(木) 06:06:13 ]
imiwakannne

273 名前:デフォルトの名無しさん mailto:sage [2009/04/16(木) 15:30:58 ]
[Delphi] WebBrowserからHTMLソースを取得する

uses mshtml;

Memo1.Text:= OLEVariant(WebBrowser1.Document as IHTMLDocument2).Body.InnerHTML;

って話か?

274 名前:271 mailto:sage [2009/04/16(木) 21:07:38 ]
試してないけどそういうことです。

275 名前:271 mailto:sage [2009/04/16(木) 21:08:17 ]
ありがとう

276 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 23:14:02 ]
今、簡単に言えばようつべから動画をダウンロードするプログラムを作っているのですが、
・動画をどこまで落としたかの進行度をプログレスバーに表す
・中断機能をつける
この2つがよくわかりません。

前者は動画の容量をprogress.max、落とした容量をprogress.positionにすればいいのはわかるんですが、どのように取得してどう記述すればいいのかがわかりません。
後者はスレッドを複数使う、というのはわかったのですがどうスレッドを複数作り、どのようにダウンロードを中断させればわかりません。

WindowsXP SP3 Delphi6 Personal Indy10 です。
どなたかご教授お願いします。


277 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 23:41:16 ]
www.google.com/search?q=Delphi+Indy%20%90i%92%BB
www.google.com/search?q=Delphi+Indy+%92%86%8E~

278 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 23:43:34 ]
いるよね
超初心者用ってスレなのに上から目線で英語のサイトくらい嫁とか言う奴
まあそんなんだから廃れたんだろうなDelphi
あ、俺は只のROMで質問者じゃないからね

279 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 23:45:55 ]
>>278
コピペ?

280 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 23:49:25 ]
>>278
どっちも日本語だけどな



281 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 23:51:03 ]
しかも普通にIndyの公式とかしかヒットして無い様に見えるんだけど何が言いたいんだろうね

282 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 23:52:04 ]
ああ
IEで開いたら日本語だったわ

283 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 23:55:32 ]
google.co.jpじゃなくて.comだから、外国だと思ったんだろう
いるよね?リンクの中身すら見ずにURL名だけで判断する奴
あ、俺は只のROMで質問者じゃないからね

284 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 23:57:28 ]
なんでプログラム板ってID非表示?
質問スレが多く立ちそうな板なのに不便アル

285 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 23:59:12 ]
まあ俺の勘違い?だったから罵倒してくれていいんだが
Firefoxだと
Delphi Indy i’≫
になってて英語サイトしかヒットしてないんだよ
文字エンコードはUTF-8だけど他のに変えても駄目だ
IEとChromeで開いたらDelphi Indy 進捗になったよ

286 名前:デフォルトの名無しさん mailto:sage [2009/04/19(日) 00:01:17 ]
>>285
俺FireFoxだけど普通に表示されたぞ

287 名前:デフォルトの名無しさん mailto:sage [2009/04/19(日) 00:03:29 ]
Accept-Languageで日本語が無いか優先度が低いんじゃね

288 名前:デフォルトの名無しさん mailto:sage [2009/04/19(日) 00:04:11 ]
そっか
じゃあ俺の環境がなんかおかしくなってんだな
正直すまんかった
あと俺は本当に質問者じゃないから本人さんに何も関係ないことだから

以前他の言語のくだすれでちょっとあって・・・
脊髄反射で書き込んでしまった

289 名前:デフォルトの名無しさん mailto:sage [2009/04/19(日) 10:03:38 ]
必死だな質問者


290 名前:デフォルトの名無しさん mailto:SAGE [2009/04/19(日) 21:56:08 ]
ネットのログインを自動でやりたいんだけどdelでやる時の
参考になるページ教えてください。



291 名前:デフォルトの名無しさん mailto:sage [2009/04/19(日) 22:17:41 ]
俺はVBやC#の例を見ながら作ったぞ。

292 名前:デフォルトの名無しさん [2009/04/19(日) 22:43:14 ]
おまいIndyスレに書き込んだヤツか。
失敗している原因をちゃんと調べないとダメだぞ。


293 名前:デフォルトの名無しさん mailto:sage [2009/04/19(日) 22:54:42 ]
そもそも、ネットのログインってのが抽象的でよくわからない

294 名前:デフォルトの名無しさん mailto:SAGE [2009/04/19(日) 22:56:11 ]
>>292
>おまいIndyスレに書き込んだヤツか。
>失敗している原因をちゃんと調べないとダメだぞ。
残念ながら違う。
自動ログイン DELPHIでググったんだけど、いまいちピンと来なかったんだ。


295 名前:デフォルトの名無しさん mailto:sage [2009/04/19(日) 23:04:21 ]
IEコンポ使う方法とIndyでやる方法じゃあ、全然違うからな。

296 名前:290 mailto:sage [2009/04/19(日) 23:43:40 ]
>>291,295
レストンです。
ログインして、ブラウザに表示されるページの中からキーワードを
拾い出したいんですが、出来ればブラウザを起動させずに出来ないかなと
思い調べてました。


297 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 01:27:25 ]
で、何を使ってどんな風にどこまで作って何が不満だったかくらい言おうよ。

298 名前:デフォルトの名無しさん mailto:SAGE [2009/04/20(月) 09:27:21 ]
質問の内容が悪くてすみません。
テンパってて。

ブラウザを起動させなくてもURL直接送ってページに表示されるHTML
の内容を取得して、目的のキーワードを取得は出来るんですが、
最初にログインが必要な場合にどうすればいい買って事なんです。


299 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 10:10:50 ]
>>298
何言ってるかいまいちだがログインすればいいだけじゃないのか?

300 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 10:15:26 ]
>>290の時点で何を聞きたがってるのか分からない奴ってアホだろw



301 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 10:19:16 ]
>>300
じゃあお前が教えてやれ
よかったな>>290
今から>>300が教えてくれるぞ

302 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 10:44:10 ]
>>300
お前は黙ってろ

303 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 12:18:00 ]
>>298
「indy コンポーネント BASIC認証」でググレ
「自動ログイン DELPHI」は酷すぎるwww

304 名前:290 mailto:sage [2009/04/20(月) 13:01:56 ]
>>303
今からググって見ます。
アリガトン

305 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 13:34:58 ]
BASIC認証のサイトなんてもう少ねえよな。
まあどんな認証方法のサイトなのかは知らんけど。


306 名前:290 mailto:sage [2009/04/20(月) 13:57:00 ]
認証に種類があるんですか。
そんなことも知らなかった。
おとなしく、ブラウザを表示させて
自動入力みたいにしたほうが初心者には
簡単ですね。多分。

307 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 20:21:09 ]
まずDelphiの前にHTTP勉強しろ

308 名前:290 mailto:sage [2009/04/21(火) 01:06:15 ]
ごもっともです。

309 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 02:19:31 ]
マジレスすると>>305の言うようにBASIC認証じゃなさそうだし、
たぶんmixiみたいなIDとパス入れてログインするようなサイトなんだろうけど、
ログインしてすぐのページさえ取れればいいのならIndyでGetの代わりにPost使えば大概簡単に取れる
ただしSSLが必要だったりページの遷移があったりすると色々と面倒なんで、
IEコンポを貼り付けて見えないサイズにして(単純にVisible:=Falseだと動かない場合があった気がする)、
あとはNavigate辺りでJavaScript呼ぶかレイトバインドで直接タグ操作してやれば確実
こっちの方が資料も豊富だろうし

310 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 10:31:20 ]
認証時に何をPOSTしてるのか調べて、同じようにPOSTするプログラムを書けばよろしい。



311 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 14:26:05 ]
フォーム認証だとログインしたあとにセッションかクッキーでログイン状態を管理すると思うけど、
そのあたりindyだとどうやるんだろね
単にページを巡回したいなら、スクリプトでコントロールをクリックしたり
ページ遷移できるブラウザがあったと思うんだけど、
それを使えば便利だが、趣旨とは異なるかな?

312 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 14:58:04 ]
サブフォームをモーダルで開いた時にメインフォーム上の処理を行いたいんだが
OnDeactivateに書いても動作せず。試しにこんな感じで。
procedure TForm1.FormDeactivate(Sender: TObject);
begin
form1.Color := clwhite;
end;
どうすればいいんでしょ?

313 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 15:07:33 ]
Form2.ShowModal;
したらフォーム閉じるまで制御が戻ってこないんだからどうにもならない。
Form2側からuses Unit1;して
Form2Showかなんかで
Form1.Color := clWhite
してみたら

314 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 16:27:49 ]
Halbowさんと俺とゲームボーイの誕生日が今日らしい
誰か祝ってやれ

315 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 16:43:05 ]
tmpフォルダにzipから解凍してきたファイルを置いて、読み込み、処理が終わったらtmpフォルダを空にしたいと思ってます。
現状

tmp
 -test
  -A.txt

という様なフォルダ構成で、A.txtを読み込んだ状態です。
そこで、testフォルダを削除しようとすると「プログラムが使用してます」といった旨のエラーダイアログが出て削除する事が出来ません。

A.txtを読み込んだだけでtestフォルダにロックがかかってしまうのでしょうか。
また、そのロックを解除する術はあるのでしょうか。

A.txtの読み込みにはLoadFromFileを使ってます。
また、A.txtの検索にFindFirstを使ってます。
上記2つのどちらかが、フォルダのロックの原因でしょうか。

フォルダの削除はエクスプローラ上からも出来ませんでした。
A.txtはエクスプローラ上から削除可能でした。

何方かご教示お願い致しますm(_ _)m

316 名前:315 mailto:sage [2009/04/21(火) 16:46:04 ]
追記:

フォルダの削除にはSHFileOperationを使ってます。

フォルダをファイルが入った状態で削除するにはコレが良いとGoogle先生に聞いたので。

317 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 20:15:55 ]
>>314
Halbowさんおめでとうございます

318 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 20:19:33 ]
>>315
フォルダをつかんでる(ロックしてる)んではなくて、そのフォルダで作業してる
(カレントフォルダになってる)だけだと思う
処理が終わったら
SetCurrentDir(ExtractFileDir(Application.ExeName));
して味噌

319 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 21:04:06 ]
>>315
それオレもハマった。FindFirstが原因だと思うよ。FindFirstが終わったら
FindClose(SearchRec)とかやってクローズする必要があると思う。

320 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 21:06:24 ]
削除前にきっちりFindCloseを呼ぶ。
カレントディレクトリってコマンドプロンプト以外でもロックしちゃうんだっけ?だったら戻した方がいいかも。



321 名前:デフォルトの名無しさん mailto:sage [2009/04/22(水) 00:56:17 ]
昨日Turbo Delphi Explorerを入れてみたです。
正規表現使えないかなーとBRegExpとそのUnitを入れてみたんですが
試しに簡単なの動かそうとしたらエラー出ました。
BabaさんのBREGEXPとosamuさんのUnitとを解凍してできるファイルを
とりあえず*.hと*.hlp以外全部delphiのLibフォルダに突っ込んであります。
エラーはこんなかんじ

[Pascal エラー] BRegExp.pas(226): E2064 代入できない左辺値です
[Pascal エラー] BRegExp.pas(227): E2250 指定された引数で呼び出すことのできるオーバーロード関数 'UniqueString' が定義されていません
[Pascal 致命的エラー] Project6.dpr(6): F2063 'BRegExp.pas' ユニットはコンパイルできませんでした

コードはこんなかんじ

program Project6;

{$APPTYPE CONSOLE}

uses
SysUtils,BRegExp;

var
Str: String;
begin
Str := 'うんこ:ちんこ:まんこ';
brx.Match('m/;(+);/',Str);
Writeln(brx[1]);
end.

うまく動かせてる人アドバイス求ム

322 名前:デフォルトの名無しさん mailto:sage [2009/04/22(水) 18:20:05 ]
使ってないけど落としてソース覗いてみた(出来ればurl書いて欲しかった)
const TextBuffer: string='';の定数が
問題なんじゃね?

{$J+}オプション入れるか、constを
vart TextBuffer: string;
に変えて
functionの最初に
TextBuffer:='';
入れておけばいんで内科医?

ちなみに俺は「TRegExpr」
ttp://delwiki.info/?%E3%82%B3%E3%83%B3%E3%83%9D%E3%83%BC%E3%83%8D%E3%83%B3%E3%83%88%2FTRegExpr


323 名前:315 mailto:sage [2009/04/22(水) 19:07:58 ]
>>318-320
ありがとうございます。対応入れてみました。
結果、複数フォルダがある場合に、最後の一つだけは削除できるようになりました。

まだ何処かでロックしてるみたいですorz

324 名前:デフォルトの名無しさん mailto:sage [2009/04/22(水) 21:37:56 ]
>323
原因は間違いなくFindCloseのし忘れ。FindFirstした分必ずFindCloseすること。
おそらく今は最後の一回分しかFindCloseしてないんじゃないか?

325 名前:デフォルトの名無しさん mailto:sage [2009/04/22(水) 23:25:56 ]
Delphiのグラフ書くコンポーネントって
2本の折れ線グラフが交差した座標を検出とか
そんな機能あるわけないよね?

326 名前:デフォルトの名無しさん mailto:sage [2009/04/23(木) 00:26:40 ]
あるわけがない。
ポイントの座標くらいなら自分で取得できそうだし、
交点くらいちょびっと計算して出せよ。

327 名前:321 mailto:sage [2009/04/23(木) 02:10:16 ]
>>322
レスありがd
constに代入してるのはPascal初心者には奇怪だったんですが
やっぱりDelphiな人にも奇怪だったのね。
const取ってvar内に宣言したり、言われて{J+}オプション(理解できてない)
入れたりしたらビルドは通ったんですが、別な例外で動かないですわ。
まだまだ手に負えそうにないんで、おいらもTRegExprにしてみる。

328 名前:デフォルトの名無しさん mailto:sage [2009/04/23(木) 03:06:48 ]
constへの代入が何故使われてるかというと、あれはDelphiでスタティック変数もどきを使用するテクニックなんで、
動作するには前回の値が保存されてる必要があるから、単純にvarにするだけじゃ動かない
実体はスコープが関数内に限定されたグローバル変数だから、宣言をfunctionの外に移動させてやればおk
ただ$Jスイッチは局所的に有効になるから、ユニットの先頭にでも{$J+}と書くのが一番確実かな

329 名前:デフォルトの名無しさん mailto:sage [2009/04/23(木) 04:57:55 ]
>>327
古いDelphiではConstは常に書き込み可能だったのだ
var TextBuffer: string='';
function TBRegExp.Subst()
begin
end;
と外に出してグローバル変数にすればおk
今時{J+}は使わなくて良いでしょ

あと、肝心の正規表現間違ってるよ
エラーはそのせいかと

Str := 'うんこ;ちんこ;まんこ';
brx.Match('m/;(.+);/',Str);
Writeln(brx[1]);



330 名前:デフォルトの名無しさん mailto:sage [2009/04/23(木) 05:09:19 ]
というか、DLLで良いのなら鬼車の方が良いかな
homepage2.nifty.com/Km/onig.htm
(DLLのLinkがonig.zip になってるけどonig.lzhが正解)

www.geocities.jp/jview2000/oniguruma.html



331 名前:デフォルトの名無しさん mailto:sage [2009/04/23(木) 11:53:16 ]
クラス化してくれ…

332 名前:デフォルトの名無しさん mailto:sage [2009/04/23(木) 19:29:51 ]
>>328
322だが、もちろんその使い方で私も使ってます
ただ、くだんのBRegExp.pasでは単に初期化するだけに使っていることを
確認してのレスでした

333 名前:デフォルトの名無しさん mailto:sage [2009/04/23(木) 22:35:40 ]
エクセルのブックをDelphiで作成したいのですが、
Excel := CreateOleObject('Excel.Application');
てやるとエクセルが起動しちゃうんですよね?

起動させずにブックを作ることって出来ませんか?

334 名前:デフォルトの名無しさん mailto:sage [2009/04/23(木) 22:49:55 ]
不可能
でも表示をオフにすれば起動されたことはわからんけど。


335 名前:デフォルトの名無しさん mailto:sage [2009/04/23(木) 22:59:47 ]
鬼車をLoadLibraryなどの実行時動的リンクではなく、
ロード時動的リンクしようとすると、Delphiが変数のインポートをサポートしてないから
面倒なんだよな。Delphiってうんこだよな。


336 名前:デフォルトの名無しさん mailto:sage [2009/04/23(木) 22:59:49 ]
レストンです。
そうですか。
シートに書き込むデータがアドインソフトに関するもので書き込んだ瞬間

「外部データにアクセスできない。アドインを実行するか?」

見たいなメッセージが出てきてしまします。
エクセルの特定のアドインを一時的にとめることって出来ますか?
エクセルのヘルプに見ても登録と削除しか出てこないようなので。

337 名前:デフォルトの名無しさん mailto:sage [2009/04/24(金) 00:50:22 ]
>>333
勿論できるぞ。種になるブックをどこかに作っておき、
それをコピーするんだ。実行自体にはExcelすら要らん。

338 名前:デフォルトの名無しさん mailto:sage [2009/04/24(金) 01:05:32 ]
>>336
削除と登録ができるのに、一時的に止められないってこたないだろ。
削除して、また登録すればいいんだから。

それはさておき、
Excel.AddIns['アドイン名'].Installed := false;
Excel.AddIns['アドイン名'].Installed := true;
あたりで出来ないか?

339 名前:デフォルトの名無しさん mailto:sage [2009/04/24(金) 05:57:23 ]
>>333
使ったことはないけど
wiki.lazarus.freepascal.org/FPSpreadsheet

340 名前:デフォルトの名無しさん mailto:sage [2009/04/24(金) 08:05:52 ]
>>337,338,339
ありがとうございます。

>>337
>勿論できるぞ。種になるブックをどこかに作っておき、
このレス見たとき、昔こういうやりか足してた先輩がいたの思い出した。
今は会社辞めちゃったけど。

>>338
>Excel.AddIns['アドイン名'].Installed := false;
>Excel.AddIns['アドイン名'].Installed := true;
作ったら人に渡すので削除とかは実際したくないってのがありました。
こういうのがあるんですね。
ヘルプを見てみます。

>>339
これコンポーネントですよね。
よさそうなんですが、ダウンロードするところがよくわからなかった。orz



341 名前:デフォルトの名無しさん mailto:sage [2009/04/24(金) 10:51:59 ]
ポインタについてなんですけど、
ある手続きで参照先のデータを解放した後に、
別の手続きでその場所にデータがあるかどうか調べるって事は出来るんでしょうか?

342 名前:デフォルトの名無しさん mailto:sage [2009/04/24(金) 12:18:31 ]
出来ない。
メモリの内容見てそれがオブジェクトなのか、生きているのか死んでいるのかを厳密に判別する術はない。

procedure foo(var a: TObject);
begin
 FreeAndNil(a);
end;

とかやって参照自体を潰して参照がnilかどうかで判断するのが定石だな。

343 名前:デフォルトの名無しさん mailto:sage [2009/04/24(金) 20:06:14 ]
メモリマネージャを差し替えればそれっぽいことができなくもないけど、激しくオススメしない

344 名前:デフォルトの名無しさん mailto:sage [2009/04/24(金) 20:58:07 ]
どんな手使っても、アプリケーションが全てと思うけどな。
やな手使って欲しくないけど…

345 名前:デフォルトの名無しさん [2009/04/24(金) 21:19:38 ]
よーわからんけど
ポインタが有効かどうかって
Assignedすればエエだけなんじゃねえの?
外していたらメンゴ


346 名前:デフォルトの名無しさん mailto:sage [2009/04/24(金) 21:23:40 ]
Assignedはnilチェックだよ

347 名前:デフォルトの名無しさん mailto:sage [2009/04/25(土) 03:27:42 ]
EAccessViolationで囲むとか
動いたり動かなかったりだろうからオヌヌメしない

348 名前:デフォルトの名無しさん mailto:sage [2009/04/25(土) 18:54:06 ]
>>341はたぶん一つのオブジェクトに複数の参照があってその管理で困ってると思うんだけど、
そういう場合は参照カウンタで管理すべきじゃないかと思う。別解としては、参照をさらに参照する。

type
 PObject = ^TObject;

var
 p1: PObject;
 p2: PObject;

p1^ := TObject.Create;
p2 := p1;

この状況下で、

p1^.Free;
p1^ := nil;

この時点で当たり前のこととしてp2^もnilになるから、p2を見る手続きからも実体が解放された事は分かる。
ただ、こういうのは小手先の話で、あまりそういう事をしなくてもいいのがよい設計だと思う。

349 名前:デフォルトの名無しさん [2009/04/25(土) 19:52:20 ]
Delphi2009で、文字が半角か全角かを判断する方法が分からず困ってます。
これまでDelphi6でByteType関数を使ってたんだけど、挙動が変わってしまって・・・


350 名前:デフォルトの名無しさん mailto:sage [2009/04/25(土) 20:18:50 ]
leadbytesとかは使えないの?



351 名前:デフォルトの名無しさん mailto:sage [2009/04/25(土) 21:11:09 ]
WideStringなら
単純に文字コードを見ればわかるけど。
1バイトなら半角だし、2バイトなら半角カナかをチェックする


352 名前:デフォルトの名無しさん mailto:sage [2009/04/25(土) 21:25:34 ]
unicodeの事いってるんなら1バイトで全角幅もあるぞ

353 名前:348 mailto:sage [2009/04/26(日) 05:15:41 ]
そういや>>348でp1^のメモリを確保してないや。
最初にNew(p1);、最終的に完全にいらなくなったらDispose(p1);が必要だった。

354 名前:デフォルトの名無しさん mailto:sage [2009/04/26(日) 08:38:57 ]
>>349
シフトジスに変換した後にチェックすればいいじゃん。
ウンコードを呪え。

355 名前:DEKO [2009/04/26(日) 10:53:28 ]
>>349
MECSUtils の MecsIsFullWidth() を使うといいと思います。
ttp://homepage1.nifty.com/ht_deko/tech021.html#MecsIsFullWidth

356 名前:デフォルトの名無しさん [2009/04/26(日) 11:26:42 ]
みなさんありがとう。
一度Ansiに変換して判定することにしました。

function IsHankaku(c: char): boolean;
begin
result := ( ByteType(AnsiChar(c), 1) = mbSingleByte );
end;

Delphi2009で文字を扱うときって、サロゲートとかエレメントとかコードポイントとかバイトとか、ややこしいですね(>_<)


357 名前:デフォルトの名無しさん [2009/04/26(日) 11:43:42 ]
訂正:

function IsHankaku(c: char): boolean;
begin
result := ( ByteType(AnsiString(c), 1) = mbSingleByte );
end;


358 名前:デフォルトの名無しさん mailto:sage [2009/04/26(日) 11:45:47 ]
Cみたいな言語から移ってきたとみた

359 名前:デフォルトの名無しさん mailto:sage [2009/04/26(日) 11:47:11 ]
>>356
それがユニコード糞、っていわれるゆえんだよ

360 名前:デフォルトの名無しさん mailto:sage [2009/04/26(日) 16:03:07 ]
>elphi2009で文字を扱うときって、サロゲートとかエレメントとかコードポイントとかバイトとか、ややこしいですね(>_<)
煽っている人がいるだけで、大した問題はないよ。




361 名前:デフォルトの名無しさん mailto:sage [2009/04/26(日) 16:31:00 ]
言語レベルで隠蔽されてしかるべき情報を考慮してコーディングしないといけないのは問題ではないの?

362 名前:デフォルトの名無しさん mailto:sage [2009/04/26(日) 20:03:45 ]
ウンコードが半角全角の区別がメンドイという致命的な欠点を持っているのは確か

363 名前:デフォルトの名無しさん mailto:sage [2009/04/27(月) 02:24:25 ]
win2000で2009使ってる人います?
デバッグの停止ボタン押した後再開出来なくないですか?

364 名前:デフォルトの名無しさん mailto:sage [2009/04/27(月) 15:19:23 ]
>>361
.NET も UTF-16 で全言語で同じていたらくだけど何を使えばいいの?

365 名前:デフォルトの名無しさん mailto:sage [2009/04/27(月) 18:38:55 ]
.NETがどうかは別に関係なくね?
Delphiの設計方針から言えば、隠蔽されててもおかしくない気はする
最近の開発にそこまで求める方が酷なのかもしらんが

366 名前:デフォルトの名無しさん mailto:sage [2009/04/28(火) 08:52:33 ]
TEditのOnChangeイベントでTEdit.Textを取り出すとき
IMEを起動して日本語入力してると変換した最初の文字だけが
TEdit.Textに入ってきたりしない?
コーディングが悪いのかなあ…。
Turbo Delphi Explorerにて。

367 名前:デフォルトの名無しさん mailto:sage [2009/04/28(火) 11:08:27 ]
>>366
Caption:=Edit1.Text;
これで最初の文字しか取得できてないってこと?

368 名前:デフォルトの名無しさん mailto:sage [2009/04/28(火) 13:05:57 ]
そもそも、文字に幅があると思ってる考え方が間違ってるので、正すのはおまえらの思考。
幅をもってるのはあくまでグリフって誰かいってなかったっけ?


369 名前:デフォルトの名無しさん mailto:sage [2009/04/28(火) 14:20:46 ]
>>367
Captionじゃないけどそんなかんじです。
FirefoxやiTunesみたいなインクリメンタルな検索を実装してるのだけど
たとえば「饅頭」と打ったときTEdit.Onchange内では「饅」しか入っていないので
打った「頭」を検索クエリに入れられず困ってるという話。
(ここまで書くと丸投げっぽいな…)


370 名前:デフォルトの名無しさん mailto:sage [2009/04/28(火) 14:28:08 ]
>>369
頭が入力された時にもう一度OnChangeイベントが発生してるだろ。




371 名前:デフォルトの名無しさん mailto:sage [2009/04/28(火) 14:33:20 ]
>>369
自分のはTurboじゃなくてDEL7なんだけど、
単純なコード書いて試した?
OnChangeにCaption:=Edit1.Textて書いて実行すると、確定するたびに
「まんじゅう」と入れて「まん」だけ確定すると「饅」表示、次に「じゅう」を
確定すると「饅頭」がちゃんと表示されるけど。


372 名前:デフォルトの名無しさん mailto:sage [2009/04/28(火) 14:34:23 ]
>>371
X OnChangeにCaption:=Edit1.Textて書いて実行すると、確定するたびに
  「まんじゅう」と入れて「まん」だけ確定すると「饅」表示、次に「じゅう」を

○ OnChangeにCaption:=Edit1.Textて書いて実行すると、「まんじゅう」と
  入れて「まん」だけ確定すると「饅」表示、次に「じゅう」を


373 名前:デフォルトの名無しさん mailto:sage [2009/04/28(火) 15:00:33 ]
>>369
変換を伴うインクリメンタルサーチやるときは、IMEのメッセージ捕まえた方が色々とやりやすい

374 名前:デフォルトの名無しさん mailto:sage [2009/04/28(火) 15:33:14 ]
コンソールアプリで出力に色つけるのってどうやるの?
無理やりドライバ入れてエスケープシーケンスでじゃなく正式なやり方で。

375 名前:デフォルトの名無しさん mailto:sage [2009/04/28(火) 15:58:47 ]
>>374
コンソールAPIを使う。
これをラップしてTurbo Pascalを模したcrt32っていうユニットが
www.kobira.co.jp/sakura/d_Con_Cgi.htm にあるから
こういうのを使うと簡単。

376 名前:デフォルトの名無しさん mailto:sage [2009/04/28(火) 21:14:17 ]
>>368
学者の詭弁乙

377 名前:369 mailto:sage [2009/04/28(火) 23:52:39 ]
いろいろレスどもです。
確かにCaption変えるだけだと問題ないっすね。
イイワケにならんけど入れてまだ一週間くらいなんで
ヘンな記述してる可能性も捨て切れません。

OnChangeのたびにSQLiteぶん回すのがキツイのか
単純な記述ミスがあるのか、もう一度じっくり眺めてみて
どうしようもなかったらIMEのメッセージ(ってのも初めて見る世界)
の線でぐぐってみます。

378 名前:デフォルトの名無しさん mailto:sage [2009/04/29(水) 05:14:54 ]
IEやFireFoxから画像をドラッグ&ドロップされたのを受け取るには、どうしたらいいもんでしょうか・・。

379 名前:デフォルトの名無しさん mailto:sage [2009/04/29(水) 07:33:26 ]
OLEを使う
どっかにそういうコンポがあったからそれ使うと簡単にできると思う

380 名前:デフォルトの名無しさん mailto:sage [2009/04/29(水) 21:04:08 ]
procedure ahya;
begin
ahya;
end;




381 名前:デフォルトの名無しさん mailto:sage [2009/04/29(水) 22:06:42 ]
stack overflow

382 名前:デフォルトの名無しさん mailto:sage [2009/04/30(木) 08:39:33 ]
>>377
> OnChangeのたびにSQLiteぶん回すのがキツイのか


383 名前:デフォルトの名無しさん mailto:sage [2009/04/30(木) 13:01:08 ]
Cのsystem()関数ってないの

384 名前:デフォルトの名無しさん mailto:sage [2009/04/30(木) 16:04:09 ]
つWinExec

385 名前:デフォルトの名無しさん mailto:sage [2009/05/01(金) 10:30:37 ]
VirtualListViewに256x256のサムネイル画像を並べているのですが、StretchBlt

縦横比を変えずに縮小するために
JpegをTPictureで読み込んでBMP.Assignするときに凄く時間がかかってしまいます
最初は中村氏のBitmapUtils.Stretchを使ってからStretchBltしていましたからもっと時間がかかっていました
TVirtualExplorerEasyListviewなどはエクスプローラ並みのスピードで表示されるので方法次第だと思うのですが
ソースがないので手法が分かりません
どの方向で考えたらいいでしょうか?御指南ください

386 名前:デフォルトの名無しさん mailto:sage [2009/05/01(金) 13:43:04 ]
>>385
TJpegImageのScale使うか、
写真ならExifのサムネイルを読み込むか。

387 名前:デフォルトの名無しさん mailto:sage [2009/05/01(金) 14:21:28 ]
ありがとうございまし、そんなのもあるのですね
D2009のJpeg,GIFImg,pngimageを使っているので型によって縮小方法を変えるんですね
ググったら
ttp://jane.s89.xrea.com/test/read.cgi/kakolog/1119916964/170-188
がでました。サンプルソ−スも生きていて落とせましたので読んでみます
でも、usesするだけでTImageとかでpngとか読めるんだから(これが凄いけど)
TImageListとTListViewも対応してくれるのが一番嬉しいんですよね

388 名前:デフォルトの名無しさん mailto:sage [2009/05/01(金) 14:23:12 ]
ソースだと思ったらJane本体だったorz
これだけがヒントですね
188 :Jane使いの名無しさん:05/07/27 00:00:41 ID:6kBZoROZ
>>174
・TJpegImage.Scale //←基本的にこれ
・TbitmapはDIBにする
・Jpeg.pasとiijのライブラリ改造

TApiBitmapとTBitmapで検索して掛かったとこちょっと
変えてみただけ

389 名前:デフォルトの名無しさん mailto:sage [2009/05/01(金) 18:24:11 ]
つGDI+

390 名前:デフォルトの名無しさん mailto:sage [2009/05/02(土) 14:22:24 ]
>>385
ちなみにサムネイル生成処理はちゃんと別スレッドでやってる?
画像ファイルが1000超えるような場合のエクスプローラの挙動見れば分かるけど、
非同期でやらないとどれだけ高速化しても厳しいと思うよ



391 名前:デフォルトの名無しさん mailto:sage [2009/05/02(土) 19:20:06 ]
そうですね、10個表示されてたらいくつも平行してサムネイルが描画されていってますものね
私もスレッドはやってみようとしかけたのですが、結局ImageListに登録する所あたりで挫けてしまいました
スレッドCreateでFileName、サムネイルの大きさを渡してBitMapを返してもらうのか(どうやって?)
スレッドの中でImageListにAddするのか
ListView.OnDataHintとスレッドがどんなお付き合いにしたらいいのかが分からないのです
あ、ちなみに>>389さんのGDI+は試したらずいぶんと速くなりました

392 名前:デフォルトの名無しさん mailto:sage [2009/05/02(土) 20:16:40 ]
CなどのコードをDelphiへ移植する時、Delphiで使えない識別子があった場合はみなさんどうしてますか?

393 名前:デフォルトの名無しさん mailto:sage [2009/05/02(土) 21:58:43 ]
comboboxのitemを右クリックしたらポップアップメニューを出したいんだけど、
どうしたら良いですか?
ContextPopupにPopupmenu1.Popup(X,Y)ってやっても何も起こらないです。

394 名前:393 mailto:sage [2009/05/02(土) 22:27:06 ]
事故レスです。
レジマネジャーって言うフリーのコンポの
バグみたいです。
新規でテストプログラムかいたら出来ました。

395 名前:デフォルトの名無しさん mailto:sage [2009/05/03(日) 19:27:46 ]
>>391
実際にスレッド内部からImageList.Add呼んだら問題が起きた?そこまでやったの?
とりあえずぐちゃぐちゃになってもいいからやってみないことには問題点も分からないじゃない

396 名前:デフォルトの名無しさん mailto:sage [2009/05/03(日) 22:11:13 ]
やってみました。
何度も暴走させながらも(スレッドってまともに動かしたことがないもので)出来ました
目に見えるItemが同時に読み込まれている感がないのでまだまともに出来ている
ワケではないのでしょうが取り敢えず正確に表示できて明らかに今までより
表示速度は速くなりました(4000Filesほど読み込ませても数秒でした)
ありがとうございました

397 名前:デフォルトの名無しさん mailto:sage [2009/05/03(日) 23:11:33 ]
マルチスレッド歴1ヶ月のおいらがわかる事はとりあえず、
ImageList.Addメソッドの呼び出しは最低限、クリティカルセクションなりを用いて排他制御
しなきゃいけなさそうと言う事だけ。
後はわかんない。ぷぎゃ。
CriticalSection.Accuire;
try
ImageList.Add
finally
CriticalSection.Release;
end;

398 名前:デフォルトの名無しさん mailto:sage [2009/05/04(月) 00:36:07 ]
いや、いらないからw

399 名前:デフォルトの名無しさん mailto:sage [2009/05/04(月) 01:01:10 ]
>>397だけど、今、具体的にImageListのAddメソッド追ってみたけど、
内部でHandleNeededが呼ばれて、そのHandleNeededでフィールドのFHandleを参照しているから、
下手すると、
procedure TCustomImageList.HandleNeeded;
begin
if FHandle = 0 then CreateImageList;
end;
で、CreateImageListに複数のスレッドが同時に突入すると、イメージリストのハンドル
が複数作成され、迷子になっちゃわない?
ハンドルリークだから、まぁ、そこまで被害拡大しないと思うけど。


400 名前:デフォルトの名無しさん mailto:sage [2009/05/04(月) 01:12:08 ]
ああ、というか、そもそも前提がお互い違うのかもね。
おいらの場合は、サムネイル作成するサブスレッドでImageListのAddメソッド
呼ぶ事を前提にしてた(それで出来るか分からないけど、ぷぎゃ)。
メインスレッドだけで、ImageList.Addメソッド呼ぶなら必要ないと思う。




401 名前:デフォルトの名無しさん mailto:sage [2009/05/04(月) 01:42:09 ]
勉強のため、勝手にちょっと作ってみたけど、今のおいらのレベルで作るとこんな感じかな。
 TThumnailEvent = procedure (Sender: TObject; ABitmap: TBitmap) of object;
 TThumnailer = class(TThread)
 private
  FFileName: string;
  FSize: TSize;
  FBitmap: TBitmap;
 private
  FOnThumnail: TThumnailEvent;
 private
  procedure CallOnThumnailEvent;
 protected
  procedure Execute; override;
 public
  constructor Create(CreateSuspended: Boolean; AFileName: string; ASize: TSize);
 public
  property OnThumnail: TThumnailEvent read FOnThumnail write FOnThumnail;
 end;


402 名前:デフォルトの名無しさん mailto:sage [2009/05/04(月) 01:43:02 ]
で、実装は
{ TThumnailer }
constructor TThumnailer.Create(CreateSuspended: Boolean; AFileName: string; ASize: TSize);
begin
 FFileName := AFileName;
 FSize := ASize;
 FBitmap := TBitmap.Create;
 inherited Create(CreateSuspended);
end;

procedure TThumnailer.CallOnThumnailEvent;
begin
 if Assigned(FOnThumnail) then
  FOnThumnail(Self, FBitmap);
end;

procedure TThumnailer.Execute;
begin
 // サムネイル作成処理
 // ごにょごにょ
 if Assigned(FOnThumnail) then
  Synchronize(CallOnThumnailEvent); // VCLのメインスレッドど同期を取る
 FBitmap.Free;
end;


403 名前:デフォルトの名無しさん mailto:sage [2009/05/04(月) 01:46:47 ]
メインのVCLスレッドでは、
procedure TMainForm.Button1Click(Sender: TObject);
var
 Thumnailer: TThumnailer;
begin
 Thumnailer := TThumnailer.Create(True, FileName, Size, Bitmap);
 Thumnailer.FreeOnTerminate := True; // 自動破棄
 Thumnailer.OnThumnail := OnThumnail;
 Thumnailer.Resume;
end;

procedure TMainForm.OnThumnail(Sender: TObject; ABitmap: TBitmap);
begin
 if ABitmap <> nil then
  ImageList.Add(ABitmap);
end;
とか。ListView.OnDataHintとかは良くわかってないので省略。



404 名前:デフォルトの名無しさん mailto:sage [2009/05/04(月) 01:47:39 ]
Thumnailer := TThumnailer.Create(True, FileName, Size, Bitmap);

Thumnailer := TThumnailer.Create(True, FileName, Size);
だった。orz


405 名前:デフォルトの名無しさん mailto:sage [2009/05/04(月) 01:51:34 ]
「こんなクラス名は嫌だ」






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<101KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef