トップページ⇒tech
1001コメント319KB

モナーの *やさしい* Delphi質問スレ Ver.5

■ このスレッドは過去ログ倉庫に格納されています
0001Delモナー ◆fPymXWHY NGNG

  ∧_∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ( ´∀`)<. Delモナーがどんな厨房疑問でもやさしく答えます。
 (    ) .| Delモナーは時に私であり、時には別の人。
 | | |  | 他のスレに書き込んで罵倒される前に、まずここで質問しよう。
 (__)_)  \_________________________

前スレ Ver.4
http://pc.2ch.net/test/read.cgi/tech/1016467137/
それ以前は >>2 参照。

Delphi6のアップデートは済んでいますか。最新版は3月29日。 >>5
ソース置き場作りました。ファイルのアップロードもできます。 >>7

○過去スレ >>2
○関連スレ >>3-4
○Delphi製品情報 >>5
○関連リンク >>6
○質問者へ >>6
○ソース置き場案内 >>7
0153デフォルトの名無しさんNGNG
>>148
Delphi6のPersonalは無料なんだからそれを使えって

CD欲しけりゃもらえるしダウンロードも出来る
Indyだってただなんだし(俺の記憶では)
0154デフォルトの名無しさんNGNG
>>152
何コイツ?
自作自演?
0155114NGNG
Personalはコンパ炒るできないんだろ?>>153
0156114NGNG
それに、重過ぎだ…。>>153
0157デフォルトの名無しさんNGNG
>>155
ハァ?
黄色い救急車呼んでこい
0158デフォルトの名無しさんNGNG
>>155
何がコンパイル出来ないのかよく判らんが・・・。
何の話?コンパイルできるけど?
0159デフォルトの名無しさんNGNG
>>146
146が器と中身を混同しているのでは?

「飯」を「象印の炊飯器」で炊く
のと、

「象印の炊飯器」を炊く
の違いが判らないと理解できないかも(藁
0160デフォルトの名無しさんNGNG
>>155
えーっとな
まず言われたとおり使ってから文句言え。
コンパイル出来ない物を売るか

>>156
何と比べて重いのか・・・
0161114NGNG
EXEつくれるのか?
0162デフォルトの名無しさんNGNG
>>114
exeどころかもう。。。なあ149>>
0163114NGNG
Indyが、どんなんか分からないとDLしたくない。
DLしたことによってパソの設定変えたくないから。
Indyがパソが狂うよりもいいものだったら、考えようだが。
0164デフォルトの名無しさんNGNG
>>144への手順

・Borland.co.jpに行く http://www.borland.co.jp/
・DelphiPersonalをダウンロードする http://www.borland.co.jp/news/del6personal_j.html
・DelphiUpdate2をダウンロードする http://www.borland.co.jp/download/delphi.html
・ライセンスキーを取得する(無料) http://register.borland.co.jp/delphi_personal.htm
・Delphi6PersonalとUpdate2をインストール

これでDelphi6が使えるわけだ

あとはIndyとかを個人好みで入れれば良い。
0165デフォルトの名無しさんNGNG
うえのレス間違い ×>>144 ○>>114
0166デフォルトの名無しさんNGNG
>>161
普通に開発出来る
0167デフォルトの名無しさんNGNG

  ∧_∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ( ・∀・)< >>114はもう少し自分で
 (    ) \  調べてから発言してね ♥
 | | |   \___________
 (__)_)

Indy使うの嫌だったら他にFTPの扱えるコンポーネントを
探して、それでもどれも使いたくないと言うのならSocket
から作ってね。
0168デフォルトの名無しさんNGNG
114は何でDelphiやってるん?
0169デフォルトの名無しさんNGNG
「きどった」ってナニ?
0170デフォルトの名無しさんNGNG
>>163
マジで、何言ってるのかわかりません。
Indyでパソ?(パソコンの事か?)の設定?(レジストリの事か?)
パソが狂う?(暴走する事か?)
そんな事ないよ、IndyってDelphi用のコンポーネントなんだが?
何と勘違いしたらそんな話になるんだ?

ちょっと自分で調べてから発言しないと、ウザがられますよ?
0171114NGNG
いや、PersonalをDLして今使っているlearningの
拡張子が変わってしまうのがいや。
Delphi6って、ちょっとDelphi5に比べて形変わっているから、
初心者でいるうちは、Delphi5から移りたくない。
だから、NMHTTPきぼーん。
0172114NGNG
あと、Indyってどんなんだよ。
自分で調べろってか?
0173114NGNG
Indyはコンポーネントで、Web開発のために使うことぐらいは
話から分かるけど。
0174デフォルトの名無しさんNGNG
>>171
>拡張子が変わってしまうのがいや。
何の拡張子?何が変わったよ?

>Delphi6って、ちょっとDelphi5に比べて形変わっているから、

形が変わった?意味不明なんですけど。

>>172
http://www.google.co.jp/search?q=Indy&hl=ja&lr=
0175114NGNG
>>169
本人の真似をしているということ。
0176114NGNG
前に書かれていた「TIdHTTP」とはIndyのことだったのか。
0177114NGNG
なんか漏れ、荒らしてるのか?
0178114NGNG
PersonalをDLするんじゃなくて、
IndyそのものをDLできませぬか?
0179デフォルトの名無しさんNGNG
はぁ・・・さすがに・・・・専用サポート部隊にされてもなあ
0180デフォルトの名無しさんNGNG
騙る←きどる?
0181114NGNG
とっとと答えんか〜〜〜!!!
0182114NGNG
>>180
ハァ? アタマ大丈夫デスカァ?
0183デフォルトの名無しさんNGNG
>>180
騙る【きどる】
0184デフォルトの名無しさんNGNG
>>114
http://www.sakaki.keiaikai.or.jp/Library/webconv/compile.html
0185デフォルトの名無しさんNGNG
>>114
まず名前欄に fusianasan#好きな言葉 って入れろ

好きな言葉はパスワードみたいなものだ。
忘れないように。#(シャープ)も忘れるなよ。
0186114NGNG
>>185
アフォが!!
0187114NGNG
>>181
答えたわ!アフォが!!
0188114NGNG
>>184
Thank You!!
0189デフォルトの名無しさんNGNG
天然物の荒しか?ちょっとオマエ!細切れに書き込むの止めてくれんか?
番号無駄に上がるし、ここはそんなスレじゃないんでヨロシク頼む。
0190デフォルトの名無しさんNGNG
>6にあるように厨房並みの質問はいいが厨房はお断り。
よって今後>114は放置の方向で。
0191114NGNG
(゚∀゚)ネタでした(゚∀゚)
0192デフォルトの名無しさんNGNG
スレが汚れたのでリセット

>>111
>for Stream.Position := 0 to Stream.Size-1 do ...
>っていう使い方が出来ると便利なのに。
便利さはしばしば安全性とのトレードオフになるからね〜

便利さを重んじたのがC/C++で
安全性を重んじたのがPascal(Object Pascal)なんじゃない?

俺は注意力に自信がないからストロングタイピングな言語の方が安心だけど
0193デフォルトの名無しさんNGNG
c++とDelphiにはVBの様なLike演算子がありませんがこれに相当する物ってありますか?
0194デフォルトの名無しさんNGNG
VBのLIKE演算子って、どいういうの?
0195114NGNG
Personal、DLします。
0196デフォルトの名無しさんNGNG
>>194
MSDN Library Like 演算子
http://www.microsoft.com/japan/developer/library/default.asp?URL=/japan/developer/library/vbenlr98/vaoprlike.htm
パターンマッチングができる。
0197デフォルトの名無しさんNGNG
無い
http://member.nifty.ne.jp/h_kova/procomp.htm
0198デフォルトの名無しさんNGNG
>>195
やっとかよ・・・

4時間前から言ってやったのに
0199デフォルトの名無しさんNGNG
>>197
無いことは知ってるんです。

ですからそれ相当の物があるのかもしくは自分で作れないかと思って。
関数なりを。
0200デフォルトの名無しさんNGNG
Format() ?
0201デフォルトの名無しさんNGNG
>>199
strstr()
0202デフォルトの名無しさんNGNG
Likeは確かに便利だよね。
Delphiには残念ながら存在しないので、文字列だったらPosを駆使する
ことになると思います。
0203デフォルトの名無しさんNGNG
便利だな、これ。
ワイルドカードだ疲れればいいんだよね。
オートマトンでどうにかなるんじゃない?
0204デフォルトの名無しさんNGNG
  function StrHikaku(a,b:string):boolean;
  var
    idxA,idxB:Integer;
    wLenA,wLenB:integer;
    wUMC,wWC1,wWC2:Boolean;
  begin
    wLenA:=Length(a);
    wLenB:=Length(b);

    wUMC:=False;
    wWC1:=False;
    wWC2:=False;
    idxA:=0;
    for idxB:=1 to wLenB do
    begin

      if (wWC1=False) then
      begin
        inc(idxA);
        if (idxA>wLenA) then wUMC:=True;
      end;

      if (a[idxA]='*') then
      begin
        inc(idxA);
        if (idxA>wLenA) then wWC2:=True;
        wWC1:=True;
      end;
      if (a[idxB]='?') then wWC2:=True;

      if (wWC2=False) then
      begin
        if (a[idxA]=b[idxB]) then
        begin
          if (wWC1=True) then wWC1:=False;
        end else begin
          if (wWC1=False) then wUMC:=True;
        end;
      end;
      wWC2:=False;

      if (wUMC=True) then Break;

    end;

    if (wUMC=True) then
      result := false
    else
      result := true;

  end;
0205デフォルトの名無しさんNGNG
>>196
Professional以上ならMasksとかいうワイルドカード扱うUnitが
あったはず。
0206デフォルトの名無しさんNGNG
>>204
aの文字数が長い時のチェックが無いね
0207デフォルトの名無しさんNGNG
>>204
最後辺りの if文のところを
if (wUMC=True) or (idxA<wLenA) then
すりゃ判定できるみたいだが、機能が不足してるし、わかりづらいなぁ。
それに、速度的にどーよ。
0208デフォルトの名無しさんNGNG
>>207
有難うございました。
0209DELモナNGNG
これでどーよ

function Like(Str,Ptn:string):Boolean;
var
 P,I:Integer;
begin
 Result := False;
 if Str = '' then Exit;
 if Ptn = '' then Exit;
 P := 1;
 I := 1;
 while (P <= Length(Ptn)) and ( Ptn[P] = '*' ) do Inc(P);
 while (I <= Length(Str)) and ( P <= Length(Ptn) )do begin
  if Ptn[P] = '?' then
   Inc(P)
  else begin
   if Ptn[P] = '*' then Inc(P);
   if Ptn[P] = Str[I] then Inc(P);
  end;
 Inc(I);
 end;

 Result := (P > Length(Ptn)) and (I > Length(Str) );
 { Ptn が含まれているかどうかを調べるには以下の結果を使う }
 { Result := P > Length(Ptn); }
end;
0210デフォルトの名無しさんNGNG
>>209
>>204ソース + バグ修正 の方が結果が正しいようだが・・・。
0211デフォルトの名無しさんNGNG
>>209
ごめん、正しく動いてたみたいです。
0212DELモナNGNG
機能が増えたYO. "abc" にたいして a[Bb]* と書いてもマッチする.
function Like(Str,Ptn:string):Boolean;
var
P,I:Integer;
N:string;
begin
Result := False; N := ''; P := 1; I := 1;
if Str = '' then Exit; if Ptn = '' then Exit;
while (P <= Length(Ptn)) and (Ptn[P]='*') do Inc(P);
while (I <= Length(Str)) and (P <= Length(Ptn))do begin
if Ptn[P] = '[' then begin
N := ''; Inc(P);
while (P <= Length(Ptn)) and (Ptn[P] <> ']') do begin N := N + Ptn[P]; Inc(P); end;
end;
if N <> '' then begin
if Pos( Str[I], N )>0 then begin Inc(P); N := ''; end
end
else
if Ptn[P] = '?' then Inc(P)
else begin
if Ptn[P] = '*' then Inc(P);
if Ptn[P] = Str[I] then Inc(P);
end;
Inc(I);
end;
Result := (P > Length(Ptn)) and (I > Length(Str) );
{ Ptn が含まれているかどうかを調べるには以下の結果を使う }
{ Result := P > Length(Ptn); }
end;
0213デフォルトの名無しさんNGNG
>>212
おお!凄い
この勢いで正規表現まで頑張って下さい、期待してます!
0214デフォルトの名無しさんNGNG
頑張って下さい!(藁
0215デフォルトの名無しさんNGNG
114は俺を含めた何人いたんだろ・・・
0216デフォルトの名無しさんNGNG
これで最後にしておくよ。
"3ce5" に "3c[a-zA-Z]5"がマッチすると。

function Like(Str,Ptn:string):Boolean;
 function GetCharList(List:string):string;
 var
  I:Integer;
  C:Char;
 begin
  Result := '';
  for I:=1 to Length(List) do
   if List[I] = '-' then
    for C := Succ( List[I-1] ) to List[I+1] do
     Result := Result + C
   else
     Result := Result + List[I];
 end;
var
 P,I:Integer; N:string;
begin
 Result := False; N := ''; P := 1; I := 1;
 if Str = '' then Exit;
 if Ptn = '' then Exit;
 while (P <= Length(Ptn)) and (Ptn[P]='*') do
  Inc(P);

 while (I <= Length(Str)) and (P <= Length(Ptn)) do begin
  if Ptn[P] = '[' then begin
   N := '';
   Inc(P);
   while (P <= Length(Ptn)) and (Ptn[P] <> ']') do begin
    N := N + Ptn[P];
    Inc(P);
   end;
   N := GetCharList(N);
  end;

  if N <> '' then begin
   if Pos( Str[I], N ) > 0 then begin
    Inc(P);
    N := '';
   end
  end
  else
   if Ptn[P] = '?' then
    Inc(P)
   else begin
    if Ptn[P] = '*' then Inc(P);
    if Ptn[P] = Str[I] then Inc(P);
   end;
   Inc(I);
 end;

 Result := (P > Length(Ptn)) and (I > Length(Str) );
 { Ptn が含まれているかどうかを調べるには以下の結果を使う }
 { Result := P > Length(Ptn); }
end;
0217デフォルトの名無しさんNGNG
>>215
まだそのネタやるつもりか?つまらん
0218114NGNG
>>215
本人ですが。次の式を証明することができました。
>>148=>>215
お前だけだったよ。偽者は(藁
0219デフォルトの名無しさんNGNG
(´-`)。o ○ (春だねぇ…)
0220デフォルトの名無しさんNGNG
春なのーに〜♪ おわかーれですーか〜♪
0221デフォルトの名無しさんNGNG
くぅ、なんでこんなにスレが伸びているのかと思ったら・・・
あ、Like作ってる人たちはすごいっす。
0222デフォルトの名無しさんNGNG
もう1つの質問スレも春真っ盛りだね。
0223Delフサギコ ◆zE1iiRdQ NGNG
   ∧,∧     ,::  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ミ,,゚Д゚彡っ━'~  | とりあえず、Like作成は
  ミ∪  ~,ノ    < テストコードを書いてから語ろうよ
   ミ  '' ミ       \____________
   し'~し'
