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

Delphi相談室その7

■ このスレッドは過去ログ倉庫に格納されています
0001Delphi1 から使ってますNGNG
Borland Delphiに関する質問・相談などを扱っています。

ボーランド
http://www.borland.co.jp/

<関連スレッド>
モナーの *やさしい* Delphi質問スレ Ver.8
http://pc3.2ch.net/test/read.cgi/tech/1027873869/l50

・雑談はこちら
ミ,,゚Д゚彡フサギコのフサフサDelphi談話室�E
http://pc3.2ch.net/test/read.cgi/tech/1031668744/l50
0002Delphi1 から使ってますNGNG

■過去スレ
Delphi相談室その6
http://pc3.2ch.net/test/read.cgi/tech/1028436692/l50
Delphi相談室その5
http://pc3.2ch.net/test/read.cgi/tech/1022921598/ (html化待ち)
Delphi相談室その4
http://pc.2ch.net/tech/kako/1018/10182/1018211735.html
Delphi相談室その3
http://pc.2ch.net/tech/kako/1010/10101/1010153466.html
Delphi相談室その2
http://pc.2ch.net/tech/kako/995/995950803.html
Delphi相談室
http://piza.2ch.net/tech/kako/971/971261573.html
0003Delphi1 から使ってますNGNG
あと適当に貼っておいてください。
0004デフォルトの名無しさんNGNG
  ∧_∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ( ´∀`)<. Delモナーがどんな厨房疑問でもやさしく答えます。
 (    ) .| Delモナーは時に私であり、時には別の人。
 | | |  | 他のスレに書き込んで罵倒される前に、まずここで質問しよう。
 (__)_)  \_________________________
0005デフォルトの名無しさんNGNG
>>4
適当すぎるわヴォケ
0006デフォルトの名無しさんNGNG
Del7が26日発送ってことは、金曜日か土曜に届くから、
週末はDel7で遊べっていう個人ユーザへの配慮ですか?
0007デフォルトの名無しさんNGNG
なんだこの廃れ具合は・・・
0008デフォルトの名無しさんNGNG
久しぶりに Delphi Direct を起動してみたが
Delphi7 の情報がまったく無いのはどういうわけだ Borland
0009デフォルトの名無しさんNGNG
>>7
ゲー製作のノベルゲームスレにでも行ってるんじゃないの?
0010デフォルトの名無しさんNGNG
>>9
あそこってさりげに人気スレなのか?
0011デフォルトの名無しさんNGNG
やっぱ、やさしいスレと統合した方がいいのかな…
0012やさスレNGNG
>>11
おう、いつでも引き受けるぞ。
もちろんベースは俺らだからスレタイは俺らのがそんぞくだがな
0013Delフサギコ ◆VzDeLphI NGNG
 ミ,,゚Д゚ミ WideStringのUnicodeで
       カタカナ⇔ひらがな
       全角⇔半角
変換など、行うのは、どうするのでしたでしょうか。。
0014デフォルトの名無しさんNGNG
>>13
LCMapString
0015Delフサギコ ◆VzDeLphI NGNG
サンクスコ ミ,,゚Д゚彡ノ
[Delphi:41843] Re: 半角の数字を全角に( 遅レス+解決したので)
0016 NGNG
昨日Delphi 6 Personalをダウンロードしてユーザ登録して
メールで ライセンスキーとインストールキー届いたんだけど
インストール時に「キーが正しくありません」って跳ね返されてます(T_T
どうしてでしょうか?
のっけからつまずいてます・・・・
0017               NGNG
あ でけた♪
0018Delフサギコ ◆VzDeLphI NGNG
    ,,,,,,,,,,,,,,,∧,,∧   /こんな感じで
  〜′,,,,,,,,,,ミ,,゚Д゚彡< 
   UU"""" U  ⊃  \

function KanaToHira(const Source: WideString): WideString;
var
 Len: Integer;
begin
 Result := '';
 Len := Length(Source);
 SetLength(Result, Len);
 Windows.LCMapStringW(
  GetUserDefaultLCID(),
  LCMAP_HIRAGANA,
  PWideChar(Source),
  Len + 1,
  PWideChar(Result),
  Len + 1
  );
end;
0019Delフサギコ ◆VzDeLphI NGNG
    ,,,,,,,,,,,,,,,∧,,∧   /API使うので
  〜′,,,,,,,,,,ミ,,゚Д゚彡< 
   UU"""" U  ⊃  \

function HiraToKana(const Source: WideString): WideString;
var
 Len: Integer;
begin
 Result := '';
 Len := Length(Source);
 SetLength(Result, Len);
 Windows.LCMapStringW(
  GetUserDefaultLCID(),
  LCMAP_KATAKANA,
  PWideChar(Source),
  Len + 1,
  PWideChar(Result),
  Len + 1
  );
end;
0020Delフサギコ ◆VzDeLphI NGNG
    ,,,,,,,,,,,,,,,∧,,∧   /
  〜′,,,,,,,,,,ミ,,゚Д゚彡<  あってるのん?
   UU"""" U  ⊃  \ 

   ML検索してもLCMapStringW全然載ってない
   誰もUNICODEとかキにしてないんか...ゴルァ

procedure TForm1.Button1Click(Sender: TObject);
begin
 Check('あああ', KanaToHira('アあア'));
 Check('あかさたなはまやらわをん', KanaToHira('アカサタナハマヤラワヲン'));
 Check('アアア', HiraToKana('あアあ'));
 Check('アカサタナハマヤラワヲン', HiraToKana('あかさたなはまやらわをん'));

 Check('アアア', KanaToHira('アアア'));
end;

参考にはAcidFloor
http://www.wwlnk.com/boheme/delphi/vbtodel/vbfaq/vbd0050.htm
Delphi工房
http://www.din.or.jp/~egawa-n/delphi/tips/convert_mbcs.html
0021Delフサギコ ◆VzDeLphI NGNG
   ?
  ∧,,∧,,,,,,,,,,,,,,,      /LOCALE_USER_DEFAULTとGetUserDefaultLCID()の
 ミ゚Д゚,,彡,,,,,,,,,,,,ヾ〜  <  使い分けと、文字列長の指定が正しいかどうか、イマ二つほど
   U U """"UU     \わかないけど、これでいいのかな?
function MapStringW(const Source: WideString; dwMapFlags: DWORD): WideString;
var Len: Integer;
begin
Result := '';
Len := LCMapStringW(LOCALE_USER_DEFAULT, dwMapFlags, PWideChar(Source), -1, nil, 0);
SetLength(Result, Len-1);
LCMapStringW(LOCALE_USER_DEFAULT, dwMapFlags, PWideChar(Source), Length(Source)+1, PWideChar(Result), Len);
end;
function KanaToHira(const Source: WideString): WideString;
begin Result := MapStringW(Source, LCMAP_HIRAGANA);end;
function HiraToKana(const Source: WideString): WideString;
begin Result := MapStringW(Source, LCMAP_KATAKANA);end;
function ZenkakuToHankaku(const Source: WideString): WideString;
begin Result := MapStringW(Source, LCMAP_HALFWIDTH);end;
function HankakuToZenkaku(const Source: WideString): WideString;
begin Result := MapStringW(Source, LCMAP_FULLWIDTH);end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Check('あああ', KanaToHira('アあア'));
Check('あかさたなはまやらわをん', KanaToHira('アカサタナハマヤラワヲン'));
Check('アアア', HiraToKana('あアあ'));
Check('アカサタナハマヤラワヲン', HiraToKana('あかさたなはまやらわをん'));
Check('アアア', KanaToHira('アアア'));
Check('abc', ZenkakuToHankaku('abc'));
Check('アアア', ZenkakuToHankaku('アアア'));
Check('abc', HankakuToZenkaku('abc'));
Check('アアア', HankakuToZenkaku('アアア'));
end;
0022デフォルトの名無しさんNGNG
外の比較的マイナーな文学作品を翻訳出版する
小さな出版社がある。そして文学ファンはこういった出版社を
潰さないため、今後も翻訳を続けてもらうために
1人で同じ本を2・3冊買うことが良くある。

我々もこういう時だからこそDelphi7を買って
ボーランドを支えるべきなんじゃないだろうか。
Delphi7の売り上げはDelphi8以降の開発資金となるし、
ボーランドジャパンの今後に大きな影響をもたらすだろう。

Delphi7の出来のみを云々するのは
あまりにも近視眼的ではないだろうか?
0023デフォルトの名無しさんNGNG
なぜ 22 はこんなスレをつけるのか。

その謎は以下のスレに…
http://pc3.2ch.net/test/read.cgi/tech/1031668744/536-538

ここにかかれている内容を信じるかどうかはあなた次第。
Delphi7 を注文してしまった人は、すぐに答えが出るでしょう。
0024デフォルトの名無しさんNGNG
社員だから
0025デフォルトの名無しさんNGNG
☆★☆★☆ アンチに朗報! ☆★☆★☆

VS.NET 7.0と.NET 1.1は連携できません!
.NET 1.1を導入すると、VS.NET 2003を買わされる羽目になります!
0026デフォルトの名無しさんNGNG
今、テキストエディターを作っている(作ろうとしている)のですが、
メモ帳と同じフォントにしたいのです。
しかし行間が大きくて、同じにならないのですが、どうすればいいのでしょうか?

あと、RichEditで作っているのですが、Memoの方が良いのでしょうか?

どなたかお願いします。
0027デフォルトの名無しさんNGNG
0028デフォルトの名無しさんNGNG
>>26
TEditor
0029デフォルトの名無しさんNGNG
フォントと行間って関係あるの?
0030デフォルトの名無しさんNGNG
>>29
ないよ…
0031デフォルトの名無しさんNGNG
>>30
うんこするの?
0032デフォルトの名無しさんNGNG
>>28
http://www.vector.co.jp/soft/win95/prog/se114384.html
これですか?
>>29
あ、関係ないですね…。すいません。
0033デフォルトの名無しさんNGNG
そうです
0034デフォルトの名無しさんNGNG
>>26
Delphiは6?
6より前のは使ったことないから知らないけど、
6ならHelpのチュートリアルでテキストエディタ説明してるよ。
それ辿っていけば?

それと、メモ帳と同じフォントにして、
サイズもそれと合わせたら同じようになるはずだけど…?

あと異なる書式を混在させるようなことをしなければ
TMemoで十分だと思うけど。
(RichEdit使ったことないんでよく分からんが…)
0035デフォルトの名無しさんNGNG
行間を指定したいんでしょ
TMemoもTRichEditも無理
0036デフォルトの名無しさんNGNG
オナニードローでできるよん
0037名無しさん@お腹いっぱい。NGNG
メモ帳のフォントとTMemoのフォントとサイズ合わせたら行間も同じになったよ。
0038デフォルトの名無しさんNGNG
>>36
がいしゅつ
0039デフォルトの名無しさんNGNG
とりあえず>>28を使ってみようと思います。
シェアウェア(カンパウェア)なのがちとあれですが…。
レス下さった方、ありがとうございました。
0040デフォルトの名無しさんNGNG
richeditの何がそんなに気にくわないんだか…?
別に構わないと思うけどなぁ…。
読み込める量からすっとMemoは非推奨だとは思うけど。
0041デフォルトの名無しさんNGNG
>>40
まだ9xなんだ
004240 ◆W9uCUQvg NGNG
>>41
そおそお(藁
95!95!(藁
0043デフォルトの名無しさんNGNG
imageの上に透明のimageを置き
上のimageにCanvasで図形を描くときにちらつきます。

delphi5ではちらつかなかったのですが、
delphi6にしてからちらつくようになりました。

DoubleBuffered や WM_ERASEBKGNDを無視するように
もしましたがちらつきます。
どなたかご教授をお願いします。
0044デフォルトの名無しさんNGNG
なんでDoubleBufferedを無視するの?
0045デフォルトの名無しさんNGNG
なんでオフスクリーンにしないの?
004643NGNG
>>44
DoubleBuffered := True
です
0047デフォルトの名無しさんNGNG
で、imageを2つも重ねて何がしたいの?
004843NGNG
>>47
知ったことか
0049デフォルトの名無しさんNGNG
16bitの画像データをテキストに変換したいのですが、
VBでやるとデータ型がない上に遅すぎて使い物になりません。
やっぱりdelphiでやるのがいいのでしょうか?
データサイズは512*512または128*128*128です。
0050デフォルトの名無しさんNGNG
コンパイラなら何でもいいよ。
速度で言うとVCのが速い。
0051デフォルトの名無しさんNGNG
>>48
まあガムバッテちらつきを無くしてくれ。
0052デフォルトの名無しさんNGNG
うーん、やっぱりCですか。
本職じゃないのでお手軽にやりたかったのですが・・・。
ちょっと勉強してみます。
0053デフォルトの名無しさんNGNG
DelphiならTBitmapに画像を読み込ませてコンポーネント
リソース形式(16進)でストリームに吐かせるだけだからほんの数行
書くだけ。
005453NGNG
こんな感じかな?
procedure TForm1.Button1Click(Sender: TObject);
var
 ws: TFileStream;
 ms: TMemoryStream;
 img: TImage;
begin
 if not OpenDialog1.Execute then Exit;
 if not SaveDialog1.Execute then Exit;
 img := TImage.Create(Self);
 ws := TFileStream.Create(SaveDialog1.FileName, fmCreate);
 ms := TMemoryStream.Create;
 try
  img.Picture.LoadFromFile(OpenDialog1.FileName);
  ms.WriteComponent(img);
  ms.Seek(0, soFromBeginning);
  ObjectBinaryToText(ms, ws);
 finally
  img.Free;
  ws.Free;
 end;
end;
005543NGNG
>>51
>>48は騙りです
0056デフォルトの名無しさんNGNG
>>55
了解した。ちらつきの件がむばってくれ。
2枚の画像を重ねる理由が判らないけど、
合成処理をさせたいだけならオフスクリーンを
使った処理でいいのでは?
0057デフォルトの名無しさんNGNG
> 128*128*128
もしかして研究でボクセルやってらっしゃいますか?
CTスキャンみたいなの?
これだとTBitmapは無理だろうから、自作しないといけないからがんばって

>>43
OffScreenを使うに一票。
目に見えないBitmapの上にDraw系の命令で一旦書いておいて、
最後に目に見えるところに一括転送。するとちらつかない。
0058デフォルトの名無しさんNGNG
>56だす。
オフスクリーンに追加しておくと。。。
TImageをいじくるよりも、むしろTControlを使って
表示用のみのTBitmap、オフスクリーン用のTBitmapを
用意しておき、合成はオフスクリーンで行い
合成の結果を表示用へ書き込む。
そしてTControlへの常時描画は表示用を使用する。
この時、WM_ERASEBKGNDを調整するように・・・
まあ、DoubleBufferを自分でやるような感じですが・・・
005943NGNG
>>56>>57>>58
ありがとうございます。
なんとDoubleBufferでいけてました。お手数かけました。
メッセージを捕まえたり、ポートを調べたりしてたのが何だったんだ!
これで土日潰しました。勉強になったけど・・・
006043NGNG
DoubleBuffer恐るべし。
学校なんでおやすみなさい。
0061デフォルトの名無しさんNGNG
なんだポートって?DoubleBufferにポートってなんだー?謎だ・・・
0062デフォルトの名無しさんNGNG
>>61
ネタだよな?
0063デフォルトの名無しさんNGNG
ごめん、俺マジでわからん
0064デフォルトの名無しさんNGNG
海に向かって叫んでたんだろ
0065デフォルトの名無しさんNGNG
TRichEditを右クリックしたとき
TMemoを右クリックしたときと同じように
ポップアップを表示させるのにはどうしたらよいのでしょうか?
TPopupMenuで作成するしかないのでしょうか?
0066デフォルトの名無しさんNGNG
>>65
他に方法があるなら教えてくれ。
0067デフォルトの名無しさんNGNG
D5 -> D7のバージョンアップで悩んでいます。
いったい DsgnIntf はどう処理したらいいんだろ?
TDefaultEditor を継承してダブルクリック時のデフォルトイベントを変更してたんだけど
DsgnIntf はtoolAPIの DsgnIntf.pasを使っていいのかな?

TDefaultEditorがDesignEditors に変わってるし、
EditProperty の引数の型が変わってるから変更したら、今度は
IProperty が定義されてないと出る
006867NGNG
ごめん DsgnIntf -> DesignIntf って事みたいね
0069デフォルトの名無しさんNGNG
THoge = class(TCustomControl)
private
FHeader: THeaderControl;
と宣言してあるFHeaderが、
THogeのprocedure WMHScroll(var msg: TWMHScroll); message WM_HSCROLL;の中で、
ScrollWindowEx(Handle, -HScrollInc, 0, nil, @CR, 0, @R, SW_SCROLLCHILDREN);
InvalidateRect(Handle, @R, False); //R,CR:TRect; HScrollInc: integer;
としても、ちゃんと再描画してくれません。
どのようにすれば、
このFHeaderはちゃんとスクロールして再描画もしてくれるのでしょうか?
0070デフォルトの名無しさんNGNG
フォームを表示したとき、マウスポインタが
OKボタンの真ん中に来るように
http://www.borland.co.jp/qanda/delphi/d0002284.html
ココを参考に以下のソースを書いたのですが
●の所に「演算子またはセミコロン (;) が必要です」とエラーが出ます。
上記のページに
該当するバージョン:Delphi 1.0,Delphi 2.0,Delphi 3.0/Delphi3.1,Delphi4
と書いてあったのですがDelphi6だとダメなのでしょうか?

procedure TOptionDlg.FormShow(Sender: TObject);
var
Point: TPoint;
begin
Point := Point(OKBtn.Width div 2, OKBtn.Height div 2);//●
Point := OKBtn.ClientToScreen(Point);
SetCursorPos(Point.X, Point.Y);
end;
0071デフォルトの名無しさんNGNG
Qと書け
0072デフォルトの名無しさんNGNG
>70
たぶん変数の名前をPointにしたせいで、
関数のPointを変数のPointと認識しちゃってるんだんと思う。
だから変数の名前を変えればたぶんOK
0073デフォルトの名無しさんNGNG
var
Q : TPoint;
007470NGNG
>>71
>>72
>>73
ああ、そこでしたか・・・
助かりましたありがとうございます。
0075Indyのことでお尋ねします。NGNG
ファイルを転送するプログラムを組みたいのですが、
どうしたらよいでしょうか?教えてください。
0076デフォルトの名無しさんNGNG
少しは調べろ
0077Indyのことでお尋ねします。NGNG
>>76
調べましたがアフォなので探せないし、わかりませんでした。
0078デフォルトの名無しさんNGNG
Indyはソース公開されてるんだからソース読め。
0079Indyのことでお尋ねします。NGNG
どこでしか?
0080デフォルトの名無しさんNGNG
モナーに聞いて来い
0081デフォルトの名無しさんNGNG
インストールしたらついてくる。
0082デフォルトの名無しさんNGNG
ウザいよ>>76,78,80
0083Indyのことでお尋ねします。NGNG
>>82 感謝!!
0084Indyのことでお尋ねします。NGNG
アフォだからソース見ても分かりません。
消えろと言うのならば、消えますがいかがいたしましょう。
0085デフォルトの名無しさんNGNG
FTPクライアントを作りたいということですか?

FTPサーバを作りたいということですか?

その両方ですか?

それともまったく別のものを作りたいんですか?
0086Indyのことでお尋ねします。NGNG
FTTPみたいなものを。
0087デフォルトの名無しさんNGNG
FTTPとは?
0088デフォルトの名無しさんNGNG
FTTP

( ̄ー ̄;)。。。ん?
0089Indyのことでお尋ねします。(俺って厨房?)NGNG
・・・。
とにかくサーバーにファイルを転送するファイルです。
0090デフォルトの名無しさんNGNG
まぁ間違いなく厨房でしょう。

とりあえずFTPクライアントを作りたいということでいうわけだね。
んで、IndyのFTPクライアントは使ってみたのかい?
0091デフォルトの名無しさんNGNG
>>89
FTPサーバはサーバのサービスを起動するだけだから
(NT系なら付いてるよ WinXP Homeはどうかしらんけど)
FTPクライアントアプリを作ればOK

フォームにIdFTPを貼り付けてヘルプを読むべし
0092Indyのことでお尋ねします。(俺って厨房?)NGNG
IdHTTPをターゲットにしてやってますが・・・。
0093デフォルトの名無しさんNGNG
おまえプロトコルについてまず勉強しろ。
ネットワークアプリは今のおまえには無理。
0094デフォルトの名無しさんNGNG
( ´,_ゝ`)プッ
Delphiが馬鹿にされるわけだな
0095デフォルトの名無しさんNGNG
>>93
ハゲシクドウイ

ちと質問。
改行コードの定数ってどんなんだっけ?
ド忘れしてしもた。
0096デフォルトの名無しさんNGNG
\r\n -> #13#10
0097デフォルトの名無しさんNGNG
#13#10
0098デフォルトの名無しさんNGNG
CRLF #13#10
CR #13
LF #10
009995NGNG
>>96-98
スマソ、VBでいう「VbCrLf」みたいなのはなかったっけ?
折れの勘違いだったかな?

# 煽りじゃないので念のため
0100デフォルトの名無しさんNGNG
>>95
sLineBreak
0101デフォルトの名無しさんNGNG
あんまり検証してないけどVCL全体で#13がハードコーディングされてるのに
部分的にsLineBreak使うとおかしくならない?
クロス開発のときにね。
■ このスレッドは過去ログ倉庫に格納されています