[表示 : 全て 最新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


596 名前:Zzz [2008/05/09(金) 11:24:39 ]
質問お願いします
Delphi7なんですけど
(最大化最小化閉じるボタンを非表示などをした)Formを
同プロジェクト内の別のFormでも使いたくFormごとコピーして
使用したいのですがコピーやり方がわかりません
どうやれば実現できるのでしょうか???

597 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 11:37:16 ]
ExplorerでForm1.pas/.dfmをForm2.*にコピー&リネームして
ファイル内のユニット名、クラス名、Nameプロパティ名を調整。

フォーム上のコンポーネントやプロパティの設定は.dfm
イベントハンドラ等のコードは.pasにあるから適当に切り貼りしてもいいかも。

名前をつけて保存でForm2とかやっちゃうとForm1が破棄されForm2を使い出すからわけわかってないと悲惨なことに。

IDEでは使いまわし支援でリポジトリなるものをサポートしているけどほとんど使ったことない。
活用してる人っているのかね。

なんにしてもプロジェクト全体のバックアップをしてから試したほうがいいかもね。

598 名前:Zzz [2008/05/09(金) 11:40:36 ]
やはり意外と、つらそうな道のりですね
了解しました
地味に作成しようと思います
リポジトリの使用方法も忘れてつつあるので・・・
ありがとうございました

599 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 11:40:40 ]
うちは5846行目だった

TGIFSubImgae.Decompressプロシージャ内のNextLZW関数内だよね?

600 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 12:45:27 ]
ver2.2のNextLZWの中です

ASSERT(Code < TableSize, 'Code too large');
while (code >= ClearCode) do
begin
//ここから
if UINT(Source) > UINT(@stack[High(stack)]) then
begin
Dec(Source);
Result := Source^;
Exit;
end;
//ここまで
Source^ := table1[code];
Inc(Source);
if (code = table0[code]) then
Error(sDecodeCircular);
code := table0[code];
ASSERT(Code < TableSize, 'Code too large');
end;


601 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 13:17:57 ]
>>596
継承して使うと似たようなフォームで少しだけ違うような場合に便利だよ
ファイル⇒新規作成⇒その他 で出たダイアログのタブの今のプロジェクト内から Form1を選んで
下の ・継承 を確認して [OK]

602 名前:Zzz [2008/05/09(金) 16:50:32 ]
たびたびすいません
質問です
リストボックスやコンボックスのItems欄に選択「文字」を追加する
方法が分かりません
・・・と書くとItem addとか思われると思いますが、もう一歩進んで
その追加したを随時に追加し、且つ保存したいのです
プログラムを終了させる、プログラムを起動させる
「追加したデータが消えてる(涙・・・」
どうやれば保存できるのでしょうか
最終的には、マイナーなコンポーネントに対し保存したいのですが
基本のリストボックスやコンボックスのやり方を教授していただければ
自分で考えますので(当たり前ですけど)ヒントの程お願い致します

603 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 17:09:42 ]
終了時にファイルに保存して起動時にファイルから読み込む。

604 名前:Zzz [2008/05/09(金) 17:23:32 ]
>>603 おしい
それも一つの手ではあるんですが、最終的にコンポーネントの
Items欄に追加したいのでItems欄に保存する方法はないのかと
言うのを知りたいのです



605 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 17:31:18 ]
質問する前に日本語を勉強する

606 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 17:41:48 ]
いまいちよくわからないがexeのどこかに保存されているであろうItemsのデフォルト値に対して保存・読み出ししたいってことか?
もしそうなら、コンパイルする度に値が吹き飛ぶぞw

607 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 18:42:09 ]
そういうことができるなら ini ファイルはいらんがな・・

608 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 18:57:18 ]
リソースを書き換えたいのか? 出来るだろうが、なんでiniファイルは駄目なんだ?

609 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 21:18:12 ]
少なくともコード書いて試して 603 に対して「おしい」とかいってるのか?
const
  DatEx='.dat';
var
  ListDat:string;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ListBox1.Items.Add(Edit1.Text);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  ListDat:=ChangeFileExt(Application.ExeName,DatEx);
  if FileExists(ListDat) then
    ListBox1.Items.LoadFromFile(ListDat);
end;

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  ListBox1.Items.SaveToFile(ListDat);
end;
ちなみにみんなの言っている「日本語でおk」は
「Items欄に保存」ってのがわからんってことだぞ

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さんのコードもできました。
変に打ち間違えていたようです。
すみませんでした。






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

前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