0224デフォルトの名無しさんNGNG
あれだ
新学期になって中学生がパソコン買って貰ったから
「よーしプログラム組むべ!」
って気合い入れたは良いけど何をしたらいいのか、どの言語にしたら良いのかわからず。

だからVBスレッドやDelphiスレッドに厨が繁殖するんだ。
そうか・・新学期だったんだ・・・

ここが「やさしいスレ」で良かったね
0225デフォルトの名無しさんNGNG
独り言・・・?
0226インディakaインターネットは直接です。 NGNG
http://ocn.amikai.com/amiweb/browser.jsp?url=http%3A%2F%2Fwww.nevrona.com%2FIndy%2F&langpair=1%2C2&c_id=ocn&lang=JA&toolbar=yes&display=2


翻訳サービスもまだまだだなと思う(藁
0227インディakaインターネットは直接です。 NGNG
>デルフォイ6は8.0で船で行きます
いいね。旅情派だね。
0228インディakaインターネットは直接です。 NGNG
春だから見逃してくれや。「FAQ」の
>Why did the chicken cross the road?
>
>Some people say "To get to the other side.".
>We however are not really sure why the chicken crossed the road.
>It shall remain a mystery to the world.
>
>なぜ鶏は道を横断しましたか。
>何人かの人々は言います「反対側に到着すること」しかしながら、私たちは、
>なぜ鶏が道を横断したか実際に確信しません。それは、世界に対する神秘の
>ままであるものとします。
は、何なんだ?
0229デフォルトの名無しさんNGNG
お前は駄目な奴だな。
周りがみんな爆笑してる場面で「ねぇ今のどういうこと?」って聞いてまわるタイプ。
0230デフォルトの名無しさんNGNG
友達がVB.NET触ったらしいけどなんかDelphiみたいになってるらしいじゃん
VBもやっとオブジェクト指向になった?
既存ユーザには大変らしいけど新規ユーザーにはありがたいよね。
(.NET設計者そのものが、Delphiの人だったしね。もうBorland戻ったけど。)

Delphi.NETはまだですか?
C#Builderでもいいよ。
0231デフォルトの名無しさんNGNG
でも、Delphiと違ってソース公開じゃないから 仕様みて想像するしかない
から、深く使おうと思ったら逆に苦労しそうなんだよな
0232デフォルトの名無しさんNGNG
>(.NET設計者そのものが、Delphiの人だったしね。もうBorland戻ったけど。)
え?戻ったの?ソースキボンヌ。
0233デフォルトの名無しさんNGNG
>>231
ライブラリのソース公開の話が出てたよ。C#スレ参照
0234デフォルトの名無しさんNGNG
>>232
日系の本に書いてあったよ
「日系ソフトウェア」だったかな。

だいぶ前
0235デフォルトの名無しさんNGNG
そういや、.NET関係は全部公開だったね。
だから他のプラットホームに移植してる人がいるのだろうけど。
0236名無しへたぐらま ◆B18Bks.Y NGNG
>>93
TFormの謎
 『型』ってあるよね.クラス型やレコード型,列挙型など,いろいろあるけど,
 ボーランドさんは『型』の名前の先頭にTをつけるのが好きなの.
 プログラムを書く人にもこれをすすめてる.
 でもそうしなければいけないわけじゃない.

publicとprivate
 クラス(オブジェクト)で外側から見えるものがpublic(パブリック),
 見えない(操作できない)のがprivate(プライベート).
 見せなくていいものを徹底的に隠すことで
 プログラムの仕様があとで変わってしまっても最小限の変更で済む.

interfaceとuses
 上のpublicとprivateに似てるけど,
 ユニットのinterfaceと書かれた部分からimplementationと書かれた部分の間
 (interface節という)で宣言されている型,関数と手続き,変数,定数は
 ほかのユニットが必要に応じて参照することができる.
 implementation以後で宣言されているものは参照できない.

 usesはほかのユニットがinterface節で宣言している型,関数と手続き,変数,定数を
 『使う』ことができる.(use=使う)

 やはり見せなくていいものは極力見せないようにすべき.理由も一緒.
0237デフォルトの名無しさんNGNG
よくマジックナンバーと言う言葉を耳にするんですがどういう意味ですか?
0238デフォルトの名無しさんNGNG
>>236
publicとprivate、interfaceとimplementationは権限で説明した方がわかりやすくない?
自分はそうやって説明して貰ったら一発で理解出来た。

protectedが抜けてるけど良いのかな。
まあ>>236の言うとおり他から参照出来るかどうかだね。
0239デフォルトの名無しさんNGNG
>>237
謎の数字をそのまま打つこと。

strncpy(str1,str2,18);

通常はこのように意味のある言葉でdefineする。

#define MAXDATALENGTH 18

strncpy(str1,str2,MAXDATALENGTH);
0240クレールNGNG
Delphi2.0が秋葉原で500¥で売っていました(関係ないけど)
0241デフォルトの名無しさんNGNG
>>233 そのライブラリって CLIでCLRではなかったんじゃ?
つまり delphiで言えばsystem.pasの公開でVCLではないように思う
ちゃんと見た訳じゃないけど、textBoxをgrepしたけど見つからなかったし
0242デフォルトの名無しさんNGNG
TextOut関数の使い方がわかりません。
delphi5では
TextOut(x,y:Integer; text:string)
で動くらしいので何とかわかるのですが、
私が持っているdelphi6では
TextOut(dc:HDC; x,y:Integer; str:PChar; const:Integer)
となっていて何が何やら…。
既出でしたら誘導してもらえるとありがたいです。
0243デフォルトの名無しさんNGNG
>>237, 239
その意味もあるけど、データの型を示すためのいわゆるシグネチャ
としての意味もあるね。googleで調べりゃボロボロ出てくる。
0244デフォルトの名無しさんNGNG
Canvas.TextOutとWindows.TextOut?
0245デフォルトの名無しさんNGNG
安易にFocus()叩いて悩むみたいな。
0246デフォルトの名無しさんNGNG
>>242 TCanvasのヘルプから探すといいよ
0247デフォルトの名無しさんNGNG
type
 THogeTree=class(TTreeView)
 public
  constructor Create(AOwner: TComponent); override;
 end;

constructor THogeTree.Create(AOwner: TComponent);
begin
 inherited Create(AOwner);
 Name:='hogeee'
  Items.Add(nil,'aaaa');
end;

とすると、'コントロール'hogeeee'は親ウィンドウを持っていません'という例外が発生してしまいます。
色々やってItems.Addの前に「Parent:=(AOwner as TWinControl);」を
追加すればきちんと動作してくれるのはわかったんですが、
なぜ、Parentを指定しなければいけないんですか?
そういうもんなんでしょうか?
0248デフォルトの名無しさんNGNG
>>247 オーナーと描画先とは普通違うでしょ?

オーナーの廃棄と共にオブジェクトは消えて欲しいけど
描画先が廃棄されて一緒にアポーンされたら嫌でしょ?
0249デフォルトの名無しさんNGNG
>>236
>>238
ありがとう御座います
Publicとか理解出来ました。
その後Delphiの読みづらいコースウェアも読んでみました。
それにしてもDelphiのマニュアルは英語直訳って感じで分かりづらいですね。
分かってて当然って書き方されてるし・・・。

Delphiは入り込むのが難しそうだけどその後が楽そう。
0250249NGNG
あ、そうそう
procedureとfunctionはどう違うんですか?
関数じゃ無いのでしょうか?

procedureが手続きでfunctionが関数なのは分かるんですが、どう違うのか・・・

自分で勝手に
function TForm1.aaaaa;
begin
 Edit1.test := 'test';
end;
ってやったら動きましたけど・・。
0251デフォルトの名無しさんNGNG
>>250
procedure :void
function :!void
0252デフォルトの名無しさんNGNG
返値があるのがfunctionで、返値が無いのがprocedureだったと思います。
■ このスレッドは過去ログ倉庫に格納されています