[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 08/13 11:51 / Filesize : 238 KB / Number-of Response : 924
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


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

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



1 名前: ◆XcB18Bks.Y mailto:sage [2008/03/12(水) 21:09:39 ]
Delphi(デルファイ)について、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を
勇気を持って書き込むスレッドです。
Delphi使いが優しくコメントを返しますが
お礼はDelphiの布教と初心者の救済をお願いします。

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

<過去スレ>
DelWiki避難所(Delphi 関連の過去スレッド)
delwiki.info/?Delphi%20%B4%D8%CF%A2%A4%CE%B2%E1%B5%EE%A5%B9%A5%EC%A5%C3%A5%C9


610 名前:Zzz [2008/05/09(金) 23:16:25 ]
>>609
むむー
ListBox1.Items.SaveToFile(ListDat); で行けるかも

えっと
Items欄に保存ってゆうのは・・・・・・
コンボボックスとかは、選択肢をItems.Addしなくても事前に入れて置けるじゃないですか(うろ覚えすまん)
あれってPgで、あるボタンを押した時のイベントでItems.Addして追加しても、
Pg終了して、再度Pg再開してコンボボックスの中見ると消えてるじゃないですか(あたりまえですけど)
つまり、そのItems欄の中にデータを残しておきたい訳です

(↓コンボの中)
にんじん
だいこん
トマト

↓(いもを追加)

(↓コンボの中)
にんじん
だいこん
トマト
いも

↓(システム落として再起動)

(↓コンボの中)
にんじん
だいこん
トマト

(がーん いもは・・・・・)

611 名前:デフォルトの名無しさん [2008/05/10(土) 00:01:24 BE:348454-PLT(12660)]
iniかレジストリ使うのが普通じゃね?

612 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 00:55:11 ]
自分で言ってるけど消えるのは当たり前なんです
そういうのは外部のファイルに記録しておいて
再開したときに読み込むのがいいと思います

613 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 07:42:56 ]
だから、設計時に追加した情報は、コンパイルするとリソースとしてexeに含まれるの。

614 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 10:03:01 ]
TIniFile使ってやるのが一般的じゃね?
>>610の気持ちもわからんではないが・・・逆にIDEで初期値を入れられるだけでも便利と思え!

ListBox1.Items.Commatext:=ReadString('ListBox1','Items','');

