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

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
Delphi(デルファイ)について、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を
勇気を持って書き込むスレッドです。
Delphi使いが優しくコメントを返しますが
お礼はDelphiの布教と初心者の救済をお願いします。

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

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

【Delphi】 ゲームつくるぞ(゚Д゚)ゴルァ 2【Delphi】
http://pc11.2ch.net/test/read.cgi/gamedev/1097836469/
Delphiでアクションゲームが作りたい!! Part2
http://pc11.2ch.net/test/read.cgi/gamedev/1027482533/
ネットワークゲーム作成のお勉強(Delphi専用スレ)
http://pc11.2ch.net/test/read.cgi/gamedev/1028278884/
delphiでMMO
http://pc11.2ch.net/test/read.cgi/gamedev/1072515100/
3デフォルトの名無しさん:2009/02/22(日) 22:38:28
>>1
4デフォルトの名無しさん:2009/02/22(日) 23:55:30
>1乙です
5デフォルトの名無しさん:2009/02/23(月) 02:16:18
>>1乙でありまする
6デフォルトの名無しさん:2009/02/23(月) 02:36:12
>>1乙;
7デフォルトの名無しさん: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デフォルトの名無しさん:2009/02/23(月) 07:27:43
ある条件によってフォーム上のコントロールを切り替えたいのですが何か楽な
方法はないでしょうか?
1.ページコントロールを使い条件によって表示するタブを切り替える。
2.フレームを使って条件によってフレームを動的生成して切り替える。
の2通り考えましたが、他にないでしょうか?
1の場合、タブとページコントロールの枠線が消せないので気になります。

9デフォルトの名無しさん:2009/02/23(月) 13:18:46
パネルに乗せる
10デフォルトの名無しさん:2009/02/23(月) 19:17:31
>>8
PageControlの何かのプロパティの設定で完全に消せた記憶もあるが…
かなり以前のことなので覚えてないし、ソースも何もないんでゴメンね
11デフォルトの名無しさん:2009/02/23(月) 20:50:28
>>88
フラットにしてtab非表示にしたら消えなかったっけ?

SpTBXLibっての使ってる方います?
12デフォルトの名無しさん:2009/02/23(月) 21:15:36
>>88に期待
13デフォルトの名無しさん:2009/02/23(月) 21:30:35
>>8です。
>>10,11
色々プロパティいじってみましたが消せないですね。
>>9
のパネルで切り替える方法でやってみたいと思います。
ありがとうございました。
14デフォルトの名無しさん:2009/02/23(月) 23:16:21
タブの部分がフォームからはみ出るように配置という姑息なことをしたことがあるw
15デフォルトの名無しさん:2009/02/23(月) 23:25:23
StyleをtsFlatButtonsにして各ページのTabVisibleをFalseにすれば完全に消える
デザイン時はPageControlのActivePageを切り替えて編集すればおk
まあ、パネルに決めたんなら止めはしないけど
16デフォルトの名無しさん:2009/02/23(月) 23:48:04
最新版にあるか分からないけどTNotebookは?
17デフォルトの名無しさん:2009/02/24(火) 13:08:28
教えてください。
フォームをリポジトリに登録する方法で
RegisterComponentsみたいなやり方って無いですか?
18デフォルトの名無しさん: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続き: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訂正:2009/02/25(水) 01:35:20
> 囲うとして
描こうとして
21デフォルトの名無しさん:2009/02/25(水) 03:39:21
どううまくいかないの?
2218:2009/02/25(水) 09:41:38
 たとえば
 BackPaint;//背景
 BordPaint;//枠
としても、背景が描かれたままで枠が描写されません。ところがこの後
 TextShow;
を実行すれば「枠」が描かれるのです。当然この後テキストを消そうとして
 BackPaint;//背景
を実行してもそのままです。ソースを以下の通り。
http://toku.xdisc.net/cgi/up/ttt/nm10417.lzh.html
23デフォルトの名無しさん:2009/02/25(水) 10:50:18
>>22
(1)ではBitmapが生成されていないので、描画されたときにPictureプロパティが変更されて表示される。
(2)ではRefreshメソッドが呼ばれてないので、再描画されない。
(3)ではTCanvasの描画メソッドを呼んでいるので再描画される。

(1)を実行前にTImageのPicture.BitmapオブジェクトのWidth,Heightを指定して
事前にTBitmapを生成しておけば(2)と同様に描画されない。
要は内部ビットマップへは描画されているが、TImageがまだ表示していないってことです。
24デフォルトの名無しさん: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デフォルトの名無しさん:2009/02/25(水) 12:14:41
最前面表示は止めた方がいいよ。べつのアプリも最前面表示をしようとすると
ハチャメチャ。マルチタスク環境での反則技と心得るべし。

複数の最前面表示は意味が矛盾してる・
26デフォルトの名無しさん:2009/02/25(水) 12:50:28
27デフォルトの名無しさん:2009/02/25(水) 13:14:36
>>26
ありがとうございます。望んでいた動作をさせることができました!
28デフォルトの名無しさん:2009/02/25(水) 16:03:19
>>23
> 要は内部ビットマップへは描画されているが、TImageがまだ表示していないってことです。
 なるほどそういうものですか。
(1)(2)に omoteGa.Refresh; を追加しただけでOKでした。
 TPaintBoxと異なり TImage は OnPaint で再描画しなくていいというのが頭に
あったものですからRefreshは不要だと思っていました。
 TImage、TBitmap、TCanvas などをもう少し勉強してみます。
29デフォルトの名無しさん:2009/02/26(木) 06:47:38
昔Canvas直描きでゲーム作ってたらチラつきにはまったの思い出した
自前でダブルバッファしてあげて解決したけど

チラ裏おしまい
30デフォルトの名無しさん:2009/02/27(金) 10:27:54
Delphi2009の新規プロジェクトにTButtonを貼るとXPスタイルで表示されますが
Delphi7で作ったプロジェクトを開くとIDE上ではクラシックスタイルで表示されます。
実行すればXPスタイルで表示されますが、IDE上でも新規プロジェクトと同じように
表示するにはどうすればいいんでしょうか?
3130:2009/02/27(金) 10:52:33
自己解決。
ランタイムテーマを有効にして保存後、開き直したらできました。
失礼しました。
32デフォルトの名無しさん:2009/02/27(金) 18:49:28
Delphi2009? 今年じゃん! いつの間にかそんなに進んでたのか…

Delphi6や7と比べて良くなったのかな
簡単なツールしか作ってないけど、久しぶりにバージョンアップしようかな
33デフォルトの名無しさん:2009/02/27(金) 20:48:23
Delphi2009はUnicode対応(専用)版だよ
34デフォルトの名無しさん: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デフォルトの名無しさん:2009/02/27(金) 23:25:13
上の通りにコンパイルすると
http://imepita.jp/20090227/842150
こうなります
Zバッファの値は同じ0のはずなのに
なぜか先に書いた普通の色のDG子が前に・・・
36デフォルトの名無しさん: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続き:2009/02/28(土) 14:37:00
 マウスをクリックしたところから壁に囲まれた範囲を塗りつぶす処理をネット上で
見つけたのですが、なぜこれでいいのでしょう(笑)。人力トレースでは以下のよ
うになると思うのですが。ix,jy をチェックしたら(1)の再帰が終わって(2)を実行す
るとき ix が 1 増えています。これがわかりません。
■■■■■■ ■■■■■■ ■■■■■■ ■■■■■■  ■■■■■■
■      ■ ■      ■ ■  ●   ■ ■  ●   ■ ■  ●  ■
■  ●   ■ ■  ●   ■ ■  ●   ■ ■  ●●●■ ■●●●●■
■      ■ ■  ●   ■ ■  ●   ■ ■  ●   ■ ■  ●  ■
■      ■ ■  ●   ■ ■  ●   ■ ■  ●   ■ ■  ●  ■
■■■■■■ ■■■■■■ ■■■■■■ ■■■■■■  ■■■■■■
  最初      (1)下へ      (2)上へ      (3)右へ      (4)左へ
38デフォルトの名無しさん:2009/03/01(日) 00:36:37
>>36が端折りすぎてると思うのは俺だけか?
どこに再帰があるのかさっぱりわからん。
39デフォルトの名無しさん:2009/03/01(日) 02:03:31
SubPaintも何してるか分からないしな
40デフォルトの名無しさん: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デフォルトの名無しさん:2009/03/01(日) 12:10:10
>>41 釣りじゃないよな?
Integerの範囲は-2147483648〜2147483647
43デフォルトの名無しさん:2009/03/01(日) 12:14:22
>>42
delphi6,d2009は通りますけどd7は通らないので困っています
44デフォルトの名無しさん:2009/03/01(日) 12:53:56
>>42
え?
4542:2009/03/01(日) 13:01:03
すまん、-が見えてなかったorz

確かに編だな。なぜかi:=Low(Integer)は通る。
4642:2009/03/01(日) 13:02:44
×編
○変
ダメすぎ…
47デフォルトの名無しさん:2009/03/01(日) 16:26:40
Delphi 2009 で ドライブ名(C: 等) から、
DeviceIoControl に渡すハンドルを得る為の
CreateFile へ渡すファイル名の取得にはどの様な手順を踏まえたらよろしいのでしょうか?

1. QueryDosDevice
2. GetDevNodeRegistryProperty

の手順でよろしいのでしょうか?
…なんか、全然Delphiっぽくない質問ですね…。
該当スレッドなどがあればそちらを照会させてくれると嬉しいです。
48デフォルトの名無しさん:2009/03/01(日) 17:16:37
4934:2009/03/01(日) 21:20:59
自己解決しました。
デプスバッファへの書き込み値を0≦rhw<1にすると
正常に描画できました。
50デフォルトの名無しさん:2009/03/03(火) 22:55:39
自前の手続きの引数にはvarを付けた方がいいの?
有りと無しの違いは?
51デフォルトの名無しさん:2009/03/03(火) 23:00:46
ヘルプの「値パラメータと変数パラメータ」嫁
52デフォルトの名無しさん:2009/03/05(木) 12:04:37
var str:string;
Copy(str,1,4)とCopy(str,0,4)の結果が同じなんですが
どっちでもいいんですかね?
53デフォルトの名無しさん:2009/03/05(木) 17:16:41
Copyの場合のインデックスは1から始まりますよ。
0にした場合エラーにならなくてもワーニングが出てませんか?
54デフォルトの名無しさん:2009/03/05(木) 18:34:14
Unicode対応のアプリで TNTのコンポーネントを使ってるんですけど、
TStringStream のUnicode版が無いんです(Delphi7)。
代替案かよさげなライブラリなどありましたら教えてください。
55デフォルトの名無しさん:2009/03/05(木) 23:50:08
作れ
56デフォルトの名無しさん:2009/03/06(金) 10:29:25
54です。TMemoryStreamのWriteとReadを使って何とかできました。
57デフォルトの名無しさん: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デフォルトの名無しさん:2009/03/07(土) 20:08:54
やっぱ買うしかないか…
61デフォルトの名無しさん:2009/03/07(土) 21:31:03
Del7のに不具合とかあったっけ?
問題なく使っているかも
62デフォルトの名無しさん:2009/03/08(日) 10:06:53
XPモード表示でTCoolBarにツールバーを何個か置いて
位置を移動すると変な動作をしたり、表示・非表示したりすると位置がずれたりします。
他コンポも何個かあった。
63デフォルトの名無しさん:2009/03/08(日) 11:04:12
WndProcでWM_USER + $500を無視するといいんじゃなかったっけ?
64 ◆XcB18Bks.Y :2009/03/08(日) 18:11:33
>>57
文字コードが2バイトの符号なしなら変数も2バイトの符号なしのWord型だと扱いやすい。
65デフォルトの名無しさん:2009/03/09(月) 09:09:03
Delphi使うとある面では業効率がいいのですが、Delphiのバグと格闘するという
何のためにもならない時間が増大します。誰か助けてください。
66デフォルトの名無しさん:2009/03/09(月) 11:25:07
稚拙な質問の上に伝わらなかったらすまん。
Form上に動的に生成したパネルを4つalTopで配置。幅はform.height/4
それぞれのcaptionを1..4にしたとして、これの並び替えってどうやればいいんですか?
上から1234にしたり4321にしたり。
67デフォルトの名無しさん:2009/03/09(月) 11:29:42
>>65
上にもちょっと出てるけど、よかったらDelphiのバグ教えてくれませんか?
なるべくそのコンポ使うの避ける。
68デフォルトの名無しさん:2009/03/09(月) 11:41:57
>>66
一度全てをalNoneにして、上にしたいものからalTopではダメかな?

>幅はform.height/4
これがよくわからないけど。
69デフォルトの名無しさん:2009/03/09(月) 14:55:20
Delphi2006のプロジェクトを2007でコンパイルすると、アプリケーションがタスクバーに出なくなるのは
何か解決方法ありますか。
70デフォルトの名無しさん:2009/03/09(月) 15:22:33
>>69
Delphi2009でコンパイルする。
71デフォルトの名無しさん:2009/03/09(月) 17:59:09
>>69
なんか
Application.MainFormOnTaskbar := True;
みたいなコードが必要だった気がする
72デフォルトの名無しさん:2009/03/09(月) 18:00:09
procedure A(param:integer)みたいなのがあって、
ボタン1が押された時に実行させるのですが、
この時Aが終了する前にボタン1が押されたら、
Aを別に複数実行みたいなことをマルチタスクを使わずに
行えますか?
73デフォルトの名無しさん:2009/03/09(月) 18:26:32
>>68
失礼 高さです。フォームを4枚のパネルで埋め尽くす感じです。
教えていただいた方法では駄目でした。
74デフォルトの名無しさん:2009/03/09(月) 19:25:42
>>73 いい加減ですまん。
各PanelのAlignをalNone
各PanelのTopに(Form.Height - PanelN.Height)を代入
上に置きたいPanelからAlignにalTop

これでそれっぽい動きをしたので、試してみて。
75デフォルトの名無しさん:2009/03/09(月) 21:46:38
>72
マルチタスクが駄目ならマルチスレッドで。
76デフォルトの名無しさん:2009/03/09(月) 22:26:06
マルチタスクってなに?
77デフォルトの名無しさん:2009/03/09(月) 22:27:56
Windowsの世界ではマルチプロセスってことだと思う。
78デフォルトの名無しさん:2009/03/09(月) 23:14:34
ファイルをD&Dすればunixサーバのscriptが実行されるものを作りたいんだけど、
何を調べればいいのでしょう?
また、Cygwin、unix for windows、を使わずにできるものでしょうか?

WinXPでDelphi6 personal 使ってます。
79デフォルトの名無しさん:2009/03/09(月) 23:28:08
D&Dしたファイルがscriptにどう影響を与えるのかとか
script本体はどこにあるのかとかさっぱりわからない。
sshを使うとかそういうイメージなんだろうか…。
80デフォルトの名無しさん:2009/03/10(火) 00:50:54
>>78
あなたを使わずに別の開発者を使えば可能です
8178: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"で処理の進捗を表示させるのが最終目標です。
8272:2009/03/10(火) 07:17:36
マルチタスクじゃなくて、スレッドでした。
ヘルプを見たりしましたが、別スレッドで実行するしかない
みたいですね。
クリエートなんちゃらとかあるかと思いました。
83デフォルトの名無しさん:2009/03/10(火) 10:27:31
>>78
セキュリティがザルなのでおすすめできないが
windowsプログラムからrcp,rshを起動すればいけんじゃない
rcp,rshならXPなら標準で入ってる
セキュアにしたいならssh
ただしWindowsには入ってないので自分で入手
84デフォルトの名無しさん:2009/03/10(火) 17:19:30
突然でスイマセン
誰かdelphi perssonal もってたらください。
85デフォルトの名無しさん:2009/03/10(火) 17:27:27
お断りします
8678:2009/03/10(火) 18:20:23
>>83
ありがとう。試してみる。
87デフォルトの名無しさん:2009/03/10(火) 19:02:24
>>74ども。確かに結果は得られました。
ありがとうございます。
しかし結局設計時に配置変えるときのような動作をさせるより他ないのかなぁ。
88デフォルトの名無しさん:2009/03/10(火) 19:26:24
希望とは違うだろうけどalNoneのままそれぞれのTopを
0
Form.ClientHeight div 4
(Form.ClientHeight div 4)*2
(Form.ClientHeight div 4)*3
でOKなような。
89alCustom:2009/03/10(火) 23:02:32
俺の出番か
90デフォルトの名無しさん:2009/03/10(火) 23:36:16
そんなものがあったのかorz
91デフォルトの名無しさん:2009/03/11(水) 14:28:50
92デフォルトの名無しさん:2009/03/11(水) 17:31:25
>>88ですな。
結局top,left,width,heightを希望するよう逐次設定してやれば希望の動作はします。
アンカーやタグの存在に気付いたときのように、もっとスマートな方法があるのでは
ないかと思い、質問してみた次第です。お騒がせしました。
93デフォルトの名無しさん:2009/03/11(水) 22:22:52
それぞれのalTopのパネルの上にalClientなパネルを置いて
配置換えするときはalClientなパネルのParentを変える
ってのはどうかな?
94デフォルトの名無しさん:2009/03/12(木) 13:24:52
forの中にforを作ったとして、すべてのループをBreakさせる手続きってありますか?
BreakAllみたいな。
95デフォルトの名無しさん:2009/03/12(木) 13:57:44
goto
96デフォルトの名無しさん:2009/03/12(木) 14:18:14
exit
97デフォルトの名無しさん:2009/03/12(木) 15:30:40
ECUで書かれたページを直接読み込んで、その中からキーワードを拾うときに
ソースの1行がTStringList1行に入るようにはできませんか?
ダウンロードするプログラムは初心者本のコピーなんですが、
どうも1単語になっているものが途中で切られて次行に行ったりするみたいで
うまくキーワードを拾えないときがあるんです。
どなたか教えてください。
98デフォルトの名無しさん:2009/03/12(木) 15:36:07
LoadFromFileをやめてReadlnで読む
99デフォルトの名無しさん:2009/03/12(木) 18:58:04
ECUとか何だか内容が良く分からないけど全部1行というか改行を削除して
検索すれば良い気がするが、外してる感じも大。
100デフォルトの名無しさん:2009/03/12(木) 21:33:16
>>94
if BreakAll then Break;
101デフォルトの名無しさん:2009/03/12(木) 22:21:12
try
for ...
for ...
if ... then raise Exception.Create('BreakAll');
...
except
end;
102デフォルトの名無しさん:2009/03/12(木) 22:38:36
多重ループは例外で抜けるのがよさげ
103デフォルトの名無しさん:2009/03/13(金) 17:46:24
APIに関係しているかもしれないのですが、winsightで見ても表示されていないボタンに
メッセージを送りたい時の調べ方について教えてください。
一応、optionでトレースするメッセージをマウスのクリックに絞って、メッセージを
見てるのですがイマイチ分かりません。
どう調べればいいんでしょうか?
よろしくお願いします。
104デフォルトの名無しさん:2009/03/13(金) 18:07:44
それは、絵に描いた牡丹だからメッセージは送れないよ。
105デフォルトの名無しさん:2009/03/13(金) 20:05:11
そう思うんですけど、そのソフトの画面を切り替える外部ソフトがあるので
何とかならんかなと思って。
106デフォルトの名無しさん:2009/03/13(金) 21:39:24
Spyでしらべてみれば。
107デフォルトの名無しさん:2009/03/13(金) 21:58:55
つWindowTree.exe
108デフォルトの名無しさん:2009/03/14(土) 03:35:58
del7pro
actionmainmenuと同等のプロパティが付いてるpopupmenuがあったと思ったんだがない。
このバージョンには付いてないんだっけか?
109デフォルトの名無しさん:2009/03/14(土) 08:49:54
ちょっと質問があります。

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

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

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

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

今まで上書きモード使ったことなかったぜ
ホフォすぎる俺・・・
111デフォルトの名無しさん:2009/03/14(土) 08:55:12
>>34-35
QuadrupleDしらんけど、ZバッファONなら、
後から書いてZバッファが同じなら、先に書いたものの上に上書きはされないよ。
112デフォルトの名無しさん:2009/03/15(日) 01:01:16
いいなぁ、RSSつながって。
113デフォルトの名無しさん:2009/03/15(日) 14:44:41
TForm上でDirectXを表示させる事は可能でしょうか?
可能ならばどのようにすればいいのでしょうか?
114デフォルトの名無しさん:2009/03/15(日) 16:33:15
Clootie
115デフォルトの名無しさん:2009/03/15(日) 16:33:21
そのフォームのキャンバスのハンドルを表示先に指定する
116113:2009/03/15(日) 18:57:52
>>114-115
返信ありがとうございます。
ハンドルを指定すればいいのですね。
検索したらやり方がいろいろ出てきました。
アドバイスありがとうございました。
117デフォルトの名無しさん:2009/03/16(月) 21:36:18
外部プログラムのボタンの位置をスクリーン座標で取得するにはどうすればいいですか?
ClientToScreenにハンドルを指定する引数がないので、あれ?って感じです。
118デフォルトの名無しさん:2009/03/16(月) 22:02:29
そのClientToScreen関数はTControlのもの
Win32APIを使う場合はWindows.ClientToScreenとして、Windows.pasのものを使うと明示すするべし
119117:2009/03/16(月) 23:31:49
ありがとうございました。
外部アプリのボタンをハンドルではなく座標を指定して押すプログラムを
書いていて、Mouse_Eventで押すことは出来たんですがマウスカーソルが
動くのが嫌で調べていたら、SendInputというのがありました。
今回は別に使う必要はないのですが、これも座標を指定してクリックのメッセージ
を送ることは出来るのでしょうか?
120デフォルトの名無しさん:2009/03/17(火) 14:21:35
delphi2009で、それ以前のString[n]と同じような宣言をしたいときは
どうしたらいいですか?AnsiString[n]というのは無いらしいし、
そのままString[n]では、全角を1文字としてしまうので使えないし。
121デフォルトの名無しさん:2009/03/17(火) 14:40:44
>>120
ちゃんと試してからお聞きください。
122デフォルトの名無しさん:2009/03/17(火) 14:49:16
>120
ウンコードの弊害です。あきらめてください。
123デフォルトの名無しさん:2009/03/17(火) 14:49:46
>>119
WindowFromPointでその点にあるコントロールが分かるので、
そのハンドルを使ってWM_LBUTTONDOWNとWM_LBUTTONUPを送るとか
Win32でGroupBoxの上にコントロールを置いてると、
Zオーダーの関係でGroupBoxのハンドルが返ることがあるので注意
124デフォルトの名無しさん:2009/03/17(火) 15:20:03
>>121
すまん、俺が勘違いしていたらしい。
そのままでいいみたいだった。ありがとう。
125デフォルトの名無しさん:2009/03/17(火) 17:09:02
https://lazarus-ccr.svn.sourceforge.net/svnroot/lazarus-ccr/components/virtualtreeview-new/
にある VirtualTreeview のインストール方法を誰か知りませんか?
126デフォルトの名無しさん:2009/03/17(火) 17:20:26
>>125
http://www.delphi-gems.com/
本家本元のをインストールしたら?
というか今見たら3月16日付で4.8.5にアップデートされてるね。
127デフォルトの名無しさん:2009/03/17(火) 18:16:32
複数のレコードを1つのレコードとしてアクセスする方法って無い?
type rec1 = rec2 + rec3;とか
type rec1 = record(rec2, rec3);とか
128デフォルトの名無しさん:2009/03/17(火) 19:23:19
r2、r3の記述は必須なので、望み通りではないかな?

rec1 = record
r2: rec2;
r3: rec3;
end;
129117:2009/03/17(火) 20:43:18
HD入れ替えてXPを入れ直したいんだけど、
Del7って認証受けなきゃダメだよね?
今でもページあるのかな?
アップデートあるのかな?
130デフォルトの名無しさん:2009/03/17(火) 20:55:36
D7なら認証を受けなくても使えないことはないわけだが。
認証しろとは言われるけど。
131デフォルトの名無しさん:2009/03/18(水) 06:21:13
うちのPCには昨年末にDelphi7を入れたぞ。
確かやり方がややこしかったけど、それはVistaだったからのような気がする。
132デフォルトの名無しさん:2009/03/18(水) 07:10:17
Delphi 6 updates and downloads for registered users
http://edn.embarcadero.com/article/38607
これがあるんだから7もありそうだけど、
さがしたけどよくわからんかった。
133デフォルトの名無しさん:2009/03/18(水) 17:30:32
デバイコンテキストを使って文字列を書く時はTexteOutですけど、
その反対の書かれたテキストを取り出すのってないですか?
134デフォルトの名無しさん:2009/03/18(水) 17:35:09
135デフォルトの名無しさん:2009/03/18(水) 17:38:45
>>133
それが出来たらCAPTCHAで苦労しねーよ
136デフォルトの名無しさん:2009/03/18(水) 18:00:01
>>133
これが超初心者の成せる技か…
137デフォルトの名無しさん:2009/03/18(水) 18:25:13
アイコン選択ダイアログのアイコンリストのような32×32の
アイコンをリストアップできるコンポーネントを
どなたかご存知ないでしょうか?
リストビューで代用しようと思ったんですが
アイコン同士の間隔が広すぎて思ったようには出来ませんでした。
138132:2009/03/18(水) 18:47:06
>>135,136
ハイハイ、プロプロ
139デフォルトの名無しさん:2009/03/18(水) 18:49:09
>>137
TListBoxでもTDrawGridでも好きなの使えばいい。
140137:2009/03/18(水) 23:27:16
>>139
ありがとうございます。
おかげでTDrawGridを継承してアイコン表示コンポを作ることが出来ました。
141デフォルトの名無しさん:2009/03/19(木) 13:34:00
スルー推奨
142デフォルトの名無しさん:2009/03/21(土) 08:27:54
Excelのセル範囲指定の時って
Range['B6:N14']
の書き方しか駄目ですか?
VBAで書くみたいに
Range[Cells[1,1]:Cells[10,10]]
って書いてもエラーになってしまいます。
143デフォルトの名無しさん:2009/03/21(土) 09:31:19
うろ覚えですが。
[]を()にしてみたりするとどうですかね?

