【Delphi初心者】今から始めるDelphi Part01
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
NGNGもちろん、質問もOKです。
質問はage
回答はsage
第一回 画像表示ソフトを作ろう
くだすれDelphi(超初心者向け) Part5
http://pc2.2ch.net/test/read.cgi/tech/1061090908/l50
0002デフォルトの名無しさん
NGNG0003デフォルトの名無しさん
NGNG0004デフォルトの名無しさん
NGNGIEコンポーネントを利用してください。
0005デフォルトの名無しさん
NGNG0006デフォルトの名無しさん
NGNGVCL7は機能変更ですか、機能拡張ですか?
どのような機能が拡張されていますか?
Delphi6ではVCL7を使用できないのでしょうか?
0007デフォルトの名無しさん
NGNGNetscapeコンポーネントを利用してください。
0008デフォルトの名無しさん
NGNG0009デフォルトの名無しさん
NGNGにしても、>>1は糞スレ立てるなボケ
0010デフォルトの名無しさん
NGNG0012デフォルトの名無しさん
NGNGDelphi.netに向けてコンパイラがやかましくなりました。
VCLはpro以上じゃないと意味ないかな IntraWebだけは楽しいです。
0013デフォルトの名無しさん
NGNG0014デフォルトの名無しさん
NGNG0015デフォルトの名無しさん
NGNGただし、駅前に限定します。
0016デフォルトの名無しさん
NGNG来年のですか? 夏休みの多い学校に転校しましょう。
10年先に夏休みがあって欲しいならせめて公務員になりましょう。 プログラマにだけはならないようにね。
0017デフォルトの名無しさん
NGNG0018デフォルトの名無しさん
NGNG海外に住んだら?
0019デフォルトの名無しさん
NGNG0020デフォルトの名無しさん
NGNG0021デフォルトの名無しさん
NGNG0022デフォルトの名無しさん
NGNGttp://www.delphi-gems.com/
GraphicEX
0023デフォルトの名無しさん
NGNGぐぐっても表示できませんでした。
>>22
そのページみても表示できませんでした。
0024デフォルトの名無しさん
NGNG0025デフォルトの名無しさん
NGNG悔い改めても表示できませんでした。
0026冷たい名無しさん
NGNGhttp://www.hicomponents.com/zzimageen.asp
を使ってみる。
0027デフォルトの名無しさん
NGNG0029デフォルトの名無しさん
NGNGもう挫折したのか?(w
00301
NGNG0031デフォルトの名無しさん
NGNGどうせ何やっても将来ないならDelphiで楽しんだほうが人生楽しいと思うけどね。
0032デフォルトの名無しさん
NGNG0033デフォルトの名無しさん
NGNG0034デフォルトの名無しさん
NGNG0035デフォルトの名無しさん
NGNGhttp://hp.vector.co.jp/authors/VA015730/vcl/vclworld.html
GraphicEX
GifImage
Project Jedi
0036デフォルトの名無しさん
NGNG汎用的に使っている奴がいるな。
どうせただの一人だろうが。
0037デフォルトの名無しさん
NGNGpart01てことはpart10まではスレを伸ばす気があるってこととみた。
0038デフォルトの名無しさん
NGNGはぁ ?
普通に、Delphi/C++ Builder 用のライブラリのこと言ってるだけだろ ?
どこが汎用的なんだ ?
0039デフォルトの名無しさん
NGNG004039
NGNG0041デフォルトの名無しさん
NGNG0042デフォルトの名無しさん
NGNG0043デフォルトの名無しさん
NGNG0044デフォルトの名無しさん
NGNGvar lf:LOGFONT;
begin
lf.lfCharSet := Byte(Font.Charset);
lf.lfEscapement := round(deg*10) ;
lf.lfHeight := Font.Height;
lf.lfWidth := 0 ;
lf.lfOrientation := 0 ;
lf.lfItalic := Byte(fsItalic in Font.Style);
lf.lfUnderline := Byte(fsUnderline in Font.Style);
lf.lfStrikeOut := Byte(fsStrikeOut in Font.Style);
lf.lfOutPrecision := 0 ;
lf.lfClipPrecision := 0 ;
lf.lfQuality := 0 ;
lf.lfPitchAndFamily:= 0 ;
if fsBold in Font.Style
then lf.lfWeight := FW_BOLD
else lf.lfWeight := FW_NORMAL;
if AnsiCompareText(Font.Name, 'Default') = 0
then StrPCopy(lf.lfFaceName, DefFontData.Name)
else StrPCopy(lf.lfFaceName, Font.Name);
Result.newFont := CreateFontIndirect(lf);
Result.oldFont := SelectObject(Canvas.Handle , Result.newFont);
SetTextColor( Canvas.Handle ,ColorToRGB(Font.Color));
Canvas.TextFlags := 0;
if back=clNone
then begin Canvas.TextFlags := ETO_OPAQUE ;Canvas.Brush.Color:= back ; end;
end;
004544
NGNGoldFont:HFont;
newFont:HFont;
end;
procedure FreeFont(Canvas:TCanvas;var oldFont,newFont:HFont);
begin
SelectObject(Canvas.Handle, oldFont);
DeleteObject(newFont);
end;
使い方、
with SetRotFont(Canvas,Font , 90, clWhite) do try
Canvas.TextOut(x,y,s); //この文字描画は90度縦方向に描画出来る
finally FreeFont(Canvas,oldFont,newFont);end;
このセットで使用して下さい。
0046デフォルトの名無しさん
NGNG0047デフォルトの名無しさん
NGNGGoogleで探したけど、良い方法がみつかりません。
ヤバいくらいにクールなやりかたを教えてください。
0048デフォルトの名無しさん
NGNGGetKeyState(VK_CONTROL)
0049Delフサギコ ◆A6VzDeLphI
NGNG∧,,∧ / ヤバイくらいに
ミ*゚Д゚彡 < 普通のやり方です。
ミつ旦(ミ~~ \ どぞ。
@ミ ミ  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
∪''∪ ヤベーヨ ヤベーヨ
function PressKeyCode(const VirtualKey: Integer): Boolean;
begin
if ((GetAsyncKeyState( VirtualKey ) and $8000) = 0) then
Result := False
else
Result := True;
end;
begin
if PressKeyCode(vk_control) then ShowMessage('コントロール押しすぎ!');
if PressKeyCode(vk_Shift) then ShowMessage('シフト押しすぎ!');
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
005047
NGNG0051デフォルトの名無しさん
NGNGやり方がさっぱりで・・・
charとpic形式が混じった物なのですがアドバイスをいただければ幸いです
char(8)…8byte
pic(15)…8byte
pic(11,2)…6byte(11桁+小数2桁)
を読み込んでテキスト化したいのですが
構造体?みたいなのを宣言して読み込めばいいのでしょうか?
0052デフォルトの名無しさん
NGNGここは終わったスレだから、くだすれdelphiのほうに
質問したほうがよさげ
つか削除依頼だしてこい>>1
0053デフォルトの名無しさん
NGNGそれだけなら
var buf : packed record
name1 : array[0..7] of char;
num1 : array[0..7] of byte;
num2 : array[0..5] of byte;
end;
として、
Stream.Read(buf,sizeof(buf));
で呼んで
num1,num2は16進数変換してから小数点やゼロ差プレスを入れたらどうなの?
0054デフォルトの名無しさん
NGNGDelphi関連の本スレはこちらです。類似スレに注意。
0055デフォルトの名無しさん
NGNG漏れはVBからdelに移行した物ですが、サパーリわからなくて困っています。
vbの場合、あるファイルをTxt_typeという構造体で開く時に
Open App.Path & "\***.txt" For Binary As #1
Put #1, 1, Txt_type
Close #1
としますよね。
これをdelで同じように開くにはどうしたら良いのでしょうか?
0056デフォルトの名無しさん
NGNGTFileStream使ってやったんじゃ駄目かい?
普通にアクセスするより楽だと思うけど・・・
0057デフォルトの名無しさん
NGNGもしくは小さなテキストファイルを扱いたいなら
TStringListを使ってみる。。。
0058デフォルトの名無しさん
NGNG>>56のでいいんでない?
もしくはTMemoryStreamに全部いれて地道に・・・
0059デフォルトの名無しさん
NGNG解らないというレベルの話だと思うが。
0060デフォルトの名無しさん
NGNGどんなデータを作りたいのかが判らんなぁ〜
0061デフォルトの名無しさん
NGNG文字列の型ってなんですか?
0062デフォルトの名無しさん
NGNGstring
0063デフォルトの名無しさん
NGNGstringはそのままAPIの引数に使えますか?
使えないとしたらどのようなコードを書けばいいですか?
0064デフォルトの名無しさん
NGNG使えるよ。
C,C++から呼び出すときに使えないけどC++Builderからなら使えたはず。
0065デフォルトの名無しさん
NGNGString型はそのままAPIに引き渡すのは良くないですよ。
SetLengthでAPIが使用する文字列のサイズを指定してから
引き渡すようにして下さい。
0066デフォルトの名無しさん
NGNGで結局どっちなのさ。具体的なコードがあれば嬉しいんだけど。
たとえばstringにHELLOっていれて
APIのMessageBoxで表示するコード。
0067デフォルトの名無しさん
NGNG希望のサンプル
procedure TMainForm.Button1Click(Sender: TObject);
var
msg: String;
begin
//-----
msg := 'めっせーじじる';
if (MessageBox(self.Handle, @msg[1], 'きゃぷしょん', MB_OK) = IDOK) then begin
end;
end;
0068デフォルトの名無しさん
NGNGif (MessageBox(self.Handle, PChar(msg), 'きゃぷしょん', MB_OK) = IDOK) then begin
0069デフォルトの名無しさん
NGNGs:AnsiString;
nSize:Cardinal;
begin
nSize:=256;
SetLength(s,nSize);
GetUserName(PChar(s),nSize);
s := PChar(s);
ShowMessage(s);
end;
添え字が0から始まるChar型の配列も文字列として扱うことが可能。
文字列を受け取るAPIを多用するならこちらのほうが便利。
0070デフォルトの名無しさん
NGNGなんで、stringじゃなくてAnsiStringになっているのさ?
めんどくせーな。
0071デフォルトの名無しさん
NGNG0072デフォルトの名無しさん
NGNG約11,400件
0073デフォルトの名無しさん
NGNGプログラムの実行はF9でできるのですが
終了させるのにCtl+F2を押しても終了しません。
どうすればよろしいのでしょうか?
0074デフォルトの名無しさん
NGNG0075デフォルトの名無しさん
NGNGありがとう、ございます
(でも、なんで実行の表示と違うのだろう)
0076デフォルトの名無しさん
NGNG確かに数年前まではMSの開発環境より言語仕様やVCLの面でDelphiが大きな
アドバンテージを持っていた。
でも今から始めるなら.netがあるじゃん。言語仕様もクラスライブラリも
Delphiのそれとよく似ているし、機能面では遜色もない。
昔からDelphiの人ならともかく、今からあえてDelphiを学習するメリットって
あるのかな。
007773
NGNG0078デフォルトの名無しさん
NGNGTQueryコンポーネントのFilterって基本的に「*」検索できないんでしょうか?
DBはOracleを使用しているのですが、どうも正しい検索結果が得られません。
例えば、
Name
-------
田中義剛
というデータがあったとして、以下のようなFilterをかけてもこちらの思うような結果が得られません。
・「Name = *剛」→ヒットせず。
・「Name = c*」→ヒット(なぜ?)
何かFilterを使うときの注意などはあるのでしょうか?
0079デフォルトの名無しさん
NGNG0080デフォルトの名無しさん
NGNGX と Y (ともに符号なし整数) の和が奇数かどうかを調べたいんですが、
Odd(X + Y)、 Odd(X) xor Odd(Y)、 X and 1 xor Y and 1 = 1
のうちどれが一番高速でしょうか。
0081デフォルトの名無しさん
NGNG0083デフォルトの名無しさん
NGNG0084デフォルトの名無しさん
NGNG0085デフォルトの名無しさん
NGNG0086デフォルトの名無しさん
NGNG0087デフォルトの名無しさん
NGNGソンゴクウより強いですか?
0088デフォルトの名無しさん
NGNG0089デフォルトの名無しさん
NGNGでも、板違いですかね?
0090デフォルトの名無しさん
NGNG0091デフォルトの名無しさん
NGNG板違いですよ。
009289
NGNG0093デフォルトの名無しさん
NGNG0094デフォルトの名無しさん
NGNGゲームだと荒れそうだからゲーム以外のもの作ってみては?
0095デフォルトの名無しさん
NGNG板違いかどうかは分からん。
でも応援してる(藁
>>93
あそこは「ひどいインターネットですね」の見本みたいなとこだからなぁ…。
ずいぶん前に見る気失せた。
なんであんなに荒らされてんだろう?
0097デフォルトの名無しさん
NGNGたまに「ドライバをロードできません。」というエラーメッセージが表示されます。
これは一体何が原因なんでしょうか?
再現性がないために、原因が掴めません。
何か知ってらっしゃる方がいたら回答頂けませんでしょうか?
宜しくお願いします。
0098デフォルトの名無しさん
NGNGが、どのようにしたらいいでしょうか?
思いついたのは、レジストリをDelphiから操作して使えなくする事なの
ですが、どこをさわればいいのかわかりません。゜。・゜(つД`)゜・。
この他にDelphi側からハードをコントロールする方法はありますか?
現場の人が勝手にどんどんゲーム等をインストールしてしまう事への
対策なのです。(´・ω・`)
0099デフォルトの名無しさん
NGNGPC の蓋開けて、CD-ROM の電源ケーブル抜いときゃいいと思うけど。
つーか会社だったら、CD-ROM の蓋の部分に、「勝手にインストールするな !! 見つけたら、解雇するぞ !!」とでも書いた紙貼っときゃいいだろ。
まじめにやるなら、OS を WindowsNT 系にしてグループポリシーで制限すべきだと思うけどな。
0100デフォルトの名無しさん
NGNGその話からすると、コーディング云々より人間性の問題かと…。
変なコーディングして思わぬ事が起きた場合から発生する問題が恐いかと…。
010298
NGNG実はこの現場ってのは、国外でして・・・。ローカルの従業員(しかも工員)
に「絶対使うな!」と言ってもかなり難しいようです。
OSは予算の関係でそう簡単には変えられないので、ソフトでなんとかな
らないかと泣きつかれてしまった日曜プログラマなのでつ。(´・ω・`)
でも、どうやら無理そうですね。 あちらにはそのように返答しておきます。
ありがとうございました。
0103デフォルトの名無しさん
NGNGかけることは難しいでしょう。ソフトレベルで小細工しても(たぶん)容易にはずされる。
98 系なら、OS リブートは当たり前ですから、割り切って、BIOS レベルで CD-ROM を切り離したら?
BIOS 設定にパスワードロックがかけられればなおよし。
単にエクスプローラーから見えないようにするなら、TweakUI で設定できます。おそらく
レジストリでも。けどドライブ自体は存在するので DOS に降りられたら終わり。
後は CD-ROM からの自動起動を OFF にしておけば、DOS を知らないユーザーなら何とかだませるだろう。
010498
NGNGムを作って簡単にやりたいらしいのです。
(CD-ROMを使う必要がある場合もあるので、ずっとそのままでも駄目な
為)
きっとBIOSなんていじらしたら、そのまま永遠に起動させなくしそうです・・・。
例えばTweakUIで実現しているCD-ROMを見えなくする方法は、Delphi
では出来ますか?
やはりレジストリを操作するのだと思うのですが、どの部分をDelphi側
から変えてやらなければいけないかご存知の方、教えていただけないで
しょうか?
Delphiと若干関係無い質問で申し訳ございません。
0105デフォルトの名無しさん
NGNGというなら、場所を変えなさい。
Windows 板がよいかと思うよ。
0106デフォルトの名無しさん
NGNG変数・配列の宣言が変わってるよね・・・
なんだろう、VBに近いのかな?
とりあえず簡単なゲームぐらいは作れるようになりたいぽ
0107デフォルトの名無しさん
NGNG簡単なゲームってのがどの程度のものか知らないけど(w
0108デフォルトの名無しさん
NGNG0109デフォルトの名無しさん
NGNG>>104
> (CD-ROMを使う必要がある場合もあるので、ずっとそのままでも駄目な為)
0110デフォルトの名無しさん
NGNGhttp://program.dot.thebbs.jp/1071486463.html
0111デフォルトの名無しさん
NGNG0112デフォルトの名無しさん
NGNGさきほど Delphi6 Personal を入れてこれから勉強始めようと思っているのですが
インストール時に FW で許可した D6REG.EXE は今後も通信する可能性あるので
しょうか?また、DELPHI32.EXE がブロックされていたのですが、許可しておいた方
が良いのでしょうか?
0113デフォルトの名無しさん
NGNGスレ違いじゃないけど、「ボーランドさんに聞け」と。
0114デフォルトの名無しさん
NGNGバージョンアップのお知らせとかだよ。
好きにしる。
他の情報が漏れてるかどうかはしらん
0115デフォルトの名無しさん
NGNG回答ありがとうございます、お知らせしてくれるとは親切ですねー。
最悪もれて困るようなデータは入っていないマシンなので、許可しておきます。
通信しっぱなしとかだったら考えてしまいますけど。
0116デフォルトの名無しさん
NGNGバージョンアップと言っても無料じゃないから親切ではないかと。
CMと似たようなもん
たまに表示されるがどうせ見ないから邪魔なだけ
0117デフォルトの名無しさん
NGNG74kほどのファイルを表示させるのにもかなり時間(十数秒)かかるんですが、
画面に必要な分だけ表示させて画面スクロールしたらまた表示するようにして
表示速度を上げる方法をしりたいんですが、どこかにそういった情報乗ってる場所
ないでしょうか?
別のコンポーネントとかでもかまいません。
0118デフォルトの名無しさん
NGNGRTF テキストの読み込み時に時間がかかっているのであれば、
データを書き換え/挿入している部分の前後を
RichEdit.Lines.BeginUpdate と EndUpdate ではさんで、よけいな再描画が起きないように
するというのがよくある話。
0119デフォルトの名無しさん
NGNG見える部分だけをデータとして用意する仮想リストボックス風の処理をしたいのでは無いでしょうか。
RichEdit にそんな機能あったっけなぁ?
0120デフォルトの名無しさん
NGNGソース出しますね。
まだこの処理の後色つけ等してるんですが・・・
AssignFile(InF, ファイル名);
Reset(InF);
log.Clear;
while Not EOF(Inf) Do
Begin
Readln(InF, Buf);
log.Add(Buf);
end;
logViewer.Lines.BeginUpdate; //これ入れたらかなり改善したけど
//ここから
logViewer.Lines := log;
//ここまでの処理が大変時間かかる。
logViewer.Lines.EndUpdate;
ようは、EmEditorとか色付きで表示されているのにあれと同じような
レスポンスがないんで何をしてるのかなぁっておもってるんです。
0121デフォルトの名無しさん
NGNGwith logViewer.Lines do begin
BeginUpdate;
LoadFromFile(ファイル名);
EndUpdate;
end;
0122デフォルトの名無しさん
NGNG0123デフォルトの名無しさん
NGNGわかる変数ってありませんか?
デバッグ中だけしたいことというのがあるんですが
今のところ
debug=1とconstで設定してリリース時にはconst=0とかにして
リコンパイルしてリリースしているんですが、これをミスるとデバッグ版を
出してしまいそうで。
0124デフォルトの名無しさん
NGNG私のやり方では
8923ms
8903ms
9053ms
平均8959ms
>>121さんやり方では
271ms
310ms
281ms
平均287ms
約31倍速度アップしました
後1Mのファイルを開いてみたら
911msとかでたので比例的に時間かかるというわけでもなさそうですね。
ありがとうございました。これつかって作ってみます。
0125デフォルトの名無しさん
NGNGそれが特定の値の時にはデバッグコードを動かします。
もちろん出荷製品のインストーラーにはそういう隠し設定は入れません。
もう少し微妙なテクニックとしては、プロセスがデバッガによって読み込まれているかどうかを
判断する API があります。
0126デフォルトの名無しさん
NGNG95 系にはこの API がありませんが、その代わりに FS セグメントのオフセット 0x20 をチェックする。という
技法が使えます。Anti Crack 関連をぐぐってください。
0127デフォルトの名無しさん
NGNG2.仮想デバイスドライバ検出
3.デバッガのウィンドウクラス名取得
0128デフォルトの名無しさん
NGNGprocedure TMainWnd.actListOpenHideExecute(Sender: TObject);
var
item: TListItem;
thread: TThreadItem;
begin
(* *)
if ListView.SelCount > 1 then
item := ListView.ItemFocused
else
item := ListView.Selected;
if item = nil then
exit;
if UILock then
exit;
thread := TThreadItem(item.Data);
ShowSpecifiedThread(thread, Config.oprGestureThrOther, true, false, true);
SetRPane(ptList);
end;
0129デフォルトの名無しさん
NGNGprocedure TMainWnd.actOpenAllNewThreExecute(Sender: TObject);
var
index: Integer;
item: TListItem;
thread: TThreadItem;
begin
if ListTabControl.Tabs.Count < 1 then
exit;
for index:=0 to ListView.Items.Count-1 do
begin
item := ListView.items[index];
if item = nil then
continue;
thread := TThreadItem(item.Data);
if (thread.lines > 0) and (thread.oldLines >= thread.lines)
and (thread.lines < thread.itemCount) then
begin
ShowSpecifiedThread(thread, Config.oprGestureThrOther,
(Config.oprOpenThreWNewView xor (GetKeyState(VK_SHIFT) < 0)));
SetRPane(ptView);
end;
end;
end;
0130128
NGNGわかりやすく説明してもらえませんか?
0131128
NGNG0132デフォルトの名無しさん
NGNGデバッグを示すファイルを作成して そのファイルがあるときは デバッグ中とすればいいのでは?
0133デフォルトの名無しさん
NGNG0134デフォルトの名無しさん
NGNGじゃんけんゲームとか
もぐらたたきゲームとか
RPGとか
ゲーム板いったほうがいいよ
0135デフォルトの名無しさん
NGNG0136デフォルトの名無しさん
NGNG0137デフォルトの名無しさん
NGNG感じがするのですがDelphiで高速な描画というとどういった方法がセオリーですか?
今はImageList.Drawを使っています
0138デフォルトの名無しさん
NGNG0139デフォルトの名無しさん
NGNG失礼しました、こちらは描画一般は扱わないのでしょうか
(過去ログにピクセルの描画に関しての高速化があったのであえてこちらに書き込んでしまいました)
ゲ製作に逝ってきます
0140デフォルトの名無しさん
NGNG#ゲーム以外での描画の話題はあまりない気もしますが。OwnerDrawくらい?
http://216.239.57.104/search?q=cache:fGL7Wsv0RywJ:www.geocities.co.jp/SiliconValley/1367/drawspeed.html+Delphi+%E9%AB%98%E9%80%9F%E3%80%80%E6%8F%8F%E7%94%BB&hl=ja&lr=lang_ja&ie=UTF-8
0141OpenGL
NGNGDelphiでOpenGLを扱うやり方について、過去ログや文献、webで
参照すべきものがあれば教えていただけないでしょうか。
0142デフォルトの名無しさん
NGNGとりあえず
ttp://www.center.wakayama-u.ac.jp/~tokoi/opengl/delphi.html
0143141
NGNG有難うございます!
今、徹夜で頑張ってます(多分朝の10時くらいから寝ると思いますが…)。
0144デフォルトの名無しさん
NGNG誤記の内容と本来書かれるべき内容を教えてください。
他のスレやサイトに書かれている場合は、
そのスレやサイトのURLかタイトルなどを教えてください。
0145デフォルトの名無しさん
NGNGhttp://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&oe=UTF-8&q=%E7%9F%A5%E3%81%A3%E3%81%A6%E3%81%84%E3%82%8B%E3%81%8C%E3%81%8A%E5%89%8D%E3%81%AE%E6%85%8B%E5%BA%A6%E3%81%8C%E6%B0%97%E3%81%AB%E9%A3%9F%E3%82%8F%E3%81%AA%E3%81%84
0146デフォルトの名無しさん
NGNG字余り
0147デフォルトの名無しさん
NGNGヘルプには空白と制御文字をと書いてますし
制御文字で検索するとtabは制御文字で間違いないようです
うまくやる方法を教えてください
0148デフォルトの名無しさん
NGNG文字列の先頭と末尾しか取り除けないが、中間にあるのまで取り除こうとしてない?
0149デフォルトの名無しさん
NGNGAnsiReplaceStrやAnsiReplaceTextでどうでしょ?
(制御文字は自分ではやったことないけど大丈夫じゃないかな)
0150デフォルトの名無しさん
NGNG>>149
ありがとうございます、解決しました
>>148氏のアドバイスの後、まさかと思いつつ調べたところ
memo1上で目視確認で改行されてたものが実は繋がっていたというミスでした
お騒がせしました
0151デフォルトの名無しさん
NGNGいままで98SEにDelphi 6 Personalをインストールして使っていたのですが
WinXP sp1へ移行する事になったのでDelphi 6もXPへ移行しようとしたら
対応OSがWindowsMe Windows2000 Windows98 WindowsNT となっています。
XPへインストールしてもいいのでしょうか。
0152デフォルトの名無しさん
NGNG俺XP sp1で使ってる
何の問題も無いよ
ていうかレス速すぎてずっとこのスレ見張ってたみたいだが
0153デフォルトの名無しさん
NGNGどうもです。
どのスレか見失ってしまったのですが、XPは対応していない
という書き込みを見たような気がしたものですから。
thxです。
0154デフォルトの名無しさん
NGNGもう一度Delphiを入れ直そうとしたらDelphi7(使用期限あり)に変わってたようで。
0155デフォルトの名無しさん
NGNGファイルはまだある
Ftp://ftpa.borland.co.jp/pub/delphi/personal/BorlandDelphiPersonalEditionJP.exe
0156デフォルトの名無しさん
NGNGありがとうございます。助かりました。
0157デフォルトの名無しさん
NGNGstudio proを買おうと思ってるんだけど、アカデミーパックが見付からない。
0158デフォルトの名無しさん
NGNGhttp://www.amazon.co.jp/exec/obidos/ASIN/B0000794TV/qid=1083244594/sr=1-5/ref=sr_1_8_5/250-3713163-3141030
0159デフォルトの名無しさん
NGNGListBoxについて質問です。
リソースファイルを以下の様に宣言して、画面に表示されたのですが、
値の追加はどのようにすればいいのでしょうか?
SendMessage(hWnd,LB_INSERTSTRING,0,s);
では値か表示されませんでした・・・
PAGE1 DIALOG DISCARDABLE 0, 0, 160, 124
CAPTION "未読"
FONT 9, "MS Pゴシック"
BEGIN
AUTOCHECKBOX"送受後(&R)",101, 12, 12, 100, 10
LISTBOX 151, 14, 20, 80 , 65
PUSHBUTTON"送信(&D)", 199, 140, 72, 48, 14
END
0160デフォルトの名無しさん
NGNG0161sage
NGNGただで使えるからです・・・
0162デフォルトの名無しさん
NGNGで出来ました。ふぅ
0163デフォルトの名無しさん
NGNGFileListBoxの中身
001.txt
002.txt
003.txt
・・
・・・
・・
・・
これに対して
003.txt(もしくはC:\・¥・・¥003.txt)という引数をを入れた場合の返り血として 3 がほしいのです。
0164デフォルトの名無しさん
NGNGFileListBox1.Items.IndexOf('003.txt');
0から始まるから、2が返ってくるけど。
0165デフォルトの名無しさん
NGNG配置したボタンをクリックすると、同時に起動している別のエディタのカーソルの位置に
指定の文字列が入力されるようにするにはどのようにすればよいのでしょうか?
0166デフォルトの名無しさん
NGNGウィンドウの検索方法が厳密でないので、同名のウィンドウが複数
存在する場合、予期しない動作をするかもしれません。
procedure TForm1.Button1Click(Sender: TObject);
var
Target: HWND;
begin
Target := FindWindowEx(0, 0, 'Notepad', '無題 - メモ帳');
if Target <> 0 then
begin
Target := FindWindowEx(Target, 0, 'Edit', nil);
if Target <> 0 then
SendMessage(Target, EM_REPLACESEL, 0, Integer(PChar(Edit1.Text)));
end;
end;
0167デフォルトの名無しさん
NGNGEM_XXXX メッセージが使えます。でも、秀丸とか EmEditor とか他のメジャー
なエディタは独自のエディットコントロールを使っていますので、EM_XXX や
WM_XXXX のようなメッセージにはほとんど応答しません。クリップボード経由
ならなんとかなるかも知れませんが。
0168デフォルトの名無しさん
NGNGを取ろうと思い。ExtractHTTPFieldsで分解してリストボックスに表示させました。
uses HTTPApp
var
DirPath: string;
chrSepa,chrWhite: TSysCharSet;
sltResult: TStringList;
begin
DirPath := DirPathBox.Text;
sltResult := TStringList.Create;
sltResult.Clear;
chrSepa := ['\'];
// 分解
ExtractHTTPFields(chrSepa,chrWhite,PChar(DirPath),sltResult);
// 表示
ListBox1.Items.Assign(sltResult);
sltResult.Free;
end;
その結果次の様になったのですがドライブを指定した場合不明な文字・が出てきます。
パス :C:\AAAA\BBBB | C:\
文字列:C: | C:
:AAAA | ・
:BBBB |
このままだと、この後にfor文でリストボックスのカウントを使って一階層上のパスに
結合させようとした事ができません。
この・は何なのでしょうか。出ないようにすることはできるのでしょうか?
また、もっと簡単に一階層上のパスを取得する方法が有ればそちらも教えて頂きたいです。
0169デフォルトの名無しさん
NGNG・のせいで同じ2になってしまうのです。
0170デフォルトの名無しさん
NGNG0171デフォルトの名無しさん
NGNG> パスの一階層上のパス(C:\AAAA\BBBBをC:\AAAに)を取ろうと思い
なら、ExtractFilePath() をつかって
ExtractFilePath('C:\AAAA\BBBB') → C:\AAAA\
だけど。
0172デフォルトの名無しさん
NGNGExcludeTrailingBackslash(ExtractFilePath('C:\AAAA\BBBB')) → 'C:\AAAA'
0173デフォルトの名無しさん
NGNG0174デフォルトの名無しさん
NGNG0176デフォルトの名無しさん
NGNGstr: string;
if OpenDialog.Execute then
str := OpenDialog.FileName;
with IBDatabase do begin // InterBaseDBへの接続
Params.Clear;
Params.Add('user_name=SYSDBA');
Params.Add('password=??????');
Params.Add('lc_ctype=sjis_0208');
DatabaseName := str;
Open;
end;
with IBTransaction do begin
DefaultDatabase := IBDatabase;
Active := True;
end;
こんな感でデータベースとの接続が出来るのは分かりました。
OpenDialogで選ばれたフォルダがローカルの時は問題なく動きます。
例 strの中身←'c:\ib\test.gdb'
LAN上の別のパソコンのDBに繋ぐにはどうしたらよいのでしょうか?
例 strの中身←'\\server\サーバー\ib\test.gdb'
とかで繋がらなくてエラーになります。
strの中身を'server:d:\ib\test.gdb'に書き変えると繋がる場合、
strをどのように書き換えたら良いのでしょうか?
'd:'指定が要らずに繋がったはずなのですが、やり方を忘れましたtt
どなたか教えてください。
0177ミ,,゚Д゚彡 ◆A6VzDeLphI
NGNGExplorerのアドレスバーへの入力ではそれでアクセス可能かと。
権限を得る方法は、知らないので誰か
フォローおねがいしまつ。
0178176
NGNGExplorerのアドレスバーへ \\server\ib と入力したら確かに test.gdbファイルが見えました。
見えるって事は権限あるって事ですよね?
理屈から考えると、パス込みのファイル名は \\server\ib\test.gdb のはず
なのですが、IBDatabase.FileNameにそのまま渡してもうまくいきません。
う〜ん、行き詰まってしまいましたonz
0179デフォルトの名無しさん
NGNGInterbaseサーバは違うマシンのDBファイルを扱わなかったと思うが違うか?
0180176
NGNG違うマシンのDBファイルじゃダメなんですね。
分かりました。他の方法を考えます。
0181デフォルトの名無しさん
NGNG安易な発想ですが、ネットワークドライブを割り当ててみたらどうですか?
0182デフォルトの名無しさん
NGNGディレクトリパスの表示を変えたいのですが、どのイベントで「フォルダを移動した」
ということがわかるのでしょうか??
onChangeでは取れないみたいなので。。
よろしくお願いします。
0183182
NGNG0184デフォルトの名無しさん
NGNGOnClickでいいんじゃないの?
0186デフォルトの名無しさん
NGNG0187デフォルトの名無しさん
NGNG0188デフォルトの名無しさん
NGNGShowMessage('swf(flash)');
0189186
NGNGその単語で検索していろいろとやってみます。
>188
センスなし!次ぃっ!
0190デフォルトの名無しさん
NGNGswf(flash).Visible:=True;
0191デフォルトの名無しさん
NGNG表示したい場所に TWebBrowser を貼り付ける。
WebBrowser1.Navigate('ファイル名.swf');
もし 'ファイルのダウンロード' が出てくるならもう少し工夫が必要。
0192デフォルトの名無しさん
NGNGQuickReportを使って、Paradox.DBの内容を一件ごとに一頁印刷し
改頁するというアプリを作ってるのですが、うまくいきません。
用紙は定形ではなく連続用紙なので、レポートの設定で用紙サイズと
同じ「カスタムサイズ幅210x長さ140」と設定してるんですが、実際
印刷するときはA4になってしまっているようで、改ページ位置がA4と
同じ位置になってしまいます。
プリンタ設定を見てみると用紙サイズA4になっているので、「ユーザー
定義1」に手動で変更してみても駄目です。
どうしたら縦140mmの位置で改ページできるでしょうか。
0193デフォルトの名無しさん
NGNG関連付けで実行したいなら>>187
IEコンポで開きたいなら>>191
そのまま開きたい場合。
Flashのバージョンや環境によって少々変化するかもしれません。
ActiveXコントロールからの取り込みでShockWave ActiveX Controlを取り込み
以下のような感じで開く。
LoadMovieの第一引数はよくわかりません
procedure TForm1.Open1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
ShockwaveFlash1.LoadMovie(0,od.FileName);
end;
0194186
NGNGご丁寧にありがとう御座います。無事うまくできました。
>187,>191
ご助言感謝します。ありがとう御座いました。
0195デフォルトの名無しさん
NGNGある9つのEditに、1から9の、それぞれ数字をランダムに入れたいと思います。
ランダマイズ関数だけでは数字がかぶってしまうことがあると思うのですが、どのようにすれば全て異なる数字になるのでしょうか。
0196デフォルトの名無しさん
NGNG0197デフォルトの名無しさん
NGNGありがとうございます。
シャッフルというのを使ったことがないのでわからないのですが、どう記述すればよいのでしょう。
0198デフォルトの名無しさん
NGNGこんな感じとか
procedure TForm1.Button1Click(Sender: TObject);
var
num:array[1..9] of integer;
i,j,tmp:integer;
begin
for i := 1 to 9 do num[i] := i;
randomize;
for i := 9 downto 2 do begin
j := Random(i)+1;
tmp := num[j];
num[j] := num[i];
num[i] := tmp;
end;
Memo1.Clear;
for i := 1 to 9 do
Memo1.Lines.Add(IntToStr(num[i]));
end;
0199デフォルトの名無しさん
NGNGオンクリックメッセージとかなしで。
0200デフォルトの名無しさん
NGNG作りたいものがあるならそれを作ればいいし
単純に勉強したいならメモ帳クローン。
新規、ロード済み、編集中とかの状態を管理することを覚えられるし
標準的なメニューの実装方法をどう書くかとか
バージョン情報のダイアログの作り方とか一通りマスターできる。
0201デフォルトの名無しさん
NGNGプロジェクトを保存するディレクトリを作ろう。
0202デフォルトの名無しさん
NGNG0203デフォルトの名無しさん
NGNGゲームもよろしく
Delphiまとめ
http://gamdev.org/w/?%5B%5BDelphi%A4%DE%A4%C8%A4%E1%5D%5D
【Delphi】 ゲームつくるぞ(゚Д゚)ゴルァ 【作れば?】
http://pc5.2ch.net/test/read.cgi/gamedev/1051110669/
Delphiでアクションゲームが作りたい!! Part2
http://pc5.2ch.net/test/read.cgi/gamedev/1027482533/
Delphiゲームプログラミング相談室
http://pc5.2ch.net/test/read.cgi/gamedev/1006249204/
delphiでMMO
http://pc5.2ch.net/test/read.cgi/gamedev/1072515100/
ネットワークゲーム作成のお勉強(Delphi専用スレ)
http://pc5.2ch.net/test/read.cgi/gamedev/1028278884/
[Delphi] RPG作らねば [Delphi]
http://pc2.2ch.net/gamedev/kako/1013/10139/1013976376.html
0204デフォルトの名無しさん
NGNG画像サムネイル表示機能付きエクスプローラ。
0205デフォルトの名無しさん
NGNGShellExecute一発でできるよw
0206199
NGNGたくさんのレスありがとう。
やる気が出たよ
0207デフォルトの名無しさん
NGNGお礼遅くなり申し訳ありません。
それではEditに書き込んでいく場合は、下の方のListBoxをEditでループさせていく、ということでしょうか。
本当にありがとうございます。
0208デフォルトの名無しさん
NGNGListBoxをEditでループさせていく
↓
Memo.LinesでなくEditに置き換える
0209デフォルトの名無しさん
NGNGそうだね。Edit1 〜 Edit9 だとすると
for i := 1 to 9 do
TEdit(FindComponent('Edit'+IntToStr(i))).Text := IntToStr(num[i]);
のように。
0210デフォルトの名無しさん
NGNG0211デフォルトの名無しさん
NGNG確定時になぜに as ?
0212デフォルトの名無しさん
NGNG0213デフォルトの名無しさん
NGNG素のキャストをするのはisでチェックしたものだけにしといた方がいい。
プログラミングってそういうものだよ。
0214デフォルトの名無しさん
NGNG0215デフォルトの名無しさん
NGNGこれ読めないの?
0216デフォルトの名無しさん
NGNGプログラミングってそういうものだよ。
0217デフォルトの名無しさん
NGNGnilはasでも検出できない。
>>215
そういう別の場所で決められたルールには依存したくないってこと。
begin〜end内で完結した正しい記述ができればそうしたい。
パフォーマンスが問題にならないところで安全なコードが書けるなら安全に書く。
という習慣づけをしてるってだけ。強要はしないけどね。
0218デフォルトの名無しさん
NGNG0219デフォルトの名無しさん
NGNG>別の場所で決められたルールには依存したくないってこと
なら、FindComponent は、はなから使えないじゃん
0220デフォルトの名無しさん
NGNGしていることは明白だろう
0221デフォルトの名無しさん
NGNGFindComponentの話はしてないよ・・・
is/asの使い分けの基準のことしか言ってないよ。
0222デフォルトの名無しさん
NGNG0223デフォルトの名無しさん
NGNG0224221
NGNGis/asじゃなくてキャストとasの使い分けだった。
>>222
210は自分じゃないよ。それ以降が自分が書いたレス。
ま、主張は同じだけど。
0225デフォルトの名無しさん
NGNG0226デフォルトの名無しさん
NGNG0227デフォルトの名無しさん
NGNG違う。もっと一般的な理由。
一般に外から渡されたTObjectなオブジェクトの参照はキャストすべきでない。
asを使うかisでチェックしてからキャストすべき。
理由はもし想定外のオブジェクトが渡されたときデバッグが困難になるから。
ただし、動作速度が問題になるようなケースではこのルールは適用しないことも考慮すべき。
補足すると>>209のケースに限定すればはっきりいってどうでもいいよ。
どうしてと聞いたので理由を述べただけだし。
ただ自分は常にasを書くね。>>217でも言ったとおり
どっちでもいいなら安全なコードを書きたいし
外部の条件を一々考慮せずになるべく統一的に書きたい心理があるから。
以上。もう寝る。
0228デフォルトの名無しさん
NGNG>一般に外から渡されたTObjectなオブジェクトの参照はキャストすべきでない。
はい、もちろんこれは同意します。
>補足すると>>209のケースに限定すればはっきりいってどうでもいいよ。
そうですね、FindComponent は「想定外のオブジェクトが渡されたとき」ってないですよね。
だから、
>確定時になぜに as ?
と訊いたのです。その回答が
>Edit1ってLabelがあったらクラッシュするから。
というものだったので、それは納得できないと。どっちでもいいのではなく、as が
この場合は冗長なのだと。
> 外部の条件を一々考慮せずに
一々考慮するべきだと思うよ。
>プログラミングってそういうものです。
0229デフォルトの名無しさん
NGNG一般論に適合しないケースに一般論を適用しようとしたら無理があるだろ
0230デフォルトの名無しさん
NGNG>一々考慮するべきだと思うよ。
まぁ、ベーシックは全てグローバル変数だから、
いちいち考慮する必要がありますけどね。
0231デフォルトの名無しさん
NGNG冗長性というのは、is の後に as でキャストする事では?
0232208
NGNGありがとうございました。
>>210以降
私がいただいたアドバイスの派生ですよね。
難しすぎてわからず、何がなにやらというところなのですが(汗)、ありがとうございました。
0233デフォルトの名無しさん
NGNG>確定時になぜに as ?
>この場合は冗長なのだと。
それは問題があまりにも単純だからだよ。
イベントハンドラが数十個あってそのうちのいくつか(どれかはコーディングによって刻々と変化していく)
にはSenderに複数(場合によっては同一オブジェクトだったり異なるオブジェクトだったり)
渡されるような状況で、どのSenderにどのオブジェクトが渡されるか
ソースコード的にははっきり決まっているけどプログラマがきっちり把握するのが怪しくなるような
ケースであってもasが無駄だと思う?
0234デフォルトの名無しさん
NGNG>>233へのレスはやっぱいらないや。
一つ聞きたいんだけどバグがまったくない状態でasが失敗するようなコーディングってする?
つまりasは純粋にバグ検出のためにだけ使っているかどうか。
それだけ聞いておしまいにしたい。
0235デフォルトの名無しさん
NGNG> バグがまったくない状態でasが失敗するようなコーディングってする?
バグが無くて、as が失敗するようなコードをどうやって書くのかな。
0236デフォルトの名無しさん
NGNG>>209 の場合は >>233 も言うように単純すぎて as 使う意味がないから違う。
0237デフォルトの名無しさん
NGNG>冗長性というのは、is の後に as でキャストする事では?
is のあとに as で動的型チェックするのは冗長であると確信できるからですね?
わたしは Edit1 という名前のコンポは TEdit であると確信できるようなプログ
ラミングをすべきだと思います。
0238デフォルトの名無しさん
NGNG0239デフォルトの名無しさん
NGNG多態性がつかえなくなるので、TObject.ClassName ではだめです。
0240デフォルトの名無しさん
NGNG○ >成功するようにしなければ
0241デフォルトの名無しさん
NGNGエディタでソースかいてるときの
最後のend.は何ですか?
なんでここだけend;じゃないの?
0242デフォルトの名無しさん
NGNGend. → プログラムの終わり
0243デフォルトの名無しさん
NGNG0244デフォルトの名無しさん
NGNG・すべてのソースファイルと同じように,プロジェクトファイルはピリオドで終わります。
・ユニットは end とピリオドで終わらなければなりません。
・ブロック内の複数の文およびユニットの初期化部と終了処理部の複数の文を区切るには,セミコロンを使用します。
0245デフォルトの名無しさん
NGNGこれは違う。文の区切り。だから次に区切るべき文がない場合はなくてもよい。
end; の直前の文の末尾とか
0246デフォルトの名無しさん
NGNGend. → プロジェクトまたはユニットの終わり
でした。失礼しました。
0247sorry
NGNGend. → プロジェクトまたはユニットの終わり
0248デフォルトの名無しさん
NGNG0249デフォルトの名無しさん
NGNGas のみの場合は軽いチェックにしか使えないな。
var
Hoge: THoge;
begin
Hoge := nil;
(Hoge as THoge).Test;
Hoge.Test;
end;
どちらも Test が呼び出されるけど、おかしいよね。
どうしてBorlandは nil as で例外を出さないようにしたのかな。
nil is は False なのに。
昔のDelphiは nil is が True を返してたけど、
このあたりの仕様の解りずらさが関係してたのかな。
>>237
私は型チェックもするし、紛らわしい名前も付けないように努力してますよ。
0250デフォルトの名無しさん
NGNG>私は型チェックもするし、紛らわしい名前も付けないように努力してますよ。
237 です。どうも真意が分かって頂いてないような気が・・・・
IDE が配置したコンポは、name プロパティーとインスタンス変数の名前が一致
しています。プログラマは、どのインスタンスがどのクラスなのか知っていない
とコードが書けません。'edtName' とか 'edtAge' に対応する edtName と
edtAge が TEdit であることを知っているからこそ
edtName.Text := 'John';
edtAge.Text := '23';
というコードが書けます。
(FindComponent('edtName') as TEdit).Text := 'John';
と書くのは、'edtName' に対応する edtName が TEdit であることを知って
いる場合は、冗長じゃないか、と言いたいのです。edtName が TEdit でない
かもしれないから as を使うべきだ、という主張どおりなら
(edtName as TEdit).Text := 'John';
(edtAge as TEdt).Text := '23';
と書かねばならず、コードは as だらけになってしまうでしょう。これは変です。
Sender:TObject で渡された場合には、実行時型チェックはキャストの前に必須
である、ということと FindComponent() の場合とは明らかに違います。
0251デフォルトの名無しさん
NGNGコンパイル時チェックができないのであれば、実行時チェックをしましょう。
0252デフォルトの名無しさん
NGNG玉を取られて負けた、という笑い話があります。格言も適用できるかどうか
頭を使って考える必要がありますね。
0253デフォルトの名無しさん
NGNG> コンパイル時チェックができないのであれば、実行時チェックをしましょう。
なるほど。
edtName.Text := 'John';
の場合は edtName の型チェックはコンパイラがやってくれると。しかし、
FindComponent('edtName')
が返すオブジェクトの場合はそうではない、と。たしかに。
208さんのコードは
var
cmp:TComponent;
for i := 1 to 9 do
begin
cmp := FindComponent('Edit'+IntToStr(i));
if Assigned(cmp) and (cmp is TEdit) then TEdit(cmp).Text := IntToStr(num[i]);
end;
とすべきですね。ありがとう。
>>252
格言には互いに相反するものもありますよね。でもなにがしかの先人の知恵が
入ったものなので、場面場面で適用すべきかどうかは一考する価値がありますよね。
ありがとう。
0254デフォルトの名無しさん
NGNG>as の前に nil のチェックを入れた方が良さそう。
as で nil チェックができないとすると、どんな場面で as を使うんでしょうね。
>if Assigned(cmp) and (cmp is TEdit) then TEdit(cmp).Text := IntToStr(num[i]);
では as の出る幕がありませんよね・・・・・
0255デフォルトの名無しさん
NGNGif (cmp is TEdit) then TEdit(cmp).Text := IntToStr(num[i]);
で OK でした。 Assigned は余計でした。でも as の出番がない。
0256デフォルトの名無しさん
NGNG名前のタイポやiが大きくてあり得ない名前になったりした場合にnilが返される
場合なんだから as じゃ役に立たない、ってことね
0257デフォルトの名無しさん
NGNG両者のエラー検出は全く別物。asは望んだ型の参照を得るのが目的なんだから
nil参照前提で取得することも普通にある得る。だからasでnilチェックをしないのは当然。
幸いC#では通常の型キャストで必ず実行時型チェックが入るから
Delphiみたいにアホ開発者がバグをばら撒くのを未然に防止している。
それからお前らが書くような小規模ゴミアプリの開発においては
プログラミング作法なんて全く不要。
好きなだけゴミコードを撒き散らして結構。好きにしとけ。議論なんて時間の無駄。
まともな議論したいなら、まずはまともな知識を得た上で経験を積めと。
>>255
>if (cmp is TEdit) then TEdit(cmp).Text := IntToStr(num[i]);
はバグがあった場合素通りしてしまう最悪なコード。
予期しないnilに対しては例外を発生させるべきで、それならただのキャストの方がまだまし。
0258デフォルトの名無しさん
NGNG>予期しないnilに対しては例外を発生させるべきで、それならただのキャストの方がまだまし。
結局、>>208 場合、どうすればいいの?
0259デフォルトの名無しさん
NGNGJIT だから、実行時情報が取りやすいからでしょ
0260デフォルトの名無しさん
NGNG>結局、>>208 場合、どうすればいいの?
>>249 の言うように as に先だって nil かどうかを確認するといいのでは。
var obj:TComponent;
for i := 1 to 9 do
begin
obj := FindComponent('Edit'+IntToStr(i));
if Assigned(obj) then
try
(obj as TEdit).Text := 'Test';
except
raise Exception.Create('InvalidCast');
end
else
raise Exception.Create('InvalidCast');
>>257
>予期しないnilに対しては例外を発生させるべきで、それならただのキャストの方がまだまし。
僕のD5では obj が nil でも TEdit(obj).Text で例外がでない。何事もなく通り過ぎる。
0261デフォルトの名無しさん
NGNGif (cmp is TEdit) then TEdit(cmp).Text := IntToStr(num[i])
else raise Exception.Create('InvalidCast');
でいいと思う。>>257 の説明を読んでも as が nil を参照したら例外を出してくれた
ほうが、ずっと便利だと思う。だって、実際、nil をキャストしたい場面が思い浮かばない。
現状の as がどの場面で使われるのかやっぱ分かんない。
0262デフォルトの名無しさん
NGNG0263デフォルトの名無しさん
NGNGタスクバーに、「トディタ」って表示されるんですが……
これはOSのバグですか??
ちなみに環境は、win98 で Delphi6 Personalです。
0264デフォルトの名無しさん
NGNGProject.exe でも表示できるよ。
procedure TForm1.FormCreate(Sender: TObject);
begin
Application.Title := 'エディタ';
end;
0265デフォルトの名無しさん
NGNGTControl.SetText は Self = nil ならフィールドにアクセスしないので、
AVは起きません。
0266デフォルトの名無しさん
NGNGCaption が変更されるのでびっくり。>>265 の説明でなるほどと。
0267デフォルトの名無しさん
NGNGis と as
http://black.sakura.ne.jp/~third/programming/cs/cs46.html
as が失敗すると例外は発生せず null を返すんだって。
しかし、null の参照で例外が出るんだって。
0268デフォルトの名無しさん
NGNGに変換してるんだね。>>257 の言うように
> なんかNullReferenceExceptionとInvalidCastExceptionを混同してるアホがいるな。
と同じで C# で as を使うと、区別できないのね。ま、仕様としては C# の as の
方がいいと思うけど。>>257 は C# で as 使ってないんじゃないの。
0269デフォルトの名無しさん
NGNG0270デフォルトの名無しさん
NGNG> InvalidCastException を NullReferenceException に変換してるんだね
?asで例外が起きることは無いけど。C++のdynamic_castと同じでnullを返すだけ。
0271デフォルトの名無しさん
NGNG>asで例外が起きることは無いけど。
それは >>267 で書いてあるので知っている。返されたオブジェクトをそのままキャストしたとき、
null だったら NullReferenceException 相当が起こると。
0272デフォルトの名無しさん
NGNGVCLのソースをas, FindComponentなんかで検索して読んどけと。
にわかPersonal厨には無理だろうけど。
0273デフォルトの名無しさん
NGNG0274デフォルトの名無しさん
NGNG0275デフォルトの名無しさん
NGNG0276デフォルトの名無しさん
NGNG0277デフォルトの名無しさん
NGNGFindComponentのキャストにasを使うだけだろ。
理由は上のほうで散々書かれているだろ。
それで納得できないアホにはこれ以上かける言葉が見つからない。
0278デフォルトの名無しさん
NGNG>>256
0279デフォルトの名無しさん
NGNGそれだったら、>>261 のほうがいいと思うな。
0280デフォルトの名無しさん
NGNG0281デフォルトの名無しさん
NGNG0282デフォルトの名無しさん
NGNG0283デフォルトの名無しさん
NGNG0284デフォルトの名無しさん
NGNGそうだね。すべのキャストでそう書いとけばいいよ。
0285デフォルトの名無しさん
NGNGas はいらないってこと?
0286デフォルトの名無しさん
NGNG0287デフォルトの名無しさん
NGNGDelphi が発売されて9年余。この5日間で「 as 使え 」から「使わないほうがいい。」
に大転換!!
すごいね、このスレ!
0288デフォルトの名無しさん
NGNG0289デフォルトの名無しさん
NGNGfunction NullpoCheck(obj: TObject): TObject;
begin
if obj = nil then raise ENullpoError.Create('ガッ');
Result := obj;
end;
((NullpoCheck(FindComponent('Edito1')) as TEdit).Text := 'ぬるぽ';
ってやれば完璧
0290デフォルトの名無しさん
NGNG0291デフォルトの名無しさん
NGNG0292デフォルトの名無しさん
NGNGそういやforもwhileもifとgotoがあるからいらないな。
つかCかアセンブラで十分。
0293デフォルトの名無しさん
NGNG人力で十分。
0294デフォルトの名無しさん
NGNG0295デフォルトの名無しさん
NGNG亀レスすいません。
ありがとうございます。
早速試してみます。
0296デフォルトの名無しさん
NGNGえらそうにいってるだけで説明できないんだよな
0297デフォルトの名無しさん
NGNG0298デフォルトの名無しさん
NGNGそういうな。馬鹿は馬鹿なりに頑張っているんだ
0299デフォルトの名無しさん
NGNG違うみたいですね。
どうやって判断したら良いですか?
0300299
NGNG0301デフォルトの名無しさん
NGNGIsIconic
0302デフォルトの名無しさん
NGNG0303ミ,,゚Д゚ミノ ◆A6VzDeLphI
NGNGfunction GetWindowState(WndHandle: HWnd): TWindowState;
var
pw : TWINDOWPLACEMENT;
begin
pw.length := SizeOf(TWINDOWPLACEMENT);
GetWindowPlacement(WndHandle, @pw);
case pw.showCmd of
SW_SHOWNORMAL:{=1}
Result := wsNormal;
SW_SHOWMINIMIZED: {=2}
Result := wsMinimized;
SW_MAXIMIZE: {=3}
Result := wsMaximized;
else
raise Exception.Create('WindowStateのエラー'+IntToStr(pw.showCmd));
end;
end;
0304デフォルトの名無しさん
NGNGprocedure TForm1.Timer1Timer(Sender: TObject);
begin
if IsIconic(Application.Handle) then Beep;
end;
0305デフォルトの名無しさん
NGNG0306デフォルトの名無しさん
NGNG0307デフォルトの名無しさん
NGNGVC++に挫折してDelphiに移ったという方ならここに居るがVBは触った事ない。
て言うか、VC++はどの辺がVisualだったのかいまだに分からにゃい。
0308デフォルトの名無しさん
NGNGとりあえずコマンドラインでビルドしないからに1票
0309デフォルトの名無しさん
NGNG0310デフォルトの名無しさん
NGNG0311デフォルトの名無しさん
NGNG0312デフォルトの名無しさん
NGNG0313デフォルトの名無しさん
NGNG0314デフォルトの名無しさん
NGNGああ、今度ガンダムAで連載されるコンバトラーVの続編だね。
0315デフォルトの名無しさん
NGNG0316デフォルトの名無しさん
NGNGVA Visual Assembler
VB Visual Basic
VC Visual C++/C#
VD Visual Delphi
VE Visual Eiffel
VF Visual Fortran
0317デフォルトの名無しさん
NGNG0318デフォルトの名無しさん
NGNGD言語のほうが可能性あるような……
0319デフォルトの名無しさん
NGNG自分でビルドしようと思ったのですが、うまくいきません。
どこがと言うと、ActiveXコンポーネントを二つ使わないと行けないのですが、
一つしか入ってくれず、もう一つは「既にそのクラスがあります」と言った
メッセージが出ます。
環境はDel7Proです。
MS-HTTP何とかは入るのですが、MS-Internet何とかが
クラスが既にあると言うことでパッケージになってくれません。
どうしたらよいでしょうか。
0320デフォルトの名無しさん
NGNG0321デフォルトの名無しさん
NGNGTWebBrowser がすでにインストールされているからだと思います。
入手したソースを Grep 検索して uses 節の ShDocVw_TLB を ShDocVw に
置換するのでは駄目でしょうか?
プロジェクトオプションのユニットの別名でもいけるかもしれません。
0322319
NGNGお返事ありがとうございます。
お返事では方法は二つあると言うことでしょうか。
・ソースのコンポーネント?パッケージ?の引用部分を書き換える。
二つめが分かりません。
ユニットの別名とは何でしょうか。
0323デフォルトの名無しさん
NGNG今から始めるのはやめた方がいいと思う。
もうすぐ消える言語だし。
0324デフォルトの名無しさん
NGNG0325321
NGNGありません。ユニットは ShDocVw です。
まず、Jane のプロジェクトファイル (dpr) を開いてください。
1 つ目の方法は、'検索' → 'ファイル検索' でプロジェクト全体を検索して
uses 節で 'ShDocVw_TLB' を参照している箇所があれば 'ShDocVw' に直すと
いうことです。
2 つ目の方法は、'プロジェクト' → 'オプション' を開いて、
'ディレクトリ/条件' タブにある 'ユニットの別名' に
'すでにある文字列;ShDocVw_TLB=ShDocVw' を設定するということです。
セミコロン以降を入力してください。
これでうまく行かないようなら Jane スレで聞いた方がよろしいかと思います。
0326319
NGNGここまで親切にして頂きありがとうございます。
JaneDoe-Lovelyはソースを公開しており、
いじることから始められるので、IDEの勉強にもなるし、
プログラミングそれ自体の勉強にもなります。
一からだととても難しいですから。
0327319
NGNGまず、今現在のLovelyだと不具合がでるので
それのないVerを探して、それから無改造ビルドとなるので、
結果には少々時間が掛かります
失礼します。
0328デフォルトの名無しさん
NGNGOBpascalについても詳しいやつ。
0329319
NGNGここで聞いてなければ、参考書スレで聞こうか。
0330デフォルトの名無しさん
NGNG0331デフォルトの名無しさん
NGNGhttp://www.amazon.co.jp/exec/obidos/ASIN/4798004626/qid=1095937657/sr=1-1/ref=sr_1_10_1/250-0148492-1276277
Delphiクイックリファレンス A NUTSHELL HANDBOOK
http://www.amazon.co.jp/exec/obidos/ASIN/4873110408/qid=1095937795/sr=1-33/ref=sr_1_2_33/250-0148492-1276277
どちらも持ってるけどよい本だよ
0332デフォルトの名無しさん
NGNG0333デフォルトの名無しさん
NGNG0334デフォルトの名無しさん
NGNGこのごろDelphi本がめっきり減ってしまった。
0335デフォルトの名無しさん
NGNGオフィシャルコースウェア以外なくなってしまった!
0336デフォルトの名無しさん
NGNG1.売れてる
2.撤去
0337デフォルトの名無しさん
NGNG1. なら、補充が間に合わなくてもじょじょに減っていくはず。だいたい3週間周期
で行ってるから、それはないと思う。違う本屋なのに、なぜか一斉に返本された感じ
言語のところでは C# 関連も減っている。新刊本が出てない。VB.NET ASP.NET と
JAVA UML 関係が増えている感じ。
0338デフォルトの名無しさん
NGNG趣味関係が減って、お仕事関係が増えたんだな
0339デフォルトの名無しさん
NGNG趣味でやるとしても積極的にベクターにUPするぐらいの気合がないと
とても半端に手を出せないよなー。ポトぺタいじってもやりがいがないし。
今趣味でやるのならphpがお勧めかな。
ちょっとまえまではperlだったが。
0340デフォルトの名無しさん
NGNGdelphiではそういうのはないからな。
0341デフォルトの名無しさん
NGNG大手のメーカーさえもおびやかす性能を出す例もあった。
しかし、それも遠い昔。
どんな技術も洗練されれば、素人は表面的に扱うだけで
中身にはさわることができなくなる。
プロも自分に許された一工程に携わるだけになる。
そのうちプログラムなんてボイラー操作技術学ぶのと
同じような認識になると思う。いやもうなってるか。
0342デフォルトの名無しさん
NGNG0343デフォルトの名無しさん
NGNG0344デフォルトの名無しさん
NGNG>いやもうなってるか。
そうですね。特に、.NET = WinFX になってくると、オブジェクトレベルの API に
なって、プログラミングがレゴブロックをつかって何かつくるような感じがしてきます。
デバイスドライバや組み込み系などの低レベル以外では、こんな傾向が強まってきて
趣味でプログラミングするのは、すくなくても Windows 上では面白くなくなってきた
ように感じます。
0345デフォルトの名無しさん
NGNG>ポトぺタいじってもやりがいがないし。
御意。
0346デフォルトの名無しさん
NGNGHaskellでもSchemeでもやっときゃいいのに。
といってもそもそも理解できないだろうけど。
お前らの愚痴り方は意味がわからん。
0347デフォルトの名無しさん
NGNGどうなんだろうね。
洗練されるほど、面白くなるものだと思うのだけど・・・
ボイラー操作技術も結構勉強すべき事も面白い所もありそうだけどね
0348デフォルトの名無しさん
NGNG俺ならポトペタでできる部分はポトペタでやって
ポトペタでできない核の部分だけをコードで書くけどな。
ポトペタでできる部分って基本的にソフトの"ガワ"だけだし、
"ガワ"なんかいじってもやりがいないし。
もしかしてポトペタで完成できる程度のソフトしか作ってないとか?
0349デフォルトの名無しさん
NGNG必死に否定したがってるんだよ。
それくらい察してやれよ。
0350デフォルトの名無しさん
NGNG> なって、プログラミングがレゴブロックをつかって何かつくるような感じがしてきます。
それは単に、自分がやる気がないだけでは?
たとえばブラウザを作るときIEコンポーネントを作ったら確かに
レゴブロックのような感じになる。
でも本来ブラウザを作るといったらタグ解析して適切な位置に描画する
などというプログラミングをするってことだ。少なくともIEが
コンポーネントとして簡単に使えない時代はそうしていた。
多分自分で作ってもIEよりもすぐれたものは作れないだろう。
しかし今でもIEコンポーネントを使わずにブラウザを作ることはできる。
レゴブロックのように感じてしまうのは、自分で作ろうとせずに使ってばかりとか
すでに優れたものがあるから作るのをあきらめとか、今までにない物を作ろうとしないとか
そういう考えをしている自分のせいだと思うぞ。
0351デフォルトの名無しさん
NGNG一番いいものをつくったやつを表彰するといった形ならば
それなりにやる気もおきると思う。
しかし実用のためにつくるとなるとがんばっても既にあるものに
追いつくのがやっととなるとやる気は失せるな。
それでもやりたいやつはやればよいけど、
そういうやつはたくさんはいない→廃れる。
ってのはある意味自然な流れ。
歴史が証明している。
0352デフォルトの名無しさん
NGNGただし市場活性化のためにもちゃんと金払えよ。
0353デフォルトの名無しさん
NGNGlinuxでC言語でコンソールプログラミングだけしておくのが
ベストだな。
初心者がポトペタから入るという風潮が一番おかしい。
0354デフォルトの名無しさん
NGNG仕事にする気もないやつはもうprgやめたほうがいい。
0355あぼーん
NGNG0356デフォルトの名無しさん
NGNG0357デフォルトの名無しさん
NGNGGUI普及しはじめごろからプログラミングしてきた人だろうな。
そのころはGUIは苦労して作るものだった。
そのためプログラミング=良いGUIを作ることになってしまっているのだろう。
GUI部分以外に力を入れている人にとっては、
ポトペタはつまらなくて面倒な部分を便利に使えるツールと認識するが、
良いGUIを作ることだけがプログラミングの人は、自分が苦労して作っていた
GUIを簡単に作れてしまうようになったわけで自分の仕事を取られたって気がするのだろう。
その点コンソールプログラミングから入った人は、そもそもGUIなんてない状態で
プログラミングの面白さを知るわけで、ポトペタを嫌うことはないだろうな。
まあGUIなんていらないなんて極端な方向に行くのもちょっと困るが。
0358デフォルトの名無しさん
NGNGそれは廃れるというよりか、
使えない奴=すでにあるものにしか追いつけない奴 が
淘汰されるだけのことじゃないのか?
はっきり言ってすでにあるものにしか追いつけない奴はいらないよ。
実用アプリを作りたいのなら、すでにあるもの以上のものを作らなきゃ。
やる気があっても、すでにあるもの以下のものは実用にはならない。
0359デフォルトの名無しさん
NGNGそれはしょうがないっていうのはみんな否定できないところだろ?
0360デフォルトの名無しさん
NGNG人間が作り出した法則を学ぶだけ。
作り出した人間の恣意に左右される。(企業戦略も含む。)
本質的も糞もない。
それがいやなら関わらないこった。
0361デフォルトの名無しさん
NGNG0362デフォルトの名無しさん
NGNG>人間が作り出した法則を学ぶだけ。
20年以上プログラミングを趣味としてきたけど、これ、つよく思うようになってきた。
仕事は自然科学の研究なんだけど、それは神の法則について調べることなので、まだ
飽きないよ。人文科学の人は、人間や人間の行為とその結果に興味があるんだね。
プログラミングは人文科学じゃなく、数学に通じる論理の美しさがあるけど、OS 依存
なところは、知識としてもなにかむなしい感じがするね。MS のつくった六法全書を
勉強している感じはする。
0363デフォルトの名無しさん
NGNG君は実はプログラミングをしていないのだよ。
絵画にたとえれば君は絵筆の使い方を勉強しているだけ。
本当のプログラマは道具(API等)を使って自分の思うものを作るんだよ。
絵筆という道具を使って絵画を書くようにね。
君はまだまだ道具に使われているだけのようだね。
0364デフォルトの名無しさん
NGNG自分なりにぐぐってみたんですがどうしても見つける事ができませんでした。
0365デフォルトの名無しさん
NGNGそう思いたい気持ちはよーくわかる。
趣味でプログラミングやるひとの大半は
それを信じよう、信じようとして
信心深さからMS大明神にお布施を惜しまない。
統一協会もまっつぁおです。
0366デフォルトの名無しさん
NGNG0367デフォルトの名無しさん
NGNG0368デフォルトの名無しさん
NGNG特化して使う分にはそんなに乗せられてるって感じはしないな。
出費もあくまで経費だし。
ただ、なんでもできるよって言われてホイホイ乗せられてる
personalユーザーはちょっとね・・って感じもするけど
本人が楽しめてるのなら構わないだろう。
0369デフォルトの名無しさん
NGNG0370デフォルトの名無しさん
NGNG「OS 依存なところは・・・」だけを拡大解釈しているような気がするが。
0371デフォルトの名無しさん
NGNG>君は実はプログラミングをしていないのだよ。
なるほど。道具の周辺をうろうろしているつもりはないのですが、業務で使う以外
では、趣味とは言え、プログラミングではないのかも知れません。自分にはそのような
才能がないのかもしれせんね。Vector などで公開されているフリーウェアなどを
見てみると、半分以上は自分でも作れそうに思います。でも、ユーザの要望に応えて
メンテナンスを行う根気がありません。
趣味は別な方面に移した方がいいような気がしてきました。
アドバイス、ありがとうございます。
0372デフォルトの名無しさん
NGNGメーカーに乗せられてるだけだ。
趣味の場合は処理系の充実こそがプログラムだ。
将棋のAIをつくるようなのが趣味プログラムの王道。
0373デフォルトの名無しさん
NGNGうちの家電は某iEPGサイトに対応してないからゴニョゴニョっと自
作してってのが趣味グラムだ。
当然、いきなりWEBブラウザを書き始めるなんて事はしない。
できるだけ少ない手数で、できるだけ短い時間で、とにかく動くもの
を作る。
0374デフォルトの名無しさん
NGNG0375デフォルトの名無しさん
NGNG0376デフォルトの名無しさん
NGNG仕組み自体は簡単そうだな
0377デフォルトの名無しさん
NGNG0378デフォルトの名無しさん
NGNGまた、usesに何か追加する必要はありますか?
0379デフォルトの名無しさん
NGNGhttp://www2.big.or.jp/~osamu/Delphi/delphi-browse.cgi?index=000946
http://ww4.tiki.ne.jp/~yonyon/programing/delphi/tips/tips-api.htm#10
0380デフォルトの名無しさん
NGNGライブラリ使えば、自分で書かずに済む
http://onigiri.s3.xrea.com:8080/delphi/index.php?%5B%5BJCL%2FMiscellaNeous%5D%5D
0382デフォルトの名無しさん
NGNGようなプログラムを作る事は可能なのでしょうか?_?
0383デフォルトの名無しさん
NGNG可能だ。
0384382
NGNG0385デフォルトの名無しさん
NGNG↑ このAAは他でも見たな。そこでもコードくれって言ってた
0386デフォルトの名無しさん
NGNG熱心なんだろうな。
俺が教えられれば教えたいところだが、残念ながら知らんw
0387デフォルトの名無しさん
NGNG0388デフォルトの名無しさん
NGNG0389デフォルトの名無しさん
NGNG0390デフォルトの名無しさん
NGNGクライアント[01,文字列]→サーバ[01(条件分岐),文字列(ダイアログボックスに使う文字列)]
0391デフォルトの名無しさん
NGNG0392デフォルトの名無しさん
NGNG0393デフォルトの名無しさん
NGNG0394デフォルトの名無しさん
NGNG0395デフォルトの名無しさん
NGNGお前らなんてコンパイラに下手な文章でお願いして
つくってもらってるだけじゃん。
自分で実行ファイルつくった気になるんじゃないよ。
0396デフォルトの名無しさん
NGNGここに書き込んでもらってるだけじゃん。
自分で書き込んだ気になるんじゃないよ。
0397デフォルトの名無しさん
NGNG0398デフォルトの名無しさん
NGNG0399デフォルトの名無しさん
NGNG0400デフォルトの名無しさん
NGNG0401デフォルトの名無しさん
NGNGめんどくさいことは全てコンパイラにやらせる。
俺は神なのだ。
0402デフォルトの名無しさん
NGNG0403デフォルトの名無しさん
NGNG0404デフォルトの名無しさん
NGNGbaseclxがないとかでるんですが、
どうすればいいか教えてください。お願いしますm(_ _)m
ちなみに6 Personalです。
0405デフォルトの名無しさん
NGNG文字すら表示できない('A`)
0406デフォルトの名無しさん
NGNGフォームは出せた? >>405
0407デフォルトの名無しさん
NGNG次にIDEって何?フォームって何?
って質問がくるから注意w
0408デフォルトの名無しさん
NGNG0409デフォルトの名無しさん
NGNG0410デフォルトの名無しさん
NGNGでもやりたいんです!!僕はDelphiでブロック崩し
ぐらいなら作ったことあります。
今のところ、オープニングまで作ったのですが、どなたか僕に
Delphiの基礎からすべてを叩き込んでくれませんか??
お願いします。
0411デフォルトの名無しさん
NGNG「二階建のベランダ付きの家を建てたいんですが、どうすればよいですか?」
みたいな質問が多いような気がする…
うん、いゃ、分かりにくいが、なんか、言いたくなっただけだ、それだけだ…
0412デフォルトの名無しさん
NGNGまぁまぁ。作業する前に困難さがわかるようになったら、どんな業界でも一人前といえるのさ。
「Excel はアセンブラで書かれていると聞きました。TurboAssembler で Excel のような
アプリを作るにはどうしたらよいですか?」という質問があったそうな。
「ガンガレ」としかいえないだろ?
0413デフォルトの名無しさん
NGNG0414デフォルトの名無しさん
NGNG0415デフォルトの名無しさん
NGNG行頭でカーソル「←」を押すと前行の行末に移動するようにできませんか?
0416デフォルトの名無しさん
NGNGImage1.Canvas.Font.Name := 'Arial Black';
Image1.Canvas.TextOut( x, y, 'ABC' );
どのように指定したらいいのでしょうか?
0417デフォルトの名無しさん
NGNGフリーカーソルの世界へようこそ!
0418デフォルトの名無しさん
NGNG0419デフォルトの名無しさん
NGNGImage1.Canvas.Font.Name := 'Arial Black';
Image1.Canvas.Font.Charset := ANSI_CHARSET; //追加
Image1.Canvas.TextOut( 10, 10, 'ABC' );
0421デフォルトの名無しさん
NGNGBMP形式での保存は問題なかったので。
png := TGLDPNG.Create;
png.Width := bmp.Width;
png.Height := bmp.Height;
//png.Assign(bmp);
png.Image := bmp;
png.SaveToFile('test.png');
とやったのですが、書き出されたファイルは壊れたカラーテレビのようで
絵は微妙に縦長になるし、画面全体が縦のスプライトで埋め尽くされるし、
グレーになっているし。
Assign()でやっても同じでした。なにがいけないのでしょう?
0422421
NGNG0423デフォルトの名無しさん
NGNGpng.Width := bmp.Width;
png.Height := bmp.Height;
が冗長な気がする。これとっぱらってAssignしてもだめかね。
それと、bmpかTBitmapなら、bmpとpngのassignの間に、
中村センセーのTNkDIBでのassignを一枚噛ませてみるのも良い手。
TNkDIBでの画像が正しく出るかで、問題の切り分けができるし、
TNkDIBはTBitmapよりあきらかに速いから元からTBitmapを使っていた
部分をTNkDIBに切り替えるという手もある。
0424421
NGNGありがとうございます。
TNkDIBに移行しようとしたらまた別のところでつまづいています。
CopyRect() でパーツを取り出そうとすると TBitmapでできたものが
できなくなってしまいました。
ドキュメントを見る限りでは Canvasによる描画ができるようなのですが。
bmp1 := TNkDIB.Create;
bmp1.LoadFromFile('test.bmp');
bmp2 := TNkDIB.Create;
bmp2.Width := 400;
bmp2.Height := 400;
Canvas1 := TNkDIBCanvas.Create(bmp1);
canvas2 := TNkDIBCanvas.Create(bmp2);
canvas2.CopyRect(Rect(0,0,399,399), Canvas1, Rect(0,0,399,399));
canvas1.Free;
canvas2.Free;
bmp2.SaveToFile('test3.bmp');
bmp1.Free;
bmp2.Free;
0425421
NGNGTGLDPNGですが、bmp.Canvas.CopyRect() を使って部分複製した
画像を保存しようとすると崩れるようです。
0426423
NGNGおまいさん、TNkDIBはcreateした直後は8bpsだということを忘れとるよ。
以下な風に書き換えてみそ
bmp1 := TNkDIB.Create;
bmp1.LoadFromFile('x.bmp');
bmp2 := TNkDIB.Create;
bmp2.PixelFormat:=nkPf24Bit;
bmp2.Width:=400;
bmp2.Height:=400;
Canvas1 := TNkDIBCanvas.Create(bmp1);
canvas2 := TNkDIBCanvas.Create(bmp2);
canvas2.CopyMode:=cmNotSrcCopy;//好きなコピーモード
canvas2.CopyRect(Rect(0,0,399,399), Canvas1, Rect(0,0,399,399));
canvas1.Free;
canvas2.Free;
bmp2.SaveToFile('test.bmp');
bmp1.Free;
bmp2.Free;
0427421
NGNG>bmp2.PixelFormat:=nkPf24Bit;
うわぁ! なるほど!! ありがとうございます。
TBitmap関係をいろいろ漁っていてパレット関係が怪しいとにらみ
bmp2.PixcelFormat := bmp1.PixcelFormat;
とやってムリヤリ自力解決したのですが、そっちの方法のほうが
断然スマートですね(あたりまえだ。
というわけで解決しました!!
0428426
NGNGいや、どちらかというと、それが正解だよそれが。
おいらは、8bpsじゃないってことであーかいたけだけだ。
とにかく、画像処理は深みに入っていくと楽しすぎるから頑張ってな−
あと、そのうち、パレットとかハンドルについて悩むときも来そうなので予めいっとくが、
TNkDIBから直接ハンドル・ポインタを取り出した時の不具合がどうしても
解消できそうにないときは、TMemoryStream変数にloadtostreamさせて、
直接画像データをみに行くという方法もあるから覚えておくと良いよ。
幸い、DIBのファイルフォーマットは、探せばそこらにやたらあるので。
0429421
NGNGありがとうございます。
おそらくこれからアルファブレンド、スクリーン合成、乗算、覆い焼き
などでハマっていくことになると思います。
その時に参考にさせていただきます。
0430デフォルトの名無しさん
NGNG0431デフォルトの名無しさん
NGNG0432デフォルトの名無しさん
NGNGはじめて聞いた。
0433デフォルトの名無しさん
NGNG0434デフォルトの名無しさん
NGNG単にモーダルダイアログが何なのか解かってないんでしょ。
0435デフォルトの名無しさん
NGNG一次元だと出来るのですが、どのようにすればいいでしょうか?
procedure TForm1.Button1Click(Sender: TObject);
var
hoge : array[0..10] of array[0..10] of Integer;
begin
hoge[1][2] := 20;
hoe( hoge );
end;
/// -----------------------------------------
procedure TForm1.hoe(var hoge : array of array of Integer );
begin
Showmessage(IntToStr(hoge[1][2]));
end;
0436デフォルトの名無しさん
NGNG0438デフォルトの名無しさん
NGNG0439デフォルトの名無しさん
NGNGとりあえずTB2K+TBXを使って回避してる。(つかこっちの方が高機能だったり
0440デフォルトの名無しさん
NGNGIEみたいな動作のCoolBarがベストなんですが・・・
0441デフォルトの名無しさん
NGNG0442デフォルトの名無しさん
NGNG0443デフォルトの名無しさん
NGNG自分で作れ。
そして俺にくれ
0444デフォルトの名無しさん
NGNG0445デフォルトの名無しさん
NGNGサイトみながらでしかも
内容はテキストエディタってメモ帳なんかにも及ばない
くだらないものなんすけど、それでも十分感動しました。
0446デフォルトの名無しさん
NGNGおめでとう。どういう環境でどのサイトを参考にしたのかきいていいかい?
0447デフォルトの名無しさん
NGNGありがとうございます。
環境なんて・・・フリーのDelphiダウンロードしただけです。
ttp://www.geocities.jp/happy4clucky/
のサイトをたよりにがんばってつくりました。
簡単なものだけどプログラミングやってみてよかったと思いました。
0448デフォルトの名無しさん
NGNG私も最初は本と解説サイトを手本になんとなくDelphiに慣れていったよ。
ある程度使えるようになってきたら次の本をお勧めしておくよ。
ttp://www.amazon.co.jp/exec/obidos/ASIN/4844312731/
0449デフォルトの名無しさん
NGNGていうか、インストールされてません。どこで、インストールできますか?
0450デフォルトの名無しさん
NGNG0451449
NGNG0452デフォルトの名無しさん
NGNG0453デフォルトの名無しさん
NGNG0454デフォルトの名無しさん
NGNGIdHTTP.Request.ExtraHeaders.Values['Range'] := 'bytes=1000-';
と書いてGetしても、必ず全体を取得してしまいます。
何か指定の方法がまずいのでしょうか?
0455デフォルトの名無しさん
NGNG0456デフォルトの名無しさん
NGNGおめでとう。次はここ見てブラウザでも作ってみるといいかも。
ttp://delphi.sakura.vg/index2.html
0457デフォルトの名無しさん
NGNGいきなりブラウザですか・・・
ちょっとハードル高いかな。
ちょっとしたミニゲームみたいなのを作ってみようと思います。
0458デフォルトの名無しさん
NGNGそのサイト読んでから文句言うように。
テキストエディタより簡単だと思うが…。
0459デフォルトの名無しさん
NGNG0460デフォルトの名無しさん
NGNGちょっとがんばってみます。
0461デフォルトの名無しさん
NGNG0462デフォルトの名無しさん
NGNG前にあったHTMLファイルが消えてた。
誰か保存している人いないかな…
0463デフォルトの名無しさん
NGNGそうだね。GUI がどうの、このクラスはどうの、といったあまりプログラミングの
本質ではないところをなくして、論理重視に変更されたんだね。これは管理人の
個性でしょう。依然としていいサイトであるとは思うけど、コンテンツの量が減った
のは残念だね。
0464デフォルトの名無しさん
NGNG0465デフォルトの名無しさん
NGNG計算中に音楽でも添付して流してみたいと思いました。
そういうことはできるのでしょうか?
できたとしてもMedia playerが立ち上がったりするんでしょうか?
0466デフォルトの名無しさん
NGNG0467デフォルトの名無しさん
NGNG0468465
NGNGありがとうございました。
0469デフォルトの名無しさん
NGNG16進法にすると処理速度が上がったりとか、何か得でもあるのでしょうか?
0470デフォルトの名無しさん
NGNG同じだよ。
ビット演算子(andやor)は、16進数表記の方がわかりやすい。
アドレスも16進数。
0471デフォルトの名無しさん
NGNG別に16進法にしたって動作速度速いこたないが、プログラミングを続けていると嫌でも16進法で表記した法が
圧倒的にコーディングが楽な場合が出てくる。
たとえば、2進数との親和性が高いので、
アーカイバ作るときにビット演算の式を作るのが楽だとか
10進法では1周360度の場合、361度や-57度を正規化するのにdivやら負の場合分けをしなくちゃいけないのに対し、
一周を2のn乗、たとえば16乗の65536($10000)度系とかにすれば、
16進法だと87308や-53812がnに角度として入っていても、正規化は n and $FFFFだけですむ。
あるいは、TColorやHTMLの様に、一般的には色は16進数で表示されるので
Delphi上でも色を扱うときは16進数が楽とか。
例えば10進数で 16711680 とか書かれても何色だかわからんだろ。
16進数だと$FF0000(C言語なら0xFF0000)となって、
TColorなら青、HTMLなら赤のことを指し示しているとすぐわかる。
0473デフォルトの名無しさん
NGNGImage1.Canvas.Draw(i*32 + 17, j*24, Load_Bmap)
に何を追加すればいいのでしょうか…?
0474デフォルトの名無しさん
NGNG0475ホントの初心者
NGNGvar
UArrayNo: array[0..99] of Integer;
procedure TForm1.sbTest1Click(Sender: TObject);
var
i: Integer;
F:File of Integer;
begin
AssignFile(F,ExtractFilePath(Application.ExeName)+'FileNo.dat');
ReWrite(F);
for i := 0 to 99 do
begin
UArrayNo[i] := Random(100); Write(F,UArrayNo[i]);
end;
CloseFile(F);
end;
procedure TForm1.sbTest2Click(Sender: TObject);
var
i: Integer;
F:File of Integer;
begin
AssignFile(F, ExtractFilePath(Application.ExeName)+'FileNo.dat');
Reset(F);
i := 0;
while not Eof do
begin
Read(F,UArrayNo[i]); Inc(i);
end;
CloseFile(F);
end;
0476デフォルトの名無しさん
NGNG>F:File of Integer;
これがまずくないかい。
任意のファイル型は、TYPEで宣言するような。
あるいは、 F: TextFile; にしておいて、IntToStrやStrToIntでやり取りしたらどうだろう。
はずしてたらスマン。
0477デフォルトの名無しさん
NGNG0479デフォルトの名無しさん
NGNG透過は描かれる Load_Bmap のほうの特性
0480デフォルトの名無しさん
NGNG0481デフォルトの名無しさん
NGNGヘルプ嫁
0482デフォルトの名無しさん
NGNG0483デフォルトの名無しさん
NGNG0484デフォルトの名無しさん
NGNG0485デフォルトの名無しさん
NGNG0486ぼぼしごろ
NGNGEof は,現在のファイルポインタがファイルの終わりであるかどうかをテストします。F はファイル変数です。
F を省略した場合,F は標準ファイル変数 Input になります。
0488デフォルトの名無しさん
NGNGUArrayNo: array[0..99] of Integer;
procedure TForm1.Button1Click(Sender: TObject);
var
fs: TFileStream;
i: integer;
begin
fs := TFileStream.Create(ExtractFilePath(Application.ExeName)+'FileNo.dat',fmCreate or fmShareExclusive);
try
for i := 0 to 99 do begin
UArrayNo[i] := Random(100);
fs.Write(UArrayNo[i],SizeOf(Integer));
end;
finally
fs.Free;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
fs: TFileStream;
i: integer;
begin
fs := TFileStream.Create(ExtractFilePath(Application.ExeName)+'FileNo.dat',fmOpenRead or fmShareExclusive);
try
for i := 0 to 99 do begin
fs.Read(UArrayNo[i],SizeOf(Integer));
Memo2.Lines.Add(IntToStr(UArrayNo[i]));
end;
finally
fs.Free;
end;
end;
0489デフォルトの名無しさん
NGNGデバッグ用
0490デフォルトの名無しさん
NGNG教えてエロイ人
0492デフォルトの名無しさん
NGNG0493デフォルトの名無しさん
NGNG1. OnMouseDownで現在のX,Y座標を取得 + スクロール中フラグを立てる。
2. OnMouseMoveでスクロール中フラグが立っていたなら、1のX,Y座標と
現在のX,Y座標の差を取り、スクロールバーのPositionにセット。
3. OnMouseUpでスクロール中フラグを下ろす。
0494デフォルトの名無しさん
NGNGいえ、ちょっとゲームを作ってまして…。
画面のスクロールでそれができたら楽だなぁ、と。
0495490
NGNGprocedure TForm1.ScrollBox1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X1, Y1: Integer);
begin
MouseDown := True;
end;
procedure TForm1.ScrollBox1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X1, Y1: Integer);
begin
MouseDown := False;
end;
ではいけないんですか?
一応グローバル変数のところには
MouseDown : Boolean;
と書いてあるんですが。
0496デフォルトの名無しさん
NGNGX,Y も記録 MouseMove でずれ取得 ずれ分スクロール
0497490
NGNGその時点でエラーが出たんです。
言い忘れてましたね。すいませんです。
問題はどうしてこの時点でエラーが出るんだろということです。
その後、X1-X2,Y1-Y2をそれぞれHorzScrollBar.PositionとVertScrollBar.Positionに足せばいいんですよね?
0498デフォルトの名無しさん
NGNG0499490
NGNGMouseDown := False;
それぞれに「実パラメータが足りません」との表示が。
0500デフォルトの名無しさん
NGNG0501490
NGNGありがとうございます。
0502デフォルトの名無しさん
NGNG0503デフォルトの名無しさん
NGNG0504デフォルトの名無しさん
NGNGこっちがほんとの初心者向けかな。
0505デフォルトの名無しさん
NGNG実際向こうで俺レベルが答えられる質問が減っているのは確かだけど。
0506デフォルトの名無しさん
NGNG0507デフォルトの名無しさん
NGNGFromF, ToF: file;
NumRead, NumWritten: Integer;
Buf: array[1..2048] of Char;
begin
if OpenDialog1.Execute then
begin
AssignFile(FromF, OpenDialog1.FileName);
Reset(FromF, 1); //レコードサイズ = 1
if SaveDialog1.Execute then
begin
AssignFile(ToF, SaveDialog1.FileName);
Rewrite(ToF, 1); //レコードサイズ = 1
DMemo.Lines.Add(IntToStr(FileSize(FromF)) + ' bytes...');
repeat
BlockRead(FromF, Buf, SizeOf(Buf), NumRead);
BlockWrite(ToF, Buf, NumRead, NumWritten);
until (NumRead = 0) or (NumWritten <> NumRead);
CloseFile(FromF);
CloseFile(ToF);
end;
end;
end;
-------------------------------------------------------------------------
これはヘルプにあるサンプルですが、2048バイトずつコピーすればそれで割り切れないバイト数が残ることもあるはず
なのに、なぜこれでいいのでしょ? あとできたらこれもTFileStreamを利用した例が知りたいです。
0508507これでいいのかな?
NGNGReadF,WriteF: TFileStream;
NumRead: Integer;
Buf: array[1..2048] of Char;
begin
if OpenDialog1.Execute then
begin
ReadF := TFileStream.Create(OpenDialog1.FileName, fmOpenRead);
if SaveDialog1.Execute then
begin
WriteF := TFileStream.Create(SaveDialog1.FileName, fmCreate);
repeat
NumRead:= ReadF.Read(Buf, SizeOf(Buf));
WriteF.Write(Buf, NumRead);
until NumRead <> SizeOf(Buf);
end;
end;
ReadF.Free;
WriteF.Free;
end;
0509デフォルトの名無しさん
NGNGなぜ NumRead を使っているのか考えること。BlockRead のヘルプを読むこと
0510なるほど507
NGNGどんな仕組みになっているか BlockRead のソースをチェックしたのですが
アッセンブリーコードでした(*_*)。
0511デフォルトの名無しさん
NGNG何か疑問?
0512デフォルトの名無しさん
NGNG君には理解不能
0513デフォルトの名無しさん
NGNGこういう場合読み込むサイズをどれくらいにするのが適当なんだろ?
1024,2048,4096,8192 で確認したけどスピードは変わらない。
0514デフォルトの名無しさん
NGNG0515デフォルトの名無しさん
NGNGぐぐっても、制御系のサイトがあまりみつからなかった・・・・・・・・・。
0516デフォルトの名無しさん
NGNG0517デフォルトの名無しさん
NGNG禿同。ソースを将来とも大事にしたいならCでやっとけばいい。
とりあえずはやくつくりたいならDelphiでもいいけど。
0518デフォルトの名無しさん
NGNG今度、社内と関連会社で使うテキスト操作と小規模のデーターの仕事関係の
プログラミングを頼まれたのですが、XPの現在でもDelphi3は使えますでしょうか?
Delphi6の無料版を考えていましたが、よそにやることも考えて(そこから先、どうなるか
分からないため)Delphi3で組もうと思います。
データー管理は300人程度の小規模のものです。
Delphi3ってXPの現在、使えますか?
0519デフォルトの名無しさん
NGNGXPで特に気をつけるようなことありましたらアドバイスお願いします
0520デフォルトの名無しさん
NGNGDel3とは大違い。仕事に使うんならライセンスをクリアするために、ひとつくらい最新版を
購入しよう。XPスタイルへの対応だけが問題。
0521デフォルトの名無しさん
NGNG0522デフォルトの名無しさん
NGNGでも、マイナーで入門書とサイトが少ないのが初心者にはキツイ。
0523デフォルトの名無しさん
NGNGお前、面白いよ
0524デフォルトの名無しさん
NGNG0525デフォルトの名無しさん
NGNG0526デフォルトの名無しさん
NGNG入門書は確かに少ないけど、その分厳選されているし、大きな本屋を漁ってみればさほど問題ない。
サイトは少ないように見えてけっこうあるよ。Delスレの過去ログとか見るとあちこちにちりばめられている。
WEB上の情報は必要十分にある。
英語が読めるとなお情報を入手しやすいんだけどね。
0527デフォルトの名無しさん
NGNGでも最近マカーなので……。
Mac OS X対応のKylixが出てくんないですかね。
0528デフォルトの名無しさん
NGNG厳選してないよ、ただたんに少ないだけ
0529デフォルトの名無しさん
NGNGムックまであったし。いま入手できるのは、売れ残ったやつだけ。新刊書がないから。
0530デフォルトの名無しさん
NGNG0531デフォルトの名無しさん
NGNG日某はそこらへんわかってるのかなあ。
0532デフォルトの名無しさん
NGNGそう。需要がないから供給もない。入門者が減ってるんだよ。
0533デフォルトの名無しさん
NGNG0534デフォルトの名無しさん
NGNG0535デフォルトの名無しさん
NGNG0536デフォルトの名無しさん
NGNG0537デフォルトの名無しさん
NGNG手取足取り入門書は皆無。プアーなのは D6per をDLして使い始める。本がなくても
入門サイトが結構あるから大丈夫かもね。
0538デフォルトの名無しさん
NGNG評判いい入門用の本の多くが絶版になってるんだよ。
中村御大が褒めている本とか。
0539デフォルトの名無しさん
NGNG0540デフォルトの名無しさん
NGNGSeventh Delphiの旧入門コンテンツが復活してますよ。
もういまとなっちゃ、ここ以外、総合的にDelphiを扱った入門サイトが
皆無だからよかったよかった。
0541デフォルトの名無しさん
NGNG0542デフォルトの名無しさん
NGNGCやJavaなら簡単に出来る事を、Delphiでどうやったらいいかを調べるだけで
時間がどんどん過ぎていく…。
0543デフォルトの名無しさん
NGNG0544デフォルトの名無しさん
NGNGおぉ、フィードバックで旧コンテンツの復活望んだ甲斐があった。
0545デフォルトの名無しさん
NGNGよく考えて堅牢なコードを書くという習慣が身につきます。
あとで「ああ良かった」ときっと思えます。
0546デフォルトの名無しさん
NGNG0547デフォルトの名無しさん
NGNG0548デフォルトの名無しさん
NGNGどういう部分でそう思う?
確かにスコープのとり方がちょっとへんだが、1クラス=1ユニットで書けば問題ない。
0549デフォルトの名無しさん
NGNG変じゃねーよ
.NETのinternalを先取りした機能だ
0550デフォルトの名無しさん
NGNG誰も出さんから売れるぞ。
0551デフォルトの名無しさん
NGNG何から何まで時代遅れ。
言語的にC#に対するアドバンテージは皆無。
意味もなく某が執着しなければ手続き型で終わってたはずの言語だな。
0552デフォルトの名無しさん
NGNG原因と結果が逆。売れないから誰も出さないの。
0553デフォルトの名無しさん
NGNG0554デフォルトの名無しさん
NGNG0555デフォルトの名無しさん
NGNG0556デフォルトの名無しさん
NGNGデザインパターンのページは復活してないね
あれ、よかったのになぁ〜
archive.org使用すれば見れるが
今から見る人は使用しないだろうし・・・
0557デフォルトの名無しさん
NGNG0558デフォルトの名無しさん
NGNGButton.Parent := ScrollBox;
Button.Caption := 'NewButton';
...
0559デフォルトの名無しさん
NGNGThanks.
0560デフォルトの名無しさん
NGNGどうやってやりますか?
0561デフォルトの名無しさん
NGNG0562デフォルトの名無しさん
NGNG0563デフォルトの名無しさん
NGNG動的配列使え。下限は0固定。
var arr: array of Integer;
begin
setlength(arr, 100);
// arr[0] .. arr[99]にアクセス可
>>562
英語版トライアルのみ
いずれ日本語版Personalが出るらしい
0564デフォルトの名無しさん
NGNGの様に二つの配列を使うことは出来ないのですか?
0565デフォルトの名無しさん
NGNG0566デフォルトの名無しさん
NGNG出来ない。
arr: array of array of integer;
arr[y][x] とやるしかない
0567デフォルトの名無しさん
NGNGarr: array[0..M, 0..N] of Integer;
といった書式で書いてコンパイルしてみれ。
0568デフォルトの名無しさん
NGNG0569デフォルトの名無しさん
NGNG例えば arr[1][0] の先頭位置からのオフセットは 2 番目の添え字の数で
決まるから。
array of array of Integer で SetLength したら array of Integer の
アドレスが上位の array のメモリに格納されるだけ。
0570デフォルトの名無しさん
NGNG0571デフォルトの名無しさん
NGNGありがとうございました。
0572デフォルトの名無しさん
NGNGarr[x * MaxY + y]
とかやっとけば二次元のデータも格納できるけどね。
ややこしければラッパーかませばいいし。
0573デフォルトの名無しさん
NGNG(X,Yがそれぞれ2ケタとした場合)
arr[X*100 + Y]
X=25.Y=34ならば
arr[2534]
とか。
0574デフォルトの名無しさん
NGNG0575デフォルトの名無しさん
NGNG0576デフォルトの名無しさん
NGNG0577デフォルトの名無しさん
NGNG宣言によって変数 A[0, 0], A[0, 1], A[1, 0], A[1, 1] の順に 16 バイトの
連続メモリが割り当てられる。ただそれだけ。
A: array of array of Integer; の場合
宣言によって変数 A に 4 バイトのメモリが割り当てられる。
SetLength(A, 2);
参照カウンタ, 長さ, A[0], A[1] の順に 16 バイトの連続メモリが割り当てられる。
変数 A に A[0] のアドレスを指すポインタ (4 バイト) がセットされる。
SetLength(A[0], 2);
参照カウンタ, 長さ, A[0, 0], A[0, 1] の順に 16 バイトの連続メモリが割り当てられる。
変数 A が指すメモリ (A[0]) に A[0, 0] のアドレスを指すポインタがセットされる。
0578デフォルトの名無しさん
NGNG0579デフォルトの名無しさん
NGNGArr[1] := 1;
Arr[2] := 1;
Arr[3] := 1;
…
というような配列を、まとめて同じ数を代入したいんです。
0580デフォルトの名無しさん
NGNGなるだろうな。
procedure InitArray(var iary: array of Integer; inival: Integer);
var I : Integer;
begin
for I := 0 to High(iary) do iAry[I] := inival;
end;
0581デフォルトの名無しさん
NGNG0582デフォルトの名無しさん
NGNG0583デフォルトの名無しさん
NGNG0584デフォルトの名無しさん
NGNGFillCharは値がバイトの範囲しかないぞ。0で初期化とかなら使えるが。
0585適当レス
NGNG0586デフォルトの名無しさん
NGNG0587デフォルトの名無しさん
NGNGFillChar(a[1], SizeOf(a), 1);
かな?
0588587
NGNG0589デフォルトの名無しさん
NGNG0590デフォルトの名無しさん
NGNG0591デフォルトの名無しさん
NGNGLengthとLeftStrを組み合わせれ。
0592デフォルトの名無しさん
NGNG0593デフォルトの名無しさん
NGNG0594ななしへたぐらま ◆XcB18Bks.Y
NGNG遅いレスですが>590は『文字数』ということですので
対象となる文字列に漢字などの2バイト文字が含まれている場合は
それを考慮しないと正しく動作しません.
(文字列がWideStringである場合は問題ありません.)
やり方はWideStringに変換して戻す方法と変換しない方法がありますが前者の方が単純です.
{★文字列wsの末尾Count文字を削除した文字列を返す関数}
function TrimTrailChars(const ws: WideString; Count: integer): WideString;
begin
Result := copy(ws, 1, Length(ws) - Count);
end;
string型(AnsiString型)の値とWideString型の値との変換は両方向とも自動的に行われますので
wsにAnsiString型の値を指定したり戻り値をAnsiString型(TCaption型を含む)の変数やプロパティに代入しても構いません.
例)Edit_Dest.Text := TrimTrailChars(Edit_Src.Text, SpinEdit_Count.Value)
0595デフォルトの名無しさん
NGNG0596デフォルトの名無しさん
NGNGが、VCLのSaveToFileはファイル上書きしかなかったり、
ディスクが一杯だったら、とか、色々問題ありそうです。
ログ保存機能コンポーネントなんてあるんでしょうか?
0597デフォルトの名無しさん
NGNGディスクがいっぱいだったらどんなコンポでも書き込めないだろ・・・
ふつうは TFileStream とか使うんじゃないの
0598デフォルトの名無しさん
NGNG0599デフォルトの名無しさん
NGNG0600デフォルトの名無しさん
NGNGせっかくDelphiを使ってるんだからDBで保存することを考えたら?
後で様々な切り口で分析できるし便利だよ
0601デフォルトの名無しさん
05/01/17 01:49:26どうやって作るのでしょうか?
0602デフォルトの名無しさん
05/01/17 18:37:12多分相当難しいと思われ。
0603デフォルトの名無しさん
05/01/26 05:38:16で開いたデータをスクロールバーssBothのMemo1で表示すると、縦スクロールは普通にできるのに横スクロールの挙動がおかしいです
バーをドラッグしてもピョンと端に戻ってしまいます、どうしたらいいのでしょうか
0604デフォルトの名無しさん
05/01/26 11:56:03Memo1.Lines.LoadFromFile(FileOpenDialog.FileName)ではどう?
あと、TFileStream型の変数を別に用意して、初期化と読み込みを
別にした場合は?
いろいろな方法で試してみれば、どこに問題があるか突き止め
られるようになるぞ。
0605デフォルトの名無しさん
05/01/26 19:20:06最悪なコードだな。インスタンス一つ行方不明
0606デフォルトの名無しさん
05/01/26 20:50:42たしかに最悪というか、邪悪だな。
すぐにアプリケーションが終了することが前提なコードだよ。
0607デフォルトの名無しさん
05/01/26 22:09:440608デフォルトの名無しさん
05/01/26 22:16:440609デフォルトの名無しさん
05/01/27 04:45:50うそ、マジで?
test.method(new kaba)とかはJavaでは普通に使われてるから
GC任せにするのが当たり前だと思ってたんだが・・・・・・
0610デフォルトの名無しさん
05/01/27 05:51:000611デフォルトの名無しさん
05/01/28 05:23:54abcde ←1行目フォント指定しない
abcde ←2行目太字
で文字位置がだんだんずれていくんですがどうすればいいのでしょうか
0612デフォルトの名無しさん
05/01/28 05:24:580613デフォルトの名無しさん
05/01/28 10:21:520614デフォルトの名無しさん
05/02/01 21:30:14結局、普通書体でも太字でも同じ幅にしたいってことだろ?
LogFont.lfWidth の値を設定して、CreateFontIndirect /
SelectObject を使って TRichEdit のフォントを指定できないかな?
0615デフォルトの名無しさん
05/02/01 23:41:19結局ウインドウコントロールのEditは出来ないと言うことに落ち着いて、
GDI駆使して作ります。フリーなコンポも教えてもらい部分部分盗みながら
0616デフォルトの名無しさん
05/02/05 02:39:16ToolBtn.Parent := ToolBar1;
これでツールボタン作成するとめちゃくちゃ遅いです。
ツールバーをカスタマイズ出来るようにしたいのですが、起動に時間がかかります。
どうにかなりませんか?
0617デフォルトの名無しさん
05/02/05 02:39:500618デフォルトの名無しさん
05/02/05 03:16:21自動的にポインタを割り当てるの?
with TStringList.Create do
try
SaveToFile('C:\Test.txt');
finally
Free;
end;
0619デフォルトの名無しさん
05/02/05 03:23:120620デフォルトの名無しさん
05/02/05 04:00:37考えた奴には敬服するし、感心したけど、
初心者には、すすめられないコードかもね。
0621デフォルトの名無しさん
05/02/05 04:06:550622デフォルトの名無しさん
05/02/05 11:39:52これの言語の名前ってDelphiでいいんですよね?
いや、ホント意味不明な頭悪い質問で申し訳ありません
0623デフォルトの名無しさん
05/02/05 12:15:42聞いてみたらどうでしょうか。そのほうが確実ですよ。
0624デフォルトの名無しさん
05/02/05 12:31:220625デフォルトの名無しさん
05/02/05 12:49:34Object Pascalと呼ぶのは間違いだった
とかいう必要、あったのかね
0626デフォルトの名無しさん
05/02/05 13:01:55最近は統合開発環境自体をDelphiと呼んで訳分からなくなってます。
0627デフォルトの名無しさん
05/02/05 13:06:420628デフォルトの名無しさん
05/02/05 17:38:460629デフォルトの名無しさん
05/02/07 03:25:230630デフォルトの名無しさん
05/02/08 00:12:56開発環境をDelphi Studio
開発言語をDelphi言語にしたはずなのに、
結局、どっちも広まらなかった。
中途半端にVisual Studioに対抗したのがいけないかったのかな
0631デフォルトの名無しさん
05/02/08 04:17:14積極的に学校の先生に聞いたほうがいいぞ
大抵の先生は、まってましたと言わんばかりにニヤニヤしながら答えてくれる
さらには、好感度もアップ。成績もアップだ。
もし、ムスッとしている先生であっても、内心キターとか思ってるはずだ
0632デフォルトの名無しさん
05/02/08 10:31:420633デフォルトの名無しさん
05/02/08 23:46:530634デフォルトの名無しさん
05/02/09 08:10:440635デフォルトの名無しさん
05/02/09 10:25:31だめですねぇー、最近Delphiについてよいことは何も無い。
0636デフォルトの名無しさん
05/02/09 11:08:34新バージョンの評判は散々だし、.NET対応はまともにできてないし、・・・だめかも
0637デフォルトの名無しさん
05/02/09 11:24:27日本は、少ないパイを MS が丸ごとかっさらっていくから...
0638デフォルトの名無しさん
05/02/09 11:33:51が原因だと思うけど
0639デフォルトの名無しさん
05/02/10 08:10:090640デフォルトの名無しさん
05/02/10 10:05:090641デフォルトの名無しさん
05/02/10 10:14:200642デフォルトの名無しさん
05/02/10 18:06:410643640
05/02/10 20:44:260644デフォルトの名無しさん
05/02/10 21:26:300645デフォルトの名無しさん
05/02/10 23:56:020646デフォルトの名無しさん
05/02/14 10:19:26自分の意見より他人の意見、他人の目が、大事な人が多いわけです。よね?
0647デフォルトの名無しさん
05/02/14 10:25:42ソースプリーズ。
>日本だけ減少の理由はブランド志向が高いからです。
最近急にブランド志向が高くなったわけでもあるまい?
>自分の意見より他人の意見、他人の目が、大事な人が多いわけです。
最近、急に多くなったわけでもあるまい?
何の根拠もない脳内妄想は書かないように。
0648デフォルトの名無しさん
05/02/14 12:40:13自分の常識は世界の常識と妄想しておりました。
Delphiはアメリカのオークションでも少なかったです。
アメリカのヤフーオークションでは一つも無かったです。
それくらいしかソースがありませんです。
申し訳ありませんでした。<(_ _)>
追伸 私はDelphi勉強中です。
なんで人気が無いのか不思議なんです。 以上です。
0649デフォルトの名無しさん
05/02/14 13:27:48> なんで人気が無いのか不思議なんです。
Win32 ではすばらしいツールだと思いますけど、なぜ、いまよりユーザが多くない
のか不思議ですよね。Pascal に対する偏見や、もちろん、好き嫌いもあります。
最近は、.NET 対応がうまくいってないのが原因かもしれません。
見方はいろいろありますけど、プラットフォームとしての Win32 がもう少しで
終わる、という見方が多くなりつつあるのが影響してるのかもしれません。
0650デフォルトの名無しさん
05/02/14 14:15:43ありがとうございます。わかりました。
FileListBox1.Directory := 'log';
で出来ました。お騒がせしました。
0651デフォルトの名無しさん
05/02/14 14:19:050652デフォルトの名無しさん
05/02/15 08:27:34いろいろな言語を習得しといて孫はないよ
0653デフォルトの名無しさん
05/02/15 08:34:04激しく同意
今、これさえやっとけば他はいらないという言語がないね。
0654デフォルトの名無しさん
05/02/15 10:24:15未だ何処までが習得なのか分からん
0655デフォルトの名無しさん
05/02/15 14:19:00いろいろ言語にかじった事はかじったのですが、
どれも、入門を終えたレベルでありまして、
delphiだと何か作れそうで小物から作りはじめてます。
なんで早くに気づかなかったのかと後悔するばかりで・・・。うう。
0656デフォルトの名無しさん
05/02/15 14:29:360657デフォルトの名無しさん
05/02/15 14:50:450658デフォルトの名無しさん
05/02/15 16:06:510659デフォルトの名無しさん
05/02/15 16:16:110660デフォルトの名無しさん
05/02/15 16:17:380661デフォルトの名無しさん
05/02/15 16:35:560662デフォルトの名無しさん
05/02/15 16:40:260663デフォルトの名無しさん
05/02/15 16:48:370664デフォルトの名無しさん
05/02/15 17:00:54どうもありがとうございます。
おかげで先に進めそうです。
0665デフォルトの名無しさん
05/02/15 18:54:490666デフォルトの名無しさん
05/02/15 20:30:32仕事だけど機械制御は結構楽しかった。
0667デフォルトの名無しさん
05/02/17 02:47:30C++は面倒くさくなってDelphiに代わり画像+動画のビューワー(エロ)
DirectShowのおべんきょーはビデオキャプとDVDプレイヤーの作成(エロ)
目的意識でのエロの力は凄い
でも途中で抜いちゃうとオネンネしちゃうんだよね
おまいらもそうだっただろ?
0668デフォルトの名無しさん
05/02/17 02:50:010669デフォルトの名無しさん
05/02/17 02:56:050670デフォルトの名無しさん
05/02/17 17:45:530671デフォルトの名無しさん
05/02/17 19:48:57ちゃんと過程が目に見えるやつ。
0672デフォルトの名無しさん
05/02/17 20:21:000673デフォルトの名無しさん
05/02/17 20:29:04おう。
0674デフォルトの名無しさん
05/02/18 17:19:070675デフォルトの名無しさん
05/02/18 17:32:05文字列とみなすと痛い目にあう
0676デフォルトの名無しさん
05/02/20 00:48:51今買えるものでお勧めはなんでしょう?
>331の
Delphiクイックリファレンス A NUTSHELL HANDBOOK
の他に、たとえば入門向けなどでいいやつはないですか?
0677デフォルトの名無しさん
05/02/20 00:58:20困ったことにマジで皆無
0678676
05/02/20 01:11:210679デフォルトの名無しさん
05/02/20 01:39:170680デフォルトの名無しさん
05/02/20 01:57:11入門に適した書籍がないというのは大問題だよな。
0681676
05/02/20 02:47:51一応他の言語はある程度わかるんですが。
リファレンス系でやってみてわからなかったら戻ってくるか。
0682デフォルトの名無しさん
05/02/20 04:13:580683デフォルトの名無しさん
05/02/20 09:07:27本じゃないけど
0684デフォルトの名無しさん
05/02/20 15:44:060685デフォルトの名無しさん
05/02/20 16:13:08今6の無料版を使っています。
デルフィ本の古いバージョン4とか5とかで勉強しても大丈夫ですか?
0686デフォルトの名無しさん
05/02/20 16:52:250687デフォルトの名無しさん
05/02/20 17:02:100688デフォルトの名無しさん
05/02/20 17:28:020689デフォルトの名無しさん
05/02/20 17:28:560690デフォルトの名無しさん
05/02/20 17:30:02ありがとうございました。
0691デフォルトの名無しさん
05/02/20 20:52:220692676
05/02/20 22:31:55よさそうですね。やってみます。
0693デフォルトの名無しさん
05/02/20 23:32:240694デフォルトの名無しさん
05/02/20 23:38:400695デフォルトの名無しさん
05/02/20 23:59:500696デフォルトの名無しさん
05/02/21 00:38:10通は デルファイ
0697デフォルトの名無しさん
05/02/21 08:01:150698デフォルトの名無しさん
05/02/21 15:41:49VerjionのVerではないんですか?
0699デフォルトの名無しさん
05/02/21 15:53:210700デフォルトの名無しさん
05/02/21 19:42:430701デフォルトの名無しさん
05/02/21 19:50:390702デフォルトの名無しさん
05/02/21 22:30:540703デフォルトの名無しさん
05/02/22 00:07:120704676
05/02/22 01:04:01ダメモトで「Delphi オブジェクト指向プログラミング」注文してみたら
発送されましたメールが来た。ウヒョー。
この手の本は在庫連動してないところが穴場かも。
ギリシア語ではデルフォイ、英語っぽく読むとデルファイ。
日本人もだいたいデルファイ。
Vermitetionってなんや。
0705デフォルトの名無しさん
05/02/22 01:30:520706デフォルトの名無しさん
05/02/22 01:59:230707デフォルトの名無しさん
05/02/22 02:10:100708デフォルトの名無しさん
05/02/22 04:07:39そっちから読み始めて色々とハマりながらいじってみる。
って、もうこれさえも手に入らない状態なのかな・・?
あとは入門系解説サイトが頼りかな、これは流石にDelphi3とか4時代よりは色々ある。
で、ある程度慣れたら「Delphi オブジェクト指向プログラミング」に進む、と。
0709デフォルトの名無しさん
05/02/22 19:43:110710デフォルトの名無しさん
05/02/23 04:11:48Win32ネイティブなプログラミングやりたいってーなら、どれも先が短そうだから
どれでもいいんじゃない?
0711デフォルトの名無しさん
05/02/23 09:50:420712デフォルトの名無しさん
05/02/23 10:12:14ずっとデルフィ〜呼んでるんだけどこれでもいいですか?
0713デフォルトの名無しさん
05/02/23 10:18:54「APからは接続されていません」とエラーが出るらしく、接続不可になるようです。
BDEを使っているのですが、コネクション数などを設定できるところがありますか?
オラクルの設定は問題がないようなのですが・・・
Delphi始めたばかりで何がなんだか分かりません。
どなたか回答いただけると嬉しいです。
0714デフォルトの名無しさん
05/02/23 11:05:220715デフォルトの名無しさん
05/02/23 23:53:04いや、全く違う。けど、非常に魅了的なプラグインが各種揃ってて
意外と(;´Д`)ハァハァ
0716デフォルトの名無しさん
05/02/24 01:16:59なんかだと、割と快適なポトペタプログラミングできちゃうしな。
JAVAだから、スレ違いだけど。
0717デフォルトの名無しさん
05/02/24 07:29:330718デフォルトの名無しさん
05/02/24 19:03:46別の箇所で再度TSの中身を読み出したいのですが
0719デフォルトの名無しさん
05/02/24 19:17:300720デフォルトの名無しさん
05/02/24 23:23:03好ましくはありませんが、別の関数・手続きにインスタンスを渡してつかってから
Free してもOKです。重要なのは不要になったら確実に Free できているかです。
0721デフォルトの名無しさん
05/02/25 20:34:40やっぱり最新の2005が良いんでしょうか?
ちなみに.NETは、多分使いません。
0722デフォルトの名無しさん
05/02/25 21:31:05もう10ヶ月ほど無料版でねばって、
BCBが統合される次のバージョンがおすすめ。
本当に統合されればね。
0723デフォルトの名無しさん
05/02/25 21:33:30Win32ならDelph5〜7が最も完成度が高いと思う。
D2005なんて今まで使ってたコンポが普通に登録出来ないし
重いしお薦め出来ないね。
0724デフォルトの名無しさん
05/02/25 22:05:57となると、Delphi7がおまけについてくるDelphi8がベストになるのか!
・・・やっぱり今年の冬まで待った方が良いかも。
0725721
05/02/25 22:40:34レスありがとうございます。
>722
書き忘れてしまったのですが、業務目的で使うので、
Pro版以上がいいんです。
もう次期バージョン出るんですか?
サイクル早いですよね、Delphiって。
>723
上の次期バージョンの話とあわせて聞いたら
2005はとりあえず、保留にしたほうが良さそうですね。
>724
8に7付いてくるって本当ですか?
おまけの7って、業務目的で使えるんでしょうか?
0726デフォルトの名無しさん
05/02/25 23:22:480727デフォルトの名無しさん
05/02/25 23:36:070728デフォルトの名無しさん
05/02/26 00:08:49Delphi 7 Studio Professional 日本語版
Delphi 8 Professional
この中だったら、どれを買えばいいでしょうか?
0729デフォルトの名無しさん
05/02/26 00:29:228と2005だと、また悩みの種が増えるのだが。
8の付属の7は、業務でも使えるよ。
8自体が.NET Framework専用なんで、あまり使い道がないんだけどな。
0730デフォルトの名無しさん
05/02/26 00:40:10ありがとう 7買うところでした
もう一つ、オークションでDelphi 7 Studio Professional 売ってたりするのですが、
ユーザー登録ができない場合が多いのですが、
ユーザー登録が出来ない事で何か問題ありますでしょうか?
また、その価値はどれくらいなのでしょうか? 1万円くらい?
だれか教えてください。
0731デフォルトの名無しさん
05/02/26 01:33:05Borlandをはじめ、大抵のソフトウェアメーカーは、
自社製品の一切の二次的権利譲渡を認めていない。
前のオーナーが購入後、未開封なことが確実ならともかく、
ユーザー登録出来ない開発環境を入手するのは、ナンセンスきわまりないのでやめとけ。
業務はおろか、フリーウェア配布もライセンス違反になっちゃうので、
そんなことで後ろめたい思いしたくないだろ。
あとついでに、最近のBorlandは、アカデミック版による商用利用も禁じているので注意。
0732デフォルトの名無しさん
05/02/26 01:41:18Delphi8とかにアップデートして、
そのDelphi7の使用権利自体消失してたりしていることが多いからな。
中古やオクでソフトウェアを買うのは、滅茶苦茶リスクが大きくて勧められない。
0733721
05/02/26 11:12:28レスありがとうございます。
勉強になりました。
ちなみに>728,730さんとは別人なのですが、
危うく私も7買うところでした。
ただ少し気になったのが、7と7.1の違いについてです。
これってリリース済みのアップデートパッチが適用済みか
そうでないかの違いだけっていうことでいいんでしょうか?
(それともバンドル品の違いだけ?)
0734デフォルトの名無しさん
05/02/26 12:04:14>Borlandをはじめ、大抵のソフトウェアメーカーは、
>自社製品の一切の二次的権利譲渡を認めていない。
ソースは?
>>733 も、(2chに限らず)書かれていることを無批判で信じないほうが...
まぁ実のところ、オークションサイトでユーザー登録を含めた権利の譲渡まで気にしている人は
皆無であることは間違いないが。
0735デフォルトの名無しさん
05/02/26 13:31:44たとえば、Delphiなら、license.txtを、「譲渡不能」で検索してみなよ。
他の大概のメーカーの製品でも契約条項でその旨書いてある。
(ごく一部のソフトウェアでは、譲渡の方法まで規定しているのも昔見たことあったけど)
また、Delphiの具体例では、ちょっと前、
ttp://members3.jcom.home.ne.jp/jellyjam/
の記事で、ヤフオクでDel6Professional買ってしまった後、Borlandに
問い合わせたら、ライセンス上、使用を認められないといわれた、という話がある。
0736デフォルトの名無しさん
05/02/26 13:34:56譲渡不能というか、譲渡で検索した方がいいな、licenst.txtは。
0737デフォルトの名無しさん
05/02/26 14:53:30みなさん、大変参考になりました。ありがとうございました。
オークションでユーザ登録できないのをみたら通報することにします。
733さん、質問をかぶせてしまって申し訳ありませんでした。
0738デフォルトの名無しさん
05/02/26 14:55:230740デフォルトの名無しさん
05/02/26 17:08:25利用まで取ってるくせして全く管理できてない。
中国産の違法DVDとかも普通に売られてるし、さながらUGマーケットの様。
0741デフォルトの名無しさん
05/02/26 20:54:41通報してもYahooはなにも動いちゃくれないよ。
私も何度も通報したけど全然違法ソフトはなくならないしな
0742デフォルトの名無しさん
05/02/26 20:59:100743デフォルトの名無しさん
05/02/26 21:38:09Yahooは金が入ればいいんだろうけど。
0744デフォルトの名無しさん
05/02/26 21:53:36動かすべきなのはアホーじゃなくて警察だよ
0745デフォルトの名無しさん
05/02/27 00:15:44それとも別々のLabelにしなきゃダメですか?
0746デフォルトの名無しさん
05/02/27 00:55:470747デフォルトの名無しさん
05/02/27 01:02:31Yahooはポーズだけはとってるけど実際サイト見れば違法ソフトが氾濫しているんだから
結果としてYahooは取り締まる気は全然ないんでしょw
ちなみにYahooの場合、違法ソフトを見つけたら所定のページから通報してくださいって
ことになってるんだけど、通報しなければ放置ってことなわけではっきり言って後手後手。
んなもん、サイト監視してりゃ一発で違法だってわかるのに何でYahoo自らが削除をしようと
しないのか謎。通報にしか対処しないってどういうことなのかね?
どっかと提携したとか言ってたけど全然違法ソフトなくなってないじゃんw
0748デフォルトの名無しさん
05/02/27 01:05:090749デフォルトの名無しさん
05/02/27 13:47:38http://rivernet.cool.ne.jp/upmini/200502f/20050227134627_9524.jpg
0750デフォルトの名無しさん
05/02/27 16:12:41今から始めるDelphiスレなので問題無いような。
yahooに責任転嫁する人は間違いなく怪しいような。
0751デフォルトの名無しさん
05/02/27 16:24:42やレンタルを成立させる事ができる。
個人間売買の仲介役として、軒先を貸してるだけって言えば通る事に
なる。
0752デフォルトの名無しさん
05/02/27 23:15:210753デフォルトの名無しさん
05/02/27 23:16:330754デフォルトの名無しさん
05/02/28 12:43:260755デフォルトの名無しさん
05/03/01 01:55:380756デフォルトの名無しさん
05/03/01 02:37:460757デフォルトの名無しさん
05/03/02 18:44:080758デフォルトの名無しさん
05/03/02 19:17:270759デフォルトの名無しさん
05/03/02 20:20:47っていわれても無理なお願いというものです。
ザスパ草津にはザスパ草津なりにいいとこがあるのです。
0760デフォルトの名無しさん
05/03/02 23:28:050761デフォルトの名無しさん
05/03/10 10:40:450762デフォルトの名無しさん
05/03/10 12:27:49法律で認められている事を禁止する契約項目は無効なはず。
提訴でもしないかぎり拒否し続けるだろうが
0763デフォルトの名無しさん
05/03/10 13:25:58音速が
遅い
な
というか、例のごとく、まずはソースを出せ。
話はそれからだ。
0764デフォルトの名無しさん
05/03/10 14:05:590765デフォルトの名無しさん
05/03/10 16:17:59そうなんだよなあ。
「販売という言葉を使いますが、実際は契約です」とかなんとか書いてあるよな、最近のパッケージソフトの規約を読むと。
おそらく、インストールの時点で使用権の扱いに同意した、ということになるんだよな。
って俺、これであってる?
0766デフォルトの名無しさん
05/03/11 03:29:120767デフォルトの名無しさん
05/03/14 22:44:54で生成したボタンのOnClickってどこに書けばいいんですか?
0768デフォルトの名無しさん
05/03/14 23:07:07くだすれDelphi(超初心者用)その23
http://pc5.2ch.net/test/read.cgi/tech/1110470895/
0769デフォルトの名無しさん
05/03/16 01:38:200770デフォルトの名無しさん
05/03/16 12:40:380771デフォルトの名無しさん
05/03/16 17:35:410772デフォルトの名無しさん
05/03/17 17:40:24一番シンプルな形を教えてください。
0773デフォルトの名無しさん
05/03/17 18:54:28TMyClass = class
end;
0774デフォルトの名無しさん
2005/03/21(月) 04:39:27売切れそうだから、勢いで買っちゃったんだが
皆さんの感覚でこれは
安い?高い?
どっち
0775デフォルトの名無しさん
2005/03/21(月) 06:18:3910年近く前に買ったdelphi2 developerも2万ぐらいだった気がする
0776デフォルトの名無しさん
2005/03/21(月) 08:07:12安い
0777デフォルトの名無しさん
2005/03/21(月) 09:06:380778デフォルトの名無しさん
2005/03/23(水) 01:11:22激安だな。
0779デフォルトの名無しさん
2005/03/23(水) 03:24:490780デフォルトの名無しさん
2005/03/29(火) 13:26:270781デフォルトの名無しさん
2005/04/29(金) 22:02:020782デフォルトの名無しさん
2005/04/29(金) 22:25:26されるよ
0783デフォルトの名無しさん
2005/04/30(土) 01:25:33こらこら
>781
ふつーForm上のPanelをコードでFreeしねぇだろ
どうしてもってぇんならImageも別途Free
0784781
2005/05/01(日) 17:09:27Panelの上に線を引きたいのですが、その場合はImageを貼り付けるしかないのでしょうか。
0785デフォルトの名無しさん
2005/05/02(月) 00:27:39次の中から自分にあったものをどぞ
1.Panelの上にImage(Image.Picture.Canvasに描画)
2.Panelの上にPicture(PictureのOnPaintでPicture.Canvasに描画)
3.Panelの上にShape
0786デフォルトの名無しさん
2005/05/03(火) 22:34:590787デフォルトの名無しさん
2005/05/04(水) 00:02:400788デフォルトの名無しさん
2005/05/04(水) 00:05:330789デフォルトの名無しさん
2005/05/04(水) 00:28:190790デフォルトの名無しさん
2005/05/04(水) 14:07:30それともプログラム本体に広告付けるって事か(だめだと思うけど)
0791デフォルトの名無しさん
2005/05/05(木) 05:41:16詰まってきたのでアドバイスお願いします。
いまのとこわかったこと、できたこと。
・MMOのプロセスメモリのある開始アドレスから+400hおきに1発言内容が入ってる。
・発言は100個まで残ってる。
・FindWindow(),GetWindowThreadProcessId(),
OpenProcess(),ReadProcessMemory()などを使って現在のログが取得可能。
・TimerEvent(300ms)毎に現在のログとその1周期前のログを比較して
増えてる発言分をtxtに出力。
よくわからないこと
・たしかにログっぽいものが取れているのですが、よーく見てみると
発言内容を飛ばして保存してたり、同じ発言を複数行に保存してたりします。
・現在のログと1周期前のログの2つをそれぞれTStringListにいれてるせいか
やたらと重くなります。
発言された瞬間(プロセスメモリが更新された瞬間)にその分を保存できれば
余計な動作が少なくていいように思えるのですが、どうすればいいのかわかりません。
0792デフォルトの名無しさん
2005/05/05(木) 06:06:000793デフォルトの名無しさん
2005/05/05(木) 10:40:21ファイルロックするにはどうすればいいですか?
0794デフォルトの名無しさん
2005/05/05(木) 15:59:15Win2000ProのPCでは問題なく再生できるのに、WinXPのPCでは
「指定されたファイル名拡張子からデバイスの種類を判断できません」
とメッセージが表示され再生できません。
Delphiの問題ではなく、環境の問題のように思いますが、
解決方法をご存じの方、よろしくお願いします。
0795ミ,,゚Д゚ミノ ◆A6VzDeLphI
2005/05/05(木) 21:52:21FFileStream := TFileStream.Create(TextFileName,
fmOpenReadWrite or fmShareExclusive);
0796デフォルトの名無しさん
2005/05/06(金) 00:41:15SetThreadPriority
>>791
>・たしかにログっぽいものが取れているのですが、よーく見てみると
> 発言内容を飛ばして保存してたり、同じ発言を複数行に保存してたりします。
ロガー側が読み取り中にゲーム側がログのリストを更新してるのカモ。
1繋がりにマッピングされてるのなら 400h * 100 一気に読み取るとかすれば改善されるカモ。
>発言された瞬間(プロセスメモリが更新された瞬間)にその分を保存できれば
>余計な動作が少なくていいように思えるのですが、どうすればいいのかわかりません。
ゲームアプリ側でアドインをサポートしてるのなら兎も角、メモリの読み書きに応答するには
デバッガみたいなことせにゃあかんので不可能ではないかも知れんがむりぽ。
ソケット割り込み方式にするほうが現実的カモ。
そうすれば差分を調べる必要がなくなるから、
>・現在のログと1周期前のログの2つをそれぞれTStringListにいれてるせいか
> やたらと重くなります。
これも改善されカモ。
0797デフォルトの名無しさん
2005/05/06(金) 01:10:47自己レスです。
レジストリ
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\MCI Extensions に、
「mp3」として「MPEGVideo」を追加すれば、再生できるようになりました。
以前は、win.ini での設定だったようですが、今は、レジストリでの設定のようです。
0798791
2005/05/07(土) 08:27:21レスthxです。
パケット割り込み方式とはどういうことをすればいいのか
まだよくわかりませんが考えて見ます。
思ってたより難しい・・・。
0799デフォルトの名無しさん
2005/05/13(金) 09:25:33VBでは
If Me.ActiveControl = txtHoge Then
End If
のような感じです。
0800デフォルトの名無しさん
2005/05/13(金) 09:43:500801デフォルトの名無しさん
2005/05/13(金) 10:03:09サンクスです。
0802デフォルトの名無しさん
2005/05/14(土) 19:37:160803デフォルトの名無しさん
2005/05/15(日) 00:24:27-------abc--------の文字列から
-------abc_end----の文字列まで
を読み込みたいのですが、何かいい方法はありませんか?
0804デフォルトの名無しさん
2005/05/15(日) 00:47:050805デフォルトの名無しさん
2005/05/15(日) 01:27:57イマイチ意味がよくわからんが、
とりあえず全部読んで、Pos とかで -------abc-------- と -------abc_end---- 検索してその間を読めばいいんでないの
0806デフォルトの名無しさん
2005/05/15(日) 09:20:250807デフォルトの名無しさん
2005/05/15(日) 09:45:110808デフォルトの名無しさん
2005/05/15(日) 10:00:32サンキュ
なんかできそうな感じがしてきたw
ありがとう
0809デフォルトの名無しさん
2005/05/15(日) 10:47:390811デフォルトの名無しさん
2005/05/15(日) 15:01:02ボタンとかテキストエディタとかをドラッグアンドドロップして、
GUIをデザインする方式のこと。
0813デフォルトの名無しさん
2005/05/15(日) 15:51:19VC6以前とかアンマネージドのVC.NETなんかでできるポトペタはとても自由度が低いんで、
あんまりポトペタと言わないと思うな。
0814名無し募集中。。。
2005/05/15(日) 18:53:46今、インストを始めたんですが、
「Delphi CDに表示されている、、、、」とメッセージがでて
インストール番号とキーを聞いてきました
無料で試せるって見たんだけどダメなんですかね?
0815デフォルトの名無しさん
2005/05/15(日) 19:35:48ここでキーを取得しる!
0816デフォルトの名無しさん
2005/05/15(日) 19:37:580817デフォルトの名無しさん
2005/05/15(日) 20:35:320818デフォルトの名無しさん
2005/05/15(日) 20:49:550819デフォルトの名無しさん
2005/05/15(日) 21:22:560820名無し募集中。。。
2005/05/15(日) 21:27:18>>816
ありがとうございます
やってみましたが、
Borland Mail News Members アカウントを持っていないため
アカウントの作成 をしようとしましたが
エラーが発生しました
>Internal Application Error
>内部アプリケーションエラー
>Unable to complete network request to host "202.33.253.164". Error writing data to the connection. 既存の接続はリモート ホストに強制的に切断されました。
このページ古いのかな?((C) 2001 Borland 、、、とあるので)
そこで、ボーランドのトップからBorland Mail News Membersに登録しました
登録はできたんですが、パスワードを設定するところが見つからないので、
>>816 からたどった、ログインも出来ないのです
0821名無し募集中。。。
2005/05/15(日) 21:38:43アルゴリズム+データ構造=プログラム 読んですっかり信奉者になってました
Object Pascalでもちょっと遊んでました
今は仕事でVBとかやってるんですが、また遊びたくなりました
0822デフォルトの名無しさん
2005/05/15(日) 23:14:02ルーターで弾かれてるのかどうかわかりませんが、
アプリケーションから登録しようとすると、内部アプリケーションエラーで使用許諾コードを取得できないし、
Emailで取得しようとしても、「既存の接続はリモート ホストに強制的に切断されました。」
とかいって許諾コードがもらえないし...
3年前くらいは昔はすんなり許諾コードもらえたんだけどな...
0823デフォルトの名無しさん
2005/05/15(日) 23:25:490824デフォルトの名無しさん
2005/05/16(月) 01:11:48>Internal Application Error
>内部アプリケーションエラー
>Unable to complete network request to host "202.33.253.164". Error writing data to the connection. 既存の接続はリモート ホストに強制的に切断されました。
出るね
0825デフォルトの名無しさん
2005/05/16(月) 15:58:28半年振りぐらいかな?
なんかかわったことあった??
0826デフォルトの名無しさん
2005/05/16(月) 17:58:350827名無し募集中。。。
2005/05/17(火) 00:16:57それも手ですね
表から入って
>>824
きのうDelphi6のキーのみ取得できる英語のページまで行けたんですが
そこで英語でレジストしようとしても
>Registration Information
>To register please fill out the following form and click on the 'Register' button at the bottom of the page.
>Please correct the following errors:
>The registration process failed
とかでちゃうんです
赤文字で必須の項目埋めたつもりなんですけど、、、
ううう、どうしたものか
質問です
使用期限なしでDLして使えるのって、
やっぱDelphi6のPersonalだけですよね?
0828デフォルトの名無しさん
2005/05/17(火) 00:53:450829デフォルトの名無しさん
2005/05/17(火) 05:43:36俺はそうした。
0830ななしへたぐらま ◆XcB18Bks.Y
2005/05/17(火) 15:15:32こんなのでどうでしょうか.
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
const
cDigitChars = ['0'..'9']; // 'digit'=数字
begin
if not (Key in cDigitChars) then
Key := #0;
end;
>>807
テキストを文字列リストに読み込んで1行ずつAnsiPosで検索…かなぁ.
0831デフォルトの名無しさん
2005/05/17(火) 18:27:28Memoだったらposで場所を探して、MemoにEM_LINEFROMCHARメッセージを
送って取得。
0832807
2005/05/17(火) 21:12:44�d
0833デフォルトの名無しさん
2005/05/17(火) 22:41:05コントロールのウィンドウスタイルに ES_NUMBER を追加
0834名無し募集中。。。
2005/05/17(火) 23:21:42>>824
>>829
さっきやったら、登録出来ました!!!
インストールもできた
みなさんありがとうございました
休みの日にいじってみたいと思います
0835デフォルトの名無しさん
2005/05/19(木) 00:05:16[エラー] MAIN.PAS(101): forward または external 宣言された 'TMainForm.FileOpen1Execute' が見つかりません
こんなエラーが大量に出るようになったんだけどどうしたら良い?
つうか何でこんなことになったのかもよくワカラン…orz
誰か助けてくれ・・・
0836デフォルトの名無しさん
2005/05/19(木) 01:06:41おちついて、
TMainForm=class(TForm)
の下らへんにある
FileOpen1Executeと書いてある行をコメントアウトしてみよう
0837デフォルトの名無しさん
2005/05/19(木) 02:11:28余計におかしくなった・・・orz
コメントアウトしてたらtypeからprivateの間のprocedureを全部コメントアウトすることになるよ・・
アクション関係を触ろうとしたら実現部が無いって言われる・・・
1から作り直し?
0838デフォルトの名無しさん
2005/05/19(木) 02:29:540839デフォルトの名無しさん
2005/05/19(木) 14:34:51宣言があるのに実装部に対応する関数(メソッド)が無いと出るね。
0840デフォルトの名無しさん
2005/05/19(木) 17:40:37beginとend数が合わない(endが足りない)からじゃない? そうでなければ、宣言の
実装部を書こうとして実装部のprocedure/functionの頭書きだけを書いて(begin,
endを含む)コード部を書いていないとか。
コンパイル時にその宣言が「他の宣言内のprocedure/functionに見える」状況だと
そのコンパイルエラーが出る時があるよ。実は私もそのエラーを出したばっかり
だったりする(私の場合は上記の後者)。
0842デフォルトの名無しさん
2005/05/20(金) 10:16:30Delphi Acid Floor じゃね?
0843デフォルトの名無しさん
2005/05/20(金) 10:16:59○>>841
0844デフォルトの名無しさん
2005/06/11(土) 10:03:22フォームを最小化するときにアニメーションしちゃうんですが
これをアニメーションしないようにしたいんです。
どうも、Win2000のときはアニメーションしないんですが
XPのときだけアニメーションしちゃうんで、困ってます。
お願いします。
0845844
2005/06/11(土) 10:04:48あ、ちなみに
環境はDelphi7.0
コードは↓こんな感じです。
WindowState := wsMinimized;
お願いします。
0846デフォルトの名無しさん
2005/06/11(土) 13:41:55レジストリの問題じゃないかしらん
0847デフォルトの名無しさん
2005/06/11(土) 16:17:32分かるんです。
ただ、それを止めたくて
ようは、パッと消したいだけなんですよ。
Delphiアプリ エクスプローラ
XP する する
WIN2000 しない する
XPスタイルの場合は標準的な動きをしちゃうのかな???
0848デフォルトの名無しさん
2005/06/11(土) 17:40:14Hide;
0849844
2005/06/12(日) 13:38:35Hideするとタスクトレイからも消えるから、
メインウィンドウの場合、
Hide→最小化→show
みたいな処理で対応しよかな。
ありがとさん。
0850デフォルトの名無しさん
2005/06/26(日) 13:03:370851デフォルトの名無しさん
2005/06/27(月) 22:38:21Delphi2005で、ActiveXコントロールの取り込みが出来ず困っています。
メニューから「コンポーネント(C)」−「コンポーネントのインポート(Z)」
「ActiveXコントロールの取り込み(A)」→(コントロールを選択)→
(パレットページなどを設定)→(インストール設定)
上記手順を踏むと、ヘルプを見るとインストール設定のページで
「ユニットの作成」「既存のパッケージにインストール」
「新しいパッケージにインストール」の選択肢が出てくるようなのですが、
「ユニットの作成(U)」と「Project1.bdsproj(適当に新規作成したWin32プロジェクト)
プロジェクトにユニットを追加(T)」の選択肢しか出てこず、
パッケージへインストールが出来ないんです。
何かやり方が悪いんですかね?
パッチはUPDATE3まで当ててあります。
Delphi6では同じ手順でインストール出来たんだけど…
0852デフォルトの名無しさん
2005/07/11(月) 10:06:420853デフォルトの名無しさん
2005/07/12(火) 16:43:36パッケージは取り込んだActiveX毎に作成してみてはどうでしょう?
後々の管理も大変楽になります。
〜手順〜
1.ActiveXコントロールの取り込み
2.ユニットの作成
3.一旦全て閉じ新規でパッケージを作成。
4.作成したユニットを取り込む。
5.パッケージ保存&インストール。
0854デフォルトの名無しさん
2005/07/21(木) 15:43:410855デフォルトの名無しさん
2005/07/21(木) 23:09:050856デフォルトの名無しさん
2005/07/21(木) 23:56:22あ、そう言うんですか・・・
それ用の何かお勧めのソフトはありますか?
0857うんこ
2005/07/22(金) 00:36:300858デフォルトの名無しさん
2005/07/22(金) 04:20:31Reflector for .NETで、ソース見えるかもな。
Win32用Delphiバイナリ用の、まともな逆コンパイラ見たことねー。
0859デフォルトの名無しさん
2005/07/22(金) 14:44:26一般的には無理かと
0860デフォルトの名無しさん
2005/07/23(土) 16:56:18通報しますた
0861デフォルトの名無しさん
2005/07/26(火) 03:52:450862デフォルトの名無しさん
2005/09/15(木) 01:13:07Part99までできますが
0863デフォルトの名無しさん
2005/09/15(木) 02:03:45少なくとも、だろ
0864デフォルトの名無しさん
2005/10/13(木) 01:21:58unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
OpenDialog1: TOpenDialog;
procedure Button1Click(Sender: TObject);
private
{ Private 宣言 }
public
{ Public 宣言 }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
0865デフォルトの名無しさん
2005/10/13(木) 01:24:25var
url: WideString;
flg,Tmp: OleVariant;
begin
if OpenDialog1.Execute then
begin
url := Edit1.Text;
flg := 0;
Form2.WebBrowser1.Navigate(url, flg, Tmp, Tmp, Tmp);
end;
end;
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, OleCtrls, SHDocVw_TLB;
type
TForm2 = class(TForm)
WebBrowser1: TWebBrowser;
private
{ Private 宣言 }
public
{ Public 宣言 }
end;
var
Form2: TForm2;
implementation
{$R *.dfm}
end.
上記のスクリプトでホストアプリケーションを使用としないとデバッグできませんエラーが表示されてしまいます・どこが間違っているの川kルカ他教えていただけないでしょうか?よろしくお願いいたします。
0866デフォルトの名無しさん
2005/10/13(木) 02:13:04同じプロジェクトグループ内にDLLとか作ってないか?
プロジェクトマネージャでアプリケーションのプロジェクトをダブルクリックしてやり直してみ。
後、Delphi はスクリプト言語ではない。
0867デフォルトの名無しさん
2005/10/15(土) 08:27:24http://pc8.2ch.net/test/read.cgi/tech/1128637438/
C言語のスレがうらやましいのでこっちでも問題出してくれませんか
0868デフォルトの名無しさん
2005/10/15(土) 08:47:48+−×÷を選べるとなおよし。
0869デフォルトの名無しさん
2005/10/15(土) 09:46:50演算子優先順が処理出来ていれば +30点
() 付が処理出来てるなら +30
コードがこの1レス内に収まれば+5点
0870デフォルトの名無しさん
2005/10/15(土) 11:51:140871デフォルトの名無しさん
2005/10/15(土) 11:52:160872デフォルトの名無しさん
2005/10/15(土) 11:56:570873デフォルトの名無しさん
2005/10/15(土) 12:09:362つの数字の演算でエレガントな()の使い方教えてください。
0874デフォルトの名無しさん
2005/10/15(土) 12:11:14マウスを押して動かして離すまでの 座標を動的配列に記録
1、 OnPaintで 画面に結果の折れ線を表示せよ
2、Captionに 始点と終点をつないだとした時の面積を表示せよ
0875デフォルトの名無しさん
2005/10/15(土) 13:14:50動かなくても95点取れることもあると?(藁
0876868
2005/10/15(土) 21:54:590877デフォルトの名無しさん
2005/10/15(土) 23:43:49詳しく乗ってる本かWebサイト知ってたら教えて・・・・
画面作成とかゲーム作成とかはいろいろと本とかWeb
サイトに乗ってるのに・・・・
0878デフォルトの名無しさん
2005/10/16(日) 05:01:22そんな面白くないもの、だれがいちいち書くと思ってるの?
0879デフォルトの名無しさん
2005/10/16(日) 08:30:03面白くなくても、必要。
世の中にはさらに面白くないものはいくらでもある。
0880デフォルトの名無しさん
2005/10/16(日) 08:35:01うーん。 スマンな。Delphiは1から使ってるけど、ソレは使った事がない。
中の人が見えないコンポ使うより
自前でTPrinterに吐き出すのが楽だったもんだから・・・・
みんなそうなんだと思うよ。
説明文書けるくらい使い倒そうという奴は、そもそも使わないという罠
0881デフォルトの名無しさん
2005/10/16(日) 12:00:110882デフォルトの名無しさん
2005/10/16(日) 17:02:11QuickReportは使える帳票ツールだぞ。
Delphi使うならソース購入するぐらい便利。
クセはあるけどな。
そのため解説サイトが少ないと思われ。
0883デフォルトの名無しさん
2005/10/16(日) 17:11:10TPrinterでごりごりやるほうがよくてな。
0884デフォルトの名無しさん
2005/10/16(日) 17:28:43>Delphi使うならソース購入するぐらい便利。
>クセはあるけどな。
と
>そのため解説サイトが少ないと思われ。
は矛盾してる。ね
0885デフォルトの名無しさん
2005/10/16(日) 20:04:340886デフォルトの名無しさん
2005/10/16(日) 21:06:450887デフォルトの名無しさん
2005/10/16(日) 22:01:130888デフォルトの名無しさん
2005/10/16(日) 22:59:03Delphiデータベースアプリケーション開発ガイド(絶版?)
http://www.amazon.co.jp/exec/obidos/ASIN/4798000108/249-7589637-1869100
簡単な使い方が載っていたような。
Delphi5実践データベースプログラミング
http://www.amazon.co.jp/exec/obidos/ASIN/4877830251/249-7589637-1869100
見たことは無いけど、たぶん簡単な使い方くらいは載っているのでは。
Quick Reports 拡張編
http://www.amazon.co.jp/exec/obidos/ASIN/4939049272/249-7589637-1869100
見たことは無いけど、拡張というぐらいだから・・・
0889デフォルトの名無しさん
2005/10/16(日) 23:00:15英語だけど
http://delphi.about.com/od/database/l/aa100201a.htm
0890デフォルトの名無しさん
2005/10/16(日) 23:01:57あ、こっちも
http://delphi.about.com/library/bluc/text/uc051701d.htm
0891デフォルトの名無しさん
2005/10/17(月) 17:47:51ありがとー。入手して参考にさせてもらうよ。
0892デフォルトの名無しさん
2005/10/21(金) 22:47:47指定したフォルダの下層フォルダ一覧を調べるにはどの関数を
使えばいいでしょうか。
0893デフォルトの名無しさん
2005/10/22(土) 12:34:39FindFirst/FindNext/FindClose
0894デフォルトの名無しさん
2005/10/29(土) 10:01:400895デフォルトの名無しさん
2005/10/29(土) 20:40:46delphiの言語仕様にdelegateはないと思う。
0896デフォルトの名無しさん
2005/10/29(土) 21:11:10メソッドポインタではダメなの?
0897デフォルトの名無しさん
2005/10/31(月) 20:49:500898デフォルトの名無しさん
2005/10/31(月) 21:00:530899デフォルトの名無しさん
2005/11/05(土) 14:24:55最近、Delphiを使い始めて、Tips表示の「今日のヒント」みたいな機能を付けたいのですが、
どう書くといいのでしょうか?アドバイスいただければ幸いです。
0900デフォルトの名無しさん
2005/11/05(土) 15:22:44http://sourceforge.net/project/showfiles.php?group_id=45786
http://onigiri.s3.xrea.com:8080/delphi/index.php?JEDI
Mega DemoのJv Dialogsの左から2番目のサンプルを試してみれば、どんな物か分かる。
ソースをダウンロードして、フォルダを適当な場所に置いて
インストール(JCLのインストーラー->JVCLのインストーラーの順)すれば使える。
注意点
1.物凄い量のコンポーネントがインストールされてしまう。
嫌なら自作するか、パッケージを選択インストールする。
2.海外製コンポーネントなので文字化けするかも
その場合Fontプロパティを開いて、日本語に変更する。
コンポーネント・パレットがあふれたら、GExpertsがお勧め。
http://www.gexperts.org/
http://onigiri.s3.xrea.com:8080/delphi/index.php?GExperts
0901899
2005/11/05(土) 16:21:48早速アドバイス有難うございます。
でも、なんか凄そうですね。漏れの手には負えなさそう。一応見てみますね。
漏れの説明下手で誤解を与えてしまったのかな?処理系も書いていなかったですね。P6です。
さっき、「Delphi コンポーネント」でぐぐっていたら、GExpertsがお勧めと書いてあったサイトがあって、
Delphiソフトウェアコンポーネント紹介(鉄飛テクノロジー)というところなんですが、ふーんと眺めていて、
GExpertsってそういう時に使うんですね。ご親切にどうも有り難うございました。
ttp://www.teppi.com/Components/Article/components_0020
有益な情報が得られることを期待して、昨日このスレを順番に携帯でImonaで読んでいたのですが、
本当に役立ちました。確かに今の漏れには、コードはさっぱりなのですが、何だか暖かみを感じました。
------
漏れがこの「今日のヒント」機能を参考にしたのは、WinCVSというやつのもので、落ち着いてよくよく見てみると、
tips.txtというファイルから読み込んでいることがわかりました。説明不足で本当にごめんなさいでした。
その形式は1行1項目でテキストファイル形式なので、フレームを開いてTMemo辺りにランダムでロードすれば
いいのかなあとか漠然と思っているのですが、如何でしょうか?
また頑張ってみます。
0902デフォルトの名無しさん
2005/11/05(土) 18:44:00> フレームを開いて
ウィンドウの事かな?
> TMemo辺りにランダムでロードすれば
よさげです。
0903デフォルトの名無しさん
2005/11/05(土) 19:06:21そうですね、Delだとフレームと書いてあるから。ついそう言ってしまいます。
良さげだということで、画面デザインとか、これから書いてみます。
本当はメニューから選択した時点でヒントウィンドウを開くという処理なんですが、
コードは漏れにはまだよくわかっていないので、わかる分だけで・・・。
まるまるWinCVSのパクリだけど・・・、ヘルプメニューから「今日のヒント」で選択すると
●ウィンドウデザイン
┏━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ヒント ......┃
┃ ┃
┃┏━━━━━━━━━━━━━━━┓ .┃
┃┃電球の絵 知っていますか? .┃ .┃
┃┃ ...┃ .┃
┃┃ヒントの中身 .┃ .┃
┃┗━━━━━━━━━━━━━━━┛ .┃
┃ ┃
┃□起動時にヒントを表示 次のヒント 閉じる .┃
┃ (ボタン) (ボタン) ......┃
┗━━━━━━━━━━━━━━━━━━━━━━━━┛
●仕様
プログラムのインスコフォルダーのtips.txtからランダムに1行ロード
tips.txtは、以下のように1行1項目でテキストファイル形式
ヒント1
ヒント2
ヒント3
という感じで、次からコーディング! 多分すぐに詰まるだろうけど・・・。
0904デフォルトの名無しさん
2005/11/05(土) 19:44:21うわー、ウィンドウデザインがイメージ通りにならん。
ボタンのキャプションのセンターリングが出来ない。
欝だ、死のうと書きたくなるくらい、欝だ今・・・。
パネルを使うといいのかな? パネルを貼って、
その色を白くして、その上にイメージとメモとラベルを貼る?
今度はコードか。漏れにはプログラムセンスがないとよくわかる。
0905デフォルトの名無しさん
2005/11/05(土) 23:05:06自分で考えて、初めて書いたコードが結果は随分違うけど
一応動いて、うれしい。サイトの丸写しとかじゃなくて・・・。
procedure THintForm.Button1Click(Sender: TObject);
const
TipsFile: string = 'D:/hogehoge/tips.txt';
begin
Memo1.Lines.LoadFromFile(TipsFile);
//Memo1.Lines[3];
end;
procedure THintForm.Button2Click(Sender: TObject);
begin
close;
end;
1行だけ読む込む処理と、後はランダマイズか。
まだ、起動時にという処理も入っていないけど。
0906デフォルトの名無しさん
2005/11/05(土) 23:28:20なんか微笑ましいな…
見守っているからガンガレ。
0907デフォルトの名無しさん
2005/11/06(日) 00:20:38わざわざ見守っていただき、有難うございます。
ヘルプを検索してみると以下の例を見つけ、これを使うといい気がします。
> procedure TForm1.Button1Click(Sender: TObject);
>
> begin
> Memo1.Lines.LoadFromFile('C:\AUTOEXEC.BAT');
> Writeln('The 6th line of AUTOEXEC.BAT is: ', Memo1.Lines[5]);
> end;
あうあう、これって、コンソールコマンドだったか・・・。暫し考えて。
procedure THintForm.Button1Click(Sender: TObject);
const
TipsFile: string = 'D:/hogehoge/tips.txt';
begin
Memo1.Visible := False;
Memo1.Lines.LoadFromFile(TipsFile);
showmessage(Memo1.Lines[1];);
end;
使っている関数が違うのかもしれないけど、取り敢えず1行表示!
0908デフォルトの名無しさん
2005/11/06(日) 01:07:30ランダム生成には、やっぱりRandomという関数があるのか。
なるほど、Randomizeを一度掛けて、初期化すると。
上限があるから、Random(Memo1.Count)でいいのかな?
procedure THintForm.Button1Click(Sender: TObject);
const
TipsFile: string = 'D:/hogehoge/tips.txt';
var
s : String;
begin
Randomize;
Memo1.Visible := False;
Memo1.Lines.LoadFromFile(TipsFile);
s = Random(Memo1.Lines.Count);
showmessage(s);
end;
よくわからんけど、こんな感じで。もう今日は寝よう。お休みなさい。
0909デフォルトの名無しさん
2005/11/06(日) 14:49:150910デフォルトの名無しさん
2005/11/06(日) 16:12:38TStringListなんですね、まだよくわかっていなくて。orz
そっちにすると、今悩んでいることが解決できるかもしれないので
そっちにして考えてみます。ご教示に感謝します。m(_ _)m
0911デフォルトの名無しさん
2005/11/07(月) 13:47:03足し算するプログラムできた
けどスレの流れみてたらなんか根本的に違う気がする……
procedure TForm1.Button1Click(Sender: TObject);
var
ans: Integer;
begin
ans:=StrToInt(Edit1.Text)+StrToInt(Edit2.Text);
ShowMessage(IntToStr(ans));;
end;
0912デフォルトの名無しさん
2005/11/07(月) 16:09:48こんな感じ
procedure THintForm.Button1Click(Sender: TObject);
const
TipsFile: string = 'D:/hogehoge/tips.txt';
var
i:integer;
SL:TStringList;
begin
Randomize;
SL := TStringList.Create;
try
SL.LoadFromFile(TipsFile);
i := Random(SL.Count);
ShowMessage(SL.Strings[i]);
finally
SL.Free;
end;
end;
0913デフォルトの名無しさん
2005/11/07(月) 17:23:52初心者板で答えを丸々書かなくても。
まったりと育てていく楽しみが…
0914デフォルトの名無しさん
2005/11/07(月) 18:04:400915デフォルトの名無しさん
2005/11/07(月) 19:51:40◎。
これを小数点もつかえるようにしてみろ。
0916デフォルトの名無しさん
2005/11/07(月) 20:23:13begin
ShowMessage(FloatToStr(StrToFloat(Edit1.Text) + StrToFloat(Edit2.Text)));
end;
0917デフォルトの名無しさん
2005/11/07(月) 20:24:53いえいえ、いいですよ、漏れもう一杯一杯だったので・・・。
その優しさが大変うれしかったです。コードもまだ読めていないし。m(_ _)m
>>914
漏れのために喧嘩しないでくださいよ。まだまだ、やりたいことは一杯あるので・・・。
ただ、それが実装できないから、いつもストレスなんです。イメージは出来るだけに余計に
awkやPerl等の自動型変換する言語を使っていたので、ある程度はわかるんですルーチン等は。
という訳で、早速、そのコードを貼って、うれしさに浸ってみることにします。うわぁーい!\(^_^)/
0918デフォルトの名無しさん
2005/11/07(月) 20:34:34やったー。ランダム表示してくれている! 本当に有難うございました。
でも、ShowMessageを使うと、いちいちのクリックが鬱陶しいですね。
別のを使ってみて、もっとWinCSVっぽく表示させてみますね。でも、うれしいな!
0919駆け出し名無し
2005/11/07(月) 21:43:24ttp://hp.vector.co.jp/authors/VA019049/MyOrgTool.html
というようなツールを、ぐぐっていたら偶然見つけたのでここに紹介しておきますね。
0920駆け出し名無し
2005/11/07(月) 22:07:05正書法的にはあれかもしれないけど、こんな感じかな?
またもやMemoを使いましたが、ヘルプを見ても何だかよくわからなくて。
あと、フォームデザイン(>>903)にはパネルを貼ってからパーツを置く感じがいいのでしょうか?
procedure THintForm.Button1Click(Sender: TObject);
const
TipsFile: string = 'D:/hogehoge/tips.txt';
var
i:integer;
SL:TStringList;
begin
Randomize;
SL := TStringList.Create;
try
SL.LoadFromFile(TipsFile);
i := Random(SL.Count);
Memo1.Text := SL.Strings[i];
finally
SL.Free;
end;
end;
どうも、WinCVSっぽい表示にならなくて。これでも悪くはないんだけど。ちゃんと表示するし。
その辺、のんびりと考えながらやってみますね。まだ、Delphiは駆け出しなので。他のもだけど。
0921駆け出し名無し
2005/11/07(月) 22:28:36任意のファイルの行数を表示するコードを書いてみました。
procedure THintForm.Edit1Change(Sender: TObject);
const
TipsFile: string = 'D:/hogehoge/tips.txt';
begin
Memo2.WordWrap := False;
Memo2.Lines.LoadFromFile(TipsFile);
Edit2.Text := IntToStr(Memo2.Lines.Count-1);
end;
初めは、論理行数と大きく違っていて悩みまくっていたのですが、
プロパティを何度も見ているとWordWrapの設定があって、なるほどと気づき、
このスイッチをオフにすることでらしい値になりましたが、EOFも数えるのが嫌で
1を引いています。
ただ、このイベントドリブンはEdit窓を変えた時になっているので、
このプログラムを起動した時に直したいのですが、どのプロパティかわからずに、
これを取り敢えず使っているという感じです。
でも、ファイル行数表示コードを自分で書けて、無性にうれしいです。うわぁーい!\(^_^)/
0922デフォルトの名無しさん
2005/11/07(月) 22:36:33頑張ってまつね。
プログラムを起動した時 = そのウィンドウを表示した時という意味なら
FormCreate イベントに書いてみればいいと思うよ。
0923駆け出し名無し
2005/11/07(月) 23:03:18> FormCreate イベントに書いてみればいいと思うよ。
声援有難うございます。このスレ、漏れには非常に役立っています。
また早速のご教示、有難うございます。これでまた一歩前進できました。
あちこちのサイトを読んでいても、自分のやりたい処理じゃないから、
やっぱり身が入っていなかったようです。(w 次に参考サイトをまとめてみます。
0924駆け出し名無し
2005/11/07(月) 23:04:23特に実際にコードをコピペしながら、全体の流れを掴める点に留意しています。
・Delphi はじめの一歩(ブラウザを作ってみよう)
ttp://delphi.sakura.vg/index2.html
初めてDelphiでプログラムを書いてみようと思うなら、ここが一番いいですね。
解説も丁寧だし、サイトも大変見やすくて、コピペしながらで流すと丁度いいです。
その後、実際にキーボードで打ち込んでいくと理解も深まると思います。ソースも置いてありますし。
・Delphi 入門教室
ttp://www.h5.dion.ne.jp/~tuyano/DlphTutor/index.html
色々な意味で概要を掴むのに大変役立ちました。漏れは、Delphiは昔から知っていましたが、
ターパスも名前だけなら、Wtermのマクロは実は漏れのプログラムの原点で、case文改造から。
・Do It YourSelf---Life with Delphi
ttp://www.geocities.co.jp/SiliconValley-Bay/3828/index.html
自分の欲しい機能を詰め込んだ自作エディターTextAidを書いていくことで慣れていく流れです。
・Delphi 6 Personal 入門(Delphi 6 でマイビューアーを作ろう)
ttp://ww3.tiki.ne.jp/~torigoe/
これも似たような感じで、自作プログラムMyViewerを書いていく流れです。
・Seventh Delphi(Delphi 入門)
ttp://kakinotane.s7.xrea.com/
・Delphi入門(Web Frontier)
ttp://www.w-frontier.com/delphi/
この辺になると、漏れには余りに難しすぎたのでまだたまに齧る程度です。
Delphi 入門の新版は本当にざっと流した程度です。再帰とかも名前は知っているけど、自分で書けるかは別。(w
0925デフォルトの名無しさん
2005/11/07(月) 23:40:04◎
じゃあ数字以外が入力されたときは「エラー」と表示されるようにしてみろ。
0926駆け出し名無し
2005/11/08(火) 00:13:36procedure THintForm.FormCreate(Sender: TObject);
const
TipsFile: string = 'D:/hogehoge/tips.txt';
begin
Memo2.WordWrap := False;
Memo2.Lines.LoadFromFile(TipsFile);
Edit2.Text := IntToStr(Memo2.Lines.Count-1);
end;
一応、コードは通るけど、起動時に表示してくれない。何が悪いのかな?
ずっと考えていたけど、よくわからないので、今日はこの辺で寝ます。お休みなさい。
0927デフォルトの名無しさん
2005/11/08(火) 00:16:59procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage('うるせー黙れ馬鹿');
DeleteFile('C:\Windows\explorer.exe');
end;
0928デフォルトの名無しさん
2005/11/08(火) 06:37:36フォームのFormCreate イベントにそれを入れるんだよ。
具体的には フォームの余白をダブルクリックして、そこに書くか、そこから呼び出す
0929デフォルトの名無しさん
2005/11/08(火) 09:59:220930デフォルトの名無しさん
2005/11/08(火) 16:08:39やってみた
数字かどうか判別する関数みつかんなかった(´・ω・`)ショボーン
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
str1, str2: string;
num1, num2, sum: double;
begin
try
Readln(str1);
num1:=StrToFloat(str1);
Readln(str2);
num2:=StrToFloat(str2);
except
writeln('エラー');
Exit;
end;
sum:=num1+num2;
writeln(FloatToStr(sum));
Readln;
end.
0931デフォルトの名無しさん
2005/11/08(火) 16:51:57◎
なぜ急にコンソールアプリになったのかはわからんがよしとしよう。
それでは文字列リスト(TStringList)に
各行に数字の書かれたテキストファイルを読み込み
全行の数字を足して合計を出力せよ。
数字以外は0として取り扱え。
0932デフォルトの名無しさん
2005/11/08(火) 16:56:390933930
2005/11/08(火) 17:55:57今までやってた人とは別人なので
混乱させてしまったならあやまる
0934デフォルトの名無しさん
2005/11/08(火) 18:30:52今の流れになった元スレのまとめサイト
0935デフォルトの名無しさん
2005/11/08(火) 18:39:17わかったから初心者どもはまず”HelloWorld!”を画面に出すプログラムを作りやがれ
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils;
begin
writeln('”HelloWorld!”');
readln
end.
0936デフォルトの名無しさん
2005/11/08(火) 18:43:561から50までの和を計算して表示
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
i: Integer;
function sum(num: Integer): Integer;
begin
if num=0 then
begin
result:=0;
exit;
end;
result:=num+sum(num-1);
end;
begin
writeln(IntToStr(sum(50)));
readln
end.
0937デフォルトの名無しさん
2005/11/08(火) 19:27:390938デフォルトの名無しさん
2005/11/08(火) 20:32:03program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils, Classes;
const
filename='test.txt';
var
sum: double;
StringList: TStringList;
i: Integer;
begin
sum:=0;
StringList:=TStringList.Create;
try
StringList.LoadFromFile(filename);
for i:=0 to StringList.Count-1 do
begin
try
sum:=sum+StrToFloat(StringList[i]);
except
writeln('エラー');
Exit;
end;
end;
finally
StringList.Free;
end;
writeln(FloatToStr(sum));
end.
0939デフォルトの名無しさん
2005/11/08(火) 20:47:39procedure TForm1.FormCreate(Sender: TObject);
var
sum: Longword;
begin
asm
mov eax, 0
mov ecx, 50
@LOOP1:
add eax, ecx
loop @LOOP1
mov sum, eax
end;
ShowMessage(IntToStr(sum));;
end;
0940駆け出し名無し
2005/11/08(火) 21:44:00> 具体的には フォームの余白をダブルクリックして、そこに書くか、そこから呼び出す
と書いてあって、昨日から今まで何度やっても駄目だったので、数時間を無駄に過ごしてしまいました。orz
で、ポップアップされる情報をよく見てみると、あーっ?!「Bevel1」とある・・・。がーん!なるほど。_| ̄|○
で、もろもろのものを消して、form1と表示されるのを確認してクリックすると、やったー!うわぁーい!\(^_^)/
ホントたったこれだけのことなんですが、起動時に無事自動で表示されるようになって、物凄くうれしいです。
>>929
漏れの場合、上のように素直に喜んでいるので無問題だと思います。やったぁー!うわぁーい!\(^_^)/
細かいことは、これから試行錯誤で掴んでいくと思います。awkもPerlもそうだったので。
0941デフォルトの名無しさん
2005/11/08(火) 23:04:43◎
ファイル開くときの例外処理があれば完璧だったな。
あと、StrToFloat失敗で終了は厳しすぎるきも。
でも問題ではない。
次は、これをTStringListの代わりにTextFileを使って書き直せ。
両者のメリットデメリットを上げられれば完璧。
0942デフォルトの名無しさん
2005/11/09(水) 17:24:50メリットデメリット:TStringListはファイルを一度に読み込むのでメモリがたくさん必要、TextFileは逐次で読み込むので必要なメモリが少ない
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils, Classes;
const
filename='test.txt';
var
sum: double;
fp: TextFile;
str: string;
begin
sum:=0;
try
AssignFile(fp, filename);
Reset(fp);
except
Writeln('ファイルオープンに失敗');
exit;
end;
while (not Eof(fp)) do
begin
Readln(fp, str);
sum:=sum+StrToFloatDef(str, 0);
end;
CloseFile(fp);
writeln(FloatToStr(sum));
end.
0943デフォルトの名無しさん
2005/11/09(水) 18:35:48うーん今回のはちょっと合格にできないなー
1 例外処理が甘い(特にファイル操作はほぼ定番の書き方があるので)
2 TStringListのメリット、TextFileのデメリットもほしい
厳しい気もするが
あとコンソールアプリなのでExit多用したくなるのは分かるのだけど
普通のあぷの場合ははまる事が多いので関数開始直後とかの
はっきりした場所で無い限り使用は避けるのが無難。
よーくみてみたら938もメモリーリークの可能性あり。
0944デフォルトの名無しさん
2005/11/09(水) 19:38:53>メモリリークの可能性あり
ねーよ。
以下ヘルプより。
>Exit は,現在のブロックではなく現在の手続きから制御を呼び出し元に戻します。
>ただし,Exit は try..finally 構文で指示されている制御フローを終了しません。
>Exit が try 節内で呼び出されると finally 節が実行されます。
0945デフォルトの名無しさん
2005/11/09(水) 19:52:440946デフォルトの名無しさん
2005/11/09(水) 21:20:58各種文法をヘルプ見ながらもう一回復習
0947デフォルトの名無しさん
2005/11/09(水) 22:22:31>>946
ごめんごめん。
おっさんD5までしか使ってなかったから知らんかった。
そのためにAbortがあるのかと思っていたよ。
Exit使うなは撤回するよ。がんがんExit使おうぜ!
0948デフォルトの名無しさん
2005/11/09(水) 22:52:32再提出です
読み込み中にエラーになった場合は結果が正しくないので表示しないよう気をつけました
TStringListのメリット
・便利なメソッドが使える
・データの管理もしてくれる
TextFileのデメリット
・読み込むだけでも少しソースが長くなる
・好きな行をランダムにアクセスできない
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils, Classes;
const
filename='test.txt';
var
sum: double;
fp: TextFile;
str: string;
error: Boolean;
begin
sum:=0;
error:=false;
0949デフォルトの名無しさん
2005/11/09(水) 22:53:51AssignFile(fp, filename);
Reset(fp);
except
Writeln('ファイルオープンに失敗');
exit;
end;
try
try
while (not Eof(fp)) do
begin
Readln(fp, str);
sum:=sum+StrToFloatDef(str, 0);
end;
except
error:=true;
end;
finally
CloseFile(fp);
end;
if error then
begin
Writeln('読み込み中にエラー');
end
else
begin
writeln(FloatToStr(sum));
end;
end.
//EOF
0950デフォルトの名無しさん
2005/11/10(木) 08:18:26メリットデメリットは◎
まとめるとTextFileだと2行戻るとか、データを書き直すとかが困難。
そういう処理が必要なくただ1行1行読んでいくだけであればTextFileのが軽くてよいと。
ソースはほぼ正解。
ただ、例外処理をどれだけ理解してるかでソフトの質がかなり変わるので
厳しくいきたい。
ヒントは
・エラーメッセージ表示部分はまとめられるならまとめたほうがよい
(コンソールアプリでなければdel任せでもよい)。
・例外自体が持つメッセージが妥当ならそれをそのまま表示すればよい。
妥当でなければ妥当なメッセージを持つ例外を自分で投げればよい。
0951デフォルトの名無しさん
2005/11/10(木) 10:12:33program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils, Classes;
const
filename='test.txt';
var
sum: double;
fp: TextFile;
str: string;
error: Boolean;
ErrorString: string;
begin
sum:=0;
error:=false;
try
AssignFile(fp, filename);
Reset(fp);
except
on E: Exception do
begin
ErrorString:=E.Message;
error:=true;
end;
end;
0952デフォルトの名無しさん
2005/11/10(木) 10:13:03begin
try
try
while (not Eof(fp)) do
begin
Readln(fp, str);
sum:=sum+StrToFloatDef(str, 0);
end;
except
error:=true;
end;
finally
CloseFile(fp);
end;
end;
if error then
begin
Writeln(ErrorString);
end
else
begin
writeln(FloatToStr(sum));
end;
end.
//EOF
0953デフォルトの名無しさん
2005/11/10(木) 19:05:21混乱させてるかな・・・
確かに例外処理が無かった頃はフラグでエラー処理とかしてたのだけれど
それをスマートに書くために例外処理機能ができたといってよい。
どうしてもフラグ使ったほうがわかりやすい場合や
達人が処理速度重視してフラグを使うのはいいと思うのだけれど
ここでは基本に忠実に処理して欲しい。
ヒント
try
except
on E: Exception do Writeln(E.Message);
end;
try と except のなかに全部の実行コードを書けばよいはず。
0954デフォルトの名無しさん
2005/11/10(木) 19:52:47読み込み中に例外が発生するとファイルをクローズできないのでは
ないかと気にしていますがどうでしょうか
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils, Classes;
const
filename='test.txt';
var
sum: double;
fp: TextFile;
str: string;
begin
sum:=0;
try
AssignFile(fp, filename);
Reset(fp);
while (not Eof(fp)) do
begin
Readln(fp, str);
sum:=sum+StrToFloatDef(str, 0);
end;
CloseFile(fp);
writeln(FloatToStr(sum));
except
on E: Exception do Writeln(E.Message);
end;
end.
0955デフォルトの名無しさん
2005/11/10(木) 20:16:18try
ファイルアクセス
finally
CloseFile(fp)
end;
0956デフォルトの名無しさん
2005/11/10(木) 21:01:10うまくいきました、ありがとうございます
Writelnの位置で悩んでたのですがクローズする前でもいいとやっと気づきました
例外は(戻り値をチェックするのと同じように)関数ごとにtryで囲むものだと思っていたので考えを改めます
uses
SysUtils, Classes;
const
filename='test.txt';
var
sum: double;
fp: TextFile;
str: string;
begin
sum:=0;
try
AssignFile(fp, filename);
Reset(fp);
try
while (not Eof(fp)) do
begin
Readln(fp, str);
sum:=sum+StrToFloatDef(str, 0);
end;
writeln(FloatToStr(sum));
finally
CloseFile(fp);
end;
except
on E: Exception do Writeln(E.Message);
end;
end.
0957デフォルトの名無しさん
2005/11/10(木) 21:55:29◎
次は、例外処理の締めとしてRaiseを使おう。
ファイルが開けないときは
writeln(filename)した後、今の例外処理(Writeln(E.Message);)
を実行するように、
また、読み込みエラーのときは、E.Messageの内容を
"読み込めねー"
に変更してみてみてくれ。どちらも Raise を使えば簡単にできる。
0958駆け出し名無し
2005/11/11(金) 07:45:06いつも左に寄っていて、右揃えにしたいと思うのですが。
0959デフォルトの名無しさん
2005/11/11(金) 13:28:290960デフォルトの名無しさん
2005/11/11(金) 20:01:132000とかXPならCreateParamsをoverrideしてウィンドウスタイル設定してやればいけるはず。
0961駆け出し名無し
2005/11/12(土) 02:05:47なるほど、標準仕様じゃ駄目なんですね。
ポトペタするためには、部品を掻き集めてこないと。
お陰様で少しDelphiプログラミングの概要が掴めた気がします。
ぐぐってみてDelphian Worldを見つけ、登録コンポーネントを見てみましたが、
どれがいいのかよくわからないような状態です。Delphi P6 で使えるのは?
D6とあるものだけがきっと使えるのでしょうね。
>>960
> 2000とかXPならCreateParamsをoverrideしてウィンドウスタイル設定してやればいけるはず。
漏れには、まだこの意味がよくわかっていないのですが、頑張って理解したいと思います。
0962駆け出し名無し
2005/11/12(土) 15:20:30何回かで偶然ここ(>>149)が出てきました。うわぁーい!\(^_^)/
> AnsiReplaceStrやAnsiReplaceTextでどうでしょ?
文字列置換は、awkやPerlではよく使っていたので、確かsubstrだったっけ?
これがDelphiじゃ標準的な関数なんでしょうね。
> DELPHIで良く使用する制御文字
> DELPHIで良く使用する制御文字を
> 下記に列挙します。
>
> 改行コード CR #13
> 改行コード LF #10
> 改行コード CRLF #13#10
> タブ #9
>
> 改行コードは
> WindowsではCRLF
> MacではCR
> Unix系ではLF
> となっています。
その過程で、というのもついでに見つけました。
「S :=AnsiReplaceText(S, '投稿日:', 'DateTo(');」とあると、使い方は、以下みたいなのかな?
改行を半角スペースにする積りなんですが・・・。s := AnsiReplaceText(s,'#13#10',' ')
あと、高速のReplaceString 関数も: ttp://leed.issp.u-tokyo.ac.jp/~takeuchi/delphi/article/069/069334.html
0963デフォルトの名無しさん
2005/11/12(土) 19:29:48TEditは「何かのヴィジュアルコンポーネント」の一種で、
「何かのヴィジュアルコンポーネント」は「何かの(アイコン表示されるものも含む)コンポーネント」の一種…。
これはわかる?
派生といって、既存のグループに属する新種を作り出すことができるんだけど、
新しいコンポーネントもそうやって作成する。
この場合、「新しいコンポーネント」をTEditの一種として作ればいい。
overrideってのはあるメソッドを自作のもので上書きすること。
難しそうだけど、実際必要なコード量はメチャ少ない。
既存コンポーネントのほうも、D6と無くても、恐らく動作確認がなされてないだけで使えるかもしれない。
というか使えない方がおかしい。
インストール時に設計時パッケージまわりの仕様変更でつまずくかもしれないし
この程度の事でもバージョン依存してる変な既存コンポーネントもあるかもしれないけれど
それはそれで設計時の動作を理解するきかっけになるので、
自作でも利用でも、まずやってみて、
つまずいたらまたここに聞きに来ればいいんじゃないかな。
0964デフォルトの名無しさん
2005/11/12(土) 20:36:120965デフォルトの名無しさん
2005/11/12(土) 20:37:480966駆け出し名無し
2005/11/12(土) 21:38:54>派生といって、既存のグループに属する新種を作り出すことができるんだけど、
上のはイメージではわかりますが、確かこれは「型の継承」と言って、
オブジェクト指向言語の特性というのは読み込んだ資料に書いてありました。
派生は違うのかな?
>overrideってのはあるメソッドを自作のもので上書きすること。
ということは、そのメソッドも継承されるということですか?
>難しそうだけど、実際必要なコード量はメチャ少ない。
みたいですね。漏れの場合、辿りつくのに物凄く時間は掛かるけど、書けたら意外に短いです。
>既存コンポーネントのほうも、D6と無くても、恐らく動作確認がなされてないだけで使えるかもしれない。
>というか使えない方がおかしい。
普通は上位互換ですよね。でも、エラーを吐いたんだけどなあ。それ聞いてコンポ探しにやっと安心しました。
>それはそれで設計時の動作を理解するきかっけになるので、
ですね。まだまだ、強引なコーディングの癖が抜けないので、コンパイラから怒られてばかりです。_| ̄|○
後で書いても駄目なのね・・・。ちゃんとした書き方を身に付けないと。きっと新規フォームもそうなのかな?
他のを調べて、ちゃんと宣言部分も書いたんだけどなあ。
>自作でも利用でも、まずやってみて、
>つまずいたらまたここに聞きに来ればいいんじゃないかな。
そうします。またよろしくお願いしますね。m(_ _)m
0967駆け出し名無し
2005/11/12(土) 21:40:57TMyEdit クラスのコードと聞いてもチンプンカンプンなんですが、
コードを示していただければ、また勉強になると思うのでよろしくお願いいたします。
前にされていた方のような「道場破り」的な難度だと、漏れには全く駄目ですから。
今後ともよろしくお願いいたします。
0968デフォルトの名無しさん
2005/11/12(土) 22:30:39program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils, Classes;
const
filename='test.txt';
var
sum: double;
fp: TextFile;
str: string;
begin
sum:=0;
try
try
AssignFile(fp, filename);
Reset(fp);
try
while (not Eof(fp)) do
begin
Readln(fp, str);
sum:=sum+StrToFloatDef(str, 0);
0969デフォルトの名無しさん
2005/11/12(土) 22:31:10writeln(FloatToStr(sum));
finally
CloseFile(fp);
end;
except
on E: EInOutError do
begin
case (E.ErrorCode) of
2:
begin
writeln(filename);
raise
end;
else
begin
raise Exception.Create('読み込めねー');
0970デフォルトの名無しさん
2005/11/12(土) 22:31:38end;
end;
end;
except
on E: Exception do Writeln(E.Message);
end;
end.
0971デフォルトの名無しさん
2005/11/12(土) 22:54:130972デフォルトの名無しさん
2005/11/12(土) 23:18:36派生 derive
継承 inherit …「星を継ぐもの(star inheritors)」とか
対応する英語は違うけど、意味は、だいたいおんなじ。
それから、型を継承したらメソッドも全部くっついてきます。
0973デフォルトの名無しさん
2005/11/13(日) 00:21:54type
TMyEdit = class(TEdit)
protected
procedure CreateParams(var Params: TCreateParams); override;
end;
procedure TMyEdit.CreateParams(var Params: TCreateParams);
begin
inherited;
Params.Style := Params.Style + ES_RIGHT;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
with TMyEdit.Create(self) do
begin
Parent := self;
Left := 10;
Top := 10;
Text := '右よせ';
end;
end;
0974駆け出し名無し
2005/11/13(日) 01:20:07>それから、型を継承したらメソッドも全部くっついてきます。
ご丁寧に解説していただき、本当に有難うございました。
同じ意味なんですね。 「星を継ぐもの(star inheritors)」なのか・・・。
そうやってメソッドも付いてくるから便利なんですね。なるほどなあ。
>>973
まだよくはわからないのですが、その大体の雰囲気は掴めました。
機能を付け加えると書かれたイメージが。後でよく検討してみますね。
わざわざ有難うございました。
0975駆け出し名無し
2005/11/13(日) 01:28:26b ----> a b c
c
のように改行で区切られた中身(前後に半角スペース等がつく場合あり)を
半角スペース区切りにしようと思って、以下のようなコードを書いたのですが、
よくわかりません。testという文字列変数に入っています。どうして駄目なのかな?
Memo1.Lines.Add( AnsiReplaceText(Trim(test) ,'#13#10' ,' '));
0976デフォルトの名無しさん
2005/11/13(日) 01:36:38#13#10
または
sLineBreak
0977デフォルトの名無しさん
2005/11/13(日) 02:08:01http://pc8.2ch.net/test/read.cgi/tech/1131168199/
0978デフォルトの名無しさん
2005/11/13(日) 09:02:05やはり例外処理は初心者にとって第一の壁みたいだな。
でも完全に理解すればほんとプログラムの質が上がるのでがんばれ。
ヒント:
try
try
except
end;
except
end;
0979駆け出し名無し
2005/11/13(日) 10:42:51> #13#10'ではなく #13#10
> sLineBreak
ああーっ?! そうだったのかー・・・。_| ̄|○
有難うございます。表記の仕方が駄目だったんですね。
囲まなくてもいいのか。全く考えてもいなかった可能性でした。
awkやPerlでは囲っていたような気がするので、その辺の癖でしょうね。
駄目駄目な漏れですが、今後ともまたよろしくお願いいたします。m(_ _)m
0980駆け出し名無し
2005/11/13(日) 11:02:49そこって、以下ですよね。合流か・・・。
くだすれDelphi(超初心者)その28
ttp://pc8.2ch.net/test/read.cgi/tech/1131168199/l50
漏れみたいな人間でも、ここなら気軽に書けたんだけどなあ。
ここのPart02があればいいなあ。で、テンプレに追加した方がいいような情報。
Windowsの種類を知る処理を調べるためにぐぐっていて見つけたいいサイト?
でも、そのコードをいじってみたけど、所詮付け焼刃だから漏れには無理だった。orz
(Delphiの制御文字情報(>>962)は実はぐぐってで一番目のここから)
・INTERSKILL REPORTS: ttp://interskill.main.jp/
・Delphi Acid Floor: ttp://www.wwlnk.com/boheme/
・TORRY's Delphi: ttp://www.torry.net/index.php
漏れの場合、実際のコードを見た方がわかるからで。当たり前の話ですが。
ぐぐってコードを見つけて、それを流用している感じですね。自分で書いていないじゃん・・・。
0981デフォルトの名無しさん
2005/11/13(日) 11:09:440982駆け出し名無し
2005/11/13(日) 11:33:35うわぁーい!やったー!!!\(^_^)/
全くの流用だけど、WindowsOSの種類を吐くプログラムが書けたぞ。
結果で考えれば、関数の定義、戻り値の定義が不整合。整数と文字列で・・・。
たったこれだけで、漏れは、昨晩夜遅くまで悩んでいたのか。_| ̄|○
きっとあっちじゃ、こんな気軽には書けそうもない気がするなあ。
0983デフォルトの名無しさん
2005/11/13(日) 11:55:03質問は質問スレで。
ここは重複。
質問スレがどうしても嫌だというなら次スレはマ板に立ててくれ。
最低限の板のルールは守ろう。
0984デフォルトの名無しさん
2005/11/13(日) 16:41:30くだすれ(超初心者)は時々変な人が来るから、書きづらいって事?
くだすれ(中級者)の次すれでもOKだと思う。
0985デフォルトの名無しさん
2005/11/13(日) 17:04:50重複にならないよう、マ板に立てればいいんじゃない?
0986デフォルトの名無しさん
2005/11/13(日) 17:13:470987駆け出し名無し
2005/11/13(日) 17:45:28マ板って、きっとプログラマー板ってことですよね。
前に荒れることが多いって書いてあったような気がしますが。
でも、そう言うなら、やっぱりここはこれで終わりにしましょうか。
道場破りをしていた人は、あっちでもあれが出来るのかな?
>>984
漏れはまだまだ駆け出しだから、超初心者くだすれでいいです。
ここで漏れを教えていただいていた方があっちでも教えてくれれば。
ここみたいに隔離されていた方が気が楽だったんですが。あっちで頑張ってみます。
あっちを読んでみて漏れには難しいと思っていたところ、ここを見つけたのですが・・・。
あと今知ったのですが、置換関数には「StringReplace」というのもあるんですね。
ということで、あちらでもまたよろしくお願いいたします。ぺこり。m(_ _)m
0988デフォルトの名無しさん
2005/11/13(日) 18:04:10適当な誘導すんなよ
0989駆け出し名無し
2005/11/13(日) 19:02:11板に行って見て来ましたが、「人」としての話題がメインのようですね。
勤務条件とかで、プログラム自体の話題はどうも違う気がしました。
0990デフォルトの名無しさん
2005/11/13(日) 19:45:470992駆け出し名無し
2005/11/13(日) 20:44:20ttp://ww3.tiki.ne.jp/~torigoe/01.html
を見て、IDEの設定を変えているのですが、
フォントの指定がイマイチのような気がします。
FixedSysって13ポイントしか選べないようなのですが、
どのフォントがお勧めなのでしょうか?よろしくお願いします。
0993デフォルトの名無しさん
2005/11/13(日) 20:59:04オレハいつもTerminalの10ポイントあたり。
これが 0とO、 1とl、 ;と:、 .と, あたりの区別が一番しやすい。
あと横幅が比較的狭いので画面が広く使える。
0994駆け出し名無し
2005/11/13(日) 21:15:24> サイズ固定だからFixedSysなんだけど。
あーっ・・・。フォントの名前だとばかり。
文字通り固定フォントだったのか。_| ̄|○
> オレハいつもTerminalの10ポイントあたり。
> これが 0とO、 1とl、 ;と:、 .と, あたりの区別が一番しやすい。
有難うございます。早速、これに変えてみますね。
参考にしたサイトも、このTerminalでした。定番みたいですね。
良かったなあ、やっと謎が解けて。漏れが呆けているだけじゃん・・・。
こんな乗りになるから、あっちでも大丈夫なのかなあ・・・。心配だ。orz
0995ななしへたぐらま ◆XcB18Bks.Y
2005/11/13(日) 22:36:04"System"というプロポーショナル(文字によって幅の異なる)フォントがあるのですが
これもサイズが1種類しかないのです.
フォントのデザインも"FixedSys"は"System"の固定幅版です.
0996駆け出し名無し
2005/11/13(日) 22:48:38> フォントのデザインも"FixedSys"は"System"の固定幅版です.
なるほど、そういう意味だったのですね。FixedSystemの省略形で。
そうやって意味がわかると、よく理解できますね。有難うございました。
0997駆け出し名無し
2005/11/13(日) 22:53:07Delphiは統合環境でエディターはIDEを使って書くのが普通なんですが、
でないと、しょっちゅう怒られてばかりなんですが、知ってから書くのに役立つ
機能説明サイトは、以下くらいでしょうか?
・Delphi 6 のショートカットキー: ttp://www.ss.iij4u.or.jp/~somali/extra/_delphi_shortcut.html
・IDE Tips: ttp://www.kanazawa-net.ne.jp/~pmansato/IDE_Tips.htm
0998デフォルトの名無しさん
2005/11/13(日) 23:18:08IEコンポーネントを表示することはできたのですが、
そこにHTMLを追加するにはどうすればいいんでしょう?
0999デフォルトの名無しさん
2005/11/13(日) 23:37:061000デフォルトの名無しさん
2005/11/13(日) 23:38:0310011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。