真の Delphian ならこのページを見てみろ。
この期に及んでまたしても糞スレが...
2ゲット〜
program Window1;
uses
Windows, Messages;
const
AppName = 'Window1';
function WindowProc(Window: HWnd; AMessage, WParam, LParam: Longint): Longint; stdcall; export;
begin
Result:=0;
case AMessage of
wm_Destroy: begin
PostQuitMessage(0);
Exit;
end;
end;
Result:=DefWindowProc(Window, AMessage, WParam, LParam);
end;
function WinRegister: Boolean;
var
WindowClass: TWndClassEx;
begin
with WindowClass do
begin
cbSize:=SizeOf(WindowClass);
Style:=cs_hRedraw or cs_vRedraw;
lpfnWndProc:=@WindowProc;
cbClsExtra:=0;
cbWndExtra:=0;
hInstance:=HInstance;
hIcon:=LoadIcon(0, idi_Application);
hCursor:=LoadCursor(0, idi_Application);
hbrBackground:=HBrush(Color_Window);
lpszMenuName:=nil;
lpszClassName:=AppName;
hIconSm:=0;
end;
Result:=RegisterClassEx(WindowClass)<>0;
end;
function WinCreate: HWnd;
var
hWindow: HWnd;
begin
hWindow:=CreateWindow(AppName, 'Object Pascal Window',
ws_OverlappedWindow, cw_UseDefault, cw_UseDefault,
cw_UseDefault, cw_UseDefault, 0, 0, HInstance, nil);
if hWindow<>0 then
begin
ShowWindow(hWindow, CmdShow);
Updatewindow(hWindow);
end;
Result:=hWindow;
end;
>続き
var
AMessage: TMsg;
hWindow: HWnd;
begin
if not WinRegister then
begin
MessageBox(0, 'Register failed', nil, mb_Ok);
Exit;
end;
hWindow:=WinCreate;
if hWindow=0 then
begin
MessageBox(0, 'WinCreate failed', nil, mb_Ok);
Exit;
end;
while GetMessage(AMessage, 0, 0, 0) do
begin
TranslateMessage(AMessage);
DispatchMessage(AMessage);
end;
Halt(AMessage.wParam);
end.
このプログラムDel5でコンパイルするとちゃんと動くのに
Del6でコンパイルするとCreateWindowに失敗する
誰か理由を知ってる人いる?
とりあえず>6のスレに移動したら調べてやるから
第一お前の言う「真のDelphian」ってのはこれくらいのことをすでにやっていて、
その上でVCLを使っている人のこと。
>>1のページの人がそういう人だろ?
>>7 しゃれで書いただけだから
>>1 この程度は常識なんだよ
頼むから
>>1 よ、そんなにサイズ小さくしたいならアセンブラでやってくれ!
ね、もうやめよう?
つうか同じDelphi使いとしてこんなスレ立つのが恥ずかしい。
>>12 このスレはDel信者を装ったRuby厨です。
CPU の処理速度の劇的な向上、ハードディスクやメモリが
安価になったこと、Web 上の通信速度の向上のため「小さい
実行ファイルを作る」こと自体の意義は、相対的に低下して
います。開発コストやコードの堅牢性、高い保守性などを考
慮すると、信頼性の高いライブラリを使った方が実際的なこ
とは明らかです。
しかし、教育的な意義は少しも低下していません。4−5に
示されたいわゆる Generic.c に対応するコードは、いまもっ
て Windows プログラマには重要です。9さんは、「常識であ
る」と仰っていますが、メッセージ処理、ウィンドウ関数、
メッセージループについて知っているウィンドウズプログラマ
は本当に少ないんです。4−5のコードでウィンドウを作って
それが「普通のウィンドウ」として何故動作するのか、を本当
に理解しているプログラマの割合はそんなに大きくはないので
す。Generic.c 以外にも、いわゆる Petzold 本にのっている
全てのコードが Delphi の Pascal (Object Pascal ではなく)
を使って、同じことができることを知ることは重要です。
VCLのコードの大半は、結局、上記の事を理解すると解読が
簡単になります。また、使いにくいというヘルプも大体何を
言っているのか分かるようになります。
というわけで、繰り返しますが、「小さい実行ファイルをつくる」
こと自体が重要なのではなく、それを通じて Windows 自体の仕
組みを知ることこそ、ウィンドウズプログラマにとって価値が
あることだと思います。
DelphiってSDK書かなくてもウィンドウ出せるの?
すげー便利だ。
>>15 Delphi に限らず、VBでも、VC++でも SDK を直接使わなくても
ウィンドウを作れると思いますが?
>>15 windows.h 相当の windows unitがあるというだけの話では?
あっ、APIのインポートライブラリが標準で付属してるってことですか。
これがないウィンドウズプログラム作成環境が存在すること自体が
信じられないことですが......。
>>18 VB(ぼそ
WindowsAPIを含む外部関数を呼び出すときは
Declare文を自分で書かないといけない。
20 :
デフォルトの名無しさん:02/04/19 12:18
delphi!
>>22 >生産性が落ちたら意味がねー言語だろ、Delphiは!
生産性が落ちても意味がある言語ってなに?
そもそも Delphi は言語ではありませんが。
ただの嫌がらせか?
>>22
25 :
デフォルトの名無しさん:02/06/30 14:12
>>25 なぜ今ごろレスる。。。
それにアセンブラの場合は局所的に使うことによって全体の生産性を上げるのが目的でしょ?
効率が上がることが生産性の向上につながると解釈すれば
生産性の向上って・・・・ほんと悲しい響きだね・・・・・
楽な方法ばかり使ってると、出来る範囲が狭くなるだけ
人間が作るんだからその人間を鍛える事も必要だよ
例えばwindowsのAPIを叩くにはcの方が参考文献もサンプルコードも
多いけど、あえてDelphiを使う事で自分を鍛えるとかさ
28 :
デフォルトの名無しさん:02/08/05 00:45
.⌒ヽ ' ⌒ヽ /.|:::::::::::|
乂乂|| |乂乂|| | |:::::::::::|
乂乂|| |乂乂|| | |:::::::::::|
乂乂|| |乂乂|| ___|_|:::::::::::|____
乂乂|| |乂乂|| /|::::::::::::::::::::::::::::::::::::::::::::::::::::::::|
 ̄ ̄  ̄ ̄ i |::::::::::::::::::::::::::::::::::::::::::::::::::::::::|
_____ .|/ ̄ ̄ ̄../|:::::::::::| ̄ ̄ ̄/
||L L | L L ||  ̄ ̄ ̄ ̄| |:::::::::::| ̄ ̄ ̄
||L L | L L || | |:::::::::::|
||L L | L L ||_________ .| |:::::::::::|
===========l| L L l================= i |:::::::::::|
二二二二二二ヽ iヽ二二二二二二二二i |:::::::::::|
:::::::::::::::::::::::::::::::::::i ヽ| __,、___.i |:::::::::::|
 ̄ ̄ ̄ ̄ ̄ ̄ ̄\ ∧_∧ _i'くi" ⌒ヽ、 |:::::::::::|
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|......( ´Д`)_l ''!ノlノハ)))| |:::::::::::|__
::::::::::::::::::::::::::::::::::::::::: | / (S)::::::i从リ ´ワ`ノ |:::::::::::| \
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄| .\ ....\|:::::::::::| \
____/|____ .| .\  ̄ ̄
/懺悔します…
| アスキーアートエディターにいけないんです…。
\_______________