144デフォルトの名無しさん:2009/03/21(土) 21:53:31
>>143
レスありがとうございます。
()にしてもだめで、Range['Cells(1,1):Cells(10,10)']見たいに
文字列にしてみても駄目でした。
145デフォルトの名無しさん:2009/03/22(日) 01:11:35
Delphi7のエディタってVSのエディタみたいに
2行目の行頭で←キーで1行目の行末へカーソル移動
って出来ないのでしょうか?
何か設定とかあればお教え願えませんか?
146デフォルトの名無しさん:2009/03/22(日) 01:13:53
147デフォルトの名無しさん:2009/03/22(日) 01:19:08
ありがとうございます
フリーカーソルっていうのか…用語が分からんとかこの時点で失格な気がしてきたorz
148デフォルトの名無しさん:2009/03/22(日) 11:21:04
winsightのことで教えてください。
Aというソフトのキーボードクリックをフックして、
押されたキーによってAを操作するBというソフトがあります。
(Aにはショートカットの設定が全くないので無理やりショートカット操作する
ソフトです)
Bからどういうメッセージが出てるのか調べたいのですが、Aにフォーカスが
移るとAのメッセージを拾うようになるみたいです。
Bのメッセージをいつも監視する設定って出来ますか?
149デフォルトの名無しさん:2009/03/22(日) 11:24:07
Winspectorとか使えば?
WinSightは正直使えない。
150デフォルトの名無しさん:2009/03/22(日) 11:28:20
>>142
:演算子、Delphiで使えないだろ。
Range[Cells[1,1],Cells[10,10]] でどう?
151デフォルトの名無しさん:2009/03/22(日) 12:06:41
148
Spy | Follow Focus にチェックがついてない?
152デフォルトの名無しさん:2009/03/22(日) 13:09:59
>>145
Ctrl + ←
153デフォルトの名無しさん:2009/03/22(日) 13:16:12
VisualStudio エミュレーション時のフリーカーソル抑制って、QC に入っていたっけ?
Weaver でどうにかしたいね。
154デフォルトの名無しさん:2009/03/22(日) 19:32:41
Delphi7でずっとやってきたんすけど、Delphi2009 他の案内封筒きた。
アップすべきか、ちと迷ってます。ご意見とかこれはとか、あったら
お願いします。
155デフォルトの名無しさん:2009/03/22(日) 19:40:42
制約事項のあまりないアマグラマだと仮定して、Unicode対応をいまやっておきたいですか?ならD2009で。
いや、まだもう少し様子見、ならD2007で。

2007は最後のANSI系開発環境なので、Unicodeへの移行を急がないのであれば押さえておくのをお勧めする。
逆にいやもうUnicodeの時代でしょというなら2009なわけだが、これは人と事情によりお勧め度が異なる。
156デフォルトの名無しさん: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デフォルトの名無しさん:2009/03/23(月) 12:41:41
>>155
内部的なテキストとか、TMemoを保存する時とかにUnicodeになるのん?
それともソースファイルがUnicodeって事?

出来上がるソフトウェアにまでunicode強制なら、旧版使うかなー。
158デフォルトの名無しさん: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デフォルトの名無しさん:2009/03/23(月) 14:16:01
>そのオーバーヘッドがなくなる分、ちっと早いし、メモリオーバーヘッドも減る。
うそつけw
160デフォルトの名無しさん:2009/03/23(月) 18:46:18
ある決まったアプリのキーストロークをフックするプログラムを
作ったんですが、フックが有効な間キーボードの反応が悪くなってしまいます。
(関係ないアプリの入力まで影響されてしまいます。)

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

フックを始めて作ったので質問がおかしいかもしれませんがよろしくお願いします。
161デフォルトの名無しさん:2009/03/23(月) 20:40:37
>157
くわしくはどっかまとめたところを探せ。エンバカデロにもいくつかあるはず。かいつまんでいうと、String型は
UTF-16になる。従来の文字列型はAnsiStringと明示しなければならない(ついでに従来のWideStringは
そのままで変更なし)。またPCharもUTF-16の要素へのポインタになる。ソースコードはUTF-8だな。
162160:2009/03/23(月) 22:03:06
A-Z、0-9をフック処理するんですが、押されたキーはそのまま
アプリに送りたいんですが、どうも消されてしまっているみたいです。

どうすればいいですかね?
すみません、質問の仕方がぜんぜん思い浮かばない。
163デフォルトの名無しさん:2009/03/23(月) 22:17:12
最低限の再現ソースと詳細な状況、かな。でもスレチじゃないか?まぁWin32APIスレでフックとかいうと
それだけで荒れるからな。
164デフォルトの名無しさん:2009/03/24(火) 12:10:28
てか、どうみてもキーロガーにしか見えない
165デフォルトの名無しさん:2009/03/24(火) 14:45:40
それは単に物を知らなさすぎるだけ。
166デフォルトの名無しさん:2009/03/24(火) 20:09:48
キーロガーといわれればそうですね。
でも、キーストロークを監視するのって
よくあることじゃない?
167デフォルトの名無しさん:2009/03/26(木) 13:46:49
今DLできるのってturboと7ですが、違いってどれ位あるのでしょう?

turboはコンポーネントがインストール出来ないとかなにかで見たのですが、それって致命的なような。。。
zip扱うコンポーネントとかも使えないって事ですよね? DELPHIコミュニティでコンポーネント配布のコミュが有ったと思うのですが、それも完全に無意味になるのでしょうか。
168167:2009/03/26(木) 14:23:27
勘違い、7はDL出来る訳じゃなかったですね・・
取り敢えずturbo explorer入れてみます。

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

Janeをいじったりもしたかったのに、確かアレも大量にコンポーネント使ってた筈。
Delphi6personalをアンインスコしなきゃ良かった・・。
169デフォルトの名無しさん:2009/03/26(木) 14:25:45
7 は「ダウンロード」はできないと思ったが。タダで使いたい。ということだよね?

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

あと、有料で製品を買うユーザーもいるので「無意味」ということにはならないと思うぞ。
170167:2009/03/26(木) 14:40:44
>>169
レスありがとうございます。

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

一応使う方法が有るという事で、ちょっと安心しました。
有料版を買うのは避けたいんですよねー。でも、利便性考えたら買うべきなのかなー。
171デフォルトの名無しさん:2009/03/26(木) 14:59:26
TPanelをダミーで作って、中にコード上で生成したコントロールをalClientで貼り付けりゃいいじゃん
172デフォルトの名無しさん:2009/03/26(木) 15:38:28
>>168
> 取り敢えずturbo explorer入れてみます。
>
> サードパーティのコンポーネントを追加したかったら、有料版を買えって事なんですかね。

TurboExplorer無料版使いだけど、自前で生成すれば使えることは使える。
VirtualTreeviewを自分好みに継承して自前の引数付けてCreateさせたりね。
ただ、不便なところも多々あるから、やっぱりコンポは使えるに越したことはない。
173デフォルトの名無しさん:2009/03/26(木) 16:11:11
>金金とがっついてる
うーん。不便をいとわなければ、選択肢はあなたの「自由」だしなぁ。
時間と利便性に対価を払うと思えばよいわけで。高いか安いかという話は別にして。

無料であることをほかの何よりも優先するのであれば VisualStudio / C# という手もありますし。
174デフォルトの名無しさん:2009/03/26(木) 16:13:03
>金金とがっついてる
破綻したんだからあたりまえじゃん。
175デフォルトの名無しさん: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デフォルトの名無しさん:2009/03/26(木) 23:37:33
それTMemoでCtrl+A押した時に全選択とかの時にしか使ったことねーな
177デフォルトの名無しさん:2009/03/27(金) 01:25:50
えーと Delphi7Lite ってキーワードで調べてみなさい
178デフォルトの名無しさん:2009/03/27(金) 04:41:13
>>177
違法なもの勧めてんじゃねーよ厨房
179デフォルトの名無しさん:2009/03/27(金) 11:30:50
>>175
日本でもちょっと前に紹介されてるね
ttp://twc.xrea.jp/20080116/
知ってる人は普通にやってるテクニックだとは思うけど
180|Д゚彡 ◆A6VzDeLphI :2009/03/28(土) 00:54:36
すばらしいテクですな。
181デフォルトの名無しさん:2009/03/28(土) 01:03:05
〜Exと拡張していたコンポをそれでリプレースしたい誘惑に駆られるな・・・
フサは日常的に置き換えちゃったりしてる?
182|Д゚彡 ◆A6VzDeLphI :2009/03/28(土) 11:00:35
時々。

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

コンポインストールしないほうが楽かと。
183デフォルトの名無しさん:2009/03/28(土) 11:08:13
それじゃ Delphi 使う意味何所にあるのかしら。
184デフォルトの名無しさん:2009/03/28(土) 11:16:56
コンポインストールするとIDE重くなるしな
185デフォルトの名無しさん:2009/03/28(土) 11:20:50
インストールするけど使わなきゃ起動時間にも影響でないよ。
使いたいときに、プロジェクトオプションで有効にするだけですむ
186デフォルトの名無しさん:2009/03/28(土) 12:05:01
パレットにロードする時間が増えるから影響がないことはないっしょ
187デフォルトの名無しさん:2009/03/28(土) 16:05:47
それで遅くなるような PC / Video カードなら窓から投げ捨てな
188デフォルトの名無しさん:2009/03/28(土) 17:12:00
俺が拾ってやるから
189デフォルトの名無しさん:2009/03/29(日) 23:12:03
IDEとコンポーネントが癒着しすぎてるのは確かだな。
プロジェクトごとにインストール出来るような仕組みが欲しい所。
現状一応チェックボックスで選べるようになってるけどもうちょっと進めて。
190デフォルトの名無しさん:2009/03/30(月) 10:02:08
パッケージ化しなくても、プロジェクト内のソースファイルからプロジェクト限定でパレットに登録できるようになればなぁ
191デフォルトの名無しさん:2009/03/31(火) 20:10:16
プロジェクト全体で定数を共有したいんだが方法ありますか?
192デフォルトの名無しさん:2009/03/31(火) 20:33:18
uAppCommon.pas
をusesしてるな
193デフォルトの名無しさん:2009/03/31(火) 22:07:30
おれもそんな感じ
194デフォルトの名無しさん:2009/04/02(木) 13:20:34
ファイルから読み込みたいお年頃
195デフォルトの名無しさん:2009/04/02(木) 15:52:23
2つ質問したいことがあります。

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

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


WindowsXP SP3 Delphi6 Personal
お願いします。
196デフォルトの名無しさん:2009/04/02(木) 18:37:31
197 ◆XcB18Bks.Y :2009/04/02(木) 19:19:30
最近全然書き込みがないなぁと思ったら板移転していたのですね。
(お気に入りからだと移転に気づかない罠でした)

198デフォルトの名無しさん:2009/04/02(木) 20:36:55
マウスがフォームから出たらフラグを立てるというのはどうすればいいんでしょうか
OnMouseMoveではフォーム上でしかイベントが起きませんし
199デフォルトの名無しさん:2009/04/02(木) 21:22:13
CM_MOUSEENTER CM_MOUSELEAVE
メッセージが飛ぶからそれを捕まえる。

Delphi CM_MOUSEENTER
で検索するとサンプルが出てくるよ。
200デフォルトの名無しさん:2009/04/02(木) 21:38:03
回答ありがとうございます
さっきまさにその方法で解決した所だったんですが今度はフォームの外でマウスボタンを放したイベントをキャッチできないか悩み中です
やりたいことは、えーとお絵かきソフトの消しゴムみたいな物で、クリック中に発動
操作中にカーソルがフォームの外に出てまた戻ってきてもボタンを押したままならそのまま作業できるが、
ボタンをどこかで離したら、無効になる
というものです
乱暴に操作するとカーソルがフォームの外に出ちゃう事もあると思うんですがそれでいちいちボタンを押しなおすのが面倒だと思うので
201デフォルトの名無しさん:2009/04/02(木) 22:04:07
MouseCaptureでできますた
スレ汚しすみませn
202デフォルトの名無しさん:2009/04/02(木) 22:45:28
delphi自体のツールバーでも使われてるようなアイコンって、何処にありますか?
ネットで検索しててdelphiインストール時に一緒にインストールされると見たのですが、場所が分からずImageListに追加出来ません。

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

Visual C# Express入れるとProgram Files\Common Files\MSなんちゃら
にそこそこモダンなビットマップが詰まってるよ。
204デフォルトの名無しさん:2009/04/02(木) 23:30:58
>>203
それってVC以外でコンパイルする物に使って良いの?
205デフォルトの名無しさん:2009/04/02(木) 23:44:59
>>203
入れてみましたが見当たりませんでした。。。
「Program Files\Common Files\MSなんちゃら」というフォルダが見当たりません。

Pro版にはzipでアイコンが固めてあるという情報をグーグル先生が教えてくれたので、そっちを当たってみます。
206デフォルトの名無しさん: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デフォルトの名無しさん:2009/04/03(金) 03:48:50
普通に文字コード絡みの問題だと思うが
210207:2009/04/03(金) 03:54:51
すみません、自己解決しました。
colcountはCarginal型なのですが、表示の際にハマっていただけでした…
211デフォルトの名無しさん:2009/04/03(金) 05:59:39
すいません、言語ではなくこのソフトに関する質問なんですが
左下にある(初期レイアウトでは)プロパティの中の設定する値が記述されてる部分のフォントの色って変えること出来ますか?