WriteString(ListBox1','Items',ListBox1.Items.CommaText);



615 名前:デフォルトの名無しさん [2008/05/10(土) 10:27:37 ]
dfmファイルを外部に持たせればOK.

616 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 11:28:00 ]
    彡川三三三ミ
   川出 ::::::⌒ ⌒ヽ  パクリ星からやってきたお!
  出川::::::::ー●-●-)
 ..川(6|::::::::  ( 。。)) パクリ星の王子様の◆Style/kK.sだお!
 出川;;;::∴ ノ  3  ノ  
   ノ\_;;;;;;;;;;;;;;;;ノ   Janeスレ荒らしてるヒキコモリだから友達できないお!
  ( *  ヽー--'ヽ )
  (∵ ;)  ゚ ノヽ  ゚ ):) チンポは極小で包茎だお!!ちなみに童貞だお!!
  (: ・ )--―'⌒ー--`,_)
  (___)ーニ三三ニ-)
  (∴ ー' ̄⌒ヽωニЗ 好きなものは他人のソースとオナニーとwarezだお!!
   `l ・  . /メ /
    ヽ ∵  /~- /.    今日もたくさんソースパクリまくるお!!
    (__)))))_)))))

617 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 14:33:41 ]
>>566
おー、Sliverpoint乙

618 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 15:14:34 ]
>>587
今頃で申し訳ないんですがエラーが出てインストール出来ません・・・
d6perだからですかね?proだとインストールできるんでしょうか



619 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 16:15:29 ]
>>618
alpha版はdel7から対応だったように思う
2.1beta1↓
ttp://www.fileup.org/fup183413.zip.html
TB2Kのパッチは自分で探してね

620 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 16:15:47 ]
>>619
passはtbx

621 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 16:22:52 ]
>>619-620
わざわざうpしていただいてありがとうございます!
インストールしてみます

622 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 16:46:04 ]
インストールできました!
ありがとうございました!

623 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 18:24:43 ]
インストールできたのはいいんですがメニューがボタンのようになってしまいます・・・
これじゃ当初の目的が達成できないのですが、どのようにすれば普通のメニューのように出来るのでしょうか

624 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 18:28:59 ]
すみません、自己解決しました・・・

625 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 18:30:40 ]
わけわかんねー事言ってんじゃねぇよタコ
小学生からやりなおせ

626 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 19:07:00 ]
今小学5年生です・・・・

627 名前:デフォルトの名無しさん [2008/05/10(土) 19:15:49 ]
「相撲」って人気有るんだな
映画化されて・・・と思った・・・おれは小学生からやり直すべき?

628 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 19:17:12 ]
相模だろw



629 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 19:18:37 ]
意味の解らない俺はどれからやり直せばいいんだ?

630 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 20:02:46 ]
アセンブラからだろ とーぜん

631 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 20:30:43 ]
精子から

632 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 20:42:11 ]
Office2007でコンテキストメニューを表示したとき
その上にツールバーも一緒に表示するUIが何気に便利なんだけど
あれどうやって実現するんだろう。

633 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 21:24:25 ]
実現も何も・・ただそういうウィンドウを表示してるだけだよ。

634 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 03:52:32 ]
うまく言えないんですがエスケープシーケンスのある文字列を変換するにはどうすればいいんでしょうか
たとえばabc\ndefという文字列があった時に
abc#10def(#10はもちろん文字列としてではなく)に変換するみたいなのです

635 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 03:56:24 ]
お願いします。APIを使ったプログラムに不自由してるくらいの実力の者です。

d.hatena.ne.jp/Wacky/20080114/1200315830
ここのサイトの通りにTMemoに検索をつけてみたんですが、検索方向が下向きに検索できるのですが、上向きには検索できません。
どうすればできるようになるのでしょうか?

ちなみに環境はWindowsXPHome,Delphi5Proです。

636 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 05:17:38 ]
>>634
つStringReplace

>>635
TFindDialog.OptionsにfrDownが設定されているかを確認して
自分で切り替える必要があります

637 名前:634 mailto:sage [2008/05/11(日) 05:27:03 ]
>>636
一応\nだけではなくて\tとか漢字とかもエスケープされてるようなので使えないです・・・

638 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 07:56:46 ]
>>637
つ正規表現 TRegExp



639 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 08:09:33 ]
function DecodeEscStr(const s: string): string;
var i: integer;
begin
 Result := ''; i := 1;
 while i <= length(s) do
  if s[i] in LeadBytes then
  begin Result := Result + copy(s, i, 2); inc(i, 2);
  end else begin
   if s[i] = '\' then
   begin  inc(i); case s[i] of
     'x':try
       Result := Result + char(StrToInt('$' + s[i + 1] + s[i + 2]));
       inc(i, 2);
      except end;
     'b': Result := Result + #$08;
     'a': Result := Result + #$07;
     'f': Result := Result + #$0C;
     'r': Result := Result + #$0D;
     't': Result := Result + #$09;
     'v': Result := Result + #$0B;
     'n': Result := Result + #13 + #10;
     else Result := Result + s[i];
    end;
    inc(i);
   end else begin
    Result := Result + s[i]; inc(i);
   end;
  end;
end;

640 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 08:11:02 ]
>>634 はもしかして C言語スタイルの \ エスケープでエンコードされた
文字をデコードしたいって事じゃないかと思ってサンプルコードを書いてみた

641 名前:634 mailto:sage [2008/05/11(日) 08:27:34 ]
>>638
TRegExpは何だかさっぱりであまり使ってません・・・

>>639,640
ありがとうございます
元のプログラムはCのようなのですがそれの仕様が良く分からないもので・・・
一応「テスト」という文字が「\83e\83X\83g」になるということは分かってます

642 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 09:08:54 ]
それは独自仕様って事だね。
     'x':try
       Result := Result + char(StrToInt('$' + s[i + 1] + s[i + 2]));
       inc(i, 2);
      except end;

この部分を

     '0'..'9' , 'A'..'F':try
       Result := Result + char(StrToInt('$' + s[i ] + s[i + 1]));
       inc(i);
      except end;

とすれば、その部分には対応すると思うけど、他にも違いがありそうだね。
仕様が判ってるのはあなただけだから、自分でやってね


643 名前:634 mailto:sage [2008/05/11(日) 09:26:00 ]
>>642
それで出来たようです!
ご迷惑かけました!
そしてありがとうございました!

644 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 12:15:59 ]
フォームのボタンなどのキャプションに付けるアクセラレータって言うんでしょうか
(&A)みたいにするとAltキーとAを一緒に押すとクリックされるやつですが、
コントロールが多くなってくると、どれが使われていないのか探すのが大変です。
便利なワザみたいなの、ありませんでしょうか。

645 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 12:40:14 ]
ActionList

646 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 13:24:12 ]
適当に書いてみたが何気に便利かも・・・
表示をまともにしてコマンドラインツールにして外部ツールとして実行できると使い物になりそう。
オープンダイアログで調べたいフォームのdfmファイルを指定するとこんな感じで出る。
C: Caption = '&ClickMe!'
C: Caption = 'Button1(&C)'
F: Caption = #12501#12449#12452#12523'(&F)'
R: Caption = '&Run'
X: Caption = #32066#20102'(&X)'
procedure TForm1.Button1Click(Sender: TObject);
var
    dfm, res: TStringList;
    i, idx: Integer;
begin
    OpenDialog1.InitialDir := ExtractFilePath(ParamStr(0));
    if not OpenDialog1.Execute then Exit;
    dfm:= TStringList.Create;
    res := TStringList.Create;
    try
        dfm.LoadFromFile(OpenDialog1.FileName);
        for i := 0 to dfm.Count-1 do
        begin
            idx := AnsiPos('&', dfm[i]);
            if idx > 0 then
                res.Add(UpperCase(dfm[i][idx+1]) + ':' + dfm[i]);
        end;
        res.Sort;
        ShowMessage(res.Text);
    finally
        dfm.Free;
        res.Free;
    end;
end;

647 名前:デフォルトの名無しさん [2008/05/11(日) 18:17:09 ]
質問です。

TMemo に長いテキストを読み込ませたいのですが LoadFromFile で一気に読み込むと一瞬フリーズしたようになります。
そこで、スクロールに合わせて小分けに読み込むようにしたいのですが何か良い方法はありませんか?

648 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 18:50:47 ]
>>647
マルチスレッド



649 名前:デフォルトの名無しさん [2008/05/11(日) 19:08:34 ]
>>648
お答えありがとうございます。
ですが、メモリを節約して小分けに読み込み表示してスクロールバーの振る舞いはファイルサイズに合ったものにしたいのですが、どうにかなりませんか?

650 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 19:23:38 ]
はなっからスクロールバーを適正サイズにしたいってこと?そりゃ無理。どれだけの行数があるのかは
読み込んでみないとわからないっしょ?

651 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 19:26:12 ]
>>650
確かにそうですね。妥協することにします。

>>647 終了です。ご回答くださった方ありがとうございました。

652 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 07:36:01 ]
TStringListにいったん読み込めばいい。

653 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 15:29:15 ]
複数キー入力を検出するにはどうすればよいでしょうか?
Ctrl+Alt+Delとかのことです。
よろしくお願いします。

654 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 15:31:32 ]
そんな無作法なツールは死ねばいい

655 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 16:01:57 ]
>>653
TShiftState

656 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 23:00:01 ]
>653
検出はいいけど、何をしたいのか具体的に書いたほうがいいと思うが。

ちなみにCtrl+Alt+Delは捕捉できないので念のため。

657 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 23:01:57 ]
BBS へ行ったと思われ

658 名前:デフォルトの名無しさん [2008/05/12(月) 23:42:30 ]
TMemo でスクロールせずに表示できる行数を知るには ClientHeight を Font.Height で割れば良いのでしょうか?



659 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 00:07:26 ]
1分で確かめられる事をわざわざ聞きにくるな

660 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 02:25:24 ]
1分使って自分で確かめるくらいなら2分使って質問を投げる勇気を私はもちたい。

661 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 03:02:10 ]
:::::::::::.: .:. . ∧_∧ . . . .: ::::::::
:::::::: :.: . . /彡ミ゛ヽ;)ヽ、. ::: : ::
::::::: :.: . . / :::/:: ヽ、ヽ、i . .:: :.: :::
 ̄ ̄ ̄(_,ノ  ̄ ̄ヽ、_ノ ̄

662 名前:635 mailto:sage [2008/05/13(火) 12:49:06 ]
>>636
ありがとうございます。帰ってやってみます。

663 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 21:40:18 ]
これからDelphiをはじめる初心者ですが
TurboDelphi用の初心者向け参考書はありますか?
お勧めがあれば教えて下さい。

664 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 21:50:23 ]
>>594
>>595
>>599

melander ってしらないうちにオンラインにカムバックしてたのね
melander.dk/delphi/gifimage/

ここで各種 Delphi のバージョンアップ対応のメンテ版を公開していたので
同じ 2.2 でもバージョン違いが存在する
www.tolderlund.eu/delphi/

で、そもそも TGIFImage は CodeGear に寄贈されて最新版の3.0は Delphi 2007 に同梱と

665 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 23:38:58 ]
>>664
D2007のTGIFImage3も>>594のはバグってる
でも他のInterlaceなGifの問題は直ってたりするけど
www2.ttcn.ne.jp/~honkawa/images/2770.gif


666 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 02:11:31 ]
(;^ω^)今更ながらtypeとポインタが便利な事に気付いたwwww今まで時間無駄にしてたわwwwwwww

667 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 05:23:00 ]
で、TGIFImage の開発元にフィードバックしたいのだが。

で、いくつか問題起こす gif を見ましたが、なんつーか児童ポルノに厳しい国でも
レポートできるようなアニメーション GIF で再現できない物ですかねぇ

668 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 09:45:09 ]
var
Attr: Cardinal;
dv: string;


Attr:= GetFileAttributes(pchar(dv));
if (Attr and FILE_ATTRIBUTE_COMPRESSED) <> 0 then
begin
MessageDlg('Compressed.', mtError, [MBOK], 0);
end;
if (Attr and FILE_ATTRIBUTE_ENCRYPTED) <> 0 then
begin
MessageDlg('Encrypted.', mtError, [MBOK], 0);
end;

dv はドライブ名 C:\ or D:\

これで9x系のドライブスペースとNT系の圧縮フォルダとプロの
暗号化されたやつを判定できますか?



669 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 14:03:27 ]
ウィンドウハンドルを指定してそのウィンドウのキャプチャをCanvasに描くのってどうやるの?

670 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 16:52:05 ]
ランダムな2バイト文字を生成するにはどうすればいいんでしょうか

671 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 17:27:16 ]
'ランダム'


お約束すぎた?

672 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 21:06:49 ]
>>669
GetWindowRect(ハンドル,Rect);
GetDC

673 名前:デフォルトの名無しさん [2008/05/15(木) 13:49:45 ]
calendarExと言うdelphiのカレンダーコンポーネント使ってるんですけど
Appendで特別な祭日(2008/5/6)の追加できたんですけど削除の仕方がわかりません^^;
どうやればいいのでしょう
すれ違いだと思いますが罠にもすがる思いで質問します 


674 名前:デフォルトの名無しさん mailto:sage [2008/05/15(木) 14:18:30 ]
罠にすがられたいという事なんで レスしてみる

calendarEx と言われても、誰もが付けそうな名前なんで判らん。
とりあえず一番簡単なのは、Createをメソッドとして読んで
再度 設定しなおしたら駄目?
レジストリやファイルに保存してないならだけどさ

675 名前:デフォルトの名無しさん mailto:sage [2008/05/15(木) 15:30:39 ]
罠???
糸・・・藁だ 藁
なるほどその手もありましたか
このソフトなんか10年くらいの前のソフトらしく四苦八苦してます
ヒントくれてありがとうございます ;;


676 名前:デフォルトの名無しさん mailto:sage [2008/05/15(木) 15:51:13 ]
>>670
全2二バイト文字を抽出しておいて、そこからランダムに選んだらどうだろう。

677 名前:デフォルトの名無しさん mailto:sage [2008/05/15(木) 20:20:00 ]
うーん、2バイト文字ってのも良く分からないけど
何でランダムに抽出したいのか、その使い道が気になるにょ

678 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 19:09:21 ]
>>670
文字コードにもよるが、SJISのランダムな日本語を得たいのかな?
 



679 名前:670 mailto:sage [2008/05/16(金) 19:55:14 ]
>>676
それだけでかなりの時間がかかりそうですですね

>>677
色々です、色々

>>678
そうです、SJISです

680 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 22:17:52 ]
結果はファイルにでもキャッシュしておけばいい。
SJISに割り当てられている全文字合わせても20KBくらいだし。

681 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 01:28:40 ]
無効な文字なら、アウトラインを取得できないかもしれないから、
それ使って判断できるかも。

682 名前:デフォルトの名無しさん [2008/05/17(土) 11:41:06 ]
ListViewのMultiSelect=Trueの状態で
ボタンを押すと選択行を1段下げる処理をしたいのですが
<<2のところで「EAccessViolation クラスの例外」と出てしまいます
また<<2だけの処理だと複数行選択してしまいます

with ListView do begin
Items[Selected.Index].Selected := False;  //<<1
Items[Selected.Index + 1].Selected := True; //<<2
end;

他にもMultiSelectをFlaseにしてから
リストをClearSelectionしてからなど試しましたが
同じようにエラーが出てしまいます
何かよい方法はないでしょうか?


683 名前:番組の途中ですが名無しです mailto:sage [2008/05/17(土) 11:59:35 ]
>>682
>選択行を1段下げる
MultiSelectだと飛び飛びで選択している場合もあるけど
その場合は?

684 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 12:13:48 ]
>>682
var
 hoge:integer;
begin
 if listview1.itemindex<0 then exit;
 hoge:=listview1.ItemIndex+1;
 listview1.ClearSelection;
 listview1.Items[hoge].Selected:=true;
 listview1.Items[hoge].focused:=true;
 listview1.SetFocus;
end;

こういう事?
MakeVisibleや行数を超える場合は知らない

685 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 14:06:00 ]
>>682
<<1でTListItem.SelectedをFalseにしているのだから
<<2のTListView.Selectedはnilになってる

686 名前:682 mailto:sage [2008/05/17(土) 14:58:57 ]
>>683
>>684
>>685
あ!なるほど
こんな感じで実装したら思ったようにいきました。
ありがとうございます!助かりました。

procedure TMainForm.ListMove(Next: Boolean);
var i, idx: Integer;
begin
if Next then i := 1
else i := -1;
with ListView do begin
idx := Selected.Index;
ClearSelection;
Items[idx].Selected := False;
Items[idx + i].Selected := True;
Items[idx + i].Focused := True;
end;
end;

687 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 15:16:38 ]
マルチセレクトでないなら
ListView.ItemIndex := ListView.ItemIndex + 1
でいいんじゃない?

688 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 17:56:34 ]
指定した文字列がファイルとして作成できるか確認する方法はありますか?
例えばC:\Delphi.txtを渡すとTrue、C:\Delphi\を渡すとFalseを返す、などということです



689 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 18:06:56 ]
ListViewについて質問です。
二つのカラムを作成し(A、B)、カラムAの1番目に文字列'1-1'、カラムBの1番目に文字列'1-2'、
カラムAの2番目に文字列'2-1'、カラムBの2番目に文字列'2-2'という形でリストを作成したいのですがどうすればいいでしょうか?
よろしくお願いします。

690 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 18:17:14 ]
>>688
ヘルプでFileCreate検索しろ

>>689
ListViewの扱い方をまず学べ

691 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 18:21:32 BE:261735-PLT(12660)]
>>689
var
  TestColumn: TListColumn;
begin
  with ListView1 do begin
    TestColumn := Columns.Add;
    TestColumn.Caption := 'A';
    TestColumn.Width := 100;
    TestColumn := Columns.Add;
    TestColumn.Caption := 'B';
    TestColumn.Width := 100;
    with Items.Add() do begin
      Caption := '1-1';
      SubItems.Add('2-1')
    end;
    with Items.Add() do begin
      Caption := '1-2';
      SubItems.Add('2-2')
    end;
  end;
end;

692 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 18:24:22 ]
>>688
字面の正しさは正規表現でチェック
'^([a-zA-Z]\:)|(\\)(\\{1}|((\\{1})[^\\]([^/:*?<>"|]*(?<!\[\])))+)$'

ディレクトリが存在してるか、アクセス権があるか等々で失敗する要因が他にもあるから
あまりがんばらずに、実際に書き込んでみてから例外拾って対応するのが定石。

>>689
for i := 1 to 2 do
 with ListView1.Items.Add do
 begin
  Caption := Format('%d-1', [i]);
  SubItems.Add(Format('%d-2', [i]);
 end;


693 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 18:30:13 ]
>>690,692
FileCreateで行けるようですね、ありがとうございました

694 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 18:39:52 ]
>>690
色々なサイトを回ったのですがSubItemの使い方について書いてあるところが見つかりませんでした。

>>691-692
ありがとうございます。
しかし、そのとおり実行してみるとカラムAの1番目に'1-1'、3番目に'2-1'
カラムBの2番目に'1-2'、4番目に'2-2'と表示され、
カラムAの2,4番目は空欄、カラムBの1,3番目も空欄、というようになります。
どうすれば1番目と2番目とで納められるでしょうか?

695 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 18:48:41 ]
本当にすみません。
>>692さんのコードでできました。お騒がせいたしました。

また、答えてくださった方ありがとうございました。

696 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 18:56:07 ]
>>691さんのコードもできました。
変に打ち間違えていたようです。
すみませんでした。

697 名前:デフォルトの名無しさん [2008/05/20(火) 06:08:00 ]
>>696
うるせ馬鹿
死んで詫びろ

698 名前:デフォルトの名無しさん [2008/05/20(火) 06:10:06 ]
>>690
お前も死ね



699 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 17:44:20 ]
ActionListをダブルクリックすると編集ウィンドウが開きますが、
この位置や大きさをプロジェクト単位で覚えさせとくってできます?

700 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 00:32:41 ]
知らぬ間にPngDelphi氏んでたのね
www.codeplex.com/PNGImage

701 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 07:14:42 ]
>>699
フリーウェアでそんなのがありそうだな。
ソフトウェア板行って聞いてみたら。

702 名前:デフォルトの名無しさん [2008/05/21(水) 11:04:56 ]
Memo1.Lines.LoadFromFile(FileName);
とかでEUCのテキストを読み込むと文字化けしますが
これを読めるように表示することってできるのでしょうか?
テキストエディタだと見た目はeucで読み込んで表示し
保存もeucのまましてるように見えるけどあれは
内部でシフトJISに変換して表示して、保存時は再度eucに変換してるだけなんでしょうか?

703 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 11:35:28 ]
TMemoryStreamで読み込んで
nkf32.dllで変換して
Memo1.Lines.LoadFromStream

704 名前: [2008/05/21(水) 11:52:01 ]
正整数Nを読み込み、x^2≦N<(x+1)^2となる整数x、つまり√Nの近似値を求めるプログラムを、
sqrtなどの標準関数を使わないで作りなさいという問題なんですが。。。
わかりません。教えてもらえませんか?PASCALでやっているんですが。

705 名前:702 mailto:sage [2008/05/21(水) 11:54:14 ]
>>703
やはりnkf32.dll等で自動判別して読み込んでsjisで表示するんですね
ありがとうございます

706 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 12:04:07 ]
>>704
良く知られた方法は 奇数を順に累計していったらという方法
function iSqr(n:Integer):Integer;
var i,sum:Integer;
begin
sum:=0;
for i:=0 to $B505 div 2 do begin
sum:=sum+1+i*2;
if sum>n then begin Result:=i;exit;end;
end;
Result:=i;
end;

大きな数字で速度がある程度必要ならバイナリー法(2分検索を行う)
さらに浮動小数点等で速度が必要ならニュートン法


707 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 12:05:02 ]
あ  div 2 は 不要だ。

708 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 14:20:05 ]
助けてください。

Form3で

procedure TForm3.FormCreate(Sender: TObject);
begin
IniFile := TIniFile.Create(ChangeFileExt(Application.ExeName, '.ini'));
try
pass := IniFile.Readinteger('pass', 'Pno',0);

finally
IniFile.Free;
end;

edit1.text:=inttostr(pass);
end;

んでForm1で
procedure TForm1.N1Click(Sender: TObject);
begin
Form3.ShowModal;
end;

しても
Form3のEdit1にiniのPnoデータ表示されません(;;



709 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 14:50:47 ]
わざわざForm3のOnCreateを使ってiniを読む理由は?

710 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 14:54:04 ]
>>708 何が表示されるの?
もしかして Edit1 って文字のまま? だとしたら例外が出てるんじゃないの?






[ 続きを読む ] / [ 携帯版 ]

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

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