くだすれDelphi(超初心者)その31

このエントリーをはてなブックマークに追加
952デフォルトの名無しさん:2006/04/13(木) 23:19:08
>>951
VBが使えるWindowsサーバなら使えるよ。
とってもお手楽なIntraWebなんてのもあるよ
953デフォルトの名無しさん:2006/04/13(木) 23:21:08
> とってもお手楽なIntraWebなんてのもあるよ

「あるよ」というよりは「あった」という方が正確だな。
954デフォルトの名無しさん:2006/04/13(木) 23:31:37
bds2006にもIntraWebはあるよ
サーバを建てるなんてメンドクサイ事考えなくても
どっかの古いパソコンで作った実行ファイル走らせるだけで サーバの出来上がり。
公開しないIntraなら、ホントにとってもお手軽だよ
955デフォルトの名無しさん:2006/04/14(金) 00:16:28
まぁ、その程度だけどな
956デフォルトの名無しさん:2006/04/14(金) 00:16:57
>>949
その通り。Javaも.NETも、サーバーサイドや業務用で一台丸ごとそのアプリに占有させるならわかるが、普通のデスクトップアプリとしては有り得ん…。
957デフォルトの名無しさん:2006/04/14(金) 00:23:41
>>951
WebSnapという機能があって、ISAPIやApache ModuleをRADで作成可能。
DLLとして作られるので当然ネイティブコード動作。
普通に標準入出力を扱えるので古典的CGIも作れる。

