くだすれDelphi(超初心者)その27
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2005/09/13(火) 14:40:39他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
Delphi使いが優しくコメントを返しますが、
お礼はDelphiの布教と初心者の救済をお願いします。
<前スレ>
くだすれDelphi(超初心者用)その26
http://pc8.2ch.net/test/read.cgi/tech/1121249711/
<雑談・討論などはこちらへ>
ミ,,゚Д゚彡フサギコのフサフサDelphi談話室その25
http://pc8.2ch.net/test/read.cgi/tech/1125304359/
<その他>
Borland Home Page
http://www.borland.co.jp/
DelWiki (無料版Delphiの入手方法など)
http://onigiri.s3.xrea.com:8080/delphi/
0652デフォルトの名無しさん
2005/10/20(木) 09:43:37/* Delphi2006対応 */
void __fastcall TForm1::Button1Click(TObject *Sender)
{
char path[MAX_PATH];
GetCurrentDirectory(sizeof(path), path);
ShellExecute(Handle, NULL, path, NULL, path, SW_SHOW);
}
0653デフォルトの名無しさん
2005/10/20(木) 10:44:28変更したいと思っています。
どこを修正すればよいのでしょうか。
0654デフォルトの名無しさん
2005/10/20(木) 11:03:58デフォルトのフォント周りのプロパティを変更するんだよ。いつ変更したらよいかの
方が難しいと思うが。
0655デフォルトの名無しさん
2005/10/20(木) 13:11:55特定の処理をおこないたい場合はどのイベントを使えばよろしいのでしょうか?
0656デフォルトの名無しさん
2005/10/20(木) 13:16:24コンストラクタoverrideして
constructor TMyEdit.Create(AOwner: TComponent);
begin
inherited Create
Font.Color := crRed;
end;
とかすればいいんじゃないの。
0657デフォルトの名無しさん
2005/10/20(木) 13:30:12文法がわかんない
0658デフォルトの名無しさん
2005/10/20(木) 13:38:03Editに入力されたキーを表示する
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
ShowMessage('Key = [' + Key + ']');
end;
0659デフォルトの名無しさん
2005/10/20(木) 13:41:08procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
case Key of
'0'..'9': Key := #0 // 数字なら捨てる
else Key := Upcase(Key); // アルファベットなら大文字化
end;
end;
0660デフォルトの名無しさん
2005/10/20(木) 13:46:59procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
//バックスペースキーを使用不可にする
if Key = Chr(VK_BACK) then
Key := #0;
end;
0661デフォルトの名無しさん
2005/10/20(木) 14:01:01Editでしか使えない?
描画した図形をあるキーを押したら少し移動するみたいな使い方をしたいんだけど
0662デフォルトの名無しさん
2005/10/20(木) 14:06:40TWinControlならほぼすべて使えるから
KeyPreview:=TrueしてFormでキー入力をトラップするのが楽かも。
0663デフォルトの名無しさん
2005/10/20(木) 14:22:29フォームのOnKeyPressイベントに下のような処理を追加する。
後は十字キーが押された時の処理を書けばいい
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
case Key of
Char(VK_UP) : //図形上へ移動;
Char(VK_DOWN) : //図形下へ移動;
Char(VK_LEFT) : //図形左へ移動;
Char(VK_RIGHT): //図形右へ移動;
end;
end;
0664デフォルトの名無しさん
2005/10/20(木) 14:48:01早いレス、どうもです
家に帰ったら、さっそくやってみます
次の授業が始まりそうで、これ以上学校でやれないのが悔しい
0665デフォルトの名無しさん
2005/10/20(木) 16:39:03他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
Delphi使いが優しくコメントを返しますが、
お礼はDelphiの布教と初心者の救済をお願いします。
0666デフォルトの名無しさん
2005/10/20(木) 19:58:590667629
2005/10/20(木) 22:38:02もしかしたら他にも興味あるかたがいるかもしれないのでご報告。
> 日本語のSubjectでちょっと長いやつ(エンコード後に2行になるやつ)
> だと変なことになります。
> 例) 日本語おかしいよ → 日本語おかし 日本語おかしいよ
IdCoderHeader.pas
function DecodeHeader(Header: string):string;
(略)
begin
s := ''; ←追加
while Length(substring) >= 4 do
いじょ
0668デフォルトの名無しさん
2005/10/21(金) 07:20:28Delphiは6Personalです。
エンコードリストにTListBoxを使っているんですが、
デスクトップなどからD&Dしたときの処理に困っています。
・D&Dしたファイルが.wav、.ogg、.mp3なら追加。
それ以外なら追加しない。
・フォルダがD&Dされた場合、フォルダ内の.wav、.og(ryを検索して追加。
発見できなければShowMessage('使えるファイルねぇよ!(`Д´)プンプン');
お願いします。
0669デフォルトの名無しさん
2005/10/21(金) 07:31:240670デフォルトの名無しさん
2005/10/21(金) 07:33:26Q1 D&Dはどうやるのですか?
Q2 拡張子の比較はどうやるのですか?
Q3 フォルダの識別はどうやるのですか?
Q4 フォルダ内のファイル一覧はどうやるのですか?
といったところです。
お願いします。
0671デフォルトの名無しさん
2005/10/21(金) 07:41:37A2 ケツの4文字
A3 ↑
A4 findfirst next
人に教えられる程スキルを持った人間ではないけどこんな感じ?
0672デフォルトの名無しさん
2005/10/21(金) 07:51:22['.wav', '.ogg', '.mp3']) then
ShowMessage('sound file');
0673668
2005/10/21(金) 08:12:59複数ファイルがD&Dされると渡されるファイル名はTStringなので、
その中からサウンドファイルを抜き出す→リストへ追加という動作をさせたいと思ってます。
フォルダ判別に関しては解決しました。
ありがとうございました。
0674668
2005/10/21(金) 08:22:13TString→TStrings
0675668
2005/10/21(金) 08:51:48ListBoxの各行にアクセス→判別→処理
この繰り返しです。
スレ汚し失礼しました。
0676デフォルトの名無しさん
2005/10/21(金) 10:06:55TWebBrowser.Cursor := crNone;
っとしているのですが、Navigate('http://localhost/');などとすると
マウスカーソルが出てしまいます。
TWebBrowserのマウスカーソルを出ないようにする方法ありますでしょうか?
0677デフォルトの名無しさん
2005/10/21(金) 22:52:03こちらで質問させてください。
Googleで検索しても見つからないのですが、
指定したフォルダの下層フォルダ一覧を調べるにはどの関数を
使えばいいでしょうか。
0678デフォルトの名無しさん
2005/10/21(金) 23:01:01FindFirst,FindNext,FindClose辺りの関数でゴリゴリと書く。
フォルダの階層がいくつもあって、それらも処理したければ再帰処理で繰り返す。
0679デフォルトの名無しさん
2005/10/22(土) 08:43:43変更不可でしょうか?
0680デフォルトの名無しさん
2005/10/22(土) 08:47:09変更するには独自描写が必要だった気がする
0681デフォルトの名無しさん
2005/10/22(土) 08:47:540682デフォルトの名無しさん
2005/10/22(土) 09:52:53自分で描けばできるけど、キャプションも自分で描く必要有り。
詳しくはオーナードローで。
>681
VBはランタイム自体が独自描画している(RADを実現するためらしい)
その副作用で色が指定できるになった。
0683デフォルトの名無しさん
2005/10/22(土) 10:02:31BorlandのHPにDelphi6 Presonalのアップデートパッチがあるのですが、
何度やっても接続に失敗します。
Irvineをつかってもダメでした。
この事項は既出でしょうか?
対処法のご教授願います。
0684デフォルトの名無しさん
2005/10/22(土) 10:37:05IEでダメならFTPクライアントでftp://ftp.borland.co.jp/pub/delphi/から取ってくる。
それかIEのオプションでFTPのパッシブモードを有効にしてみる
0685デフォルトの名無しさん
2005/10/22(土) 10:38:150686デフォルトの名無しさん
2005/10/22(土) 14:33:12回答ありがとうございます。
が、いずれの方法でもダメでした。
FFFTP…「"ftp://ftp.bor(略"が見つかりません」
IE…パッシブモードは既にON
FW…port20,21は通過
コマンドプロンプトでpingしてみると「ホストが見つかりません」になるので、
サーバーが停止しているようです。
元を正せば、エラー「classes.pasが見つかりません」を解決したいだけなんですが。
0687デフォルトの名無しさん
2005/10/22(土) 14:41:26今、見てみたけど問題なく繋がるけどね。
>FFFTP…「"ftp://ftp.bor(略"が見つかりません」
ってことは、ホスト名に ftp://ftp.borland... と指定しているようだけど
これは間違い。ftp.borland...が正解。
まさかと思うけど ping の時も ftp://ftp.borland... としちゃってる?
0688デフォルトの名無しさん
2005/10/22(土) 15:22:46常駐していたPeerGuardianを停止したところ、即繋がりました。
ご迷惑をおかけしました。
LAN・USBの二重コードで吊ってきますo...rz
0689デフォルトの名無しさん
2005/10/22(土) 16:26:000690デフォルトの名無しさん
2005/10/22(土) 21:59:25もう一つのフォーム(Editの欄が無いフォーム)にWebbrowserを表示させるように連動(?)
させたいのですが、どう記述すべきでしょうか。
0691デフォルトの名無しさん
2005/10/22(土) 23:28:310692デフォルトの名無しさん
2005/10/22(土) 23:53:17>>519-526辺りを参照してみれば?
0693デフォルトの名無しさん
2005/10/23(日) 02:20:20どう答えれば良いのか分からん。
どういう答えを期待してるのか?
「ソース出して」ってこと?
0694ななしへたぐらま ◆XcB18Bks.Y
2005/10/23(日) 10:29:50色つきボタンは以下のサイトなどでいろいろ公開されているので
これらの中から気に入ったのを使うのも一手かも.
Delphian World
http://www6.airnet.ne.jp/~sone_san/delphi/
0695デフォルトの名無しさん
2005/10/23(日) 17:24:10とりあえず、Form1のEdit1に入力された文字列をForm2のLabel1に表示させるコードは書けるのかな。
0697デフォルトの名無しさん
2005/10/23(日) 23:38:41ところがViewStyleをvsReportにしたTListViewを設置しているフォームが開かれた瞬間
「モジュール 'kernel32.dll' のアドレス 77E683EC でアドレス 00467088 に対する書き込み違反がおきました。.」
と言う内容のエラーダイアログが表示されるのですが、何故でしょうか?
違うマシンで試しても同じ結果に至ったので恐らくDelphi側の問題だとは思うんですが・・
0698697
2005/10/23(日) 23:46:48[manifest]
アプリケーションをWindowsXPスタイルにする方法に、manifestファイルを用いる方法がある。
しかしこの方法では、TListViewを用いているアプリケーションでは kernel32.dll が読み込み違反エラーを吐いて
起動に失敗する場合がある。(Delphi,C++Builderで作成されたアプリケーションの場合)
(回避方法)
→TListViewのカラムヘッダにイメージを入れると正常に起動される。
または、カラムヘッダを表示しないようにする。
ググってみたらこんな物を見つけたんですが、これ以外に回避法はないんでしょうか?
0699186
2005/10/23(日) 23:54:310700デフォルトの名無しさん
2005/10/24(月) 00:21:50うまく動きません。
OnChagingでListViewのアイテムを数えて
メモリを確保して、配列に入れて、Nodo.Dataにポインタ
OnChangeでListViewのアイテムをClearして、指定したNode
だったら、配列を数えて、ListViewにItemを追加のですが
treeViewでどのNodeをクリックしても、最初の配列が残ってしまいます
------------------------------------
treeView | ListView
|
rootnode | caption | subitems
┣-aaa |------------
┃ ┣111 <-- |
┃ ┗222 <-- |
┣-bbb |
------------------------------|
よろしくお願いします
0701700
2005/10/24(月) 00:22:39/////////////////////////////////////
type
Pdata = ^TIndexData;
TIndexData =Record
code :string;
index :string;
end;
IndexDataArray = Array of TindexData;
TMainForm = class(TForm)
////////////////////////////////////////
private
{ Private 宣言 }
rootNode : TTreeNode;
//////////////////////////////////////
var
MainForm: TMainForm;
CArray :IndexDataArray;
/////////////////////////////////////////
procedure TMainForm.TreeView1Changing(Sender: TObject; Node: TTreeNode;
var AllowChange: Boolean);
var
c,i : integer;
begin
c := ListView1.Items.count;
0702700
2005/10/24(月) 00:23:30SetLength(CArray,c);
For i := 0 to C-1 do
begin
CArray[i].code :=ListView1.items[i].subitems[0];
CArray[i].index:=ListView1.items[i].caption;
end;
node.Data := addr(CArray);
end;
procedure TMainForm.TreeView1Change(Sender: TObject; Node: TTreeNode);
var
C : integer;
i :integer;
ListItem :TListItem;
begin
ListView.Items.Clear;
if (Node = rootNode) or (Node.Parent = rootNode) then exit;
begin
c:= Length(CArray);
For i := 0 to c-1 do
begin
ListItem :=ListView1.items.add;
ListItem.Caption :=CArray[i].index;
ListItem.SubItems.Add(CArray[i].code);
end;
end;
end;
0703デフォルトの名無しさん
2005/10/24(月) 01:12:290704デフォルトの名無しさん
2005/10/24(月) 01:13:090705デフォルトの名無しさん
2005/10/24(月) 05:58:13あったような記憶があるのですが、そういうのありましたでしょうか?
0706デフォルトの名無しさん
2005/10/24(月) 06:31:200707デフォルトの名無しさん
2005/10/24(月) 06:36:140708デフォルトの名無しさん
2005/10/24(月) 06:46:35よくわかりませんが、ダウンしてみます。ありがとうございました。
0709デフォルトの名無しさん
2005/10/24(月) 07:40:11むかしイロイロと探したが日本語使うとおかしくなるのが多かった。
0710デフォルトの名無しさん
2005/10/24(月) 07:43:150711デフォルトの名無しさん
2005/10/24(月) 09:10:07本末転倒ですが(w
0712デフォルトの名無しさん
2005/10/24(月) 10:03:16小心者の僕も同じですね〜プログラム終了時に消しておけばバレない(マテ
0713デフォルトの名無しさん
2005/10/24(月) 10:04:290714デフォルトの名無しさん
2005/10/24(月) 10:26:100715デフォルトの名無しさん
2005/10/24(月) 11:36:320716デフォルトの名無しさん
2005/10/24(月) 13:16:570717デフォルトの名無しさん
2005/10/24(月) 13:37:18っIndy
0718デフォルトの名無しさん
2005/10/24(月) 17:00:28Indyはちょっと大げさなのでAPIで実装することにしました。
0719デフォルトの名無しさん
2005/10/24(月) 18:26:490720デフォルトの名無しさん
2005/10/24(月) 18:42:580721デフォルトの名無しさん
2005/10/24(月) 19:41:380722デフォルトの名無しさん
2005/10/24(月) 20:04:110723デフォルトの名無しさん
2005/10/24(月) 20:06:270724デフォルトの名無しさん
2005/10/24(月) 22:40:50SleipnirやOperaにあるようなwebページのズームイン・ズームアウト表示がやりたい
んですが、そどうすれば良いんでしょうか。
0725デフォルトの名無しさん
2005/10/24(月) 22:55:51IEの独自拡張を調べなさい
0726デフォルトの名無しさん
2005/10/25(火) 00:06:58プログラミング未経験者で初めて参考書を買って独学をしているのですが、
そのdelphi参考書は「ここはこういう理由でこういう書き方がされている」等の
理由や説明がほとんどなく、例題にあるソースをそのまま自分のパソコンに
打ち込んでいるだけで、「理解している」のではなく「例題をそのまま覚えている」
だけのような気がします。
(私と同じ本を買った人もアマゾンのカスタマーレビューで同じようなことを書いてました・・・。)
みなさんは最初にdelphiを勉強した時は、最初は取り敢えず丸暗記で、後から
内容を理解するという方法だったのでしょうか?それとも1個ずつ理解しながら
勉強していったのでしょうか?
本当に初心者なので、今の丸暗記方式をこのまま続けていってもいいのか心配です。
0727デフォルトの名無しさん
2005/10/25(火) 00:12:45http://pc8.2ch.net/test/read.cgi/tech/1128511700/
0728デフォルトの名無しさん
2005/10/25(火) 00:28:50質問部分には答えよう
オレは丸暗記も1個ずつ理解とやらもしなかった
文法以外は面倒だから覚えず、作りたいものを
サンプル見ながら適当に作っていたら
いつの間にかここで回答者にまわってた
0729デフォルトの名無しさん
2005/10/25(火) 00:34:42自分は、ずーっと前にその段階だったので記憶が定かではないが、最初は操作自体を
覚えるのも重要です。その本は、それだけのものと思って割り切ることが必要です。
でも、どうしてこうなるのか、と考えながら、自分は何が分からないのだろうか、
ということを知ることが重要です。
自分の場合は、*.pas ファイル、つまり、ユニットファイルの構造を理解し始めた
ときから急速に理解がすすんだように思います。OOP も、IDE では設計時に
TForm の派生クラスを作っているんだ、イベントはそのメソッドなんだ、と
分かりはじめたらしめたものです。
その本より優れた入門サイトがけっこうあります。おすすめは「Seventh Delphi」
です。ググって見ればすぐ見つかります。コードと説明の対応をじっくり学ぶと
じわじわと理解が進むことを実感できるようになります。
0730デフォルトの名無しさん
2005/10/25(火) 00:37:56そうは言うけどな、いきなりクラスがどうたらバーチャルがなんたらの説明ば
かりあっても初心者では理解できんよ。確実に。
サンプルを暗記っていうのはまず第一歩としてはいいと思うよ。
んでそれをちょっとづつ改造していくと。そのうち壁にぶつかるからその時に
ぶつかった壁をいっこづつ調べて理解していけばいい。
まあ学習の仕方なんて人それぞれだろうからいちがいには言えんが、俺の
場合はそうだった、という例で参考にしてくれ。
ところでその本のタイトルもあげると先人のアドバイスもつきやすいのでは
ないかな。いくらサンプル丸暗記といってもダメなのとイイやつの差はあるし。
0731726
2005/10/25(火) 01:01:01>>727 そちらの方が適したスレだったかもしれません。すみません。
>>728 作りたいものがあるっていうのは、やはり勉強を進めるには
大きな力になりそうですね。私がしたいことは、私が勤めている会社で
作っているソフトがdelphiで組まれてて、そのソフトがどうして
こういう動きをするのか理解したかったのでした。
>>729 今そこのサイトを拝見させてもらいました。私が買った本よりも
情報量が多くて親切な気がします。これからはそのサイトもみて勉強してみます。
>>730 そうですね。確かにいきなりレベルの高い話をされても理解できなくて
投げ出してしまうかもしれませんね・・・。ちなみに私が買った本は
「delphi はじめの一歩(池田成樹著)」という本です。
池袋の大きな本屋さんを2箇所と、地元の本屋さんを回って、どこでもこの本が
売っていたので、余程支持されている本かと思って購入しました。
0732デフォルトの名無しさん
2005/10/25(火) 01:03:55オレは「Seventh Delphi」とそこを見ながら基本を覚えた
0733デフォルトの名無しさん
2005/10/25(火) 02:53:400734デフォルトの名無しさん
2005/10/25(火) 06:56:44": 1"しか要らないのであればビット位置を値として指定した列挙型のset。
2ビットとか4ビットとか要るのであればシフト演算でなんとかするしかないなあ。
0735デフォルトの名無しさん
2005/10/25(火) 07:11:291ヶ月たって応用が利かないようならプログラマの素質ないからあきらめろ。
プログラマもプロ野球選手と一緒で誰でもなれるようなものじゃない。
コーダーなら誰でもなれるけど。
0736デフォルトの名無しさん
2005/10/25(火) 07:12:310737デフォルトの名無しさん
2005/10/25(火) 08:24:050738デフォルトの名無しさん
2005/10/25(火) 08:26:210739デフォルトの名無しさん
2005/10/25(火) 12:33:580740デフォルトの名無しさん
2005/10/25(火) 12:49:560741デフォルトの名無しさん
2005/10/25(火) 12:51:030742デフォルトの名無しさん
2005/10/25(火) 13:15:530743デフォルトの名無しさん
2005/10/25(火) 13:17:50ちがうでしょ
0744デフォルトの名無しさん
2005/10/25(火) 13:22:29そうなんですか。
でもとりあえず、unitは名前空間のことでいいんですよね。
0745デフォルトの名無しさん
2005/10/25(火) 13:32:45てっきりAPIのTag×××のTかと思ってた
0746デフォルトの名無しさん
2005/10/25(火) 15:00:570747デフォルトの名無しさん
2005/10/25(火) 15:06:420748デフォルトの名無しさん
2005/10/25(火) 15:09:020749デフォルトの名無しさん
2005/10/25(火) 15:12:52が、これが正しいかどうかは知らないよ
0750デフォルトの名無しさん
2005/10/25(火) 15:49:54Delphiの中の人の発言はないのか?
0751デフォルトの名無しさん
2005/10/25(火) 15:50:57派遣会社からDelphiとOracleの仕事どうですかって言われたよ。
javarerの漏れにはまったくわからない…
■ このスレッドは過去ログ倉庫に格納されています