ターボ、xpです。よろしくお願いします。
212デフォルトの名無しさん:2009/04/03(金) 07:15:27
できません。
213デフォルトの名無しさん:2009/04/03(金) 09:53:53
なんでBooleanは8ビットも使ってしまうん?(´・ω・`)
214デフォルトの名無しさん:2009/04/03(金) 09:58:22
パソコンのしくみ
215デフォルトの名無しさん:2009/04/03(金) 14:55:57
8つのbooleanが詰まった1バイトのbooleans型を定義するといいよ。
216デフォルトの名無しさん:2009/04/03(金) 15:20:02
2009のサンプルコンポーネントが相変わらす古いものしか入っていないんですが、
使えるShellListViewって何処にありますか?
217デフォルトの名無しさん:2009/04/03(金) 18:56:04
指定フォルダ内のファイル数を、サブフォルダ内のファイルも含めて取得したいです。

hoge
-test1
hogehoge
-test2
-test3

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


FindFirstとFindNextでやろうとすると、サブフォルダ内の処理をする時に対象フォルダが移動する為、
FindNextで親フォルダを正しく検索する事ができません。
218デフォルトの名無しさん:2009/04/03(金) 19:26:54
はいはい再帰再帰
俺は太ってるから書けないけどね
219217:2009/04/03(金) 19:48:16
FindFirstでフォルダを列挙して、それをFileListBoxに突っ込んでCountを足す事でファイルカウントにしました。
再帰は良く分かりませんが、動くので取り敢えず上記ので実装しますorz
220デフォルトの名無しさん:2009/04/03(金) 21:53:05
221デフォルトの名無しさん:2009/04/04(土) 22:40:14
222 ◆XcB18Bks.Y :2009/04/06(月) 19:11:33
>>199
Turbo Delphi Explorerとか最近のバージョンだと
OnMouseLeaveイベントが実装されていますね。

最初は知らなかったので今までのように
自分でメッセージに応答するコードを書き終わってから見つけて涙目でした。
223デフォルトの名無しさん:2009/04/07(火) 09:32:11
Delphi7でFirebirdのクライアントアプリケーションを開発してましたが、
この度Delphi2009にバージョンアップしました。以前のソースを一部修正して
コンパイルは出来たのですが、実行すると一部文字列フィールドでサイズ不一致のエラーがでます。
データはVARCHAR(8)のSJIS_0208の項目に半角英数字で10文字セットされた行でエラーが出ていますが
対処法がわかりません。テーブルのデータ構造をVARCHAR(16)に再構築すればいけるかと思いますが、
できればテーブルはそのまま使いたいのですが、無理でしょうか?
224デフォルトの名無しさん:2009/04/07(火) 20:45:23
    ∧__∧
    (´・ω・)   無理どす
    ハ∨/^ヽ
   ノ::[三ノ :.、
   i)、_;|*く;  ノ
     |!: ::.".T~
     ハ、___|
"""~""""""~"""~"""~"
225デフォルトの名無しさん:2009/04/08(水) 13:07:58
TMenuItemに複数のShortCutを設定するにはどうすればいいでしょうか?
226デフォルトの名無しさん:2009/04/08(水) 13:55:40
パーテーションなどディスク上のデータを直接読みたいのですがどうすればいいでしょうか?
Delphi3です。10年くらいブランクがあるのでほとんど忘れてしまったorz
低レベルなアクセスだとやっぱりAPIを駆使でしょうか?
Delphi側で手軽に扱える便利な手続きが用意されてると有り難いのですが。。。
詳細はググりますんで、検索キーワードだけでもご紹介くださいませ
227デフォルトの名無しさん:2009/04/08(水) 14:07:16
>>225
TActionList&TActionだとセカンダリを指定できる。
MenuItemよりAction使っといた方が全体的に便利だよ。
228デフォルトの名無しさん:2009/04/08(水) 15:01:38
>226
それはWin32APIスレにいったほうがいいような。Delphiで簡単に、という性質のものではない。
あとOS(2000/XP/Vista)によってもプログラミングに違いがあると思う。UACとか。
229226:2009/04/08(水) 15:31:34
>>228
やっぱりAPIですか。誘導してくださってありがとうございます。
230デフォルトの名無しさん:2009/04/08(水) 16:52:16
>>227
Actionは使ったこと無かったので思いつきませんでした
ありがとうございます
231デフォルトの名無しさん:2009/04/08(水) 23:11:02
今DDEのヘルプを読んでるんですが、
サーバーからデータA、データB 、データCを取得したいときって
DDEクライアントを3つ置かないといけないですか?
232デフォルトの名無しさん:2009/04/09(木) 04:57:24
統合アーカイバコンポーネント
ってもうどこにもないですかねぇ…?
ググったけどDelphian Worldは閉鎖されてるし…
233デフォルトの名無しさん:2009/04/09(木) 10:09:28
234デフォルトの名無しさん:2009/04/09(木) 16:06:29
>>233
ありがとうございます。
235デフォルトの名無しさん:2009/04/10(金) 12:28:12
質問です。
ToolBarコンポーネント上にボタンを複数配置し、
実行中にボタンのVisibleプロパティを変更した場合、
ボタン新規作成でToolButtonを配置していた場合は
自動的にVisibleがFalseになったボタンより右のボタンは
自動的に左詰めしてくれるのですが、
SpeedButtonを配置していた場合、
VisibleをFalseにしたボタンの部分が空いてしまい、
それより右のボタンが左詰されません。
(設計時にVisibleをFalseにして実行した場合は左詰してくれますが)
SpeedButtonでも自動的に左詰してくれるようになる
プロパティとかはないでしょうか。
Delphi4を使用しています。
236デフォルトの名無しさん:2009/04/10(金) 12:32:25
if Visible then Width := 32 else Width := 0;
237デフォルトの名無しさん:2009/04/10(金) 13:07:43
CombBoxってタブオーダー無視する?
タブストップはTrueにしてるんだけど次のやつにいっちゃう。
DEL7です。
どなたかよろしく。
238デフォルトの名無しさん:2009/04/10(金) 13:17:56
>>237
まず新規アプリケーションにComboBoxを100個並べてTABキー押してみてくれ。
239デフォルトの名無しさん:2009/04/10(金) 16:57:20
高級INIファイル程度の感じで簡単にXML読み書きするのってどうやるのが楽?
Delphi XMLで検索するとOpenXMLとかいうのがヒットするみたいだけど。
240デフォルトの名無しさん:2009/04/10(金) 19:07:23
大人しく付属してるTXMLDocument使えばいいんじゃ。デフォルトでMicrosoftのXMLパーサー使うように
なってたような。嫌なら切り替えれたような。
241デフォルトの名無しさん:2009/04/11(土) 23:39:00
>>237
今試してみたが普通にTAB移動するぞ D2007,D5
Styleプロパティも変えてみたけどOKだ
新規フォームでもう一度試してみな
また、そんなときはうまくいかないComboBoxを選択してCtrl+Cして
エディタにでも貼り付けて違いを調べるんだ
お前の言う「昆布ボックス」がカスタムコンポーネントなら知らん
242デフォルトの名無しさん:2009/04/12(日) 09:49:26
製品版を購入するには2009だと10万弱かかるので、ためらっています。
バージョンアップ版は4万強ですが、例えばTurboをインストしていれば、
それが使えるとかの技はありませんでしょうか?それとも素直に10万弱
出すしかないのでしょうか?どうかご教示ください。
243デフォルトの名無しさん:2009/04/12(日) 09:55:37
DEL6なんだけど今時のインターフェイスのフォルダー選択コンポーネントないかな?
244デフォルトの名無しさん:2009/04/12(日) 10:38:45
ライセンス関係は Codegear に聞いてください
電話かメールで尋ねられるとおもいます

実のところ、アップデート版のインストーラーは既存製品のインストール状況を
チェックしません。純粋に、ライセンス、契約の問題です。
もっとわかりやすく言うと「アップデート版はアップデートユーザーが使うと信じてるよ」です
245デフォルトの名無しさん:2009/04/12(日) 12:29:59
んなこたーない
246デフォルトの名無しさん:2009/04/13(月) 09:13:16
>>243
今時って?こういうコンポーネントじゃなくて?
http://mrxray.on.coocan.jp/Delphi/plFileDialog/index.htm
247デフォルトの名無しさん:2009/04/13(月) 20:48:22
Delphi6 personalでIndyインスコしてIdHTTPをForm1に貼り付けると「IdBaseComponent.dcuが見つかりません」とでてコンパイルできません。
なぜでしょうか?

もしかしてDelphi6 PersonalとTurbo Delphiの両方をインスコしてあるからなんですかね?
248デフォルトの名無しさん:2009/04/13(月) 21:49:45
ライブラリパスは設定したのか?
249デフォルトの名無しさん:2009/04/13(月) 22:00:52
>>248
すいませんライブラリパスとは何ですか?
具体的に教えてもらえると助かります;;
250デフォルトの名無しさん:2009/04/13(月) 22:34:31
ツール(T)→環境オプション(O)→ライブラリ→ディレクトリ→ライブラリパス(B)
ここにIndyの入ってるディレクトリを追加する
251デフォルトの名無しさん:2009/04/13(月) 23:31:12
>>246
レストン
左側にマイコンピューターとかマイネットワーク
とか出て、フォルダーの新規作成も出来てみたいなの
が無いかなと思ったんですが、紹介してもらったのは
ソースつきなんで勉強がてら改造してみます。
252デフォルトの名無しさん:2009/04/14(火) 00:21:16
dllインジェクションやりたいお
253デフォルトの名無しさん:2009/04/14(火) 00:29:45
>>251
> 左側にマイコンピューターとかマイネットワーク

それってただのTOpenDialogでは?
Vista風の見た目とかなら探せばコンポ落ちてるだろうけど
254デフォルトの名無しさん:2009/04/14(火) 02:57:10
http://blog.toratech.net/article/25228591.html
を参考に、Delphi2009にQuadruple Dをインストールしようとしてるのですが、
再構築のところでエラーが出てコンパイルが出来ません・・・
何が悪いのか見当すら付かないんですがヒントをお願いします
255デフォルトの名無しさん:2009/04/14(火) 04:07:02
せめてエラーメッセージをおしえて
256デフォルトの名無しさん:2009/04/14(火) 04:13:23
いきなり30個くらいあったので・・・
最初は定義の多重宣言とか言われて、とりあえず//でコメントアウトしていくと、
constの所で、(が必要な所に;があります、とか言われて
もうわけわかめでした
257デフォルトの名無しさん:2009/04/14(火) 08:43:06
解決する気がないならチラシの裏へどうぞ。
258デフォルトの名無しさん:2009/04/14(火) 08:49:41
はあ
何を根拠にそんなアオリを入れてるのか知りませんが
http://kazina.seesaa.net/article/38725486.html
↑の通りにやっても同じ結果でしたね
TurboDelphiでは問題なく実行出来ましたが
259デフォルトの名無しさん:2009/04/14(火) 08:58:18
めんどくさがらずに、エラーの最初の10行ぐらいをコピペしてみろよ
260デフォルトの名無しさん:2009/04/14(火) 09:23:12
何の権利があって人に命令してるんですか?
物の頼み方を知らない人ですね。
261デフォルトの名無しさん:2009/04/14(火) 09:33:51
>>254-259
ID無いからわかりにくい。アンカーくらい付けろや!

262デフォルトの名無しさん:2009/04/14(火) 09:52:03
わからないのなら黙っててください。
263254:2009/04/14(火) 09:58:51
すいません、自己解決しました!
264251:2009/04/14(火) 10:27:47
>>253
そうなんですけど、OpenDialogではファイルを選ばないといけないでしょ?
2,3フォルダーコンポ落としたんですが、フォルダーの新規作成とかが
ないものばかりで。
265デフォルトの名無しさん: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デフォルトの名無しさん:2009/04/14(火) 18:01:06
>>250
ありがとうございます!
解決しました!
267デフォルトの名無しさん:2009/04/14(火) 19:04:19
>>264

>>246 のは新規作成できるみたいだね。でもフォルダ選択で
> 左側にマイコンピューターとかマイネットワーク
ってのは見たことないなあ。あったら便利な感じもするけど…
もし作ったら公開してくださいね^^
268デフォルトの名無しさん: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デフォルトの名無しさん: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デフォルトの名無しさん:2009/04/14(火) 20:25:50
IDList:=SHBrowseForFolder(BrowseInfo);
if IDList=nil then
begin
Result:='';
exit;
end;
SHGetPathFromIDList(IDList,PathName);
Result:=PathName;
end;
271デフォルトの名無しさん:2009/04/15(水) 23:19:33
DELPHIのブラウザコンポーネント使ったら、
ブラウザ画面から目的の文字列を探すことって簡単に出来ますか?
ソースをダウンロードして検索したほうが簡単ですか?
272デフォルトの名無しさん:2009/04/16(木) 06:06:13
imiwakannne
273デフォルトの名無しさん:2009/04/16(木) 15:30:58
[Delphi] WebBrowserからHTMLソースを取得する

uses mshtml;

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

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

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

WindowsXP SP3 Delphi6 Personal Indy10 です。
どなたかご教授お願いします。
277デフォルトの名無しさん:2009/04/18(土) 23:41:16
278デフォルトの名無しさん:2009/04/18(土) 23:43:34
いるよね
超初心者用ってスレなのに上から目線で英語のサイトくらい嫁とか言う奴
まあそんなんだから廃れたんだろうなDelphi
あ、俺は只のROMで質問者じゃないからね
279デフォルトの名無しさん:2009/04/18(土) 23:45:55
>>278
コピペ?
280デフォルトの名無しさん:2009/04/18(土) 23:49:25
>>278
どっちも日本語だけどな
281デフォルトの名無しさん:2009/04/18(土) 23:51:03
しかも普通にIndyの公式とかしかヒットして無い様に見えるんだけど何が言いたいんだろうね
282デフォルトの名無しさん:2009/04/18(土) 23:52:04
ああ
IEで開いたら日本語だったわ
283デフォルトの名無しさん:2009/04/18(土) 23:55:32
google.co.jpじゃなくて.comだから、外国だと思ったんだろう
いるよね?リンクの中身すら見ずにURL名だけで判断する奴
あ、俺は只のROMで質問者じゃないからね
284デフォルトの名無しさん:2009/04/18(土) 23:57:28
なんでプログラム板ってID非表示?
質問スレが多く立ちそうな板なのに不便アル
285デフォルトの名無しさん:2009/04/18(土) 23:59:12
まあ俺の勘違い?だったから罵倒してくれていいんだが
Firefoxだと
Delphi Indy i’≫
になってて英語サイトしかヒットしてないんだよ
文字エンコードはUTF-8だけど他のに変えても駄目だ
IEとChromeで開いたらDelphi Indy 進捗になったよ
286デフォルトの名無しさん:2009/04/19(日) 00:01:17
>>285
俺FireFoxだけど普通に表示されたぞ
287デフォルトの名無しさん:2009/04/19(日) 00:03:29
Accept-Languageで日本語が無いか優先度が低いんじゃね
288デフォルトの名無しさん:2009/04/19(日) 00:04:11
そっか
じゃあ俺の環境がなんかおかしくなってんだな
正直すまんかった
あと俺は本当に質問者じゃないから本人さんに何も関係ないことだから

以前他の言語のくだすれでちょっとあって・・・
脊髄反射で書き込んでしまった
289デフォルトの名無しさん:2009/04/19(日) 10:03:38
必死だな質問者
290デフォルトの名無しさん:2009/04/19(日) 21:56:08
ネットのログインを自動でやりたいんだけどdelでやる時の
参考になるページ教えてください。
291デフォルトの名無しさん:2009/04/19(日) 22:17:41
俺はVBやC#の例を見ながら作ったぞ。
292デフォルトの名無しさん:2009/04/19(日) 22:43:14
おまいIndyスレに書き込んだヤツか。
失敗している原因をちゃんと調べないとダメだぞ。
293デフォルトの名無しさん:2009/04/19(日) 22:54:42
そもそも、ネットのログインってのが抽象的でよくわからない
294デフォルトの名無しさん:2009/04/19(日) 22:56:11
>>292
>おまいIndyスレに書き込んだヤツか。
>失敗している原因をちゃんと調べないとダメだぞ。
残念ながら違う。
自動ログイン DELPHIでググったんだけど、いまいちピンと来なかったんだ。
295デフォルトの名無しさん:2009/04/19(日) 23:04:21
IEコンポ使う方法とIndyでやる方法じゃあ、全然違うからな。
296290:2009/04/19(日) 23:43:40
>>291,295
レストンです。
ログインして、ブラウザに表示されるページの中からキーワードを
拾い出したいんですが、出来ればブラウザを起動させずに出来ないかなと
思い調べてました。
297デフォルトの名無しさん:2009/04/20(月) 01:27:25
で、何を使ってどんな風にどこまで作って何が不満だったかくらい言おうよ。
298デフォルトの名無しさん:2009/04/20(月) 09:27:21
質問の内容が悪くてすみません。
テンパってて。

ブラウザを起動させなくてもURL直接送ってページに表示されるHTML
の内容を取得して、目的のキーワードを取得は出来るんですが、
最初にログインが必要な場合にどうすればいい買って事なんです。
299デフォルトの名無しさん:2009/04/20(月) 10:10:50
>>298
何言ってるかいまいちだがログインすればいいだけじゃないのか?
300デフォルトの名無しさん:2009/04/20(月) 10:15:26
>>290の時点で何を聞きたがってるのか分からない奴ってアホだろw
301デフォルトの名無しさん:2009/04/20(月) 10:19:16
>>300
じゃあお前が教えてやれ
よかったな>>290
今から>>300が教えてくれるぞ
302デフォルトの名無しさん:2009/04/20(月) 10:44:10
>>300
お前は黙ってろ
303デフォルトの名無しさん:2009/04/20(月) 12:18:00
>>298
「indy コンポーネント BASIC認証」でググレ
「自動ログイン DELPHI」は酷すぎるwww
304290:2009/04/20(月) 13:01:56
>>303
今からググって見ます。
アリガトン
305デフォルトの名無しさん:2009/04/20(月) 13:34:58
BASIC認証のサイトなんてもう少ねえよな。
まあどんな認証方法のサイトなのかは知らんけど。
306290:2009/04/20(月) 13:57:00
認証に種類があるんですか。
そんなことも知らなかった。
おとなしく、ブラウザを表示させて
自動入力みたいにしたほうが初心者には
簡単ですね。多分。
307デフォルトの名無しさん:2009/04/20(月) 20:21:09
まずDelphiの前にHTTP勉強しろ
308290:2009/04/21(火) 01:06:15
ごもっともです。
309デフォルトの名無しさん:2009/04/21(火) 02:19:31
マジレスすると>>305の言うようにBASIC認証じゃなさそうだし、
たぶんmixiみたいなIDとパス入れてログインするようなサイトなんだろうけど、
ログインしてすぐのページさえ取れればいいのならIndyでGetの代わりにPost使えば大概簡単に取れる
ただしSSLが必要だったりページの遷移があったりすると色々と面倒なんで、
IEコンポを貼り付けて見えないサイズにして(単純にVisible:=Falseだと動かない場合があった気がする)、
あとはNavigate辺りでJavaScript呼ぶかレイトバインドで直接タグ操作してやれば確実
こっちの方が資料も豊富だろうし
310デフォルトの名無しさん:2009/04/21(火) 10:31:20
認証時に何をPOSTしてるのか調べて、同じようにPOSTするプログラムを書けばよろしい。
311デフォルトの名無しさん:2009/04/21(火) 14:26:05
フォーム認証だとログインしたあとにセッションかクッキーでログイン状態を管理すると思うけど、
そのあたりindyだとどうやるんだろね
単にページを巡回したいなら、スクリプトでコントロールをクリックしたり
ページ遷移できるブラウザがあったと思うんだけど、
それを使えば便利だが、趣旨とは異なるかな?
312デフォルトの名無しさん:2009/04/21(火) 14:58:04
サブフォームをモーダルで開いた時にメインフォーム上の処理を行いたいんだが
OnDeactivateに書いても動作せず。試しにこんな感じで。
procedure TForm1.FormDeactivate(Sender: TObject);
begin
form1.Color := clwhite;
end;
どうすればいいんでしょ?
313デフォルトの名無しさん:2009/04/21(火) 15:07:33
Form2.ShowModal;
したらフォーム閉じるまで制御が戻ってこないんだからどうにもならない。
Form2側からuses Unit1;して
Form2Showかなんかで
Form1.Color := clWhite
してみたら
314デフォルトの名無しさん:2009/04/21(火) 16:27:49
Halbowさんと俺とゲームボーイの誕生日が今日らしい
誰か祝ってやれ
315デフォルトの名無しさん: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
316315:2009/04/21(火) 16:46:04
追記:

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

フォルダをファイルが入った状態で削除するにはコレが良いとGoogle先生に聞いたので。
317デフォルトの名無しさん:2009/04/21(火) 20:15:55
>>314
Halbowさんおめでとうございます
318デフォルトの名無しさん:2009/04/21(火) 20:19:33
>>315
フォルダをつかんでる(ロックしてる)んではなくて、そのフォルダで作業してる
(カレントフォルダになってる)だけだと思う
処理が終わったら
SetCurrentDir(ExtractFileDir(Application.ExeName));
して味噌
319デフォルトの名無しさん:2009/04/21(火) 21:04:06
>>315
それオレもハマった。FindFirstが原因だと思うよ。FindFirstが終わったら
FindClose(SearchRec)とかやってクローズする必要があると思う。
320デフォルトの名無しさん:2009/04/21(火) 21:06:24
削除前にきっちりFindCloseを呼ぶ。
カレントディレクトリってコマンドプロンプト以外でもロックしちゃうんだっけ?だったら戻した方がいいかも。
321デフォルトの名無しさん: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デフォルトの名無しさん: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
323315:2009/04/22(水) 19:07:58
>>318-320
ありがとうございます。対応入れてみました。
結果、複数フォルダがある場合に、最後の一つだけは削除できるようになりました。

まだ何処かでロックしてるみたいですorz
324デフォルトの名無しさん:2009/04/22(水) 21:37:56
>323
原因は間違いなくFindCloseのし忘れ。FindFirstした分必ずFindCloseすること。
おそらく今は最後の一回分しかFindCloseしてないんじゃないか?
325デフォルトの名無しさん:2009/04/22(水) 23:25:56
Delphiのグラフ書くコンポーネントって
2本の折れ線グラフが交差した座標を検出とか
そんな機能あるわけないよね?
326デフォルトの名無しさん:2009/04/23(木) 00:26:40
あるわけがない。
ポイントの座標くらいなら自分で取得できそうだし、
交点くらいちょびっと計算して出せよ。
327321:2009/04/23(木) 02:10:16
>>322
レスありがd
constに代入してるのはPascal初心者には奇怪だったんですが
やっぱりDelphiな人にも奇怪だったのね。
const取ってvar内に宣言したり、言われて{J+}オプション(理解できてない)
入れたりしたらビルドは通ったんですが、別な例外で動かないですわ。
まだまだ手に負えそうにないんで、おいらもTRegExprにしてみる。
328デフォルトの名無しさん:2009/04/23(木) 03:06:48
constへの代入が何故使われてるかというと、あれはDelphiでスタティック変数もどきを使用するテクニックなんで、
動作するには前回の値が保存されてる必要があるから、単純にvarにするだけじゃ動かない
実体はスコープが関数内に限定されたグローバル変数だから、宣言をfunctionの外に移動させてやればおk
ただ$Jスイッチは局所的に有効になるから、ユニットの先頭にでも{$J+}と書くのが一番確実かな
329デフォルトの名無しさん: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デフォルトの名無しさん:2009/04/23(木) 05:09:19
というか、DLLで良いのなら鬼車の方が良いかな
http://homepage2.nifty.com/Km/onig.htm
(DLLのLinkがonig.zip になってるけどonig.lzhが正解)

http://www.geocities.jp/jview2000/oniguruma.html
331デフォルトの名無しさん:2009/04/23(木) 11:53:16
クラス化してくれ…
332デフォルトの名無しさん:2009/04/23(木) 19:29:51
>>328
322だが、もちろんその使い方で私も使ってます
ただ、くだんのBRegExp.pasでは単に初期化するだけに使っていることを
確認してのレスでした
333デフォルトの名無しさん:2009/04/23(木) 22:35:40
エクセルのブックをDelphiで作成したいのですが、
Excel := CreateOleObject('Excel.Application');
てやるとエクセルが起動しちゃうんですよね?

起動させずにブックを作ることって出来ませんか?
334デフォルトの名無しさん:2009/04/23(木) 22:49:55
不可能
でも表示をオフにすれば起動されたことはわからんけど。
335デフォルトの名無しさん:2009/04/23(木) 22:59:47
鬼車をLoadLibraryなどの実行時動的リンクではなく、
ロード時動的リンクしようとすると、Delphiが変数のインポートをサポートしてないから
面倒なんだよな。Delphiってうんこだよな。
336デフォルトの名無しさん:2009/04/23(木) 22:59:49
レストンです。
そうですか。
シートに書き込むデータがアドインソフトに関するもので書き込んだ瞬間

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

見たいなメッセージが出てきてしまします。
エクセルの特定のアドインを一時的にとめることって出来ますか?
エクセルのヘルプに見ても登録と削除しか出てこないようなので。
337デフォルトの名無しさん:2009/04/24(金) 00:50:22
>>333
勿論できるぞ。種になるブックをどこかに作っておき、
それをコピーするんだ。実行自体にはExcelすら要らん。
338デフォルトの名無しさん:2009/04/24(金) 01:05:32
>>336
削除と登録ができるのに、一時的に止められないってこたないだろ。
削除して、また登録すればいいんだから。

それはさておき、
Excel.AddIns['アドイン名'].Installed := false;
Excel.AddIns['アドイン名'].Installed := true;
あたりで出来ないか?
339デフォルトの名無しさん:2009/04/24(金) 05:57:23
340デフォルトの名無しさん:2009/04/24(金) 08:05:52
>>337,338,339
ありがとうございます。

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

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

>>339
これコンポーネントですよね。
よさそうなんですが、ダウンロードするところがよくわからなかった。orz
341デフォルトの名無しさん:2009/04/24(金) 10:51:59
ポインタについてなんですけど、
ある手続きで参照先のデータを解放した後に、
別の手続きでその場所にデータがあるかどうか調べるって事は出来るんでしょうか?
342デフォルトの名無しさん:2009/04/24(金) 12:18:31
出来ない。
メモリの内容見てそれがオブジェクトなのか、生きているのか死んでいるのかを厳密に判別する術はない。

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

とかやって参照自体を潰して参照がnilかどうかで判断するのが定石だな。
343デフォルトの名無しさん:2009/04/24(金) 20:06:14
メモリマネージャを差し替えればそれっぽいことができなくもないけど、激しくオススメしない
344デフォルトの名無しさん:2009/04/24(金) 20:58:07
どんな手使っても、アプリケーションが全てと思うけどな。
やな手使って欲しくないけど…
345デフォルトの名無しさん:2009/04/24(金) 21:19:38
よーわからんけど
ポインタが有効かどうかって
Assignedすればエエだけなんじゃねえの?
外していたらメンゴ
346デフォルトの名無しさん:2009/04/24(金) 21:23:40
Assignedはnilチェックだよ
347デフォルトの名無しさん:2009/04/25(土) 03:27:42
EAccessViolationで囲むとか
動いたり動かなかったりだろうからオヌヌメしない
348デフォルトの名無しさん: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デフォルトの名無しさん:2009/04/25(土) 20:18:50
leadbytesとかは使えないの?
351デフォルトの名無しさん:2009/04/25(土) 21:11:09
WideStringなら
単純に文字コードを見ればわかるけど。
1バイトなら半角だし、2バイトなら半角カナかをチェックする
352デフォルトの名無しさん:2009/04/25(土) 21:25:34
unicodeの事いってるんなら1バイトで全角幅もあるぞ
353348:2009/04/26(日) 05:15:41
そういや>>348でp1^のメモリを確保してないや。
最初にNew(p1);、最終的に完全にいらなくなったらDispose(p1);が必要だった。
354デフォルトの名無しさん:2009/04/26(日) 08:38:57
>>349
シフトジスに変換した後にチェックすればいいじゃん。
ウンコードを呪え。
355DEKO: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デフォルトの名無しさん:2009/04/26(日) 11:45:47
Cみたいな言語から移ってきたとみた
359デフォルトの名無しさん:2009/04/26(日) 11:47:11
>>356
それがユニコード糞、っていわれるゆえんだよ
360デフォルトの名無しさん:2009/04/26(日) 16:03:07
>elphi2009で文字を扱うときって、サロゲートとかエレメントとかコードポイントとかバイトとか、ややこしいですね(>_<)
煽っている人がいるだけで、大した問題はないよ。
361デフォルトの名無しさん:2009/04/26(日) 16:31:00
言語レベルで隠蔽されてしかるべき情報を考慮してコーディングしないといけないのは問題ではないの?
362デフォルトの名無しさん:2009/04/26(日) 20:03:45
ウンコードが半角全角の区別がメンドイという致命的な欠点を持っているのは確か
363デフォルトの名無しさん:2009/04/27(月) 02:24:25
win2000で2009使ってる人います?
デバッグの停止ボタン押した後再開出来なくないですか?
364デフォルトの名無しさん:2009/04/27(月) 15:19:23
>>361
.NET も UTF-16 で全言語で同じていたらくだけど何を使えばいいの?
365デフォルトの名無しさん:2009/04/27(月) 18:38:55
.NETがどうかは別に関係なくね?
Delphiの設計方針から言えば、隠蔽されててもおかしくない気はする
最近の開発にそこまで求める方が酷なのかもしらんが
366デフォルトの名無しさん:2009/04/28(火) 08:52:33
TEditのOnChangeイベントでTEdit.Textを取り出すとき
IMEを起動して日本語入力してると変換した最初の文字だけが
TEdit.Textに入ってきたりしない?
コーディングが悪いのかなあ…。
Turbo Delphi Explorerにて。
367デフォルトの名無しさん:2009/04/28(火) 11:08:27
>>366
Caption:=Edit1.Text;
これで最初の文字しか取得できてないってこと?
368デフォルトの名無しさん:2009/04/28(火) 13:05:57
そもそも、文字に幅があると思ってる考え方が間違ってるので、正すのはおまえらの思考。
幅をもってるのはあくまでグリフって誰かいってなかったっけ?
369デフォルトの名無しさん:2009/04/28(火) 14:20:46
>>367
Captionじゃないけどそんなかんじです。
FirefoxやiTunesみたいなインクリメンタルな検索を実装してるのだけど
たとえば「饅頭」と打ったときTEdit.Onchange内では「饅」しか入っていないので
打った「頭」を検索クエリに入れられず困ってるという話。
(ここまで書くと丸投げっぽいな…)
370デフォルトの名無しさん:2009/04/28(火) 14:28:08
>>369
頭が入力された時にもう一度OnChangeイベントが発生してるだろ。
371デフォルトの名無しさん:2009/04/28(火) 14:33:20
>>369
自分のはTurboじゃなくてDEL7なんだけど、
単純なコード書いて試した?
OnChangeにCaption:=Edit1.Textて書いて実行すると、確定するたびに
「まんじゅう」と入れて「まん」だけ確定すると「饅」表示、次に「じゅう」を
確定すると「饅頭」がちゃんと表示されるけど。
372デフォルトの名無しさん:2009/04/28(火) 14:34:23
>>371
X OnChangeにCaption:=Edit1.Textて書いて実行すると、確定するたびに
  「まんじゅう」と入れて「まん」だけ確定すると「饅」表示、次に「じゅう」を

○ OnChangeにCaption:=Edit1.Textて書いて実行すると、「まんじゅう」と
  入れて「まん」だけ確定すると「饅」表示、次に「じゅう」を
373デフォルトの名無しさん:2009/04/28(火) 15:00:33
>>369
変換を伴うインクリメンタルサーチやるときは、IMEのメッセージ捕まえた方が色々とやりやすい
374デフォルトの名無しさん:2009/04/28(火) 15:33:14
コンソールアプリで出力に色つけるのってどうやるの?
無理やりドライバ入れてエスケープシーケンスでじゃなく正式なやり方で。
375デフォルトの名無しさん:2009/04/28(火) 15:58:47
>>374
コンソールAPIを使う。
これをラップしてTurbo Pascalを模したcrt32っていうユニットが
http://www.kobira.co.jp/sakura/d_Con_Cgi.htm にあるから
こういうのを使うと簡単。
376デフォルトの名無しさん:2009/04/28(火) 21:14:17
>>368
学者の詭弁乙
377369:2009/04/28(火) 23:52:39
いろいろレスどもです。
確かにCaption変えるだけだと問題ないっすね。
イイワケにならんけど入れてまだ一週間くらいなんで
ヘンな記述してる可能性も捨て切れません。

OnChangeのたびにSQLiteぶん回すのがキツイのか
単純な記述ミスがあるのか、もう一度じっくり眺めてみて
どうしようもなかったらIMEのメッセージ(ってのも初めて見る世界)
の線でぐぐってみます。
378デフォルトの名無しさん:2009/04/29(水) 05:14:54
IEやFireFoxから画像をドラッグ&ドロップされたのを受け取るには、どうしたらいいもんでしょうか・・。
379デフォルトの名無しさん:2009/04/29(水) 07:33:26
OLEを使う
どっかにそういうコンポがあったからそれ使うと簡単にできると思う
380デフォルトの名無しさん:2009/04/29(水) 21:04:08
procedure ahya;
begin
ahya;
end;
381デフォルトの名無しさん:2009/04/29(水) 22:06:42
stack overflow
382デフォルトの名無しさん:2009/04/30(木) 08:39:33
>>377
> OnChangeのたびにSQLiteぶん回すのがキツイのか
383デフォルトの名無しさん:2009/04/30(木) 13:01:08
Cのsystem()関数ってないの
384デフォルトの名無しさん:2009/04/30(木) 16:04:09
つWinExec
385デフォルトの名無しさん:2009/05/01(金) 10:30:37
VirtualListViewに256x256のサムネイル画像を並べているのですが、StretchBlt

縦横比を変えずに縮小するために
JpegをTPictureで読み込んでBMP.Assignするときに凄く時間がかかってしまいます
最初は中村氏のBitmapUtils.Stretchを使ってからStretchBltしていましたからもっと時間がかかっていました
TVirtualExplorerEasyListviewなどはエクスプローラ並みのスピードで表示されるので方法次第だと思うのですが
ソースがないので手法が分かりません
どの方向で考えたらいいでしょうか?御指南ください
386デフォルトの名無しさん:2009/05/01(金) 13:43:04
>>385
TJpegImageのScale使うか、
写真ならExifのサムネイルを読み込むか。
387デフォルトの名無しさん: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デフォルトの名無しさん: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デフォルトの名無しさん:2009/05/01(金) 18:24:11
つGDI+
390デフォルトの名無しさん:2009/05/02(土) 14:22:24
>>385
ちなみにサムネイル生成処理はちゃんと別スレッドでやってる?
画像ファイルが1000超えるような場合のエクスプローラの挙動見れば分かるけど、
非同期でやらないとどれだけ高速化しても厳しいと思うよ
391デフォルトの名無しさん:2009/05/02(土) 19:20:06
そうですね、10個表示されてたらいくつも平行してサムネイルが描画されていってますものね
私もスレッドはやってみようとしかけたのですが、結局ImageListに登録する所あたりで挫けてしまいました
スレッドCreateでFileName、サムネイルの大きさを渡してBitMapを返してもらうのか(どうやって?)
スレッドの中でImageListにAddするのか
ListView.OnDataHintとスレッドがどんなお付き合いにしたらいいのかが分からないのです
あ、ちなみに>>389さんのGDI+は試したらずいぶんと速くなりました
392デフォルトの名無しさん:2009/05/02(土) 20:16:40
CなどのコードをDelphiへ移植する時、Delphiで使えない識別子があった場合はみなさんどうしてますか?
393デフォルトの名無しさん:2009/05/02(土) 21:58:43
comboboxのitemを右クリックしたらポップアップメニューを出したいんだけど、
どうしたら良いですか?
ContextPopupにPopupmenu1.Popup(X,Y)ってやっても何も起こらないです。
394393:2009/05/02(土) 22:27:06
事故レスです。
レジマネジャーって言うフリーのコンポの
バグみたいです。
新規でテストプログラムかいたら出来ました。
395デフォルトの名無しさん:2009/05/03(日) 19:27:46
>>391
実際にスレッド内部からImageList.Add呼んだら問題が起きた?そこまでやったの?
とりあえずぐちゃぐちゃになってもいいからやってみないことには問題点も分からないじゃない
396デフォルトの名無しさん:2009/05/03(日) 22:11:13
やってみました。
何度も暴走させながらも(スレッドってまともに動かしたことがないもので)出来ました
目に見えるItemが同時に読み込まれている感がないのでまだまともに出来ている
ワケではないのでしょうが取り敢えず正確に表示できて明らかに今までより
表示速度は速くなりました(4000Filesほど読み込ませても数秒でした)
ありがとうございました
397デフォルトの名無しさん:2009/05/03(日) 23:11:33
マルチスレッド歴1ヶ月のおいらがわかる事はとりあえず、
ImageList.Addメソッドの呼び出しは最低限、クリティカルセクションなりを用いて排他制御
しなきゃいけなさそうと言う事だけ。
後はわかんない。ぷぎゃ。
CriticalSection.Accuire;
try
ImageList.Add
finally
CriticalSection.Release;
end;
398デフォルトの名無しさん:2009/05/04(月) 00:36:07
いや、いらないからw
399デフォルトの名無しさん:2009/05/04(月) 01:01:10
>>397だけど、今、具体的にImageListのAddメソッド追ってみたけど、
内部でHandleNeededが呼ばれて、そのHandleNeededでフィールドのFHandleを参照しているから、
下手すると、
procedure TCustomImageList.HandleNeeded;
begin
if FHandle = 0 then CreateImageList;
end;
で、CreateImageListに複数のスレッドが同時に突入すると、イメージリストのハンドル
が複数作成され、迷子になっちゃわない?
ハンドルリークだから、まぁ、そこまで被害拡大しないと思うけど。
400デフォルトの名無しさん:2009/05/04(月) 01:12:08
ああ、というか、そもそも前提がお互い違うのかもね。
おいらの場合は、サムネイル作成するサブスレッドでImageListのAddメソッド
呼ぶ事を前提にしてた(それで出来るか分からないけど、ぷぎゃ)。
メインスレッドだけで、ImageList.Addメソッド呼ぶなら必要ないと思う。
401デフォルトの名無しさん: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デフォルトの名無しさん: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デフォルトの名無しさん: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デフォルトの名無しさん:2009/05/04(月) 01:47:39
Thumnailer := TThumnailer.Create(True, FileName, Size, Bitmap);

Thumnailer := TThumnailer.Create(True, FileName, Size);
だった。orz
405デフォルトの名無しさん:2009/05/04(月) 01:51:34
「こんなクラス名は嫌だ」
406デフォルトの名無しさん:2009/05/04(月) 05:15:39
>>399
そのHandleNeededをあらかじめ呼び出しておけば何の問題もないわけだが
407デフォルトの名無しさん:2009/05/04(月) 08:48:00
プログラマのレベルがもろに出る、それがスレッド
408デフォルトの名無しさん:2009/05/04(月) 11:24:25
同時に走らせるスレッドの数の目安ってある?
409デフォルトの名無しさん:2009/05/04(月) 11:28:47
並列処理でパフォーマンス上げたいならコア数まで。
ただの非同期のバックグラウンド処理なら特にない。

調べてみたらFirefoxは19、Janeは11とかだな。
410デフォルトの名無しさん:2009/05/04(月) 13:57:04
プログラマのレベルと言えば、DelWikiに上がってるコード
あれはひどいね。目も当てられないというか。


411デフォルトの名無しさん:2009/05/04(月) 14:11:21
Wikiなんだから、ひどいと思ったら書き直して構いませんよ。
412デフォルトの名無しさん:2009/05/04(月) 14:28:42
410が弄ったコードの方が酷い、に一票
413デフォルトの名無しさん:2009/05/04(月) 21:07:57
>>380
while True do ahya;
414デフォルトの名無しさん:2009/05/07(木) 20:00:36
Delphiで終了確認のメッセージのソースの書き方ってどうやるのでしょうか?
お願いします。
Delphi2007です。
415デフォルトの名無しさん:2009/05/07(木) 20:48:50
意味がわからんw
416414:2009/05/07(木) 21:35:43
すまない、書き方がものすごく悪かったorz
Delphi2007で終了時に処理をしたいので、OnCloseを使ったソースみたいのを書いてください。
(なんか、うまくいえないな。終了確認のメッセージの書き方っていうのか?)
417デフォルトの名無しさん:2009/05/07(木) 21:41:49
普通はOnCloseQueryじゃね?
418デフォルトの名無しさん:2009/05/07(木) 21:49:36
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if messagedlg('終了しますか?',mtconfirmation,[mbyes,mbno],0)=mrno then action:=canone;
end;

こんなの?
419デフォルトの名無しさん:2009/05/07(木) 22:00:39
普通はOnCloseQueryだね
420デフォルトの名無しさん:2009/05/07(木) 22:01:13
IDEで挿入される文字以外小文字で書いてる人よく見るけど見にくくないのかな
421414:2009/05/07(木) 22:03:06
皆さん、テンクス!
できました。
422デフォルトの名無しさん:2009/05/07(木) 22:17:57
外人さんでたまに全部大文字の人もいるよね
423デフォルトの名無しさん:2009/05/08(金) 10:29:01
初めて買ったPascalの本に「コードは個性的に!」みたいな項があって
tHanとか推奨してたんだがさすがにどうかと思った。
424デフォルトの名無しさん:2009/05/08(金) 10:38:08
その本は捨てろ
425デフォルトの名無しさん:2009/05/08(金) 10:52:24
今のDELってヘルプちゃんとしてる?
426デフォルトの名無しさん:2009/05/08(金) 11:07:33
Delphiのヘルプがちゃんとするわけないだろ
427デフォルトの名無しさん:2009/05/08(金) 12:59:39
>>425
動くかという意味なら真。
機能するかという意味なら偽。
428デフォルトの名無しさん:2009/05/08(金) 16:51:47
今、DEL7使ってるんだけど最新のDELとC#とだと
どっちがいい?
荒れるならするーよろしこ
429デフォルトの名無しさん:2009/05/08(金) 17:02:52
C#, PowerShell, Iron Ruby/Pythonで.NET Frameworkの知識を駆使できるんならともかく
アプリ開発環境単体としてのC#はどうもぱっとしないなぁ。
ドキュメント含めた物量は大したもんだけど。
まあいまさら.NETアプリの起動の遅さなんて気にならないレベルだし
慣れと将来性を秤にかけて決めるべし。
430デフォルトの名無しさん:2009/05/09(土) 00:30:55
C丼でネイティブコードを吐くオプションを用意すれば一気に普及するのにな。
MSが強引に普及させようとしても、求められていないものは使わん。
431デフォルトの名無しさん:2009/05/09(土) 04:44:50
Delphi6 Personalって、もうDLできる所ない?

ちょっと前までは
ttp://www.cc.kyushu-u.ac.jp/ec/delphi/index.html
で出来たみたいなんだけど、今は出来なくなってる
432デフォルトの名無しさん:2009/05/09(土) 04:56:18
何で今頃?
VSの無料版なり、新しいDelphi買うなりすりゃいいじゃん。
433デフォルトの名無しさん:2009/05/09(土) 08:45:40
>>431
Borlandは死滅したよ
434デフォルトの名無しさん:2009/05/09(土) 11:33:36
DelphiとBorlandって関係あんの?
435デフォルトの名無しさん:2009/05/09(土) 13:07:38
>>434
逆に関係ないの?最初の開発発売元なのに?

つりですか?そうですか。
436デフォルトの名無しさん:2009/05/09(土) 13:10:42
孤独なおっさんの暇潰しは隔離スレでどうぞ
437デフォルトの名無しさん:2009/05/09(土) 13:16:22
ここまで俺の自演
438デフォルトの名無しさん:2009/05/09(土) 15:53:46
いや俺も1つだけ書いたよ
439デフォルトの名無しさん:2009/05/09(土) 16:15:14
僕も書いたよ。
440デフォルトの名無しさん:2009/05/09(土) 20:19:26
Susie Plug-in 読込コンポとビットマップ
spis126.zip
作者 計 氏

って、まだ落とせるとこあるかな?
441デフォルトの名無しさん:2009/05/09(土) 21:14:13
Susie Plug-in 読込コンポとビットマップ
で検索するとそれらしいのが
442440:2009/05/09(土) 21:42:21
>>441
たぶん最後はDelphian Worldにリンクされてない?
Delphian Worldがなくなったのは本当いたい…
443デフォルトの名無しさん:2009/05/09(土) 21:57:48
444440:2009/05/09(土) 22:11:23
>>443
おお、ありがとん。
しかもDelphi2009対応版まで…
保管しときます!
445デフォルトの名無しさん:2009/05/09(土) 22:17:34
Delphi6完全にオワタのか
TurboDelphiは外部コンポ使えんし有料買おうにも2009は外部コンポの互換性オワテるし
これはDelphi完全終了のお知らせか?
446デフォルトの名無しさん:2009/05/09(土) 22:19:43
外部コンポの登録が出来ないだけで使えるんじゃなかったか?
447デフォルトの名無しさん:2009/05/09(土) 22:23:10
使えるけどモノによってはひと工夫いるらしいし、
少なくともこれからはじめようと思う初心者にはハードル高すぎるだろうし・・・
448デフォルトの名無しさん:2009/05/09(土) 22:29:36
なんのひと工夫がいるんだよw
初心者が外部コンポなんぞ使うな・・・でも不便よね(´・ω・)
449デフォルトの名無しさん:2009/05/09(土) 22:38:46
http://ddev.blog46.fc2.com/blog-entry-49.html
これとか・・・
新規さんの動機にゲーム作りは結構多いと思うんだけど
初心者にいきなりコード書き換え要求はコクかと・・・
まあ俺なんですけどね
450デフォルトの名無しさん:2009/05/09(土) 23:00:39
動的に生成するだけじゃないの?
451デフォルトの名無しさん:2009/05/09(土) 23:15:41
この流れから本当にくだらなくてもうしわけない

begin
For i := 0 To 10 do
Memo1.Lines.Add('a');
end;

この a を一定間隔秒で表示させたいですが
〜秒待機、という処理はどう書けばいいんですか
452デフォルトの名無しさん:2009/05/09(土) 23:31:45
ググる先生にきいてみた
↓とか?
 http://mrxray.on.coocan.jp/Delphi/plSamples/700_WaitSleep.htm
↓更新古いけどどうなんだろ?
 http://www2.biglobe.ne.jp/~sakai/gensfaq2.htm#a010
手元では確認してない,ごめんぬ
453デフォルトの名無しさん:2009/05/09(土) 23:46:54
Sleep()

で、できました
ありがとう
454デフォルトの名無しさん:2009/05/09(土) 23:51:08
Timerとカウンタ変数使って1秒ごとにOnTimerで出力して
終わったらTimer1.Enabled := False;して止めるというのもある。

Application.ProcessMessagesをループで抱え込むと
イベントハンドラが多重的に呼び出されて思わぬバグになることもあるから
複雑なアプリでは避けた方がいい事もある。
455デフォルトの名無しさん:2009/05/09(土) 23:57:18
>>454
> Application.ProcessMessagesをループで抱え込むと
> イベントハンドラが多重的に呼び出されて思わぬバグになることもあるから
> 複雑なアプリでは避けた方がいい事もある。

俺これよくやっちゃうわ。
ループ中にウィンドウの移動とかが出来なくなって、フリーズみたいになるのがいやで
Application.ProcessMessagesを入れちゃうんだけど、そういう時って
別スレッドにするべきなのかな?
456デフォルトの名無しさん:2009/05/10(日) 00:27:50
Delphian Worldにあったのならまだ生きてる
Linkは自分で探せ〜
http://web.archive.org/web/*hh_/norg1964.hp.infoseek.co.jp/delphianworld/

Susie Plug-in 読込コンポとビットマップ
http://www.geocities.jp/norg1964/delphianworld/data/gm/spis126.zip
統合アーカイバコンポーネント for Delphi/C++Builder
http://www.geocities.jp/norg1964/delphianworld/data/mi/cmarc150.lzh

とか
457デフォルトの名無しさん:2009/05/10(日) 00:45:59
>451
>454も書いてるけど、タイマを使うべし。

>455
最初からそれ(Application.ProcessMessagesによって処理途中に他のイベントが発生すること)を
考慮して作るか、スレッドか、ま普通は簡単なんで前者だろうね。
458デフォルトの名無しさん:2009/05/10(日) 00:52:03
とりあえず硬直にさえ目をつぶればSleepが一番簡単確実でしかも安全だったりするけどね
459デフォルトの名無しさん:2009/05/10(日) 01:12:07
処理が5秒以上続くと応答なしになってゴーストウィンドウが出てWindowsがそれを正しく扱えない
(復帰したときにトップレベルウィンドウが2つになってしまう)ことがあるけどね。
460デフォルトの名無しさん:2009/05/10(日) 02:48:06
>>443
再配布は「アーカイブ全体をそのままの形にしていただくのが条件」なのに
改造版を配布って計氏の許可取ってるのかねぇ・・・?
461デフォルトの名無しさん:2009/05/10(日) 06:51:25
だめだ・・。VS2008のあまりの使いやすさとC#の簡単さに折れた。
今後作るのは全部C#でやるわ・・。
462デフォルトの名無しさん:2009/05/10(日) 08:46:03
>>461
がんば!
463デフォルトの名無しさん:2009/05/10(日) 09:58:17
www
464デフォルトの名無しさん:2009/05/10(日) 10:41:57
俺はそんな時は基本、少なくともユーザーからの入力をブロックするよう、
すべてのボタンなりを無効にするな。まぁ、アクションリスト使うからアクションを。
465デフォルトの名無しさん:2009/05/10(日) 18:18:54
www.cc.kyushu-u.ac.jp/ec/delphi/BorlandDelphiPersonalEditionJP.exe

今のところ落ちてくるようだ
そのうち消えるだろうけど
466デフォルトの名無しさん:2009/05/10(日) 23:29:40
VS使いやすいよおぉぉぉ!

でも作りづらい部分もあるので、そこはDelを使ってOCXなりにして使う。
467431:2009/05/10(日) 23:43:34
>>465
大感謝!!
英語版は見つけたんだが、日本語版がどこにも見つからなかったんで。
468デフォルトの名無しさん:2009/05/10(日) 23:48:38
認証通るのか?
Proは認証しろといわれるだけでそのまま使えてたけど
Personalは起動すらしなかったような。
469デフォルトの名無しさん:2009/05/11(月) 00:25:19
C++使えない&.NET嫌い な俺はしばらくDelphianのままか
470デフォルトの名無しさん:2009/05/11(月) 00:49:07
認証コード(インストール番号とキー)が無いと、インストール時にはじかれるね。
おいらの場合は、昔取ったのが残ってたので。
471デフォルトの名無しさん:2009/05/11(月) 01:15:11
べたべたなクライアント作ってるならC#結構いいし、クラスとか作る時宣言部とか実行部とか別れてなくて楽だ。
コードの途中で変数を宣言できるとか宣言と同時に初期化できるとか、関数の戻り値の型に勝手に合わせられる変数宣言とか
スピーディーにコーディングできる要素が沢山あって、楽すぎるんだ。
あと、ググったときの情報量もヘルプの使いやすさも段違いだ。
D2007、2009共に使ってるけど、webbrowserのhtmlElementとかアクセスしてると型を調べるのに頭痛がするが、そんなの一切無し。

が、関数の引数に省略時の値を設定できないなど、随分古くさい仕様もちらほら。
.Net縛りでやりづらいこともしばしば。RASの確立とか。コードが簡単に解読できてしまうのもアレなんだが・・。

一長一短だけど、一度作ってみるとその楽さに参ってしまう。
スレチすまん。
472デフォルトの名無しさん:2009/05/11(月) 04:38:13
で、Delphiスレで何でC#の話するの?
473デフォルトの名無しさん:2009/05/11(月) 04:39:01
昔Delphi作ってた人が引き抜かれてVisualStudio作ってるから。
474デフォルトの名無しさん:2009/05/11(月) 06:01:18
それは知ってるけどここでC#の話する理由にはならんでしょ
ここ超初心者用の質問スレだよ
475デフォルトの名無しさん:2009/05/11(月) 06:57:10
本当はDelphiが好きだから
476デフォルトの名無しさん:2009/05/11(月) 09:06:47
超初心者だから
477デフォルトの名無しさん:2009/05/11(月) 17:10:52
確かに言語に拘るのは初心者にありがちだよな
それで何を成すかが重要なのに
478デフォルトの名無しさん:2009/05/11(月) 21:34:20
いや、Delphi好きだよ。引き抜かれなければDelphiが今のVSのようになってたかもな・・と思うと残念でならない。

何を成すか・・か。Delphiではとりあえず5年で1億くらい稼いだよ。
とてもいい言語だった。
479デフォルトの名無しさん:2009/05/11(月) 21:42:41
うぜぇ
480デフォルトの名無しさん:2009/05/11(月) 21:50:30
>>479
お前の方がうぜぇよww
481デフォルトの名無しさん:2009/05/11(月) 22:22:58
>>480
いやいや、お前のほうが
482デフォルトの名無しさん:2009/05/11(月) 22:25:26
じゃあ俺が
483478:2009/05/11(月) 22:25:32
お、俺のことでケンカしないでくれ。
Delphiは2から使ってる生粋のDelphierなんだぜ。
484デフォルトの名無しさん:2009/05/11(月) 22:26:22
俺も5億は稼いだかな
485デフォルトの名無しさん:2009/05/11(月) 22:35:22
>>483
スレタイ読んでおとなしく隔離スレに行こうな。
486デフォルトの名無しさん:2009/05/11(月) 22:51:10
本当うぜぇw
487478:2009/05/11(月) 23:00:56
まあ過疎ってるんだしいいじゃないか。
質問来たら黙ってるよ。
488デフォルトの名無しさん:2009/05/11(月) 23:07:53
がんばるねぇ
489デフォルトの名無しさん:2009/05/12(火) 01:45:28
質問です
478が黙る方法を教えて下さい
よろしくお願いしますm(_ _)m
490デフォルトの名無しさん:2009/05/12(火) 07:11:15
>>489
スルー
491デフォルトの名無しさん:2009/05/12(火) 07:27:28
1億じゃうちの1年分の人件費にもならんなぁ
492デフォルトの名無しさん:2009/05/12(火) 07:42:07
たった5億くらいで自慢する初心者が居るスレはここですか?
493デフォルトの名無しさん:2009/05/12(火) 08:03:55
5億なんてちょちょいと稼いだお。
なんせ、バブル期の公共事業がらみだったからね(笑
494デフォルトの名無しさん:2009/05/12(火) 11:01:27
おっさんってどこの板でもスレ違いを咎められると意地でも居座るよな
495デフォルトの名無しさん:2009/05/12(火) 11:20:58
>>494
スレ違いを咎められたら意地でも居座る人がおっさんだとどうしてわかるの?
496デフォルトの名無しさん:2009/05/12(火) 11:22:15
お、俺なんかdelphiで5万円儲けたぞ
497デフォルトの名無しさん:2009/05/12(火) 11:36:32
おれは一年で350万くらいかな←ちょうリアル
498デフォルトの名無しさん:2009/05/12(火) 11:38:56
俺、150万。
その金もらった数ヵ月後に発注元が倒産。
499デフォルトの名無しさん:2009/05/12(火) 12:54:44
del7再インスコしたいんだけど、ライブラリのパスの登録を
簡単に済ますにはどうすればよいですか?
500478:2009/05/12(火) 14:45:06
VS買いなさい。
Delphiのような時代遅れのツールを使っては仕事にならないよ。
501デフォルトの名無しさん:2009/05/12(火) 15:08:08
502デフォルトの名無しさん:2009/05/12(火) 19:24:10
TimageとかTPaintboxの箱の中に画像を入れるとき、
画像が入る基点の座標などは設定できますか?
たくさんの画像を連結してみたいと思っています。
503デフォルトの名無しさん:2009/05/12(火) 19:29:43
D7とD2009って同居できます?案内のメールが来てゆれてるもので
504デフォルトの名無しさん:2009/05/12(火) 19:35:58
>>502
TCanvas.Drawって座標してい出来なかったっけ?
CopyRectとかでも同じような気がする
どっちにしろTCanvasのメソッド一覧をヘルプで見るといいよ
505デフォルトの名無しさん:2009/05/12(火) 20:38:03
なんか2009でDelphiX使えないよー
dcuが無いってなんやねん、dcpパスとおっとるやんけ
506デフォルトの名無しさん:2009/05/12(火) 21:13:18
>>503
普通にどのバージョンでもいけるんじゃないの?
関連付けみたいなのはどれかひとつになるだろうけど
うちのPCは6と2006が同居してるけど問題ないよ
507デフォルトの名無しさん:2009/05/12(火) 22:20:15
うちは3と5と7が入ってるけど問題はない
508478:2009/05/13(水) 00:53:49
>>503
同居させてるけど平気。

希に挙動不審になるけど、これが単体による物か合併症かは不明。多分前者。
509478:2009/05/13(水) 01:49:07
>>508
1億稼ぐ人はそういうことまで分かるんですね。勉強になります。
510478:2009/05/13(水) 01:49:49
誤爆失礼。
511デフォルトの名無しさん:2009/05/13(水) 02:00:23
自演ですか
512デフォルトの名無しさん:2009/05/13(水) 08:09:46
レスありがとう。D2009、購入の方向で検討してみます。にしてもD3って…
513デフォルトの名無しさん:2009/05/13(水) 08:18:13
自演乙w >478
514デフォルトの名無しさん:2009/05/13(水) 09:49:30
リソースに短いテキストを入れたんだけど、コード上からできますか?
ヘルプ見たらリソースからの読み込みはあってもリソースの変更とか
書き込みが見当たらなかったので。
515デフォルトの名無しさん:2009/05/13(水) 09:57:40
resourcestring
516514:2009/05/13(水) 11:50:32
先ほどの質問とは関係ないんですが、
今作成中のソフトのアイコンをプロジェクトのプロパティで変更しようとして、
OKを押したらリソースの衝突(種類3、名前1)みたいに出るんですが、
リソースを自分では作ってないのでどうしたらいいでしょうか?
517デフォルトの名無しさん:2009/05/13(水) 11:59:22
>>504
TGraphicなるものの作り方がよく分かりませんでしたが
それはもう一つ作ったTImage様にやってもらってなんとか目的のことは出来ました…
ありがとうございます
518514:2009/05/13(水) 12:04:04
「.dpr、.dfm、.pas」以外のファイル削除して、再構築したら直りました。
519デフォルトの名無しさん:2009/05/13(水) 18:54:49
SoundExやSoundExIntってどういう目的で使うの?
520デフォルトの名無しさん:2009/05/14(木) 00:11:54
存在そのものを知らなかったわ。ちょっとぐぐってみたところでは
Implementing a Soundex Function
ttp://www.ibphoenix.com/main.nfs?a=ibphoenix&page=ibp_howto4
これに由来するみたい。つまりアルファベットで表現された文字列の発音が近いものを検索するために
使うようだ。
521デフォルトの名無しさん:2009/05/14(木) 13:50:16
memo1とmemo2があります。
memo1がスクロールバーやカーソルキーで画面スクロールした時に
memo2も同じようにスクロールしたいのですが、どうしたら良いですか。
522デフォルトの名無しさん:2009/05/14(木) 16:34:26
自己解決しました
523デフォルトの名無しさん:2009/05/14(木) 20:45:58
Delphiで、Winsockでチャットソフトみたいのを作ろうと思ったんだが、
Winsockの初期化も終わって、ソケットも作ったんだがこの後がうまくいかない。
こういうのって、この後でPortやらIPやらを設定するんだよな?
524デフォルトの名無しさん:2009/05/14(木) 20:54:00
上手く行かないコードを晒そうよ
525デフォルトの名無しさん:2009/05/14(木) 20:56:42
>>524
すまなかった

var
Form1: TForm1;
ClientSocket1: TSocket;
WSAData : TWSAData;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
WSAStartup($0101, WSAData);



ClientSocket1 := socket(PF_INET, SOCK_STREAM, 0);
if (ClientSocket1 = INVALID_SOCKET) then
showmessage('Winsockerror');
//ここら辺に何を入れるんだ・・・

end;

usesには、Winsockが入ってる。
526デフォルトの名無しさん:2009/05/14(木) 20:59:44
何でわざわざAPI直接呼んでるの?
TClientSocketとかを使えばいいんじゃないの?
527デフォルトの名無しさん:2009/05/14(木) 21:06:25
>>526
まぁ、それも思った・・・
ちょっと、そっち側方面でがんばってみるわ。
すまなかった
528デフォルトの名無しさん:2009/05/15(金) 13:44:37
デスクトップにあるショートカットにドラッグ&ドロップしたのと同じような動作をさせることってできますか?

Delphi5.0
Windows2000
529デフォルトの名無しさん:2009/05/15(金) 13:50:26
for i := 1 to ParamCount do
  ShowMessage(ParamStr(i));

って話か?
530デフォルトの名無しさん:2009/05/15(金) 15:04:30
たぶん逆?
Delphiのアプリの指示で、あるファイルをデスクトップのショートカットにドラッグアンドドロップをさせたいんです

よろしくお願いします <(__~_)>
531デフォルトの名無しさん:2009/05/15(金) 15:12:19
ショートカットにファイルをドロップ=ショートカットにファイル名を引数で与えて起動

ということは、(ry
532デフォルトの名無しさん:2009/05/15(金) 15:17:20
実は、一度 ショートカットパス ドロップファイル名 で BATファイルを作ってみたんですが
どうもうまく動かなかったんで、Delphiで何とかならないものかと思い質問してみたんですが…
533デフォルトの名無しさん:2009/05/15(金) 15:28:04
534デフォルトの名無しさん:2009/05/15(金) 15:54:42
>>533 ありがとうございます <(__^_)>
ショートカットのリンク先はわかっていて、BATで リンク先のパス 処理させたいファイルパス とやってみたんですがうまくいかず…
リンク先のファイルが .CMD ファイルなんですがそれって何か関係あるんですかねぇ
535デフォルトの名無しさん:2009/05/15(金) 16:17:27
>>534
めんどくさいから、試したコードあげろ。
536デフォルトの名無しさん:2009/05/15(金) 16:57:59
てst
537デフォルトの名無しさん:2009/05/15(金) 16:59:38
お言葉に甘えて

procedure TfrmMain.Button2Click(Sender: TObject);
var
SelectedFileName:string;
SHExeInfo:ShellExecuteInfo;
intFileCount:Integer;
i:Integer;
strPDFPath:PChar;
begin
if odlgPDF.Execute then begin
intFileCount:= Dialog1.Files.Count;
for i:= 0 to intFileCount - 1 do begin
strPDFPath:= PChar(Dialog1.Files.Strings[i]); ----- ※1
//strPDFPath:= PChar(Dialog1.FileName); ----- ※2
SelectedFileName:= 'E:\Documents and Settings\All Users\デスクトップ\hogehoge.lnk';
SHExeInfo.cbSize := SizeOf(SHExeInfo);
SHExeInfo.fMask := 0;
SHExeInfo.Wnd := handle;
SHExeInfo.lpVerb := 'open';
SHExeInfo.lpFile := PChar(SelectedFileName);
SHExeInfo.lpParameters := strPDFPath; ----- ※3
//SHExeInfo.lpParameters := PChar(Dialog1.FileName); ----- ※4
SHExeInfo.nShow := SW_SHOWDEFAULT;
ShellExecuteEx(@SHExeInfo); ← エラー発生個所
end;//
end;
end;

としてみたんですが、EAccessエラーが出ます。
ひとつのファイルなら(※1をコメント化 ※2を生かす ※3をコメント化 ※4を生かす)とすると成功します、何か大ボケしてますか?
538デフォルトの名無しさん:2009/05/15(金) 16:59:52
直接は関係ないけど
テキストファイルの改行コードを調べて表示とかしたいんだけどどうやるの?
539デフォルトの名無しさん:2009/05/15(金) 17:11:55
>>537
プロパティへのポインタは使っちゃダメだったような。
strPDFPathをString型にすればOKにならないかな?

strPDFPath:String;
strPDFPath:= Dialog1.Files.Strings[i]; ----- ※1
SHExeInfo.lpParameters := PChar(strPDFPath); ----- ※3
540デフォルトの名無しさん:2009/05/15(金) 17:15:27
>>539 ありがとうございます

やってみましたが、症状変わらす…
541デフォルトの名無しさん:2009/05/15(金) 17:24:39
すまんorz
542デフォルトの名無しさん:2009/05/15(金) 17:30:07
>>540 いや、こちらこそありがとうございます
そこらへんが問題なのは間違いないんでないかなぁと思うんですが
もしまた何か気づいた点があったらお願いします<(__^_)>
543デフォルトの名無しさん:2009/05/15(金) 17:34:25
>>537
EAccessViolationとは関係ないと思うが
opendialog.filenameって複数だとカンマ区切りで帰ってこなかったっけ?
スペース区切りじゃないと引数にはならないよ。

あとshellexecuteやwinexecでもやってみれば?
544デフォルトの名無しさん:2009/05/15(金) 17:49:16
>>543 ありがとうございます
ShellExesute でぶじ解決しました。 <(__^_)>ありがとうございました。
545デフォルトの名無しさん:2009/05/15(金) 20:29:53
しつもん。
AssignFile(F,'filename');
ReWrite(F);
Writeln(F,'ほげほげふがふがうごうごるがるが');
CloseFile(F);
みたいなファイルの書き込みかたしたとき、
書き込む文字列の長さによって勝手に改行コードが入るのは仕様でつか。
Writeln(F,StringReplace('文字列',#13#10,'',[rfReplaceAll]));
としてもなるんでおいらの勘違いではなさげ。
546デフォルトの名無しさん:2009/05/15(金) 20:45:46
writelnのlnは一行分書き込めって事
write使うべし
547デフォルトの名無しさん:2009/05/15(金) 23:59:05
ShellListViewのカレントフォルダのフルパスってどうやって取ればいい?
RootだとrdDesktopなんかの特殊フォルダが取れない。
548デフォルトの名無しさん:2009/05/16(土) 00:22:58
>>547
特殊フォルダは仮想フォルダなので、フルパスは取れない。
「C:\Documents and Settings\xxx\デスクトップ」のように取りたいってことかな?
549デフォルトの名無しさん:2009/05/16(土) 00:43:00
そう。
どこであろうと手っ取り早く意味のあるフルパスを取りたい。
combobox経由だと取れるっぽいけど事情があってややこしくなるので
直接取れないかと思ってるんだけど見当たらない・・・
550デフォルトの名無しさん:2009/05/16(土) 01:10:29
そのパスでいいなら
ShellListView1.RootFolder.PathName

551デフォルトの名無しさん:2009/05/16(土) 01:13:42
って書いたが、これだとルートフォルダのパスだな。
552545:2009/05/16(土) 09:14:15
ほうこく。
なんか変だとバイナリエディタで確認したところ
文字列に#10が混入してたのでした。
完全においらの不手際。すまん。
553デフォルトの名無しさん:2009/05/16(土) 14:29:03
壁紙にJPGを指定する方法教えてください。
BMPだとうまく行くのに。
554デフォルトの名無しさん:2009/05/17(日) 04:00:20
=========================================================================
// 親クラス(testclass_A.pas)
TTestA = class
private
FIncludeFile: TIncludeFile;
FFile: String;
procedure ReadIncludeFile();
public
constructor Create(const DataFile:String); Overload; Virtual;
constructor Create(var CopyFrom:TTestA); Overload; Virtual;
property FileName: String read FFile write FFile;
end;
constructor TTestA.Create(const DataFile:String);
begin
FFile := DataFile;
ReadIncludeFile(); // FFile(DataFile)読込
end;
constructor TTestA.Create(var CopyFrom:TTestA);
begin
Self.FIncludeFile := CopyFrom.FIncludeFile;
end;
555554:2009/05/17(日) 04:01:53
=========================================================================
// TTestAの派生(testclass_B.pas)
TTestB = class(TTestA)
public
constructor Create(var CopyFrom:TTestB);
end;
constructor TTestB.Create(var CopyFrom:TTestB);
begin
inherited Create(CopyFrom);
end;
=========================================================================
// プログラム(unit1.pas)
classA := TTestA.Create('1234.dat');
classB := TTestB.Create(classA);
=========================================================================
556554:2009/05/17(日) 04:02:48
上記のようなコードを書いてテストしています。
classAをcreateして、ReadIncludeFile()にてFFile(上記では1234.dat)を読み込み、データをFIncludeFileに保存しています。
同じことをclassBでやりたいのですが、ある事情でclassBからCreate('1234.dat')することができません。
(上記はあくまでテスト例であるためこのように書いていますが、実際にはもう少し複雑になっておりclassBからCreate('1234.dat')することができない(したくない)状況になっています)
しかし、ReadIncludeFileより読み込んだFIncludeFileのデータをclassBのFIncludeFileにコピーしたいのです。

classA := TTestA.Create('1234.dat');
classB := TTestB.Create('1234.dat');

このようにはしたくないが、

[classB]-FIncludeFile = [classA]-FIncludeFile

というようにしたいのです。


現在躓いているところは、「TTestAの派生(testclass_B.pas)」の
constructor TTestB.Create(var CopyFrom:TTestB);
begin
inherited Create(CopyFrom);
end;
で、「指定された引数で呼び出すことのできるオーバーロード関数 'Create' が定義されていません」
というエラーが出ていまして、試行錯誤してみたのですがだめでした。。。
ご教授お願い致します。
557デフォルトの名無しさん:2009/05/17(日) 04:17:32
varを取れ
何のために付けるか理解してないだろ
まぁそもそも設計自体がおかしいと思うが
558554:2009/05/17(日) 05:04:20
>>557
レスありがとうございます。
varを取ったらできました!ありがとうございます。

おっしゃるとおり確かに設計がだめなのかもしれません。
まだプログラミングを初めて約3ヶ月なもので…(^^;)
しかし、今回の件も含め、今後も色々と学んでいきたいと思います。
まだクラスという概念自体まだあまり理解していないもので…

関数・手続きに付けるvarは値パラメータと変数パラメータの違いですよね…?
varをつけない場合は値のみを渡し、varを付けたときは変数のアドレス(?)を渡すと思うので、
関数内で変数自体を弄ることが出来ると理解しています。
今回の場合は、TTestAのCreate(var CopyFrom:TTestA);でCopyFrom内のFIncludeFileを操作する
という考えがあったので「呼び出し関数側で直接操作する=varを付ける」という考えでした。
でした、というか今もその考えのまま理解できていません。(^^;)

もしよろしければ、ご解説をお願いできませんでしょうか?
559デフォルトの名無しさん:2009/05/17(日) 13:10:22
varってのは実際にはポインタを渡してるんだけど、classの場合は元からポインタだからつける意味が無い
ポインタを勉強しなきゃ深いとこまでは分からんだろうから、今理解しなくてもいいと思うよ
「クラスはvarしなくても中身が弄れる」とだけ覚えておけばおk
560デフォルトの名無しさん:2009/05/17(日) 13:16:15
値型(Integer, Char, record)等はvarをつけると変数そのものを書き換える。
参照型(a := TMyClass.Createとやって動的に生成するもの)はvarが不要。
と覚えといたらいいよ。

クラスの参照にvarをつけるのはこういう風にインスタンスを挿げ替えるときに使う。

procedure foo(var c: TMyClass);
begin
 c := TMyClass.Create('C');
end;

var
 a: TMyClass;
begin
 a := TMyClass('A');
 a.Show; // 'A'
 foo(a);
 a.Show; // 'C'
end;
561554:2009/05/17(日) 16:31:53
>>559 様、>>560
レスありがとうございます。
なるほど、C言語でいう配列と同じようなものですね。
明示的にポインタを指定しなくてもclassという時点でそれがポインタであるみたいな感じですね。
とてもよい勉強になりました。
3名の方々、どうもありがとうございます。
562デフォルトの名無しさん:2009/05/17(日) 23:45:01
>>553
レスがつかんな
Jpegを読み込んだらBMP.Assign(Jpeg)して適当なファイル名で保存しろ
それを壁紙ファイルに指定する
563デフォルトの名無しさん:2009/05/18(月) 00:12:23
Windows XP以降ならjpegも直接壁紙に指定できるけどな。そういうことではなく?
564デフォルトの名無しさん:2009/05/18(月) 00:45:16
XP以降もJPEGの壁紙指定はアクティブデスクトップの機能だよ
試しに無効にしてみればわかるけど、無効だと一覧に出てこないしダイアログから選んでも設定されない
565デフォルトの名無しさん:2009/05/20(水) 19:37:52
動的に複数作成したTThreadが全部終了したかどうかが
分かる命令ってあります?
今は自前で実装してるんですが、全部終わった時に実行したい処理があるんですが、
たまに一つ残ってる場合があるみたいで確実に終わったかが知りたいんです。
566デフォルトの名無しさん:2009/05/20(水) 20:35:25
数を数える
567デフォルトの名無しさん:2009/05/20(水) 20:52:32
どうやって?
568デフォルトの名無しさん:2009/05/20(水) 21:05:10
569デフォルトの名無しさん:2009/05/20(水) 22:05:54
TThreadのインスタンスを管理してる処理はないっぽいな。
TThreadListなんてのもあるけどそのインスタンスの使われ方みてると関係なさそう。
デバッガではハンドル列挙してるからWin32APIではなんかあるのかもしれないけど
今やってる通り自前で管理するのがいいんじゃないの。
570565:2009/05/20(水) 23:02:57
皆さんレスありがとうございます。
参考にさせて頂きます。
571デフォルトの名無しさん:2009/05/20(水) 23:03:41
Delphi2007にて自作コンポーネントのコレクションプロパティの中に
さらに子のコレクションプロパティを持たせようとしています。
しかしながらオブジェクトインスペクタの...ボタンは表示されるものの、
ボタンを押してもなぜかコレクションエディタが開きません。
押せるのに無反応、腹立たしい限りです。

Items (TCollection)       →○親のコレクション、エディタ開く
  SubItems  (TCollection)  →×子のコレクション、エディタ開かない

SubItemsの方もGetOwnerのoverrideはしてあります。
子も親のコードを元に作ったので、基本の部分は外してない…と思うのですが、
何か考慮漏れしていそうな点などないでしょうか?
572デフォルトの名無しさん:2009/05/21(木) 19:22:35
CPUがCore2の時に処理を分散させるプログラムってDelphiで
書けますか?
573デフォルトの名無しさん:2009/05/21(木) 19:48:40
マルチスレッド
574デフォルトの名無しさん:2009/05/21(木) 20:07:52
マルチスレッドにすれば勝手に分散してくれるってことでしょうか?
タスクマネージャーで確認してみます。
575デフォルトの名無しさん:2009/05/21(木) 21:24:27
アフィニティマスク
576デフォルトの名無しさん:2009/05/21(木) 22:34:28
APIの話だからDelphiあんまり関係ないと思うけど
577デフォルトの名無しさん:2009/05/21(木) 23:43:51
CPU Affinity指定しない場合、
スレッド三つ立ち上げたら自動的に(あれば)三コアに振り分けられるようになってるの?
578デフォルトの名無しさん:2009/05/22(金) 00:00:07
ぐちゃぐちゃ言ってないで、テストコード作ってタスクマネージャでも見なさいな。
579デフォルトの名無しさん:2009/05/22(金) 23:28:40
今時出るふぃなんて使っている情弱いるんだな
580デフォルトの名無しさん:2009/05/22(金) 23:37:48
>>579
じゃぁ何を使えば良いのでしょうか?
581デフォルトの名無しさん:2009/05/23(土) 01:13:27
バカは放っておきなよ。
582デフォルトの名無しさん:2009/05/23(土) 01:17:46
むしろWindowsアプリ開発ではDelphi一択状態





趣味プログラマには
583デフォルトの名無しさん:2009/05/23(土) 01:47:54
しかし新規で買う物好きはいない
584デフォルトの名無しさん:2009/05/23(土) 10:51:09
>>583
なんで?その理由は?
585デフォルトの名無しさん:2009/05/23(土) 11:10:52
>>584
どうあっても粘着嵐しないと気がすまないんだなw
586デフォルトの名無しさん:2009/05/23(土) 12:22:44
プログラミングセンスのないやつ花に使ってもだめだし
逆に扇子のあるやつはなに使ってもすごい。
つまり楽器とか絵とかと同じなのさ。
587デフォルトの名無しさん:2009/05/23(土) 14:03:04
そんな当たり前のことを偉そうに書くなよ
趣味でやってる人もいるんだから
そんな狭い了見じゃたいしたレベルじゃないな
588デフォルトの名無しさん:2009/05/23(土) 14:17:46
粘着アンチって使いこなせなくて逃げ出した連中?
589デフォルトの名無しさん:2009/05/23(土) 14:20:12
むしろなんかの病気。

でもスレ違いだからくだすれな質問以外はヲッチャスレにどうぞ。
590デフォルトの名無しさん:2009/05/23(土) 14:41:06
おまえらなんでVC使わないん?
591デフォルトの名無しさん:2009/05/23(土) 14:43:53
気に入らない質問は排除してまでアンチと雑談し続けるおっさんたち
592デフォルトの名無しさん:2009/05/23(土) 17:22:56
>>590
VCも使うことあるよ
593デフォルトの名無しさん:2009/05/23(土) 17:44:06
いろんな言語使ってるが、Windowsアプリに関しては
Delphiが一番作りやすいな。
594デフォルトの名無しさん:2009/05/23(土) 18:05:39
俺的にはC++よりC#の方が使いやすい
595デフォルトの名無しさん:2009/05/23(土) 18:29:02
あたりまえ
596デフォルトの名無しさん:2009/05/23(土) 19:40:27
俺的にはPL/Iが一番なんだが、ちょっと似ているDelphi(Pascal)で我慢してる。
597デフォルトの名無しさん:2009/05/24(日) 12:19:38
>>593だね。
いろんな言語使ってないけど
598デフォルトの名無しさん:2009/05/24(日) 13:08:23
個人的にはVBよりずっとカンタンだと思ってる
599デフォルトの名無しさん:2009/05/24(日) 17:59:59
ランタイムなしってのが一番大きいだろ
600デフォルトの名無しさん:2009/05/24(日) 18:48:56
値段だけが初心者向きじゃないのがねぇ
601デフォルトの名無しさん:2009/05/24(日) 19:00:26
初心者にはC#でもやってもらいましょ
602デフォルトの名無しさん:2009/05/24(日) 22:23:24
UTF8の文字をS-JISに変換してくれる
サンプルコードってないですか?
DEL7にあるは、変換結果の文字列がなくなってしまう時があるんですが、
なぜでしょうか?
603デフォルトの名無しさん:2009/05/24(日) 22:44:31
>>602
> 変換結果の文字列がなくなってしまう

Utf8ToUnicodeで不正バイトがあるとそこで終了するから

改造するか、JCLに入ってるのとか使えば良い
604デフォルトの名無しさん:2009/05/24(日) 23:38:17
>>603
ありがとうございます。
不正バイトで強制終了てことは
なにかのチェックに使えそう。
605デフォルトの名無しさん:2009/05/25(月) 08:26:43
教えてください
C++Builderで記述されたコードをDelphiに移しているのですが
#ifdef _DEBUG
 #define hoge hage
#endif
という、デバッグモード時かどうかの切り分け方法はどのように記述すれば良いのでしょうか。
606デフォルトの名無しさん:2009/05/25(月) 11:00:26
コンパイラ指令で検索
607デフォルトの名無しさん:2009/05/25(月) 11:09:33
Delphi7は確か
if DebugHook <> 0 then
timelst.SaveToFile('Test.txt');
とか書けたよ。
608デフォルトの名無しさん:2009/05/25(月) 11:28:37
それはIDEからデバッグ実行されたかどうかを判別するフラグ

{$ifdef DEBUG}
{$define HOGE}
{$endif}

{$ifdef HOGE}
const a=1;
{$else}
const a=2;
{$endif}

みたいに書く。
Cのdefineそのままの機能はない。
609605:2009/05/25(月) 19:20:06
>>606
>>607
>>608
どうもありがとう。どうにかうまく出来ました。
610デフォルトの名無しさん:2009/05/25(月) 21:42:36
文字を左から一文字ずつドラクエ、エロゲ風に表示させたいのですが、
どうしても思ったように動作してくれません。

間にメッセージを挟むと一文字ずつ出てくるのが確認できるんですが
実際そういう使い方はできません。
どうすればいいでしょうか。



var
i , mojisuu :integer;

begin
mojisuu := Length(WideString(edit1.Text));

For i := 1 To mojisuu do
begin

sleep(updown1.Position);
label2.Caption := Copy(edit2.Text, 1 , i);

//showmessage(inttostr(i))

end;

end;
611デフォルトの名無しさん:2009/05/25(月) 21:45:55
captionの下に
Application.ProcessMessages;
を入れる。
612デフォルトの名無しさん:2009/05/25(月) 21:49:11
できた!即レスありがとう
613デフォルトの名無しさん:2009/05/25(月) 21:54:35
見るからに読みにくそうで遅そうなコードだ
614デフォルトの名無しさん:2009/05/25(月) 22:14:57
うるせいよ
てめいもわかってねぇくせに
615610:2009/05/25(月) 22:46:18
「 Application.ProcessMessages 」でググってみたところ、
>>613の言うように無駄にCPUパワーを使う、というのを見ました。

何か別のいい方法があるのでしょうか?
616610:2009/05/25(月) 22:47:20
>>613さん、でしたね;
敬称が抜けてました。。
617デフォルトの名無しさん:2009/05/25(月) 22:57:17
そこを言ったんじゃないんだがまあいいか
TTimerとかを使えばいいんじゃないかな
618デフォルトの名無しさん:2009/05/25(月) 23:11:23
普通はsleepとProcessMessagesじゃなくてTimer使うとおm
619デフォルトの名無しさん:2009/05/25(月) 23:14:08
というかそんなに空行だらけで見難くないのかと
620デフォルトの名無しさん:2009/05/25(月) 23:16:49
行間に // でどういう動作するかメモっていたので
621デフォルトの名無しさん:2009/05/25(月) 23:36:05
>>615
Sleep(1);も一緒にはさんどけばいい。
622デフォルトの名無しさん:2009/05/25(月) 23:37:30
label2.Caption := Copy(edit2.Text, 1 , i);
label2.update;
623デフォルトの名無しさん:2009/05/25(月) 23:39:00
なにつくってんの?
624デフォルトの名無しさん:2009/05/25(月) 23:47:17
へへー、お父さんへのプレゼント!
625デフォルトの名無しさん:2009/05/25(月) 23:47:53
エロゲ風のエロゲ
626デフォルトの名無しさん:2009/05/26(火) 00:51:25
ゲームにLabelは使わないでしょ
627デフォルトの名無しさん:2009/05/26(火) 03:57:18
使ってはいけないという決まりがあるのでしょうか…?
628デフォルトの名無しさん:2009/05/26(火) 10:40:27
ない。
629デフォルトの名無しさん:2009/05/26(火) 17:56:06
APIスレに書かなきゃいけないんですが質問の仕方が
分からなかったのでお許しください。

コンポーネントのEnabledプロパティーに相当する
APIってあるんでしょうか?
630デフォルトの名無しさん:2009/05/26(火) 18:06:55
APIというか
procedure TControl.SetEnabled(Value: Boolean);
begin
if FEnabled <> Value then
begin
FEnabled := Value;
Perform(CM_ENABLEDCHANGED, 0, 0);
end;
end;
に相当するメッセージを投げればいいんじゃないの。
631デフォルトの名無しさん:2009/05/26(火) 18:09:02
と思ったらこれもDelの範囲内か。忘れてくれ。
632デフォルトの名無しさん:2009/05/26(火) 18:48:58
>>628
ない。
が、普通は使わない。
633デフォルトの名無しさん:2009/05/26(火) 19:32:11
634629:2009/05/27(水) 00:46:25
>>630,633
thx
助かりました。
635デフォルトの名無しさん:2009/05/27(水) 19:23:16
メソッドポインタを比較する方法ってありますか?

たとえば、あるボタンのOnClickイベントに割り当てられてる関数が
Click1関数なの知りたい場合

If Button1.OnClick = Self.Click1 then…

とかやってもコンパイルエラーになってしまう。


636デフォルトの名無しさん:2009/05/27(水) 19:32:35
Sender 使うってのは外してる?
637デフォルトの名無しさん:2009/05/27(水) 19:34:42
TMethod(Button1.OnClick).Code = TMethod(Self.Click1).Code
とかかな
インスタンスも考慮したい時はDataも比較すればおk
638デフォルトの名無しさん:2009/05/27(水) 19:45:58
UTF-8のファイルを読み込んでTmemoに表示させると文字化けしてしまうんですけど
どうすれば文字化けさせずに表示させることができるのでしょうか
初歩的なことなのかもしれませんけど教えていたいただけないでしょうか
639デフォルトの名無しさん:2009/05/27(水) 19:48:59
UTF8Decodeとかかな
640デフォルトの名無しさん:2009/05/27(水) 20:18:17
D2009
641デフォルトの名無しさん:2009/05/27(水) 20:24:02
Delphi製アプリは基本SJIS専用と思っておけばいい。
扱おうと思えば扱えるけどいちいち変換しなきゃならないし
変換したら情報が欠落する危険性を常にはらんでるし。

2009とかTNT(は名前変わったんだっけか)で対応可能ではあるが。
642デフォルトの名無しさん:2009/05/27(水) 20:46:47
ありがとうございます
やっぱり文字コード変換しなきゃダメですか…
テキストから特定の文字列を抽出してリスト化したかったんですが
とりあえずファイルの中身をコピペすることで対応しようと思います
文字コード変換はややこしそうなのでもう少し勉強してからとりかかりますわ…
643デフォルトの名無しさん:2009/05/28(木) 00:34:50
たぶん>>635の疑問は@Click1のようにすることで解決するレベルだな
644デフォルトの名無しさん:2009/05/28(木) 17:13:29
ListView(レポート形式)の全データを
クリップボードにコピーするにはどうしたら良いでしょうか?

コピーした後、Excelでそのまま貼り付けすると、
ListViewの中身がカラムを含めてセルごとに貼り付くような形にしたいのです。
645デフォルトの名無しさん:2009/05/28(木) 18:23:44
内部でTStringListに項目をコピーして
Clipboard.AsText := sl.Text
すれば改行つきテキストをExcelのセルにコピーしてくれるはず。

二次元データの場合はどうなんだろ。
たしかタブあたりで区切ってやればいけたような。

sl.Add(item.SubItems[0] + #9 + item.SubItems[1] + #9 + ...)

OLEでやるのが確実か。
646デフォルトの名無しさん:2009/05/29(金) 01:43:51
そうそう
クリップボードにTSVで流し込めばいいだけ
647デフォルトの名無しさん:2009/05/29(金) 19:26:42
>643
残念ながらそうはいかないんだな。
648デフォルトの名無しさん:2009/05/29(金) 20:07:44
理由も解決策も示さずに否定だけする馬鹿がいると聞いて飛んできました
649デフォルトの名無しさん:2009/05/29(金) 23:02:28
解決方法?もう>637が示してる。
理由?挑発しても教えてやらない。

650デフォルトの名無しさん:2009/05/29(金) 23:21:16
そういう幼稚なのは隔離スレでやってくれ
651デフォルトの名無しさん:2009/05/30(土) 05:46:56
>>649
いいから涙拭けよ
652デフォルトの名無しさん:2009/05/30(土) 05:51:23
というかマジレスすると>>637ってコンパイル通らないんだけどなw
653デフォルトの名無しさん:2009/05/30(土) 08:15:26
マジレスするとポインタが分からないんだけどなorz
654644:2009/05/30(土) 08:29:50
タブでつなげることでうまくExcelに貼り付きました。
ありがとうございました!
655デフォルトの名無しさん:2009/05/30(土) 10:07:30
ここは
くだすれDelphi(超初心者用)その49
超初心者用
超初心者用
超初心者用

656デフォルトの名無しさん:2009/05/30(土) 13:42:35
例えば <html>あいうえお</html> のような文字列が複数あり
『あいうえお』の部分だけ表示させるにはどういう記述をしたらいいんでしょうか?
『あいうえお』部分の文字数は決まっておらず上から順番に表示させたいんですけど
思うようにいきません
もし良い方法があったら教えて下さい
657デフォルトの名無しさん:2009/05/30(土) 14:22:24
ソースから抽出したいのかhtmlを処理したいのかわからんが
いらない文字は削ればいい
658デフォルトの名無しさん:2009/05/30(土) 14:22:32
Pos(AnsiPos)とCopy使えばいい
659デフォルトの名無しさん:2009/05/30(土) 16:22:08
>>657-658
ありがとうございます

どちらかというとソースから抽出に近いかもしれません
Posでワイルドカード的な使い方ができれば
Copyで必要な部分だけ取り出せる気がするんですけど
そんな方法ってないでしょうか?
660デフォルトの名無しさん:2009/05/30(土) 16:25:33
一番初めに現れる場所出してそれ以前のを削除して次に現れる場所出してそれまでのを結果とすればいいだけなんだが
そんなことも分からないの?
661デフォルトの名無しさん:2009/05/30(土) 17:07:01
function Strip(var sourcestr: String; delimiter: string): string; overload;
begin
    Strip(sourcestr, delimiter, result);
end;

function Strip(var sourcestr: String; delimiter: string; var ret: string): Boolean; overload;
var
    idx: Integer;
begin
    if sourcestr = '' then
    begin
        ret := '';
        result := false;
    end
    else
    begin
        result := true;
        idx := AnsiPos(delimiter, sourcestr);
        if idx < 1 then
        begin
            ret := sourcestr;
            sourcestr := '';
        end
        else
        begin
            ret := copy(sourcestr, 1, idx-1);
            sourcestr := copy(sourcestr, idx + Length(delimiter), High(Integer));
        end;
    end;
end;
662デフォルトの名無しさん:2009/05/30(土) 17:07:42
procedure TForm1.Button1Click(Sender: TObject);
var
  s, tag, txt: String;
begin
  s := '<html>あいうえお</html>';
  Strip(s, '<');
  tag := Strip(s, '>');
  text := Strip(s, '<');
  ShowMessage(tag + sLineBreak + text);
end;

超低速でいいならこんな感じ。
正規表現 HTML 抽出なんかで検索するとまともなサンプルが出てくるだろう。
Delphiで正規表現使う場合は別途ライブラリを用意する必要がある。
663デフォルトの名無しさん:2009/05/30(土) 17:50:54
>>660
ありがとうございます
ただ、単純に
<html>あいうえお</html>
<html>かきくけこ</html>
みたいなものならそれでいいですけど

<html>
<table border='1'>
<tr><td height='20' width='100'>あいうえお</td><td height='20' width='30'>あい</td><td height='20' width='50'>うえお</td></tr>
<tr><td width='100' height='20'>かきくけこ</td><td height='20' width='30'>かき</td><td height='20' width='50'>くけこ</td></tr>
<tr><td height='20' width='100' bgcolor='#FFFFFF'>さしすせそ</td><td height='20' width='30'>さし</td><td height='20' width='50'>すせそ</td></tr>
</table>
</html>

みたいな文字列からtrタグ内にある各tdタグのheight値、widht値、表示される文字を
それぞれをStringGridに表としてまとめる、といったことをしたいとき困りますよね?
最終的には属性の順番もバラバラの可能性があり
不要な属性や文字列も混ざっている可能性があることも想定していますが
とりあえず複雑な要素は省いた簡単な文字列操作の方法から勉強してみます

>>661-662
ありがとうございます、正規表現での文字列検索に関する記事があったので参考にしてみます
664デフォルトの名無しさん:2009/05/30(土) 18:13:11
htmlを処理したいんじゃん
665デフォルトの名無しさん:2009/05/30(土) 18:25:22
>>656の説明じゃ>>660の答えにしかならないだろ
>>664のようにHTML特有の処理をしたいならそう言えよ
666デフォルトの名無しさん:2009/05/30(土) 18:25:50
>>664
htmlの処理ってわけじゃなく
例をあげるのにhtmlが都合がよかっただけです
667デフォルトの名無しさん:2009/05/30(土) 19:33:44
html(の構文)を処理したいんだね
668デフォルトの名無しさん:2009/05/31(日) 00:21:23
>>666
ではもう一つ例を挙げるとしたら?
XHTML?
669デフォルトの名無しさん:2009/05/31(日) 03:45:55
>>668
文章の中に文がいくつ含まれていて、『』「」などを含んだ言葉がいくつあって
またそれぞれのカッコ内の言葉を列挙する、とかでしょうか

最初から最後まで不特定の文字列よりも
ある程度決まった構文のhtmlの方が操作しやすいのではと思い例にあげました
最近勉強し始めた超初心者なので
文字列操作の勉強のためにいろいろと試しているところなのです
670デフォルトの名無しさん:2009/05/31(日) 07:26:06
正規表現で切り出すか自前のパーザを書くしかないよね
671デフォルトの名無しさん:2009/05/31(日) 09:04:28
ざっくりとしか読んでないんだが
質問者は何か作りたいものがあってそこで躓いてるのならここで聞けばいいけど
勉強したいのなら自分で関数作って試行錯誤したらいいよ
もしかしたら元から便利な関数があって1行で済ませられるかもしれないけど
最初から近道探してたら勉強にはならない
672デフォルトの名無しさん:2009/05/31(日) 09:08:26
とりあえず自分で例に挙げといて本当は違くてとか言われても困るって事で
673デフォルトの名無しさん:2009/05/31(日) 09:54:23
>>671
確かにそうですね
とりあえずいろいろ関数作って試行錯誤してみます

答えて下さった方たちもありがとうございました
674デフォルトの名無しさん:2009/05/31(日) 16:32:18
規制がかかってて友人にお願いした代理書き込みなのでまとめて質問します。
-----
1
OpenDialogで選択されたファイルが存在するディレクトリを取得するにはどうすればよいのでしょうか?
-----
2
MediaPlayerとTimerのOnTimerイベントを使ってTrackBarのつまみの位置を再生と共に動かすようにしました。
TrackBar1.Position:=MediaPlayer1.Position;
こんな感じで。

次に、TrackBarのOnChangeイベントを使い、ドラッグして移動した位置から再生させるようにプログラムしたのですが、曲が再生されません。
MediaPlayer1.Position:=TrackBar1.Position;
こんな感じ。

これではこの2つのイベントがぶつかり合って再生されないです。
どのイベントを使ってMediaPlayer1.Position:=TrackBar1.Position;を記述すればいいのでしょうか?
-----
3
ListBoxでアイテムを選択し、ドロップで上下に移動した時に、選択が移動するのではなく、選択したアイテムが移動するようにするには何を設定すればいいのでしょうか?
移動した時にあわせてItemIndexも自動的に変わるようにしたいのです。
-----
4
MediaPlayerで音量を調節するにはどうすればいいのでしょうか?
Windows全体の音量ではなく、MediaPlayerで再生する時だけの音量を調節したいのです。

一気にたくさん質問してすいません。
どなたかご教授お願いします。
675デフォルトの名無しさん:2009/05/31(日) 16:39:46
>674
1
ExtractFilePathかExtractFileDir

2
TrackBarのOnChangeイベントでMediaPlayerのPositionを変更したときはMediaPlayerのOnChangeの
処理を避ければいい。フラグ立てるとか一時的にイベントハンドラを解除するとか。

3
ttp://delphi.about.com/b/2009/05/22/how-to-move-listbox-items-with-the-mouse-drag-and-drop.htm

4
Windows Vistaで仕様が変更されるまではボリュームはシステム全体で一つでした。あきらめるか、MediaPlayerに
与えるデータそのもので音量を変化させるか、Vistaに買い換えるか、どれか好きな方法で。
676デフォルトの名無しさん:2009/05/31(日) 17:22:36
アプリ毎の音量はVistaで付いた機能だけど、それ以前で出来なかったなんてことは無いわけで
TMediaPlayerがショボイだけでしょ
677675:2009/05/31(日) 17:28:49
>676
ホントッスか?方法をkwsk
678デフォルトの名無しさん:2009/05/31(日) 17:38:49
いやしらんけど、WMPのボリュームって独立してるじゃん
679675:2009/05/31(日) 17:51:04
それデータいじってるだけだって。
680デフォルトの名無しさん:2009/05/31(日) 18:09:08
なんかTWindowsMediaPlayerってのもあるじゃん
OS変えれって言うよりかコンポ変えるって方が適切だと思ったわけ
681デフォルトの名無しさん:2009/05/31(日) 20:12:37
TMediaPlayerってMCIのラッパじゃなかったっけ?
なら普通に使えるんじゃね
682デフォルトの名無しさん:2009/06/01(月) 00:12:38
>>678
ちょっと頭悪すぎないかw
683デフォルトの名無しさん:2009/06/01(月) 10:57:50
>>682
お前よかマシ
684デフォルトの名無しさん:2009/06/01(月) 21:21:07
>>675
横からすみませんが、そのVistaでの個別設定の方をご存じないでしょうか?
685675:2009/06/01(月) 23:17:31
>684
他人様のページで申し訳ないが。
ttp://ddev.blog46.fc2.com/blog-entry-74.html

>680
TWindowsMediaPlayer.settings.volumeで変わるのかね?
686デフォルトの名無しさん:2009/06/02(火) 00:00:39
>>683
アンカ先とは別人だが、音量変えるのにデータ直接弄る必要があることを知らずに
「しらんけど○○ではできるし」とか言っちゃう奴の方がどうかと思うわ

>>685
ソースとMSDN見てみたけどそれで変えれるな
単なるプレイヤのWMPに丸投げしてるから0〜100の精度しかないけど
DirectShowやDirectSoundくらいの細かい制御は無理ぽい
687684:2009/06/02(火) 01:11:24
>>685
ありがとうございまし
688デフォルトの名無しさん:2009/06/02(火) 01:37:39
>>686
そう、DirectShowがあるから音量変えるのにデータ直接弄る必要なんか無いし
OSも変える必要無いし、あきらめる必要もない。
その最たる例がWMPだとおもったわけよ。
689デフォルトの名無しさん:2009/06/02(火) 07:03:29
個人的な経験からいくと、>>688の方が優秀なエンジニア。
690デフォルトの名無しさん:2009/06/02(火) 07:46:59
ExtPascal
http://code.google.com/p/extpascal/
日本語の使い方とか知りませんか?
691デフォルトの名無しさん:2009/06/02(火) 08:42:43
692デフォルトの名無しさん:2009/06/02(火) 15:02:41
>>689
音量変える必要があるってのは原理的な話だろ
DirectShowの話出してるんだから>>686はDSでできることも当然知ってるんだし
個人的な経験関係なく、お前のレスがどのレスよりも馬鹿なのは確か
693デフォルトの名無しさん:2009/06/02(火) 15:11:56
>>692
何で噛み付いてんだ?
比較された駄目なほうの人か?
694デフォルトの名無しさん:2009/06/02(火) 15:25:32
今日も鬱屈したおっさんががんばっております
695デフォルトの名無しさん:2009/06/02(火) 15:26:21
ごめん、ついカッとなっちゃって・・・
696デフォルトの名無しさん:2009/06/02(火) 15:39:49
DirectShowとかめちゃくちゃ難解だし面倒だろ
ピンの接続みたいな概念がまず把握できない人がいるし、
少なくともTMediaPlayer使ってる人に勧められるようなシロモノじゃない
それを代替として挙げるのはさすがに無理があると思うが
よっぽどデータ直接弄った方が楽だぞ。資料やサンプルの数も比較にならないほど多いし
つーかデータ弄るの難しいと思われてるようだけど、原理はともかく方法だけならかなり簡単な部類じゃね?
697デフォルトの名無しさん:2009/06/02(火) 15:40:51
>>693
それにわざわざレスしてるお前さんもその仲間だろ
もちろん俺もなw
698デフォルトの名無しさん:2009/06/02(火) 15:45:47
意味和漢ね
699デフォルトの名無しさん:2009/06/02(火) 16:09:12
だからTWindowsMediaPlayer使えつってんだよカスども
700デフォルトの名無しさん:2009/06/02(火) 16:21:08
はい
701デフォルトの名無しさん:2009/06/02(火) 16:29:50
さあもりあがってまいりました
702デフォルトの名無しさん:2009/06/02(火) 16:50:13
Delphiの新しいやつはIndyのヘルプが分かりやすくなってる?
703|Д゚彡 ◆A6VzDeLphI :2009/06/02(火) 18:38:30
いま細かいバグ、直している(w

膨大すぎるよ。ヘルプファイル。
704デフォルトの名無しさん:2009/06/02(火) 20:36:47
>>675
ありがとうございます。
おかげさまで1・3は解決できました。
4はあきらめます。

問題は2なのです。
再生と共にTrackbarのOnChangeイベントが発生するので、ドラッグした時と同じになってしまうのです。
OnStartDragなどでも反応しませんでした。
どうすればいいのでしょうか?

また、指定した位置から再生させることができません。
試しに
Mediaplayer1.position:=30;
として実行してみたのですが、全く再生されません。
この後にMediaplayer1.play;
を加えても最初から再生されるだけで、30秒から再生されません。
これでは仮に再生中にTrackbarから数値を得られたとしてもそこから再生させることができません。
どうしたらいいのでしょうか?
705デフォルトの名無しさん:2009/06/02(火) 20:59:39
Trackbar1.OnChange := nil;
Trackbar1.Position := hoge;
Trackbar1.OnChange := Trackbar1Change;
こんな感じじゃね

あるいは
Flag := True;
Trackbar1.Position := hoge;
Flag := False;

// Trackbar1Change
if not Flag then
fuga;
な感じか
706デフォルトの名無しさん:2009/06/03(水) 01:32:50
D2007です。

DBComboboxなのですが、onChangeイベントでPostしても、
Exitでモードチェックせずに FDataLink.UpdateRecord; してくれちゃうため
例外が発生します。

onExit発生前にコンポーネント側で発生するので例外がキャッチできません。
うまい解決方法はないものでしょうか。
707デフォルトの名無しさん:2009/06/03(水) 17:45:24
ComboBoxでリストがズラッと表示されてる状態でカーソルが当たってる項目を削除ってどうやるんでしょうか?
表示されてる中から削除したい項目のとこでマウス右クリック→PopUpメニューを表示→削除を選んだら
項目削除みたいな感じで考えていたんですが、PopUpメニューってEditの部分でしか出てこないみたいです。
リスト表示の部分では出せないんでしょうか?
708デフォルトの名無しさん:2009/06/03(水) 19:02:23
>>707
ハァ・・・・
709デフォルトの名無しさん:2009/06/03(水) 19:40:26
ヒィ・・・・
710デフォルトの名無しさん:2009/06/03(水) 19:46:02
フゥ
711デフォルトの名無しさん:2009/06/03(水) 19:51:03
兵法
712デフォルトの名無しさん:2009/06/03(水) 19:57:12
>>708
ハァじゃねぇよ。
でも、ハァっていわれちゃうレベルなの?
713デフォルトの名無しさん:2009/06/03(水) 20:19:16
> PopUpメニューってEditの部分でしか出てこないみたいです。

この一文が無ければまだ良かった。
714デフォルトの名無しさん:2009/06/03(水) 20:51:45
>>713
> PopUpメニューってEditの部分でしか出てこないみたいです。
> この一文が無ければまだ良かった。

すまん、意味が分からん。
現にEdit上で右クリックするとPopupメニューが出るが、リスト上だと出ない。
ttp://homepage1.nifty.com/MADIA/delphi/delphi_bbs/200606/200606_06060049.html
にも同じような質問があるのだが、はっきりした回答がかかれてなかった。
で、だからどうすればいいんだ?
715デフォルトの名無しさん:2009/06/03(水) 21:10:46
>>714
DELキーで削除じゃダメなの?
716デフォルトの名無しさん:2009/06/03(水) 21:50:57
そこに書いてることくらいはやったんだろうな
717デフォルトの名無しさん:2009/06/03(水) 22:11:36
やった。
popupもでた。
だけど、リストのカーソルがあるItemの取得をどうすんだろうとか、
その先に進めないんだ。
(俺、そんなレベルなの)
FAQでマウスカーソルの下にある文字列の取得とかあったと思うんで
それを使えばいいのかと思うんだけど、もっとスマートな方法があるんではと
思って質問したわけ。
718デフォルトの名無しさん:2009/06/03(水) 22:18:38
VCLの機能じゃたぶん無理な気が。
それに標準的なUIそしてはちょっと微妙。
他にやりようがなかったらItemsの一番下に(項目の整理)でもくっつけて編集用のダイアログ開くとか。
719デフォルトの名無しさん:2009/06/03(水) 23:16:09
ブラウザの記憶したID/パスワードを個別に消すのと同じような動作をさせたいんだろうね。

あまり一般的な動作じゃないから、プルダウンを選択した直後にDELで削除とかするか、
自分でコントロールを作るよりないかも。
720デフォルトの名無しさん:2009/06/04(木) 08:22:53
色々レスアリガトン
実は自分の思いこみなんだけど、ComboBoxの
データを消す時ってリストから選んで消すのって
一般的な動作じゃなかったけ?

そんなことよりハァって言った奴回答しろ
721デフォルトの名無しさん:2009/06/04(木) 08:51:09
>>720 ハァ
722デフォルトの名無しさん:2009/06/04(木) 09:06:30
>>721
くだらんなぁ
723デフォルトの名無しさん:2009/06/04(木) 09:21:17
>>722
はあ
724デフォルトの名無しさん:2009/06/04(木) 13:45:47
プッ
725デフォルトの名無しさん:2009/06/04(木) 20:20:54
何でいまだにDelにしがみついてるの?
馬鹿なの、死ぬの?
726デフォルトの名無しさん:2009/06/04(木) 20:24:02
天才として生きます
727デフォルトの名無しさん:2009/06/04(木) 20:41:00
正直、しがみつきたいところなんだがエンバカのやる気のなさに限界を感じてる。
728デフォルトの名無しさん:2009/06/04(木) 21:56:13
C#ねぇ・・
729デフォルトの名無しさん:2009/06/05(金) 00:14:23
二つのString型変数が、大文字小文字区別なしで同じ内容のときTrueを返す変数を教えてください
具体的に言うと 〜〜('aAA' ,'AAa') というときにTrueを返し、 〜〜('AAA' ,'BBB')でFalseを返すようなものです
730デフォルトの名無しさん:2009/06/05(金) 00:19:24
lowercaseでヘルプ探せ
731デフォルトの名無しさん:2009/06/05(金) 00:22:34
UpperCase/LowerCaseで大文字化してから比較
UpperCase('aAA') ==> 'AAA'
UpperCase('AAa') ==> 'AAA'

SameTextを使う
SameText('aAA', 'AAa') ==> True

雑多な便利関数が山のようにあるから
一度ヘルプの文字列処理関数一覧に目を通しておくといいよ
732デフォルトの名無しさん:2009/06/05(金) 00:39:57
CompareTextかAnsiCompareTextだろ、常識で考えて。
>731
一度ヘルプの文字列処理関数一覧に目を通しておくといいよ
733デフォルトの名無しさん:2009/06/05(金) 00:58:21
正直CompareとSameの使い分けはいつも迷うわ
734デフォルトの名無しさん:2009/06/05(金) 01:10:18
>>732
TrueかFalseを返して欲しいって言ってんだからSameTextでいいじゃん
二つの文字列が同じポインタを指してる場合は厳密な比較を省略するからCompareTextより早いし、
異なっていたとしても結局CompareText呼ぶから処理的な違いはない
だから一致してるかどうかだけ欲しい場合はSameTextの方が適当
ヘルプだけじゃなく一度ソースにも目を通しておくといいよ
735デフォルトの名無しさん:2009/06/05(金) 03:38:37
C#の組みやすさはたまらん。
でも、ネイティブコードにできないのでリリースしづらい。

売り物はDelで作るか、DelでActiveX作ってC#に組み込んでるな。
736 ◆XcB18Bks.Y :2009/06/05(金) 06:40:18
>>720
項目を選ぶ操作とその項目を追加削除する操作は
基本的には別の場所で行うのが望ましいと思います。
そうでないとユーザーは混乱すると思います。

たとえばJaneViewの書き込みウィンドウの名前欄のコンボボックスだと
削除機能はありません。
削除は設定画面で行います。



737デフォルトの名無しさん:2009/06/05(金) 12:39:05
>>736
アドバイスありがとうございます。
どういう操作性がユーザーに便利かってことと、
Windowsアプリの一般的操作ってことも両方
加味しないといけないですね。
738デフォルトの名無しさん:2009/06/05(金) 14:32:13
いや、どう考えてもお前の言ってたのは一般的じゃないから
739デフォルトの名無しさん:2009/06/05(金) 14:45:37
だから加味するんだろ
740737:2009/06/05(金) 15:59:30
>>738
だから、加味するって書いてるだろ。
馬鹿なの?死ぬの?
741デフォルトの名無しさん:2009/06/05(金) 17:08:31
TStringListとかにAddObjectってありますが、
逆にコンポーネントにTStringListとかを関連付ける
方法ってありますか?
742デフォルトの名無しさん:2009/06/05(金) 17:20:59
>>741
Tag
743デフォルトの名無しさん:2009/06/05(金) 18:09:02
>>742
ありがとうございます。

procedure TForm1.Button1Click(Sender: TObject);
begin
strList:=TStringList.Create;
strList.Add('HogeHoge');
Button1.Tag:=integer(strList);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Caption:=TStringList(Pointer(Button1.Tag)).Strings[0];
TStringList(Pointer(Button1.Tag)).Free;
end;

上記のようなテストプログラムを書いてみたのですが、
Captionに表示は出来たので基本的な使い方はいいと思うのですが、
破棄の仕方はあってますでしょうか?
Tagをヒントにググって見たのですが、破棄の仕方がイマイチよく分からなくて。
744デフォルトの名無しさん:2009/06/05(金) 21:05:03
>Button1.Tag:=integer(strList);
はTagの型に合わせてLongint(strList)が正しい。

# LLP64環境のDelphiってLongIntは何ビットになるんだろう?

>TStringList(Pointer(Button1.Tag)).Free;
TStringList(Button1.Tag).Free;
TObject(Button1.Tag).Free;でも可。
745デフォルトの名無しさん:2009/06/05(金) 22:00:38
Delphiで文字列を数値に変更するのに、数値以外までを数値に変換してくれるのって
ないでしょうか?
StrToFloatDefだと例えば
'123円'
とかで入力してもデフォルト値になってしまいます。
746デフォルトの名無しさん:2009/06/05(金) 22:26:36
Val
747745:2009/06/05(金) 22:41:48
>>746
Valは整数でしか使えないみたいなんですよね。
Cのstrtodのようなものがあればいいんですが…
748デフォルトの名無しさん:2009/06/05(金) 23:23:33
自分で作れ
749デフォルトの名無しさん:2009/06/05(金) 23:29:42
使えなくないし
750デフォルトの名無しさん:2009/06/05(金) 23:35:16
作ってから気づく、35の夏
751デフォルトの名無しさん:2009/06/05(金) 23:59:27
今時、Delphi5で勉強中なのですが、BMPからJPGでの変換時について
質問があります。

かなり大きなBMP(1920*13000)のBMP→JPG変換をすると
JPEG エラー #36.
というエラーが発生します。

比較的小さいサイズの変換はスムーズに行くのですが、ファイルサイズまたは、
画像サイズに影響があるものなのでしょうか?
また、回避する方法はあるのでしょうか?

ソースは
uses
jpeg;
procedure TForm1.Button1Click(Sender: TObject);
var
bmp : TBitmap;
jpg : TJPEGImage;
begin
bmp := TBitmap.Create;
jpg := TJPEGImage.Create;
bmp.LoadFromFile('test.bmp');
jpg.Assign(bmp);
jpg.SaveToFile('test.jpg');
jpg.Free;
bmp.Free;
end;

このような感じなのですが。。。
ご教示いただければ幸いです。
よろしくお願いします。
752745:2009/06/06(土) 00:08:18
>>749
ヘルプには整数を表す式と書いてたのに使えるみたいですね。
Valでいってみようと思います。

以下引用
Delphi のコードでは,Val 手続きは,文字列値 S を,Read でテキストファイルから
読み出したかのように,S が表す数値に変換します。
S は文字列型の式です。S は符号付きの整数を表す文字列でなくてはなりません。
753デフォルトの名無しさん:2009/06/06(土) 00:27:40
ソース、EXE、DCU等からどのバージョンでコンパイルされたか知る方法はありますか?
754デフォルトの名無しさん:2009/06/06(土) 00:42:31
>>751
GDIPlusでやってみたら?
755デフォルトの名無しさん:2009/06/06(土) 00:43:34
>>751
jpgの方でbmpよめんじゃね?
756デフォルトの名無しさん:2009/06/06(土) 01:55:04
>>744
IntegerとCardinalが環境依存であってLongintは固定です
あとTagは汎用性を持たせるために常にIntegerと同じサイズになるだろうから、
(じゃないと64bit環境ではポインタを持たせられない)
別にIntegerでキャストしても問題ないと思うしその方が移植性高くなる気がする
今から移植性とか言っても何言ってんだって感じではあるけどw
757デフォルトの名無しさん:2009/06/06(土) 02:29:27
>>751
調べてみましたがエラー#36はディスクスペースが足りないというエラーのようです
単純に空き容量不足の可能性もありますが、Delphi5ということなので、
内部で古い空き容量取得関数が使われていることに起因するバグのような気がします
試しにSaveToFileではなく、SaveToStreamを使ってストリーム経由で保存したらどうでしょうか
758デフォルトの名無しさん:2009/06/06(土) 09:34:00
文字列をSameStrで比較した場合と、= で比較した場合って違いがありますか?
759デフォルトの名無しさん:2009/06/06(土) 11:29:41
試せば分かることは聞くな
760デフォルトの名無しさん:2009/06/06(土) 12:23:44
割りと真剣に聞いてるんだが…
761デフォルトの名無しさん:2009/06/06(土) 12:29:06
オブジェクト比較と文字列比較の違いじゃないの
762デフォルトの名無しさん:2009/06/06(土) 12:42:21
>>761
そうかなーとも思ったんだけど、
if toolbar.Buttons[i].Caption = strName then
こんなコード書いても期待通りに動いてたんだ…

そもそもSameStrは存在するけど、ヘルプが無かった…
あ、Delphi2006です。
763751:2009/06/06(土) 13:19:56
>>754
GDIplusのことはまったく知りませんでしたが、ちょっと調べただけでも
いろいろできることがわかったので、試してみます。

>>755
保存時にエラーになってるようでしたのでTJPEGimage側かと思っていますが。。。。

>>757
SavetToStreamはまだ試していませんでしたので、こちらも併せて
いろいろ試してみます。


ありがとうございました。
764デフォルトの名無しさん:2009/06/06(土) 13:40:49
>>758
そもそもSameってなによw
サメの話ですか?wってゆうwww
765デフォルトの名無しさん:2009/06/06(土) 14:46:39
766デフォルトの名無しさん:2009/06/06(土) 15:43:17
>>762
ソース調べてみた
まずSameStrは古いDelphiでは存在しない(それがヘルプにない理由かも)
そして内部処理で多少の差はあるけど、基本的には同じ動作をする
あとDelphiでは文字列同士のポインタ比較だけをする処理は自分で意図的に書かない限りないと思う

コードはSameStr(やその中で呼ばれるCompareStr)の方が短いけど、
=で使われる内部関数の方が最適化が施してあって実際の処理速度は速い
SameStrの存在意義はもうひとつのoverload関数のロケール指定できる方なので、
普通に使う際は=で比較していれば問題ないと思う
767デフォルトの名無しさん:2009/06/06(土) 16:17:46
>>766
おおお、ありがとうございます!
スッキリしました
768デフォルトの名無しさん:2009/06/06(土) 18:12:28
レコード方の保存てどうやるんでしょうか?
TListに記憶させてTListを保存すればと思ったのですが、
TListには保存がなさそうなのでどうすればいいかと。
よろしくお願いします。
769デフォルトの名無しさん:2009/06/06(土) 19:19:04
えっ?
770デフォルトの名無しさん:2009/06/06(土) 19:52:42
シリアライザみたいなのを期待しているなら基本的に無理。
TObjectなpublishedプロパティにすればストリーム経由で簡単に読み書きできる。
そうじゃないならメモリの塊として読み書きするか
フィールドごとにテキストに変換してちまちま書いてくしかない。

というのがDelphi7までの知識。
最近のメソッドぶら下げられる奴はできるのかね。
771デフォルトの名無しさん:2009/06/06(土) 19:58:56
>>770
>シリアライザみたいなのを期待しているなら基本的に無理。
>TObjectなpublishedプロパティにすればストリーム経由で簡単に読み書きできる。
>そうじゃないならメモリの塊として読み書きするか
>フィールドごとにテキストに変換してちまちま書いてくしかない。

ありがとうございます。
TObject調べてみます。
772デフォルトの名無しさん:2009/06/06(土) 21:32:20
>>769
なんか最近こいつみたいな馬鹿が出てきてるけど、
学校ってもう休み?
773デフォルトの名無しさん:2009/06/06(土) 22:10:28
StringGrid内の文字列をクリップボードにコピー、切り取り、貼り付けすることってできないでしょうか
可能であれば方法を教えていただけないでしょうか?
774デフォルトの名無しさん:2009/06/06(土) 23:06:08
>>772
えっ?
775デフォルトの名無しさん:2009/06/06(土) 23:07:05
>>773
uses clipbrd
Clipboard.AsText
776デフォルトの名無しさん:2009/06/06(土) 23:25:09
>>775
助かりました、ありがとうございます!
777デフォルトの名無しさん:2009/06/07(日) 09:47:08
del7なんだけど折り畳めるアウトラインエディタのコンポーネントってありますか?
778デフォルトの名無しさん:2009/06/07(日) 13:08:13
MediaPlayerで再生されてる時に発生させるイベントはどうやって作ればいいんでしょうか?(TrackbarのOnChangeイベントのような)
また、MediaPlayerでファイルが開かれてることを確認するにはどうすればいいのでしょうか?
if MediaPlayer1.Open then ・・・ではだめでした。
779デフォルトの名無しさん:2009/06/07(日) 16:12:20
Modeとか
780 ◆XcB18Bks.Y :2009/06/07(日) 17:18:25
>>759
こういうのは

ちょっと試す

期待通りに動いた

やったーこれでOK!

実は勘違いでたまたま期待通りに動いただけでした

の可能性があります(いや恥ずかしい経験談なのですが)。
ちゃんと仕様を調べるべきです。
781デフォルトの名無しさん:2009/06/07(日) 17:39:16
>>780
えっ?
782デフォルトの名無しさん:2009/06/07(日) 17:40:48
この人って質問が解決してある程度流れた後にどうでもいい重箱の隅つつくようなレスするよね
783デフォルトの名無しさん:2009/06/07(日) 17:50:32
スルー推奨
784デフォルトの名無しさん:2009/06/07(日) 18:25:18
でも、質問する前にソース見て仕様を調べるべきだな
見ても分からないとかPersonal版でソースが無いとかなら仕方ないが
785デフォルトの名無しさん:2009/06/07(日) 18:41:58
無茶言うわ、ここ何スレよ…
786デフォルトの名無しさん:2009/06/07(日) 19:49:55
>>784
スレタイ読めないの?
馬鹿なの?死ぬの?
787デフォルトの名無しさん:2009/06/07(日) 20:09:40
えっ?
788デフォルトの名無しさん:2009/06/07(日) 20:14:56
なにそれこわい
789 ◆XcB18Bks.Y :2009/06/07(日) 21:43:46
>>782
たしかにそれはあると思います、すいません。
790デフォルトの名無しさん:2009/06/08(月) 08:46:51
蛆虫どもがわらわらと活動始めたね('▽')
791デフォルトの名無しさん:2009/06/08(月) 13:30:43
自己紹介お疲れ様です♪
792デフォルトの名無しさん:2009/06/08(月) 14:24:34
スルーしれ。
793デフォルトの名無しさん:2009/06/08(月) 15:43:31
>>790>>792
なんで自演したん?
794デフォルトの名無しさん:2009/06/08(月) 15:57:52
鋭い!
795デフォルトの名無しさん:2009/06/08(月) 19:09:13
スレもったいないし、質問しづらいよ! はい次↓
796デフォルトの名無しさん:2009/06/08(月) 23:35:08
>>793も一応質問だと思います!
797デフォルトの名無しさん:2009/06/09(火) 07:24:56
プロジェクトファイルをダブルクリックして起動すると
以前の状態がまるで保存されていないのですが、
持しておくようにどこかで設定できるものなのでしょうか?
798デフォルトの名無しさん:2009/06/09(火) 07:41:54
多分IDEの状態の事だと仮定します。

どのバージョンかは判らないので断定はできませんが、
メニューバーの右の方に「Default Layout」と書かれた
コンボボックスが見えませんか?
そこで画面の配置レイアウトを読込・保存できます。
799デフォルトの名無しさん:2009/06/09(火) 08:31:43
環境オプション→設定→自動保存の設定→プロジェクトデスクトップ
ってのは関係ないんだっけ?@D7
800デフォルトの名無しさん:2009/06/09(火) 09:01:20
そっちは一度開いたファイルを、プロジェクト読込時に再度開く設定みたいですね。

両方やっとけば大体元通りでいいんじゃないかな?
801797:2009/06/09(火) 10:34:38
>>798-800

すいません、Delphi2009です。
うまく保持されるようになりました。ありがとうございました。

9年振りのDelphiで、設定や言語仕様もあやふやな状態。
DELPHI 2009 HANDBOOK読んでると、まるで別の環境ですね…
802デフォルトの名無しさん:2009/06/09(火) 15:00:15
以前は同じソースを2枚で開いたり、他のユニットを参照しながら
ソース書いたり出来たのに、今はそれが出来ないのがひどい退化。

折角4画面の広いディスプレイがあるのに、1画面しか使えない。
そのくせ、TColmnやTActionの編集は従来通り。

もちっとなんとかしてくれ・・。
803デフォルトの名無しさん:2009/06/09(火) 15:18:19
>>802
で、質問はなんですか?
804デフォルトの名無しさん:2009/06/09(火) 15:21:33
2つのユニットを同時に表示する方法を教えて。
805デフォルトの名無しさん:2009/06/09(火) 15:22:40
外部エディタ
806デフォルトの名無しさん:2009/06/09(火) 15:34:15
表示の下の方
807デフォルトの名無しさん:2009/06/09(火) 18:36:55
え?今も普通にできるでしょ
808デフォルトの名無しさん:2009/06/09(火) 19:15:48
旧スタイルにしたら構造の挙動がおかしいんで泣く泣くもどしたなぁ
809デフォルトの名無しさん:2009/06/09(火) 20:07:46
>>804
D7ですが、右クリックメニューでやってた気が。釣りなら反応してゴメン。
810デフォルトの名無しさん:2009/06/09(火) 21:17:32
やだ何この人・・・
811デフォルトの名無しさん:2009/06/09(火) 21:55:15
標準ダイアログ上のコンポーネントってメインフォームからアクセスって出来ませんか?
例えば、ダイアログ上にEdit1があるとして

DialogForm.Edit1.Text:='a';

ってやるとアクセスバイオレーションエラーが出てしまいます。
812デフォルトの名無しさん:2009/06/09(火) 22:03:44
それはDialogFormが生成されてないってことじゃ?
813デフォルトの名無しさん:2009/06/09(火) 22:13:15
>811
標準ダイアログってなんじゃいな。
814デフォルトの名無しさん:2009/06/09(火) 22:18:30
レスありがとうございます。
プロジェクトのオプションで自動作成になってたんで
実行した時に作成されると勘違いしてました。
フォーム作成順番があるので、確認をしなくてはいけないってことですね。

815デフォルトの名無しさん:2009/06/09(火) 22:40:14
>>811
バージョンが書かれてないけど、少なくとも5、7では無問題

アクセスバイオレーションが出るのは、DialogFormが存在しないからじゃない?
例えば、フォームの作成順がメインフォーム→DialogFormのとき、
メインフォームのFormCreateイベントハンドラでDialogFormにアクセスすると、落ちるよ。
まだ作成されてないからね。

ただ、通常は、メソッド一つ挟んだ方が可読性が上がると思うけど。
816デフォルトの名無しさん:2009/06/10(水) 00:06:14
>>809
ごめん、D2007/D2009の話。
右クリメニューにはもうないの。
817デフォルトの名無しさん:2009/06/10(水) 00:31:42
出せるよ
調べなよ
818デフォルトの名無しさん:2009/06/10(水) 03:28:00
>>817
ねーよ。
適当な事言ってんなカスが。
819デフォルトの名無しさん:2009/06/10(水) 03:41:21
まあこんな対応してたらあってもなくても教えてもらえるはずもないな
どっちがカスなんだか…
820デフォルトの名無しさん:2009/06/10(水) 03:58:24
教える気がないならレスする必要ないんだぜ。
調べてわかるなら聞かないんだぜ。

少なくともこの事に関して記載されたページはちょっとググったところで出てきやしない。
あるかどうかすら不明。
821デフォルトの名無しさん:2009/06/10(水) 04:26:41
機能名そのものでググったら一発で出ましたけど
お前の能力のなさを棚に上げて他人の批判はやめれ
822デフォルトの名無しさん:2009/06/10(水) 04:47:14
機能名がわかったら聞かないっつーの。
機能名を使わずにググって見つけられないなら見つからないって事だよ。
823デフォルトの名無しさん:2009/06/10(水) 05:00:52
わたしばかでーす って言ってるようなもんだな >>822
824デフォルトの名無しさん:2009/06/10(水) 05:07:40
あ・ほ・か。

答えで調べたら見つかったって得意げになってる方が頭おかしいっつーの。
知ってようが知っていまいが、教える気がないなら黙ってればいいのに。
825デフォルトの名無しさん:2009/06/10(水) 06:13:47
正論だなw
826デフォルトの名無しさん:2009/06/10(水) 06:41:02
>>821
お前はわからないことを調べるとき、答えで検索するのか?
827デフォルトの名無しさん:2009/06/10(水) 06:54:26
817のグダグダっぷりにかんぱい
828デフォルトの名無しさん:2009/06/10(水) 10:34:36
調べてわからないと得意げな奴しか見あたらねーw
829デフォルトの名無しさん:2009/06/10(水) 11:58:04
>>828
だから聞いてんじゃん
スレタイ読めない池沼?
ばかなの、しぬの?
830DEKO ◆v8todlW3ks :2009/06/10(水) 12:45:12
>>804 で言ってるのが、
"2つのユニットを2つの編集ウィンドウで同時に開く"という事であれば、

"別の編集ウィンドウを開く" または "別の表示ウィンドウを開く" です。

ガリレオIDEでは "タブの右クリックメニュー" から無くなってしまいましたが、
・[表示 | 別の編集(表示)ウィンドウを開く]
・[コードエディタ内(タブではない)の右クリックメニュー | 別の編集(表示)ウィンドウを開く]
は、旧IDE同様に存在します。

# D2009 では "別の表示ウィンドウを開く" ですが、
# それ以前は "別の編集ウィンドウを開く" になっています。


そうではなくて、"1つのユニットを2つの編集ウィンドウで同時に開く" という事であれば、

[ツール | オプション | 環境オプション | VCLデザイナ]で
"埋め込みデザイナ" を外さないと実現不可能です。
http://www.ipentec.com/document/document.aspx?page=delphi2006-other

"埋め込みデザイナ" を外さないと、別の編集ウィンドウは表示されますが、
元の編集ウィンドウから、ユニットが消えます。
831デフォルトの名無しさん:2009/06/10(水) 13:46:03
>>829
得意げなんてどこにも書いてねーw
832829:2009/06/10(水) 15:42:03
>>831
何でもいいけど、何で俺にからんでんの?
833デフォルトの名無しさん:2009/06/10(水) 15:50:53
やっぱり頭が悪いからじゃね?
834デフォルトの名無しさん:2009/06/10(水) 16:58:30
お前の?
835デフォルトの名無しさん:2009/06/10(水) 17:19:27
>>832
スレタイが読めるから
836デフォルトの名無しさん:2009/06/10(水) 17:48:04
>>830
おお、こんなところにあったんだ。全然気づかなかった。
ありがとう〜!
837デフォルトの名無しさん:2009/06/10(水) 19:44:12
やっぱり頭悪かったね
838デフォルトの名無しさん:2009/06/10(水) 19:48:36
お前の?
839デフォルトの名無しさん:2009/06/10(水) 19:53:50
逆にどんだけアホな検索すれば辿り着けないのか教えて欲しいな
たぶん1回検索しただけで「調べたけど分からなかった」なんだろうけど
840デフォルトの名無しさん:2009/06/10(水) 19:59:27
841デフォルトの名無しさん:2009/06/10(水) 21:36:17
>>839
逆にとかどうでもいいから、機能名を使わずにググって見つかるキーワード出してみなよ。
842デフォルトの名無しさん:2009/06/10(水) 21:50:18
>>839みたいな奴っているよなぁ。
理屈言っても中身がないとか、だからなんなんだみたいな。
843デフォルトの名無しさん:2009/06/10(水) 22:14:35
>>821
>機能名そのものでググったら一発で出ましたけど
この一文で馬鹿っぷり炸裂ですね。
>機能名
>機能名
>機能名
>機能名
>機能名
>機能名
>機能名
>機能名
>機能名
844デフォルトの名無しさん:2009/06/10(水) 22:16:11
蛆虫どもがわらわらと活動始めたね('▽')
845デフォルトの名無しさん:2009/06/10(水) 22:28:47
お前が?
846デフォルトの名無しさん:2009/06/10(水) 22:30:44
「Delphi "別の編集ウィンドウを開く"」で簡単に出てきますね
機能名で探すのがおかしいと言ってる人は何がおかしいと思ってるのでしょうか
「別の編集...」はそれまで使ってたIDEから拾って来ればいいわけですし、
無くなった機能を探すんですから、まずその無くなった機能名で探すのは当然だと思います

質問者が検索で見つけられなかったのは、恐らく引用符で囲まずに検索したんじゃないでしょうか
最近の検索エンジンはヘタに賢くなったため、ある程度長い語は勝手に切ってしまいます
引用符で囲むことでひとつの単語として検索させられますから、
利用者側がもっと賢く使ってやる必要がありますね
847デフォルトの名無しさん:2009/06/10(水) 22:33:30
>>844
             / ̄ ̄^ヽ                  / ̄ ̄^ヽ
             l      l       ____        l      l
       _   ,--、l       ノ .     /_ノ  ヽ、_\     丶      l ,--、  _
   ,--、_ノ:: `ー'::   、ミー---‐,,l     o゚((●)) ((●))゚o     l,,‐---ー彡,  ::`ー'  ::ゝ_,--、
  ,/   :::         i ̄ ̄  | .  /::::::⌒(__人__)⌒::::: \    |   ̄ ̄i        :::   ヽ,
/           l:::    l:::   ll   |     |r┬-|     |    ll    :::l   :::l         ^ヽ
l   l .   l     !::    |:::   l   |     | |  |     |    l    :::|   ::!   l    l   l
|   l   l     |::    l:    l .  |     | |  |     |   l     ::l  :::|    l   :l   |
|   l .   }    l:::::,r-----   l  \    | |  |    /   l  -----、_::::::l    }   l   |
ヽ  :l::::   ト:;;;;;;;;;/-/__...........  /.        | |  |         ヽ  ...........__ノヽ;;;;;;;ノ  ::::l  /
                           | |  |
                           | |  |
                            `ー'´
848デフォルトの名無しさん:2009/06/10(水) 22:36:07
>>842>>843>>845>>847
必死なのは分かったから余所でやってくれ
相当暇なのか単にアンチなのか知らないけど、アンタ一人でずっとそういう煽りしかしてないでしょ
849デフォルトの名無しさん:2009/06/10(水) 22:38:45
>>846
>「Delphi "別の編集ウィンドウを開く"」で簡単に出てきますね
>機能名で探すのがおかしいと言ってる人は何がおかしいと思ってるのでしょうか
>「別の編集...」はそれまで使ってたIDEから拾って来ればいいわけですし、
>無くなった機能を探すんですから、まずその無くなった機能名で探すのは当然だと思います

はじめからそう書けばいいのに、自分の人間性の糞っぷりを晒すからグダグダ荒れるんだろが。
お前、実生活でもそうなんだから気をつけろよ。


2度と来るな。
850デフォルトの名無しさん:2009/06/10(水) 22:39:50
はーい
851てすと ◆cR08PK3l1o :2009/06/10(水) 22:40:12
てすとwwwwwちょwwwおまww

はいはい

てすとだお
852デフォルトの名無しさん:2009/06/10(水) 22:40:56
853デフォルトの名無しさん:2009/06/10(水) 22:42:46
しね
854デフォルトの名無しさん:2009/06/10(水) 22:44:24
質問です
DCUの構造を解説したドキュメントってないでしょうか
できればバージョン間の差異まであればいいんですが、特定バージョンだけでも構いません
855デフォルトの名無しさん:2009/06/10(水) 22:55:04
>「Delphi "別の編集ウィンドウを開く"」で簡単に出てきますね

漠然とやりたいことしかないのにそんなキーワードを書ける訳ないだろ。
答えありきでキーワード出すんじゃねーよw


856デフォルトの名無しさん:2009/06/10(水) 22:57:08
はいはい、そうだね
857デフォルトの名無しさん:2009/06/10(水) 23:00:40
>>855
じゃあそれまではどうやって別のウィンドウ開いてたの?
漠然と開いてたの?w
858デフォルトの名無しさん:2009/06/10(水) 23:06:54
>>857
猿の動物実験なんかで脳波でPCを操作するみたいなのあるけど、
あれの被験者だったんじゃね?
859デフォルトの名無しさん:2009/06/10(水) 23:11:29
>>857-858
独り言?
860デフォルトの名無しさん:2009/06/10(水) 23:18:23
くだすれDelphi(超初心者用)その49
超初心者用
超初心者用
超初心者用
超初心者用
超初心者用
超初心者用
超初心者用
超初心者用
超初心者用
超初心者用
超初心者用
861デフォルトの名無しさん:2009/06/10(水) 23:38:54
これならまだレスがない方が価値あるわ
862デフォルトの名無しさん:2009/06/11(木) 00:11:42
非アクティブで最小化されているアプリを通常の状態に戻すのってどうやるの?
863デフォルトの名無しさん:2009/06/11(木) 00:27:58
蛆虫どもがわらわらと活動始めたね('▽')
864デフォルトの名無しさん:2009/06/11(木) 12:48:31
Delphi、というかプログラムを最近始めた超初心者なんですが、
DelphiはDelphiで出来ているっていう意味がわかんないです。
鶏と卵みたいにどっちが先?ってことになると思うんですが。
865デフォルトの名無しさん:2009/06/11(木) 13:18:43
IDEがDelphiのコードで書かれているって事じゃないの?
866デフォルトの名無しさん:2009/06/11(木) 14:15:13
>>864 Delphiに限った話ではないけど。
アセンブラや他の言語で、必要最低限なコンパイラVer0を作る。
コンパイラVer0を使って、自分自身と同じ機能を持ったコンパイラVer1ソースコードを書きコンパイル

そのコンパイラソースを拡張して、コンパイラVer2を作成
そのコンパイラソースを拡張(以下省略)

そんな感じ。
867デフォルトの名無しさん:2009/06/12(金) 22:31:34
コンパイラまでPascal製ではなかったな、TP時代は
今はどうか知らんがある程度はアセンブラ使ってるんじゃないの?
868デフォルトの名無しさん:2009/06/13(土) 02:11:16
なぜ断言できる? > 867
869デフォルトの名無しさん:2009/06/13(土) 16:17:30
ドラッグアンドドロップされたオブジェクトが
ディレクトリかどうかを調べるにはどうすればよいでしょうか?
ExtractFileDirだとC:\testをドロップするとC:\しか返ってこないですし…
ExtractFileExtで空かどうか調べるのだと拡張子のないファイルと区別付かないですし…
870デフォルトの名無しさん:2009/06/13(土) 16:34:17
FileExists or DirectoryExistsじゃあかんのん?
871デフォルトの名無しさん:2009/06/13(土) 16:37:49
>>870
ありがとうございます。それで行けると思います。
872デフォルトの名無しさん:2009/06/13(土) 18:35:47
>>868
そもそも売り文句がアセンブラ製で速い!だったんですけど
Wikipediaにすら載ってるし、そんな馬鹿みたいな質問するくらいなら少しは検索しなよ
873デフォルトの名無しさん:2009/06/13(土) 21:28:57
function FileInfo(AFileName: String; var sr: TSearchRec): Boolean;
みたいなの作っとくとたまに便利
874デフォルトの名無しさん:2009/06/13(土) 21:52:31
Stringの引数にはconstとかvarとか付いて無いと色々不安になる
875デフォルトの名無しさん:2009/06/13(土) 23:40:29
procedureとfunctionの使い分けがウザイ今日このごろ
876デフォルトの名無しさん:2009/06/13(土) 23:59:39
全部functionでもいいんじゃね
馬鹿だと思われるだろうけど
877デフォルトの名無しさん:2009/06/14(日) 00:02:00
全部procedureでもいいんじゃね
何か意味があるのかもと少しは思われるかも
878デフォルトの名無しさん:2009/06/14(日) 00:57:02
空じゃないディレクトリ削除するにはどうすればいいですか?
879デフォルトの名無しさん:2009/06/14(日) 01:09:26
880デフォルトの名無しさん:2009/06/14(日) 18:03:45
CheckListBoxのことで教えてください。
ある処理をする時にCheckListBoxのチェック状態を処理前に戻す
場合があるので処理前に
CheckListBox1 := CheckListBox;

元に戻す場合
CheckListBox := CheckListBox1;

としたのですが、チェックの状態までは戻らないみたいです。
一つ一つ状態を記憶しておくしか方法はないでしょうか?
881デフォルトの名無しさん:2009/06/14(日) 18:12:37
それじゃだめだね。

var
 dummychk: TCheckLisBoxt;
begin
 dummychk := TCheckListBox.Create(nil);
 dummychk.Assign( CheckListBox );
 
 処理

 CheckListBox.Assign( dummychk );
end;

でどうでしょう?
まぁ、普通にチェック状態を覚えさせておくのが簡単とは思うけど…
882デフォルトの名無しさん:2009/06/14(日) 18:13:50
あ、ごめん。
Free忘れてる。

やるならtry finallyでくくってFreeしてね。
883デフォルトの名無しさん:2009/06/15(月) 00:07:38
>>881
それじゃできないよ
処理前後で項目数が変わらないなら普通にBooleanの動的配列使った方がいい
884デフォルトの名無しさん:2009/06/15(月) 00:21:25
>>880も超初心者スレらしい質問だが、>>881もひどいなこりゃw
Assign(やAssignTo)ってのは実装されてないと何の意味もないよ
大元のTPersistentには最低限のコードしか書かれてないからね
途中のTControlなどでも同じ
だからどんなクラスでもAssignでコピーできると思ったら大間違い
885デフォルトの名無しさん:2009/06/15(月) 08:20:59
動的にコンポーネントを複製するような時って
Createで作って他の内容をコピーしたい時って
hoge1:=hoge2; 
ってやってもダメって事?
Assignでもダメなら、いちいちプロパティー毎に
コピーしていかないといけない?
886デフォルトの名無しさん:2009/06/15(月) 09:49:56
delphiでwebサーバープログラム組むのって無謀?基本のwebページあれば簡単?それとも普通にhtml吐ける?
887デフォルトの名無しさん:2009/06/15(月) 11:11:28
アパッチみたいなの作るっていうこと?
多分CGIとかならやれると思うよ。
やったことないけど、Delphi5のインターネットプログラミング
って本があるから。
888デフォルトの名無しさん:2009/06/15(月) 15:48:04
>>885
ポインタのコピーしたところで中身までコピーされるわけないだろ
889デフォルトの名無しさん:2009/06/15(月) 20:08:12
コピーした時点ではポインタの共有状態だけど
片方変更した時点で別物になるんじゃなかったっけ?
stringとかのデータタイプの話でコンポーネントはダメなんだっけ?
890デフォルトの名無しさん:2009/06/15(月) 20:11:13
中途半端に知識を持つと悲惨なことになる実例>>889
891デフォルトの名無しさん:2009/06/15(月) 20:11:26
トグルボタンのコンポってどっかに落ちてないですか?
ググってたら2009購入者限定でかっちょいいコンポ配ってるの
発見したんだけど、Delphi7なんです。
892889:2009/06/15(月) 20:13:21
ホントその通り。
何年かぶりにDel触ったら、昔書けてたコードが
訳わからんくなってる。w
893889:2009/06/15(月) 20:15:09
スレ汚しすまん。
で、結局プロパティ毎にコピーして逝かなきゃならんの?
894デフォルトの名無しさん:2009/06/15(月) 20:15:27
>>885
Niftyにあった、DelphiのFAQサイトに、オブジェクトをコピーするサンプルが掲載されてた。

あのサイト、どこかに引っ越したと思ったけど、どこ行った?

とりあえず「delphiオブジェクト コピー」でググると、上位に「Delphi FAQ: オブジェクトをコピーする」がヒットするから、googleのキャッシュでコード確認してみて。
少し手を入れれば、イベントハンドラもコピー出来るよ。
895デフォルトの名無しさん:2009/06/15(月) 20:42:59
解決策も書かず、ケチ付けるだけの奴がたまに出るの見て
昔、MLにいたPcode(だっけ)思い出した。
あの人の場合、口は悪いがちゃんと教えてくれたけどね。
896デフォルトの名無しさん:2009/06/15(月) 20:58:42
pcode
897|Д゚彡 ◆A6VzDeLphI :2009/06/15(月) 21:53:29
ん?
898デフォルトの名無しさん:2009/06/15(月) 22:21:44
pcodeさん、懐かしい。
最初は皆から総すかんだったけど、後々賛成派も現れたよな。

文句しか言わない奴より、多少間違えてもそれがヒントになればいいんだからね。

899デフォルトの名無しさん:2009/06/15(月) 22:58:54
>891
SpeedButtonじゃダメか?まあフォーカス取れないけど。

チェックボックスを改造するやり方もあるにはある。これならフォーカスも取れる。
TButtonLike = class(TCheckBox)
protected
  procedure CreateParams(var Params: TCreateParams); override;
end;

procedure TButtonLike.CreateParams(var Params: TCreateParams);
begin
  inherited;
  Params.Style := Params.Style OR BS_PUSHLIKE ;
end;

しかしプロパティが誤動作する危険がある。
900デフォルトの名無しさん:2009/06/15(月) 23:13:47
関係ないけど何でorが大文字なの?
901デフォルトの名無しさん:2009/06/15(月) 23:22:21
気のせい
902デフォルトの名無しさん:2009/06/16(火) 10:52:08
>>899
レス?ォです。
そうなんですよ、フォーカスとれないのが嫌で探してたんです。
パネルを代用しようかとも思ったんですが、コンポ探しても見あたらなくて。
Delphianなら有ったんでしょうけどないモノはしょうがないですね。
903デフォルトの名無しさん:2009/06/16(火) 11:40:42
関係ないけどsageは小文字じゃないと意味ないような
904デフォルトの名無しさん:2009/06/16(火) 13:53:50
大文字だとSEGAにみえてしまうのは年のせいかね
905デフォルトの名無しさん:2009/06/16(火) 15:39:31
>>902
なんだ、前にいた荒らしか
906デフォルトの名無しさん:2009/06/16(火) 16:34:34
俺?
907デフォルトの名無しさん:2009/06/16(火) 16:47:05
>>905
だから、なんだい?
908デフォルトの名無しさん:2009/06/16(火) 20:13:33
>>907
で?
909デフォルトの名無しさん:2009/06/16(火) 20:56:33
230通も受信しはじめたからDelphiML壊れたかと思ったw
910デフォルトの名無しさん:2009/06/16(火) 21:54:45
MLに会社名とか書いてないのが幸いだったな
もしこんなのと取引してたと分かったらちょっと考えちゃう
911デフォルトの名無しさん:2009/06/16(火) 22:01:14
たしかにね、
あんなことする奴が書いたソフトはあまり信じられないような気がするからね。
912デフォルトの名無しさん:2009/06/16(火) 22:12:56
なんで無理やりここでやりたがるんだろう
913デフォルトの名無しさん:2009/06/16(火) 22:27:46
嫌がらせのメールボムじゃないのか。
914デフォルトの名無しさん:2009/06/17(水) 06:55:09
おはようございます。
1000鳥合戦、してもいい?
915デフォルトの名無しさん:2009/06/17(水) 10:26:28
1000鳥スクリプト作成スレになりますた
begin
916デフォルトの名無しさん:2009/06/17(水) 10:42:14
end;
917デフォルトの名無しさん:2009/06/17(水) 10:49:40
end.
918デフォルトの名無しさん:2009/06/17(水) 17:26:49
unit 次スレ;
919デフォルトの名無しさん:2009/06/17(水) 17:30:59
uses
920デフォルトの名無しさん:2009/06/17(水) 17:32:21
ははははは
間違えちった。

interface

921デフォルトの名無しさん:2009/06/17(水) 23:54:08
uses lib2ch;
922デフォルトの名無しさん:2009/06/18(木) 13:52:39
質問です
エクスプローラで複数のファイルを選択してそのファイルを取得するにはどうすればいいのでしょうか?
最初は「送る」にショートカットを置いてそこから取得して起動していたのですが、ファイル数が増えると
「指定されたデバイス、パス、またはファイルへのアクセスは拒否されました」のエラーが出ます。
調べたら、ParamStrの文字数512制限で引っかかっているようなんですが、他に方法はあるんでしょうか?
923デフォルトの名無しさん:2009/06/18(木) 15:11:12
そのエラーはDelphiではなくエクスプローラ側のエラー
924デフォルトの名無しさん:2009/06/18(木) 19:49:03
Delphi コンテキストメニュー
でググれ
925デフォルトの名無しさん:2009/06/18(木) 20:22:05
ParamStrに文字数制限があったかどうか忘れたけど
GetCommandLine使えばDelphi側の制限は回避できるはず。
でもどの道Windows自体に制限はあるけどね。

数百数千の単位でファイルを受け取りたいならシェル拡張でメニューを追加するか
フォーム起動してからそこにD&Dして受け取るかすればいいんじゃね。
926デフォルトの名無しさん:2009/06/19(金) 08:33:38
やはり シェル拡張の方法ですか…
調べてはみたんですが、やったことないんで理解に苦しんでますがもう一度チャレンジしてみます。
927デフォルトの名無しさん:2009/06/19(金) 18:33:56
Delphi7で作ったプログラムをWindows7RCで動作確認しています。

ほとんど動作するようなんですが、ComboBoxでDropDownCountが8にも関わらず、
30個表示されてしまうようです。

Vistaは持っていないのですが、これってVistaのときから同じでしょうか?

またDelphi2007や2009ではどうなのかどうか、情報お持ちの方いらしたらお願いします。
(私はDelphi7以外持っていません)

よろしくお願いします。
928デフォルトの名無しさん:2009/06/19(金) 19:31:39
WinXP+D7開発でVistaで動かしたけど指定通りのDropDownCountだったよ。
# と思ったけど。テストでは…
929DEKO ◆Ksf1ckrwGPYc :2009/06/19(金) 19:34:03
>>927
Vista も同様です。この件は Delphi 2007 Update3 で修正されています。
http://edn.embarcadero.com/article/36959

それ以前の Delphi では、
XPMan を Uses しなければ(テーマを有効にしなければ)正常に機能します。
930927:2009/06/19(金) 19:49:29
>>928
>>929
回答ありがとうございます。

それほど実害があるわけではないので我慢しようと思います。
Windows7はほとんどVistaと同じみたいですね。
931デフォルトの名無しさん:2009/06/20(土) 06:46:05
Delphi7 なら RTL ソースコードをお持ちかと。
Delphi Lite でググれば、D2009 の RTL の D7 へのバックポートが手に入りますよ
932デフォルトの名無しさん:2009/06/20(土) 19:23:36
マルウェアもついでに入りますけどね
933デフォルトの名無しさん:2009/06/20(土) 21:04:27
なにそれこわい
934デフォルトの名無しさん:2009/06/21(日) 01:17:19
7z扱うコンポーネントってないですか?
935デフォルトの名無しさん:2009/06/21(日) 02:00:53
936デフォルトの名無しさん:2009/06/21(日) 08:44:21
>>932
プログラマならそれぐらい対策しろよw
937デフォルトの名無しさん:2009/06/21(日) 17:54:55
とか言ってる人間のPCを検索するとマルウェアだらけでした、なんてこともよくあること
938デフォルトの名無しさん:2009/06/21(日) 22:35:04
丸ウェアって何?Jwardみたいなやつ?
939デフォルトの名無しさん:2009/06/21(日) 22:37:23
PC初心者版へどうぞ
940デフォルトの名無しさん:2009/06/22(月) 02:31:01
マルウェアには初心者版みたいな導入用バージョンがあるの?
941デフォルトの名無しさん:2009/06/22(月) 03:56:59
できる○ウェア
942デフォルトの名無しさん:2009/06/22(月) 13:49:22
一時的にデータを記憶させておく必要がある時に
例えば、Memoを見えないようにしておいてリストを入れておいて、
後から取り出すとかは邪道?
その都度TStringListをCreate,Freeして使うべき?
943デフォルトの名無しさん:2009/06/22(月) 13:57:12
正統派とは思わないけど、常に一定のCSVデータを格納しておく時、
俺はやってる。
944デフォルトの名無しさん:2009/06/22(月) 17:11:35
どんなデータかにもよるんじゃね
945デフォルトの名無しさん:2009/06/22(月) 18:01:50
Handle 食うから嫌い
946デフォルトの名無しさん:2009/06/22(月) 18:32:10
handle食うから嫌いって何故ですか?
ケチを付けるとかそんなんじゃなくて、私の知識不足
からの質問です。
947デフォルトの名無しさん:2009/06/22(月) 18:37:14
必要なものを必要なだけ確保するというのがプログラミングの基本。
StringListが必要なのにただCreate/Freeが面倒という理由だけで
Memoを配置するなんて論外。

というのが建前。
実際は今時Memoインスタンスひとつ増えただけでWindowsが落ちるわけでもない。
好きにしてくれ。
948デフォルトの名無しさん:2009/06/22(月) 20:09:20
まあウィンドウは見えなくても外部から参照できるからユーザーには笑われるかもしれないけどね
949デフォルトの名無しさん:2009/06/22(月) 20:23:03
気持ち悪いからやだ
StringListもちょっと気持ち悪いけど使っちゃう
950デフォルトの名無しさん:2009/06/22(月) 21:01:11
TStringListの生成ごときでうだうだ言ってる奴は、
TComponentにTStringList持たせただけのコンポーネントでも作ってもらったら?
951デフォルトの名無しさん:2009/06/22(月) 21:10:34
TMemoはWindows管理下にあるので遅いしなぁ。普通にTStringListだろ。
952デフォルトの名無しさん:2009/06/22(月) 21:55:36

with TStringList.Create do
try
  //処理
finally
  Free;
end;
953デフォルトの名無しさん:2009/06/22(月) 22:01:30
長文のテキスト定数を簡単に記述できるヒアドキュメントがないから
TMemo.Linesに書きたくなる気持ちは分からないでもない。
954デフォルトの名無しさん:2009/06/22(月) 22:48:29
TMemo.Lines は TStrings な訳で
TStringList は TStrings の子供だから
TStrings を完全に含んでいる訳だが。
955デフォルトの名無しさん:2009/06/22(月) 23:15:41
>953が言いたかったのは定数として文字列を用意する代わりにForm/Datamoduleに配置した
TMemoにプロパティとして文字列を入れておく、ということだと思う。お手軽デバッグ用以外には
やめてほしい手法だけど。
956デフォルトの名無しさん:2009/06/23(火) 07:48:51
テキストファイルをリソースで組み込めばいいやん
957デフォルトの名無しさん:2009/06/23(火) 08:00:32
TStringList.Create関連の一連の記述を単語登録しとけ。
おれはそうしている。
TMemo貼り付けるより、ずっと楽だ。
958デフォルトの名無しさん:2009/06/23(火) 10:24:18
Delphiアプリのタスクバーアイコンを右クリックしたときのメニューが
他と違うんだけどてっとり早く同じにするコンポかサンプルコードないですか。
959デフォルトの名無しさん:2009/06/23(火) 14:41:47
960デフォルトの名無しさん:2009/06/24(水) 05:05:55
Delphi7Lite はソースコード完全公開ですから、使って安心。
Weaver / Delphi2010 の修正 RTL の取り込みも始まっているので
みんなで使い回しましょう

マルウェアいっているのは円場かのまわしものかね。
961デフォルトの名無しさん:2009/06/24(水) 16:05:32
と犯罪者が仰ってます
962デフォルトの名無しさん:2009/06/25(木) 10:17:32
正規ユーザーなら、RTL/VCL のソースを修正することに何の問題も無いのだが
961 は、どこに問題を感じているのだい?
963デフォルトの名無しさん:2009/06/25(木) 11:05:19
自分に知恵を付けろ
他人に知恵を付けるな
最後には自分の首を絞める事になる
964デフォルトの名無しさん:2009/06/25(木) 16:43:48
Delphi2009を使用しています。

procedure TForm1.Button1Click(Sender: TObject);
begin
{$IFDEF FOO}
  ShowMessage('FOO')
{$ELSE}
  ShowMessage('BAR')
{$ENDIF}
end;

上のようなテストプログラムを書き、プロジェクト オプションのビルド設定で
Baseのプリプロセッサシンボルの定義にシンボルFOOを追加しました。
自動的にデバッグはFOO;DEBUG、リリースはFOO;RELEASEとなっています。
この状態でデバッグおよびリリースの再構築をしたのですが、どうやっても
"BAR"が表示されてしまいます。何か見落としていることがあったら教えてください。
965DEKO ◆Ksf1ckrwGPYc :2009/06/25(木) 18:06:29
>>964
オブジェクトインスペクタを確認してみてください。

ここの "ビルド設定" は
・Debug
・Release
のどちらになっているでしょうか?

# "ビルド設定" はダブルクリックで切り替えられます。
966964:2009/06/25(木) 18:43:33
>>965
オブジェクトインスペクタではビルド設定がみつからなかったのですが、プロジェクトマネージャでは
デバッグが太字になっていました。
スクリーンショットを取ってみましたが、おかしなところあるでしょうか。
http://g2n001.80.kg/_img/2009/20090625/18/200906251833550704734961140.png
967DEKO ◆Ksf1ckrwGPYc :2009/06/25(木) 19:37:58
>>966
>オブジェクトインスペクタ
すみません、プロジェクトマネージャですね。

> おかしなところあるでしょうか。
ここはリソースコンパイラのプリプロセッサ用条件定義になります。
"Delphiコンパイラ" の "条件定義" に FOO を追加してみて下さい。
968964:2009/06/25(木) 20:08:41
>>967
うまくいきました。本当にありがとうございます。
969デフォルトの名無しさん:2009/06/25(木) 21:02:45
Delphiインストールしようとしたら、あらかじめ必要なものが多すぎてめんどくなった
970デフォルトの名無しさん:2009/06/25(木) 21:38:45
>>969
すげーよくわかる、面倒だよな
俺はインストールして作るもの作ってリリースした後
起動すらしてないけどあとで必要になるかもと思って
アンインストールするかどうか迷ってる
971デフォルトの名無しさん:2009/06/26(金) 01:01:13
そんなのなんかあったっけ?
972 ◆XcB18Bks.Y :2009/06/26(金) 05:16:32
統合環境が.netベースになっている比較的新しいバージョンだと
いろいろ入れなければならなくて面倒ですよ。
2009ではだいぶ減ったらしいですけど。
973デフォルトの名無しさん:2009/06/26(金) 09:40:01
netか
俺もC#やってみようかなと思ったが、netも云々でやめたな
974デフォルトの名無しさん:2009/06/26(金) 16:12:35
開発者ならそのくらい入っていても良いかな?と思うが
インストールに必須なものがない方が楽は楽
975デフォルトの名無しさん:2009/06/26(金) 17:26:43
c++で二重ループの先頭にもどるのって
goto使うか二度if文使うしか無いの?

fortranだと

loop: do i=1,n
do j=1,n
if(hoge) cycle loop
enddo
enndo

とかで一行でかけちゃうよね
cで同じようなコードかくと
ループの外に出てしまうのでiがゼロに初期化されたり
jが更新されなかったりで冗長なコードになってしまうのが残念
976デフォルトの名無しさん:2009/06/26(金) 17:27:49
誤爆してしまった
ごめんね
977デフォルトの名無しさん:2009/06/26(金) 18:37:58
コードブロックをキューに突っ込んで言って
スレッドプールから暇なスレッドに割り当てて実行するような
Delphi向けのマルチコア向けのスレッドライブラリってなんかない?
978デフォルトの名無しさん:2009/06/26(金) 23:42:49
効率とか考え出したらライブラリ探した方がいいけど、
単純にそれだけの機能なら自分で書いた方が早くないかね
979デフォルトの名無しさん:2009/06/30(火) 00:31:51
スレチなんだけど、モニターの数ってどうやって確認するの?
980デフォルトの名無しさん:2009/06/30(火) 00:52:02
>>979
Screen.MonitorCount
981デフォルトの名無しさん:2009/06/30(火) 08:12:43
スレチなのか?
982 ◆XcB18Bks.Y :2009/06/30(火) 14:43:54
もうスレも終わりなのでスレ立てトライしてみますが会社なので結果は期待しないでね。
983 ◆XcB18Bks.Y :2009/06/30(火) 14:58:41
珍しく建ちました。

くだすれDelphi(超初心者用)その50
http://pc12.2ch.net/test/read.cgi/tech/1246340765/

関連スレはどれも残っていましたのでそのままです。

>>980
最新の2009はわかりませんがTurbo Delphi Explorerだと
ノートパソコンとかでプログラムの起動中にモニターが増えたり減ったりした場合には反映されないので
こういうケースを想定しているようなソフトでは自力で調べる必要があります。

984 ◆XcB18Bks.Y :2009/06/30(火) 15:24:16
>>983>>980につっこみたかったのではなくてただの補足です。
「やな感じ〜!」に見える書き込みでゴメンナサイ

モニターが増えたり減ったりなんて結構前から珍しくないのに何年放置しているのかと思います。
985|Д゚彡 ◆A6VzDeLphI :2009/06/30(火) 17:07:14
本当だ。

バグ報告っていっているのかな?
986デフォルトの名無しさん:2009/07/01(水) 00:07:28
起動中にって・・・
987デフォルトの名無しさん:2009/07/01(水) 02:04:33
珍しいか?
俺はしょっちゅうやってるが。
988デフォルトの名無しさん:2009/07/01(水) 04:43:35
>>986
常駐系とか思いつきませんでしたか?
貧相な頭ですね
989デフォルトの名無しさん:2009/07/01(水) 04:57:52
TForm.Monitorを参照するとモニタの数更新されるよ
厳密に言えばフォームが新規に接続されたモニタ上にあった場合にだけど
990デフォルトの名無しさん:2009/07/01(水) 14:39:21
なんだこのウンココードは…
function TScreen.GetMonitorCount: Integer;
begin
if FMonitors.Count = 0 then
Result := GetSystemMetrics(SM_CMONITORS)
else
Result := FMonitors.Count;
end;
常にGetSystemMetricsよんどきゃいいんだな
991デフォルトの名無しさん
まぁそんなもんだ