958デフォルトの名無しさん:2006/04/14(金) 00:23:46
こっちでやれ
Borlandは信者にひどいことしたよね(´・ω・`)
http://pc8.2ch.net/test/read.cgi/tech/1143951088/l50
959デフォルトの名無しさん:2006/04/14(金) 00:50:44
>>956
サーバサイドでも.NETを選択する理由はほとんどないよね。。。
960デフォルトの名無しさん:2006/04/14(金) 07:29:31
サーバサイドでもDelphiを選択する理由はほとんどないよね

クライアントサイドでもDelphiを選択する理由はほとんどないよね


IDE事業売却しちゃったから
961デフォルトの名無しさん:2006/04/14(金) 08:21:27
全ての用途に使用する理由が皆無なVBよりはマシって事か。
962デフォルトの名無しさん:2006/04/14(金) 09:13:42
スレ違い
963デフォルトの名無しさん:2006/04/14(金) 09:31:21
Delphiはじめました。よろしくv(^^)v
964デフォルトの名無しさん:2006/04/14(金) 13:49:29
>>963

Delphi、2.0から使ってるけど、もう落目だよ
orz
965デフォルトの名無しさん:2006/04/14(金) 19:59:22
「自アプリからExplorerにリストアイテムをD&Dしたときに、
ドロップ先のExplorerのフォルダパスを取得する」
方法をご存知でしたら教えて下さいませんでしょうか。

Delphi-MLやネットで調べた時にその答えとして出てくる
http://www.melander.dk/delphi/dragdrop/
が随分前から消えてしまっていまして、
探し回ってDropSource.pasだけはなんとか入手したのですが、
DropSource特有の使用方法がわからず、色々動かしてみたのですが
パスの取得ができずに困っています。

できましたらよろしくお願い致します。
966デフォルトの名無しさん:2006/04/15(土) 02:13:21
>>926
何か勘違いしてるのかも知れんが、>>925にPersonal用のLinkがある
PersonalにはDB関係やThemeMgrが無いので削るだけ
同じVerと差分採れば、ソースすら読めなくても改変できるでしょ
ComboBoxのオートコンプリートはIMEの日本語入力でバグってるので、
修正するかオートコンプリートをOffにする
TntThemeManager6.dpkを入れたければ↓か自前のコンポでも先に入れる
http://www.delphi-gems.com/ThemeManager.php

>>965
V3.7
http://www.torry.net→VCLSystem→Drag and Drop
v4.0(ベータ版)
http://dominativ.com/thotor/open_source/dragdrop0400.exe
967デフォルトの名無しさん:2006/04/15(土) 08:49:11
Delphi7でJpegファイルのサムネイルをListViewに表示しようとしています。
ListViewは仮想リストビューとして、別スレッドでサムネイルを読み込んで
ImageListに追加しているのですが、ImageListにAddするたびにListViewが
Refreshされてしまい、チラツキがずっと続いてしまいます。何とかなりませんか?
968デフォルトの名無しさん:2006/04/15(土) 08:52:18
ListView.DoubleBuffered := True;
969デフォルトの名無しさん:2006/04/15(土) 09:28:24
>>968
ベリベリサンクス!
970デフォルトの名無しさん:2006/04/16(日) 03:31:21
バックグラウンドでキーボードの入力を監視して
Aキーが押されたときそれをBキーに置換するといったモノを作りたいのですが
可能ですか?
また、どのように手をつければいいのでしょうか?
971デフォルトの名無しさん:2006/04/16(日) 03:36:57
>>970
窓使いの憂鬱がそれできたを思う。
参考にならんかね
972デフォルトの名無しさん:2006/04/16(日) 04:32:22
変数のみからインスタンスを作成したいのですが、どうすれば良いのでしょう?

type
 THoge = class
 end;
var
 H: THoge;
begin
 H :=nil;
 H.ClassType.Create;

の様な事をやりたいのです。

>>970
SetWindowsHookEx
973デフォルトの名無しさん:2006/04/16(日) 04:51:01
>>972 それはできません。
974デフォルトの名無しさん:2006/04/16(日) 06:52:22
H.Createでいけるだろ。
質問とは直接関係ないけどclass ofのクラス参照型は知ってるよな。
975デフォルトの名無しさん:2006/04/16(日) 07:04:02
コンストラクタはインスタンス変数に対して使った時はメモリを割り当てないので、別途メモリを確保してからね
976デフォルトの名無しさん:2006/04/16(日) 07:30:32
var
 H: THoge;
begin
 H :=nil;
 GetMem(Pointer(H), SizeOf(H));
 H.Create;

---------------------------
デバッガ例外が発生
---------------------------
プロジェクト Project1 が EAccessViolation クラスの例外を生成しました。
'モジュール 'Project1.exe' のアドレス 00003204 でアドレス 00003204 に対する読み込み違反がおきました。'
プロセスは停止しています。再開するにはステップ実行または実行を選択してください。
---------------------------
OK ヘルプ(H)
---------------------------
977デフォルトの名無しさん:2006/04/16(日) 11:10:17
>SizeOf(H)
4バイトしか確保できて無いじゃん。
978デフォルトの名無しさん:2006/04/16(日) 11:53:00
で、どうやってクラス参照しないでサイズを取得するの?
979デフォルトの名無しさん:2006/04/16(日) 12:17:40
Q DelphiでUNICODEを取り扱えますか?

A WideStringがUNICODEです。AnsiStringとは相互に代入すれば変換されます。
 またUTF8との変換等も最近のバージョンであれば用意されています

Q  UNICODE文字を画面に表示するには?
A VCLはAnsiで窓が開かれていますのでAnsiに変換して表示するのが簡単です

Q  日本語以外のUNICODE文字を画面に表示するには?
A その文字を表示出来るフォントを指定した上で、TextOutW/DrawTextW で表示出来ます
  Windows2000/XPではFONTLINKが設定されているので
  ANSI_CHARSET/MS UI Gothicで表示出来ます。
  それより古いOSの場合フォントをどこかから入手する必要があります

Q  UNICODE文字を入力するテキストBOXが欲しい
A http://www.tntware.com/delphicontrols/unicode/ を使うのが一つ
  TWebBrowserを貼り付けて使うのも簡単でしょう

Q 普通のフォームのタイトルバーだけをUNICODE化したいのだが
A 現在方法を調査中。 ちょっとまってね
980デフォルトの名無しさん:2006/04/16(日) 12:25:19
>>976
class function TObject.NewInstance: TObject;
というのがメモリだけを確保してくれる
だから
H:= THoge.NewInstance ;でメモリ確保
H.Create; でコンストラクタを呼ぶ

という手順にすればいい。

TApplication.CreateForm がこの方法を使っている
981デフォルトの名無しさん:2006/04/16(日) 12:35:21
>>978
class function TObject.InstanceSize: Longint;
でサイズは取得出来る。 ただしメモリだけを確保しても
VMTテーブル等が設定されていないと
Createをメソッドとして呼び出せないので注意

あvirtualでなければ呼べるけど
982926:2006/04/16(日) 13:10:27
>>966
遅レスですがありがとうございます! 挑戦してみます。
983デフォルトの名無しさん:2006/04/16(日) 14:57:03
クラス参照無しでどうやってインスタンスを作るか、を質問してるのに
クラス参照つかってサイズ取得してたら意味ないだろ・・・
984デフォルトの名無しさん:2006/04/16(日) 15:00:57
てか普通にコンストラクタ呼べばいいしな
985デフォルトの名無しさん:2006/04/16(日) 15:18:46
誰の子でもいいので私を妊娠させて下さいって事か?
986デフォルトの名無しさん:2006/04/16(日) 15:21:17
クラスメソッドはインスタンス変数からでも呼べるので、H := H.NewInstance; とかでもいいわけだが。
まあ、普通はやらない。
やるとしたら、CreateFormのような事情があるとか、インスタンスを大量生成する場合メモリを細切れで確保するより固定長配列で取って〜とか。
987デフォルトの名無しさん:2006/04/16(日) 15:40:59
で、一般になんのクラスの変数かわからないものを渡されたとして、
どうやって、そのインスタンスを作りますか?
988デフォルトの名無しさん:2006/04/16(日) 15:45:23
メモリ確保を配列的に取りたいなら

InstanceSizeメモリ確保
  ↓
InitInstance(メモリ)
  ↓
コンストラクタ
989デフォルトの名無しさん:2006/04/16(日) 15:45:26
>>972のHはTHogeってわかるじゃん。
元々クラス参照型みたいな一般的に使える多態は考えて無くて、なんかトリッキーなことしたいだけと思ってたが、違うの?
990デフォルトの名無しさん:2006/04/16(日) 15:50:22
>>987
 一般的には、 
 なんのクラスの変数かわからないものを渡されてインスタンスをそこから作りたいという事はありません

一般的には
たとえば、GUI上で「複製」という操作をさせたいなら複製というメソッドを作成するのが普通です。
991デフォルトの名無しさん:2006/04/16(日) 16:52:38
deep copyするならAssign overrideするかRead/WriteComponent使っとけ。
992デフォルトの名無しさん:2006/04/16(日) 18:07:14
これはひどい
993デフォルトの名無しさん:2006/04/16(日) 19:04:41
残りカス、ひどすぎ
994デフォルトの名無しさん:2006/04/16(日) 21:18:38
ここもうダメだなぁ・・・
995デフォルトの名無しさん:2006/04/16(日) 21:21:08
このスレッドはBorland(ボーランド)のDelphi(デルファイ)について、
他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
Delphi使いが優しくコメントを返しますが、
お礼はDelphiの布教と初心者の救済をお願いします。
996デフォルトの名無しさん:2006/04/16(日) 22:27:43
残り少ないし、回答者が低レベルすぎるし、このスレ終わり。
997デフォルトの名無しさん:2006/04/17(月) 07:04:45
>>987 DelphiのクラスはTObjectが幹となっているので、何かのインスタンスが入っているなら
 インスタンスのVMTの先頭がClassTypeとなっており
 ClassType メソッドで取り出す事が出来るため、何のクラスの変数か判らないという事には絶対になりません
998デフォルトの名無しさん:2006/04/17(月) 07:58:56
> var
>  H: THoge;
> begin
>  H :=nil;
999デフォルトの名無しさん:2006/04/17(月) 08:12:42
procedure TForm1.Button1Click(Sender: TObject);
var nc:TControl;
begin
nc:=(TComponentClass(Sender.ClassType).Create(Self)) as TControl;
with nc do begin
nc.Parent:=Self;
Left :=Left +100;
Top :=Top+100;
Show;
end;
end;
1000デフォルトの名無しさん:2006/04/17(月) 09:43:09
Sender が TStringList かもしれないし・・・コンストラクタの形はどうやって
決められますか?
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。