Delphiで小さな実行ファイルを作ろう
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん
NGNG0002デフォルトの名無しさん
NGNG00031
NGNG0004デフォルトの名無しさん
NGNGhttp://www.google.co.jp/search?q=%92P%94%AD%83X%83%8C%97%A7%82%C4%82%E9%93z%82%CD%8E%81%82%CB%81B%82%C6%82%A2%82%A4%82%ED%82%AF%82%C5%8FI%97%B9%81B&hl=ja&lr=
00051
NGNGhttp://pc.2ch.net/test/read.cgi/tech/1008238418/216
ポトペタが嫌いな人へのDelphi入門スタート
メモ帳で
program Hellow;
uses windows ;
begin
if MessageBox(0 ,'こんにちは','タイトル',MB_OKCANCEL or MB_ICONINFORMATION )= IDOK
then MessageBox(0 ,'元気だよね','ありがとう',MB_OK or MB_ICONQUESTION );
end.
と書いて ファイル名 Hellow.dpr で保存
このファイルをDelphiでダブルクリックして実行。
入門編終わり
00061
NGNGダイアログアプリを作る時の参考になるコード
http://member.nifty.ne.jp/m-and-i/tips/useresfile.htm
0007デフォルトの名無しさん
NGNGここのProgramsに置いてあるごみ。
いたい、痛すぎる。
0008デフォルトの名無しさん
NGNG始めたばかりなら別にいいんじゃない?
0009デフォルトの名無しさん
NGNG得意気に公開するのが痛い。しかもひろゆきを馬鹿にしているし。
0010デフォルトの名無しさん
NGNG別に得意げには見えないけど?
0011デフォルトの名無しさん
NGNGUG気取り
00121
NGNGなにせ
SysUtils とか Registory ユニットを使うだけでそれぞれ20Kbyteくらい一挙に増えるから
直API叩きをやらなければならない
0013デフォルトの名無しさん
NGNG0014デフォルトの名無しさん
NGNGTPC.exeの変わりにDCC32.EXEを実行してるだけ。
00151
NGNGたぶん大きなアプリになるとこういうのを個別に作るより
TRegistory使う方がトータルサイズは小さくなったりするんだろうけど
レジストリを読む関数
function ReadUserStrReg(const RegPath,SubKey: String):string;
var
Key: HKey;
err:DWORD;
typ:DWORD;
size: Integer;
begin
Result:='';
err := RegOpenKey(HKEY_CURRENT_USER,PCHAR(RegPath),Key) ;
if err = 0 then Try
err:=RegQueryValueEx(key,PCHAR(SubKey),nil,@typ, nil,@size);//必要なサイズを知る
if err<>0 then exit;
SetLength(Result,size);
RegQueryValueEx(key,PCHAR(SubKey) ,nil,@typ, PByte(Result),@size);
finally RegCloseKey(Key) end;
end;
0016Delフサギコ
NGNGミ,, ゚Д゚彡
〃つ旦O
〜ミ,,[ ̄ ̄ ̄.]
 ̄ ̄ ̄
__∧_____
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1009085598
昨日、久しぶりにプログラミングの感覚を取り戻したくて
ちょっと作ってみた。コマンドラインのプログラム。
仕様は
BbsIndent HtoZ ファイル名
とするとプログラムソースの先頭インデントを
半角スペースの場合全角スペースに置き換える
BbsIndent ZtoH ファイル名
だと全角スペースインデントを半角スペースにする
DelphiIDEのツールからプログラムを呼び出して
実行時引数を
HtoZ $EDNAME
や
HtoZ $EDNAME
にすると、DelphiIDE上で普通の半角スペースインデントを
全角スペースに置き換えられるので
2chに貼り付けたりする時に便利
行先頭の半角スペース2個と全角スペース1個とを置き換えてます。
どうせならエキスパートを組み込んだ方がいいんだけど。
これはこれで手軽に使えるかな。
必ず変換ソースファイルを保存してから動作させるようにしましょう。
0017Delフサギコ
NGNG∧,,∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ミ ゚Д゚ミっ < >>5 Helloの綴り間違ってるよ
|''U ̄| \_________________________
| ̄ ̄| ワザトカナ?
/ ゙ヽ
( ゚Д゚ ) < Hell World! Hell World!
人____ノ
0018デフォルトの名無しさん
NGNG00191
NGNGという事でBbsIndent.exe コンパイルして実験してみました。
Delphi5 59KByte
Delphi6 126KByte なんと倍!
たった2つのユニットしか使ってないのにこのサイズ?という事で
usesに入れるだけで増えるサイズ
Forms 267KByte
SysUtils 24KByte 文字列や例外を使うなら必須か?
typinfo 24KByte
Classes 40KByte D6では86K
ところでこの BbsIndent.exeってコンソールアプリである必要ってないですよね?
{$APPTYPE CONSOLE}を外しても全く同じ動作をしました。
00201
NGNGリソースにファイルのアーカイブしたのを入れて実行したら
指定したディレクトリに解凍してレジストリの設定するような簡単なものです。
という事で出来るだけ本体は小さくしたい、20K代が目標です。
このサイズは、
SysUtils と Classesを使わずに作らないとやっぱり難しいようです。
という事で、既にファイルがあるかどうか調べる FileExist置換用の関数
function FileExist(fname:string):boolean;
var FindData: TWin32FindData;
begin
Result:= FindFirstFile(PChar(fname), FindData) <> INVALID_HANDLE_VALUE;
end;
00211
NGNGtest.rc
TEST RCDATA "test.MyArc"
こんな1行のファイルを作ります。
TEST は識別名で好きな名前を付けます
RCDATAは決まっています
test.MyArcは埋め込みたいファイルです
これを "プロジェクトに追加" で追加すれば勝手に test.MyArcが追加されます
このリソースを読む方法は
function setup:string;
var ResInstance,Size :integer;
var hr:HRSRC;
var src:PByte;
begin
ResInstance := 0; //実行ファイルの場合は0を渡せばいいみたい
// ResInstance := System.FindResourceHInstance(HInstance);
hr := FindResource (ResInstance, 'TEST', RT_RCDATA);
Size := SizeofResource(ResInstance, hr );
src := PByte(LockResource( LoadResource(ResInstance,hr) ));
UnArchive(src,Size); //自作のファイル展開ルーチン
end;
00221
NGNGそれぞれ一挙に文字列に受け取ります。
function readFileStr(fname:string):string;
var hin:THandle;
var rsize:DWORD;
begin
result:='';
hin:=CreateFile(PChar(fname),GENERIC_READ,0,nil,OPEN_EXISTING
,FILE_ATTRIBUTE_NORMAL,0);
if hin<>0 then try
SetLength(Result, GetFileSize(hin, nil));
ReadFile(hin,PChar(Result)^,Length(Result),rsize , nil);
finally CloseHandle(hin);
end
end;
function writeFileStr(fname,data:string):boolean;
var hout:THandle;
var wsize:DWORD;
begin
result:=false;
hout:=CreateFile(PChar(fname),GENERIC_WRITE,0,nil,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,0);
if hout<>0 then try
if WriteFile(hout,PChar(data)^,Length(data),wsize,nil) then
result:=wsize=Length(data);
finally CloseHandle(hout);
end
end;
これで目標の20Kbyte付近のアプリが出来ました。
驚いた事に systemとwindowsだけの場合 Delphi6の方がサイズが小さくなりました
00231
NGNG---------以下ソース------
program BbsIndent;
uses windows;
const
HankakuIndent: String = #32#32;
ZenkakuIndent: String = #$81#$40;//全角のスペース
{ここに>>22 の readFileStr writeFileStr をコピペ}
function RepString( Str, OldPattern, NewPattern: String):string;
var
i: Integer;
begin
Result:='';
i:=Pos(OldPattern,Str);
while i>0 do begin
Result:=Result+copy(Str,1,i-1) //前半を複製
+NewPattern;
delete(Str,1,i-1+length(OldPattern));
i:=Pos(OldPattern,Str);
end;
Result:=Result+Str;
end;
function upperCase(const s:string):string;
var
c: char;
i: integer;
begin
result:=s;
for i:=1 to Length(Result) do begin
c:=s[i];
if c in ['a'..'z'] then Result[i]:=char(ord(c)- (ord('a')-ord('A')) );
end;
end;
var str:string;
begin
if ParamCount <> 2 then Exit;
if upperCase(ParamStr(1))='HTOZ' then begin
str:= readFileStr(ParamStr(2));
str:= RepString(str,HankakuIndent,ZenkakuIndent);
writeFileStr(ParamStr(2),str);
end else
if upperCase(ParamStr(1))='ZTOH' then begin
str:= readFileStr(ParamStr(2));
str:= RepString(str,ZenkakuIndent,HankakuIndent);
writeFileStr(ParamStr(2),str);
end
end.
0024デフォルトの名無しさん
NGNGSysUtils/Classes を調整してみた方がおもしろいかも。
リハビリでやってみるか。どこかバイナリファイルをアップできる場所
おしえて。
0025デフォルトの名無しさん
NGNGここなんか(ここの)定番かと。
00261
NGNG1)Delphi5のCDROMからWORKSHOPを探してインストール
2)空行でTEST.RCを作る
3)Resource Workshop を走らせて2)のファイルを読む
4) 適当にダイアログを作る
例:
#define DIALOG_1 1
#define IDC_PUSHBUTTON1 101
#define IDC_PUSHBUTTON2 102
#define IDC_EDIT1 103
DIALOG_1 DIALOG 6, 15, 199, 62
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
CAPTION "DIALOG_1"
{
DEFPUSHBUTTON "空白全角に", IDC_PUSHBUTTON1, 4, 3, 50, 14
DEFPUSHBUTTON "半角に戻す", IDC_PUSHBUTTON2, 5, 20, 50, 14
PUSHBUTTON "Cancel", IDCANCEL, 5, 38, 50, 14
EDITTEXT IDC_EDIT1, 59, 5, 132, 54
}
5)Delphiの新規作成でコンソールアプリにし
{$APPTYPE CONSOLE} を削除し、名前を付けて保存
6)Delphiのプロジェクトに追加で 2)を追加する
7)Delphiの新規作成でユニットを作成する
例:
program Indent2CH;
{$R 'TEST.res' 'TEST.RC'}
uses
Unit1 in 'Unit1.pas';
begin
WinMain; <-これを追加
end.
・・・つづく・・・
0027unit1.pas
NGNGinterface
uses Windows,Messages ;
type TDialog =class(TObject)
Handle:THandle;
private
procedure WMCommand(var Message: TWMCommand); message WM_COMMAND;
procedure WMPaint(var Message: TWMPaint); message WM_PAINT;
public
procedure WndProc(var Message: TMessage);
procedure DefaultHandler(var Message); override;
end;
procedure WinMain;
var Dialog1:TDialog;
implementation
function DlgProc(hDlg: HWND; iMsg: UINT; wp: WPARAM; lp: LPARAM): LRESULT;stdcall;
var msg:TMessage;
begin
with msg do begin Msg :=iMsg; LParam:=lp ; WParam:=wp ; Result:=0 ; end;
Dialog1.WndProc(msg);
Result:=msg.Result;
end;
procedure WinMain;
var msg: TMsg;
begin
Dialog1:=TDialog.Create;
Dialog1.Handle := CreateDialog(hInstance,MAKEINTRESOURCE(1), 0, @DlgProc);
try
while GetMessage(msg, 0, 0, 0) do
begin
if (Dialog1.Handle = 0) or not IsDialogMessage(Dialog1.Handle, msg) then
begin
TranslateMessage(msg);
DispatchMessage(msg);
end;
end;
// CloseHandle(Dialog1.Handle);
finally
Dialog1.Free;
end;
end;
{ TDialog }
procedure TDialog.WndProc(var Message: TMessage);
begin
Dispatch(Message);
end;
procedure TDialog.WMCommand(var Message: TWMCommand);
begin
case Message.itemID of
101:begin end; //ここにプログラムを入れる
102:begin end;
IDCANCEL:PostMessage(Handle, WM_QUIT, 0, 0);
end;
end;
procedure TDialog.WMPaint(var Message: TWMPaint);begin end;
procedure TDialog.DefaultHandler(var Message);
begin with TMessage(Message) do Result:=0; end;
end.
00281
NGNGメッセージディスパッチを使うんだけど このitemIDをDelphi側から読む事
って簡単に出来ないのかな?
リソースワークショップで新規作成するときに .pas とかあるから期待したけど
なんかユニットを指定したらエラーになるし使い方が判らない
0029デフォルトの名無しさん
NGNGWorkShop が吐き出す .pas をコンパイルする、かまたは .inc を出すんだと
思ったが。近頃使っていないんで、すまん。
0030デフォルトの名無しさん
NGNG例外の再定義が面倒になって
さすがにSysUtilsは使っちゃうようになったよ。
00311
NGNGincにすれば const だけが pasにすれば
unit name;
interface
const
DIALOG_1 = 1;
implementation
end.
てな感じのファイルが出来ました。 これを インクルードするなりプロジェクトに追加するなりすればOKですね。
>>30 おお、同士ハッケン!
確かに毎回 SysUtils 相当の関数自作は厳しいですね。
勉強期間なら頑張れるけど 本番だと厳しそう。
というか、「素直に c 使え!」って感じの声が自分の中からも聞こえて来るように
でもメッセージディスパッチが使える分Cより効率的な筈
例外もabortなら標準で使える。
abort+グローバル変数でもいいじゃないって自分を騙しながら
0032デフォルトの名無しさん
NGNG使う関数だけコピペしたら良いんじゃないの?
0033デフォルトの名無しさん
NGNG相互に関連しあってて簡単には分離出来ないぞ 例外とか
もちろん分離出来るのもあるけどね
00341
NGNGuses shlobj,activex;
function MySelectDirectory(const tit:String):string;
var
BInfo:BROWSEINFO;
RetFolder:PItemIDList ;
var fName:string;
begin
result:='';
setlength(fName,MAX_PATH);
fName[1]:=#0;
BInfo.pidlRoot := nil; //ルートフォルダ名
BInfo.hwndOwner := 0 ; //親ウィンドウのハンドル。
BInfo.pszDisplayName := pChar(fName); //選択されたフォルダ名が返る
BInfo.lpszTitle := pChar(tit);
BInfo.ulFlags := BIF_RETURNONLYFSDIRS;
BInfo.lpfn := nil; //ダイアログプロシージャへのポインタ
BInfo.lParam := 0; //プロシージャを使う時の
RetFolder:= SHBrowseForFolder( BInfo );
Result:=PChar(fName);
if RetFolder<>nil then try
if SHGetPathFromIDList( RetFolder, pChar(fName) ) then
Result:= pChar(fName);
finally CoTaskMemFree( RetFolder ); end;
end;
0036デフォルトの名無しさん
NGNGMCKでビジュアル開発できてADOも使えて45kbyteとか
URLはgoogleで探してちょ(すぐみっかる)
あとglutとかD3DXを使うというのも正しい手かも
ほかに小さくIEをくるんだアプリを作ってそこからCOM使いまくりというのもありかも
0037デフォルトの名無しさん
NGNGハケーン
00381
NGNGDDEって昔の技術みたいで殆ど解説が無いので結構苦労しました
DDEsendExec(相手のアプリ名 , トピック名 , メッセージ ) と使います
トピック名は エクスプローラのファイルタイプの設定で編集にすると見えるアレです
function DDeCallBack(CallType, Fmt: UINT; Conv: HConv; hsz1, hsz2: HSZ;
Data: HDDEData; Data1, Data2: DWORD): HDDEData stdcall;
begin result:=0;
end;
function DDEsendExec(const AppName,Topic,Cmd:string):boolean;
var DDE: Longint;
var Err: Longint;
var hszService,hszTopic:HSZ;
var Conv:HConv;
begin
DDE:=0;
Err:=DdeInitialize(DDE,DDeCallback, APPCMD_CLIENTONLY , 0);
Result:= 0=Err;
if not Result then begin exit;
end;
hszService := DdeCreateStringHandle(DDE,PChar( AppName), CP_WINANSI);
hszTopic := DdeCreateStringHandle(DDE, PChar(Topic) , CP_WINANSI);
try
Conv := DdeConnect(DDE, hszService, hszTopic, nil);
Result:= Conv <> 0 ;
if not Result then exit;
try
err := DdeClientTransaction(PChar(Cmd),Length(Cmd)+1 ,Conv ,0, 0,XTYP_EXECUTE , TIMEOUT_ASYNC, nil);
Result:=err<>0;
finally
DdeDisconnect(Conv);
end;
finally
DdeFreeStringHandle(DDE, hszTopic );
DdeFreeStringHandle(DDE, hszService);
DdeUninitialize(DDE);
end;
end;
0039デフォルトの名無しさん
NGNG0040デフォルトの名無しさん
NGNG0041デフォルトの名無しさん
NGNGWin32APIのテンプレートにしてくれるので便利
あと日本でもhalbow氏の
http://halbow.cool.ne.jp/top.html
は悪くはないがここまでやるならオブジェクト指向はいったんおいといて
関数ライブラリーにしたほうが良かろう。
0042デフォルトの名無しさん
NGNGDfm2Dpr
ttp://ivs-d.chat.ru/
0043デフォルトの名無しさん
NGNG関数では継承できない......
0044デフォルトの名無しさん
NGNG関数ではメッセージ処理もできない
0045デフォルトの名無しさん
NGNG今のご時世EXEが大きくたって問題にはならんだろう。
工数掛けてまでサイズを取るか、工数掛けずに良質のものを作るのか?
もちろん後者なのは言うまでもないはず。
もういちど初心に戻って Delphi を使う意味を考えた方がいいのではと思います。
0046デフォルトの名無しさん
NGNG0047デフォルトの名無しさん
NGNG工数がどうの、サイズがどうの、という方ばかりが Delphi のユーザでは
ないことをお忘れなく。
0048デフォルトの名無しさん
NGNG今、ReleaseBuild用の代替ライブラリー作って遊んでる。まだ公開してないけど。
0049デフォルトの名無しさん
NGNGメモリやハードディスクが安くなり、通信速度が向上したから
といって、大きい exe でもことたれり、とするのはプログラマ
としては怠慢なのでは?
Delphi を使って、小さくて<良質な>実行ファイルができるなら
それに越したことはないだろう。
もちろん、コストとのトレードオフは言うまでもないが。
0050デフォルトの名無しさん
NGNG>>49=アマ(趣味)
0051デフォルトの名無しさん
NGNGプロとは、フォーム1枚表示するようなアプリでも200kBの exe を
つくっても平気な方々のことですか?
ふーん。
0052デフォルトの名無しさん
NGNGDelphiのフレームワークから逸脱するんならDelphiの魅力が半減するからな。
0053デフォルトの名無しさん
NGNGご教示、ありがとう。
Delphiのユーザはサイズが気にならないんですね。
「Delphiを使わないという選択肢」を選んだとして
何を使えば、小さなアプリがつくれますか?
「Delphiのフレームワーク」とは、VCLのことですか?
ということは、Delphiの魅力の半分はVCLをつかって
大きな exe をつくる、ということなんですね。
0054デフォルトの名無しさん
NGNGDelphiの魅力は生産性の高さだろ。その多くはVCLの扱いやすさのおかげじゃない。
サイズにこだわるよりもっと機能の充実を考えるべきだろ。
そんなにサイズを追求するならVCか、全部アセンブラで組めば?
…と、傍から見ていると思う。
もちろんDelphiが裏で何をやっているかの勉強にはなるが。
005553
NGNGVC だと小さいexeがつくれるんですね? Delphi ではどうしてだめなの?
(アセンブラはしりません)
0056デフォルトの名無しさん
NGNG005853
NGNG0059デフォルトの名無しさん
NGNG1から44までを見る限り、APIを直接呼び出して
コードを小さくしよう、という意味にとれるのだけど。
0060デフォルトの名無しさん
NGNG45からの議論を読んでみると
Delphi → 生産性が高く、コンパイルが速い → 大きな exe 生成
VC → 生産性が低く、コンパイルもおそい → 小さな exe 生成
となるんだけど、45さんや52,54さんの主張が真だとすると、なぜ、
Delphiユーザの数はVCユーザの数の半分にも満たないのだろう?
Delphiがでてから6,7年は経っているのに。
本当に、小さいexeにこだわるのはアマチュアだけ?
まぁ、オレはアマだけどさ。
0061デフォルトの名無しさん
NGNGVC(MFC)が小さいと思ってるのは動的リンクさせてるからだぞ。
Delphiだって実行時パッケージ使えばかなり小さくなるから、サイズに関してはどっちもどっちだよ。
0062デフォルトの名無しさん
NGNG>Delphiユーザの数はVCユーザの数の半分にも満たないのだろう?
MS の製品じゃないから。
006360
NGNGふーん、だとすると余計に
VCユーザの数>>>Delphiユーザの数 は不可解だよね。
>>62
OSをつくったのと同じ会社の製品である、ということが
そんなに重要かねぇー。MS大好き、というヤツは少ないと
思うんだけど?
まったく分からんことが多いなぁ。プログラミングというの
は論理の世界に属すると思ったんだが、人間はそうはいかない
みたいね。
寄らば大樹の陰、じゃないけどD6のスカさにうんざりなこのごろ、
D5に戻るのも癪だから、VCに行ってみる事にするよ。
じゃ、そういうことで。
0064デフォルトの名無しさん
NGNGVCLはあくまでツール作るときの道具なの。
VCがコンパイル速くてVCL並みのライブラリが標準装備なら
今ごろそっち移ってる
006560
NGNG問題は、そんなことではなく、
VCはコンパイルが遅くVCL並みのライブラリが標準装備
されていないのにもかかわらず
VCユーザの数>>>Delphiユーザの数
だっていう現実のことさ。
ここはDelphiスレなので64さんの意見は当然だと思いますが、
その64さんでさえ、条件が同等ならVCに移る、といってます。
どうしてなの?
オレは就職が有利そうなので、院でのツールはVCにすることに
決めたよ。
0066デフォルトの名無しさん
NGNGこれがすべてを説明してますな< VCユーザの数>
厨房な議論の割にsageを守ってるのは立派。以後もage無いように。
006760
NGNGオレは2年のときからだから3年近くDelphiをつかってきて、
Delphiの普及をこころから願っているよ。でも、現実は厳しい
ね。Cは前から知っているし、MFCも使ったことあるが、
VCLよりAPIのラップの程度が薄くて、SDKを知っている
ものにとっては、結構簡単に使えそうな感じ。でもウィザードを
つかってフレーム作ったりするのは、たしかに面倒ですね。
スレタイトルと違う話題で申し訳なかったです。>>1 & ALL
本当に Delphi ユーザの増加を願っているよ。そうすれば、情報量も
書籍の数も充実してくるんだよね。
じゃ、またいつか。
00681
NGNGVCL はとても便利で、アプリを作るだけならVCL使わない意味はないと思う
だけど、VCLをより便利に使う為にも 何をやってるか判った方がいいと思ったんだ
それにはVCLによらないアプリの作り方もやった方がいいと。
それならCでとも思ったし、実際Cにも手を出してみたけど「面白くなかった」んだ
だって、サンプル豊富で、サンプル通りやったら動くのよ、
それと、自分用の簡単なインストーラを作りたくなって、インストーラ自体が300Kとかだと
恥ずかしいかなと
だからレジストリへの書き込みとか、そんな方面から色々やってみてたんだ
自分では結構スキルアップになったと思う。 C/C++でも生かせるしね
00691
NGNGDelphiのユーザ数よりVC++が当然多いってのは、
Delphiの生産性の高さも原因じゃないかと思う。 実際Delphiでアプリ作ると
コンポ作れば作るだけ生産性あがるし、フォームは継承出来るし、
同じような仕事だったら
仕様書作るより早く、こんなイメージ的なアプリ作れて、数日で調整してどう
ぞみたいな感じになる。
俺は小さな会社でまあその会社で必要なソフトの内製 ひとりで全部やってるんだけど
組み込み的な仕事のWindows側や会社の事務の仕事から全部Delphiで賄ってる
そんな訳で他にプログラマ雇ってもらう必要がない。
組み込み用のマイコンにC使うし、Cの部分の検証の為やデバドラ作らなけりゃいけない
時の為に VC++も買ってるけどVC++だけで同じ事やろうとしたら、やっぱり最低3人は
必要な気がするよ。 同業者見てもそんな感じ
0070デフォルトの名無しさん
NGNG・先行有利の法則
・Pascal に人気がない
・MSDN
・MS 製品は書籍がたくさん出る
007164
NGNG将来を考えると最近C++移りたくなってきてるんです・・・。
うーん。
さすがに、ゲーム関連をDelphiでやってるのは少ないからなあ。
そもそもコンシューマだとDelphiはツールぐらいでしか活躍できないし。
0072デフォルトの名無しさん
NGNGそれもあるが。
俺が仕事、趣味を通して考えるに、
企業ユース:VC>Delphi
個人ユース:VC<Delphi
ではなぜ企業ではVCなのか?
主な理由として、
(1) OSと同じMS製ならば何かと安心(ビジネスだと保守的になってしまう傾向にある。)
(2) その当時、C/C++がスタンダードな言語であったため、
Delphi-Pascal は敬遠された。(ということもあり、試用せずに評価している。)
(3) 以前のボーランドは会社の状態が非常にやばかったため、
つぶれそうな会社の製品を使う余地はない。
一方、個人=Delphiの理由は、
(1) VCに比べて敷居が低い
(2) 簡単にハデで高機能なプログラムが作れる
(3) VBの場合は、細かい制御等ができないが、Delphiは一通り何でもできる。
(4) VBと違いネイティブコードを吐き出せるし、ランタイムライブラリが要らないから
配布し易い。(フリーウェア作者には好評)
仕事では客先から言語指定されるときはVC or VB。Delphiってことはまずない。
もちろん言語指定がない場合は当然Delphiでやってるよ。
DelphiがMS製なら企業ユースにもかなり浸透したと思うが。
0073デフォルトの名無しさん
NGNG将来を考えるのなら Java, C# やった方がいいのでは。
デバドラとか作るんなら C/C++ やっとく必要はあるが。
0074デフォルトの名無しさん
NGNG結局 C って感じになるんでしょうね
>>72
企業でも、中小でコスト意識の厳しい所は Delphiになるのかも
で Delphi選ぶと 効率がいいから人員が少なくてすむ=Delphiユーザが少ないとか
実際Delphi使うと、一人で大抵の事出来るから、ソフト外注するなんて考えられないよね
VC++や C#でプログラマでございますってやっても 企業の都合でポイされるだけみたい
な感じがする。 だったら プログラマ職としてやるより、 他の業種のエンジニアとして
プログラムも出来るスタイルの方が長持ちするのかもなんてね
0075デフォルトの名無しさん
NGNGBorlandやMSにさえこだわらなけりゃ
0076デフォルトの名無しさん
NGNG大事なのはコンパイラがいかに賢いかとかじゃなくて使う人間の方。
そういう目で見りゃ、ここの1がやってるようなのは道具を研ぐというより人間を研ぐ行為で是だと思うな
善哉善哉
0077デフォルトの名無しさん
NGNGDelphi は道具として優れているのでとりあえず使っている。
CもC++も知っているし、そうね、3ヶ月あれば、いまの
Delphiユーザとしての自分のスキルに追いつける自信がある。
JavaとC#は囓った程度だが、恐れるにたらず、いつでも乗
り換えられると、と思っている。76さんの言うように、結局
特定の言語にこだわるより、道具として割り切って、自分自身
のスキルアップを目指すのが正解みたいね。その意味で、ここ
の1のスタンスはなかなかよいと思うよ。
一方、45さんのいうことも一理あるが、そもそもこのスレの
趣旨とは無関係、というか、はなからそのことは承知のうえである、
ってことですね。
0078デフォルトの名無しさん
NGNG驚いた反面、これなら移行はすぐだと(自作ライブラリの移植がいらないなんて素晴らしい
そのかわりJavaはDesignPatternが当たり前のように出てくる罠
だらだらDelphi使ってると面食らっちまう・・・
0079デフォルトの名無しさん
NGNG>Result:= FindFirstFile(PChar(fname), FindData) <> INVALID_HANDLE_VALUE;
これって見つかったときに CloseHandle しなくていいの?
0080デフォルトの名無しさん
NGNG0081デフォルトの名無しさん
NGNGhttp://pc.2ch.net/test/read.cgi/tech/1012574089/
00821
NGNGが動かない件ですが
if hWindow=0 then
MessageBox(0, PChar(SysErrorMessage(getLastError)), nil, mb_Ok);
を入れてみると 'ウィンドウ クラスを見つけることができません。' とメッセージが出ます
あれ、上で RegisterClass してるのにと見ると
function WinRegister: Boolean;
var
WindowClass: TWndClassEx;
begin
と肝心のクラス定義がローカル変数というオチのようです
0083デフォルトの名無しさん
NGNGほんとだぁー、不思議、
var
WindowClass: TWndClassEx;
部分をグローバルにしたら動くね。どうして?
教えて下さい。
00841
NGNG私も詳しくは判りませんが、
RegisterClassではポインタをリンクリストみたいな感じで登録して
CreateWindowでポインタを辿って窓クラスを検索するようなイメージで考えていました
どちらにしても、関数内で閉じてない処理に、ポインタ渡しで永続的な情報を渡すのは
なんか変だなと思いますし
008583
NGNGレスありがとうございます。
わたしの環境では、
function WinRegister: Boolean;
が、そもそもfalseを返します。どうしてかよく分かりません。
CreateWindow() でのクラス指定は、RegisterClass(Ex) が返す
Atom を使うか、クラス名をそのまま指定しますよね。今の場合、
const
AppName = 'Window1';
としてクラス名はグローバルなので、何も問題がないように思い
ますが、どーなんでしょ? あのコードをかかれた方も、D5では
うまくいくって言ってましたし。なぜかなぁ?
008683
NGNGあっ、84さんの仰っている事って、RegisterClass(Ex) のパラメータ
を、登録したプロセスの中のメモリに保持しなきゃダメってことですか?
どこかで、登録したウィンドウクラスの有効性は、登録したプロセスの
寿命と同じ、というのを読んだことがありますが、それと関連してるんで
すかね? それにしても、やはり function WinRegister: Boolean;
が false を返すのがふしぎです。
00871
NGNGuses
Windows,
Messages;
const AppName = 'Window1';
type TMiniWin=class
private
wATM : ATOM ;//RegisterClassの返すアトム
WindowClass: TWndClassEx;
hWindow: HWnd;
protected
procedure WndProc(var Message: TMessage);virtual;
procedure WMPaint(var Message: TWMPaint); message WM_PAINT;
function WinRegister: Boolean;
function WinCreate : Boolean;
public
procedure DefaultHandler(var Message); override;
constructor Create; virtual;
function Show:Boolean;virtual;
end;
function WindowProc(Window: HWnd; AMessage, WParam, LParam: Longint): Longint; stdcall; export;
var msg:TMessage;
begin
msg.Msg :=AMessage; msg.LParam:=LParam ; msg.WParam:=WParam;msg.Result:=0;
TMiniWin(GetWindowLong( Window,GWL_USERDATA) ).WndProc(msg);
Result:=msg.Result;
end;
procedure TMiniWin.WndProc(var Message: TMessage);
begin Dispatch(Message); //メッセージをディスパッチします
end;
procedure TMiniWin.DefaultHandler(var Message );
begin with TMessage(Message ) do
Result:=DefWindowProc(hWindow,Msg, wParam, lParam);
end;
function TMiniWin.WinRegister: Boolean;
begin
with WindowClass do
begin
cbSize:=SizeOf(WindowClass);
Style:=cs_hRedraw or cs_vRedraw;
lpfnWndProc:=@DefWindowProc;
cbClsExtra:=0;
cbWndExtra:=0;
hInstance:=HInstance;
hIcon:=LoadIcon(0, idi_Application);
hCursor:=LoadCursor(0, idi_Application);
hbrBackground:=HBrush(Color_Window);
lpszMenuName:=nil;
lpszClassName:=PChar(AppName);
hIconSm:=0;
end;
wATM:=RegisterClassEx(WindowClass);
Result:=wATM <>0;
// if not Result then MessageBox(0, PChar(SysErrorMessage(getLastError)), nil, mb_Ok);
end;
00881
NGNGfunction TMiniWin.WinCreate: Boolean;
begin Result:=false;
if wATM=0 then if not WinRegister then exit;
hWindow:=CreateWindow({PChar(AppName)}PChar(wATM), PChar('ObjectPascalWindow'),
ws_OverlappedWindow, cw_UseDefault, cw_UseDefault,
cw_UseDefault, cw_UseDefault, 0, 0, HInstance, nil);
Result:=hWindow<>0;
if Result then begin
SetWindowLong( hWindow,GWL_WNDPROC ,integer(@WindowProc));
SetWindowLong( hWindow,GWL_USERDATA ,integer(self));
end;
end;
function TMiniWin.Show:boolean;
begin
Result:=False; if hWindow=0 then if not WinCreate then exit;
Result:= ShowWindow(hWindow, CmdShow);
Updatewindow(hWindow);
end;
constructor TMiniWin.Create;
begin inherited
end;
procedure TMiniWin.WMPaint(var Message: TWMPaint);
var h:HDC;
var ps:PAINTSTRUCT;
procedure textOut(x,y:Integer;s:string);begin Windows.TextOut(h,x,y,PChar(s),Length(s)); end ;
begin
h:=BeginPaint(hWindow,ps);
textOut(10,10,'こんにちは');
EndPaint(hWindow,ps);
end;
procedure RunMessageLoop;
var AMessage: TMsg;
begin
while GetMessage(AMessage, 0, 0, 0) do
begin
TranslateMessage(AMessage);
DispatchMessage(AMessage);
end;
end;
///////// main /////////
var MiniWin:TMiniWin;
begin
MiniWin:=TMiniWin.Create;
MiniWin.Show;
RunMessageLoop
end.
00891
NGNGD6でも、元のコードを少しコードの順を変更したりして
スタックがそこまで消費されないと大丈夫になったりしますから
スタックにあると壊れてしまうからのように思います
00901
NGNGwATM : ATOM ;//RegisterClassの返すアトム
WindowClass: TWndClassEx;
この2つはクラス外に出して、ローカル領域にもってゆかないとダメみたい
009183
NGNG回答ありがとうございました。
帰宅したので、遅レス申し訳ありません。
ははぁ、Generic.c のウィンドウ部分をクラスにしたのですね。
大体動きましたが、ちょっと気が付いた点を......
1) WM_DESTROY メッセージの処理
がされていないので、Xボタンでウィンドウは破棄されるがメッセージ
ループから脱出できないのでアプリが終了しない
[対処]
procedure WMDestroy(var Message: TWMDestroy); message WM_DESTROY;
と宣言して、
procedure TMiniWin.WMDestroy(var Message: TWMDestroy);
begin
PostQuitMessage(0);
end;
としてキューに WM_QUIT メッセージをポストする
2) ExitCode の設定
がされていない
[対処]
function RunMessageLoop:WPARAM;
として、この関数の最後に
result := AMessage.wParam;
のように変更してから、メッセージループの実行部分を
ExitCode := RunMessageLoop;
とする。
3) MiniWin オブジェクトの破棄
がされていないので、結局、メイン手続きを
var MiniWin:TMiniWin;
begin
MiniWin:=TMiniWin.Create;
MiniWin.Show;
ExitCode := RunMessageLoop;
MiniWin.Free;
end.
にする。
以上です。あと、メソッドにできないウィンドウ関数で、ウィンドウハンドルと
それをラップしているオブジェクトを関連付けるために
SetWindowLong(hWindow,GWL_USERDATA,integer(self));
として GWL_USERDATA 領域にインスタンスを格納しているのは面白いと思いました。
ただ、初めに RegisterClass() でのウィンドウ関数の設定は @DefWindowProc に
なっており、ウィンドウ作成後に関連付けが行われるため、ウィンドウ作成に伴う
WM_CREATE などのメッセージをオブジェクトで受け取れないのは残念です。
また、WM_DESTROY で関連するオブジェクトを自動的に Free できるようにすると
便利だと思います。
009283
NGNGhbrBackground:=HBrush(Color_Window);
の部分は
hbrBackground:=HBrush(Color_Window+1);
だと思います。
0093デフォルトの名無しさん
NGNGなんで?
出来てるよ?
009493
NGNG俺は出来てるよ。だった。
00951
NGNGやっぱりスタック上のWindowClassが悪さしてたんですね。
解放の件は>>79さんにも指摘されましたが、ちょっと私のコードは甘いようです
WindowProcの件については、TMiniWinインスタンスアドレスを SetWindowLongで渡してい
る関係上、どうしてもCreateWindow時に インスタンスアドレスを渡せない為に仕方ないか
と思います。
WM_CREATE は窓ハンドル作成時に自分で自分に送りつけるしかないかと
00961
NGNGダイアログと違ってクラスで実装しても VCLとは無関係な世界になって
あんまり面白くないですね。
メリットとしてはFreePascalとかでも使えるくらいかな
0097デフォルトの名無しさん
NGNGCreateWindowのパラメータでインスタンスアドレスを渡しWindowProc内部で、
WM_NCCREATE/WM_CREATEのときにSetWindowLongするって話?>93
010083
NGNG>やっぱりスタック上のWindowClassが悪さしてたんですね。
そうですね、これは微妙で深刻な問題だと思います。
とりあえず、元コードで
function WinRegister: Boolean;
が false を返す件は、with を使わなければ回避できそうです。
あと、細かいところでは
hCursor:=LoadCursor(0, idi_Application);
のところは
hCursor:=LoadCursor(0, IDC_ARROW);
だと思います。
01011
NGNG100さん >>88のコードをキレイに書こうと色々追加してたら とても大きくなってしまい
しかもキレイじゃありません。 うーん
それと、コンポーネントじゃない窓クラス作ってもそれほどの意味はやっぱりないですね
ダイアログアプリ程度が限界という感じかな
0102100
NGNG>コンポーネントじゃない窓クラス作ってもそれほどの意味はやっぱりないですね
通常、インスタンスをひとつしか作りませんからね。そうかもしれません。
でもイベントをつけたり、プロパティーをとおしてウィンドウの制御をしたり
というふうにすると<勉強>にはなるかもしれませんね。
0103デフォルトの名無しさん
NGNGぐらいの適当なパッケージを作って(〜600Kくらいになる)、
それとリンクさせるのが一番効率いいのかな。(何もしないフォームだと14K)
0104デフォルトの名無しさん
NGNGそれは、exe の中身をパッケージに移しただけでは?
いや、確かに小さい exe ではあるね。なるほど。
0105デフォルトの名無しさん
NGNG0106デフォルトの名無しさん
NGNG0107デフォルトの名無しさん
NGNG0108デフォルトの名無しさん
NGNGフォームにコンポ―ネントをバーンバーンバーン、
でコンパイルー、でOKじゃん!
0109デフォルトの名無しさん
NGNG0110デフォルトの名無しさん
NGNG0111デフォルトの名無しさん
NGNG0112デフォルトの名無しさん
NGNG実行ファイルサイズなんて大して気にならない。
それよりもDirectXを使ったときの変な挙動が気になるから、
APIでゴリゴリ(もちろんラップして再利用化ぐらいしてるさ)。
0113デフォルトの名無しさん
NGNG01141
NGNG0115デフォルトの名無しさん
NGNG0116デフォルトの名無しさん
NGNGDelphiでも作れるよ。
でも何故わざわざここで聞くの?
0117デフォルトの名無しさん
NGNGまぁ性能に関しては知識がいるんだけどな。
0118デフォルトの名無しさん
NGNG0119デフォルトの名無しさん
NGNG0120デフォルトの名無しさん
NGNG作れる。以上。
0121デフォルトの名無しさん
NGNG正直今までObject Pascal見縊ってました。
0122デフォルトの名無しさん
NGNGというかVBのPascal版としか考えていなかったんだろ。
C++で出来ることの99%は出来るぞ。
0123デフォルトの名無しさん
NGNGこんなこと言っているやつは作れない。
所詮Delphiもそれだけの開発環境ということ。
VCなんかももちろん同じだが。
0124デフォルトの名無しさん
NGNGhttp://www.progdigy.com/
SelectObjectとかCreateDIBSectionとか鬱になる旧GDIのAPIを使わずに済むので、
APIだけでコードを書く時は莫大なメリットになる思います。
しかしXP以外は最初からOSに入っていないという罠も…。
英語の読める人にお聞きしますが、gdiplus.dllって再配布可能ですか?
0125デフォルトの名無しさん
NGNG>GDI+をDelphiから使うユニット
そのままDLLで使えないの?
0126デフォルトの名無しさん
NGNG0127124
NGNGXP以外ではMSのサイトから落としてくる必要があるのですが、これをアプリにくっつけて再配布できるか知りたいのです。
以下の辺りと思うのですが…。(添付のlicense.txtより抜粋)
* Distribution Terms. You may reproduce and distribute an unlimited number of copies of the Sample Code and/or
Redistributable Code (collectively "Redistributable Components") as described above in object code form, provided that (a)
you distribute the Redistributable Components only in conjunction with and as a part of your Application solely for use with a
Microsoft Operating System Product; (b) your Application adds significant and primary functionality to the Redistributable
Components; (c) you distribute your Application containing the Redistributable Components pursuant to an End-User License
Agreement (which may be "break-the-seal", "click-wrap" or signed), with terms no less protective than those contained herein;
(d) you do not permit further redistribution of the Redistributable Components by your end-user customers; (e) you do not use
Microsoft's name, logo, or trademarks to market your Application; (f) you include a valid copyright notice on your
Application; and (g) you agree to indemnify, hold harmless, and defend Microsoft from and against any claims or lawsuits,
including attorneys' fees, that arise or result from the use or distribution of your Application. Contact Microsoft for the
applicable licensing terms for all other uses and/or distribution of the Redistributable Components.
>>125
GDI+はC++型のクラスを用いる形なので、上記ユニットはNewInstanceをoverrideしてDelphiのクラスをGDI+のクラスとして振る舞わせてます。
0128デフォルトの名無しさん
NGNG0129デフォルトの名無しさん
NGNGそれはEULAでしょ?再配布については記述されてない。
Redist.txtとか入ってなかったか?
もしくはEULAにRedistのセクションは無いのか?
0130デフォルトの名無しさん
NGNGこんなところで訊いて、yes or no の回答があったら信用するのか?
自分で訳せよ
0131デフォルトの名無しさん
NGNGと今更逝ってみるテスト。
0132124
NGNGラッパー作ってますよ…でも、よくある俺様ライブラリ(自分のも含めて)よりも、GDI+は高性能と思うので。
それに曲がりなりにもMicrosoft製というのも大きいです。.NETなんかでも同じモデルが使われているみたいですし。
>>130
はい…おっしゃる通りです…辞書と格闘することにします。
0133デフォルトの名無しさん
NGNGGDIベースのゲーム用ライブラリを使った方がよっぽど高性能
0134デフォルトの名無しさん
NGNG0135デフォルトの名無しさん
NGNG>試みとしては面白いけどVCL使わないDelphiなんて…
続きはなに?
0136デフォルトの名無しさん
NGNG131のようなのは45以降を読んでないのね。
わざわざ書き込んで何を主張しようとしているんだろう?
スレ違いの茶々を入れて何がおもしろいのかなぁ。
0137124
NGNGGDI+のアルファブレンディング、中でどうやっているのかと思えば、AlphaBlendなんてAPIが98以降存在している…
0138デフォルトの名無しさん
NGNGだから
>と今更逝ってみるテスト。
と書いてるんじゃないのか?
おまえこそ意味の無いレスをわざわざ書き込んでなにが面白いんだ?なにを主張しようとしてるんだ?
0139デフォルトの名無しさん
NGNG>>と今更逝ってみるテスト。
>と書いてるんじゃないのか?
だから何なんだ、ときいているのだよ?
0141デフォルトの名無しさん
NGNG個人の感想にいちいち突っかかるなよ・・・
0142デフォルトの名無しさん
NGNG個人の感想は136、突っかかってきたのが138、と見えるが?
以上、個人の感想でした。
0143デフォルトの名無しさん
NGNG0144デフォルトの名無しさん
NGNG0145デフォルトの名無しさん
NGNG0146voke
NGNG0147デフォルトの名無しさん
NGNG0148デフォルトの名無しさん
NGNG0149voke
NGNG0150voke
NGNG0151デフォルトの名無しさん
NGNGageるなボケ
0152デフォルトの名無しさん
NGNG0153デフォルトの名無しさん
NGNG0154デフォルトの名無しさん
NGNGスレタイをちゃんと読むように
0155デフォルトの名無しさん
NGNG0156デフォルトの名無しさん
NGNG0157デフォルトの名無しさん
NGNG実行ファイルがめちゃくちゃ小さくなりますよ。
スキルを磨くのは良いけれど、UPXは凄いよ。
0158デフォルトの名無しさん
NGNGせいぜい起動が速くなることがある程度のメリットしかない。
0159Delフサギコ ◆zE1iiRdQ
NGNG実は知らない.
∧,,∧
,ミ ゚Д゚彡
ミ ∪
ミ〜,, ミ
∪ ∪
0160デフォルトの名無しさん
NGNGhttp://urikire.hypermart.net/UPXF.htm
フロントエンド使えタコ
0161voke
NGNG0162デフォルトの名無しさん
NGNGAPIで組んで、UPXに食わす。さらに小さくなり(゚Д゚)ウマー
総行数6万行280KByte → 約100KByteとか。
>>159
最高に圧縮品質を高める設定なら
upx --best *.exe
あとはupx --helpでもしる!!
0163デフォルトの名無しさん
NGNGDelphi とは無関係だと思うけど?
0164デフォルトの名無しさん
NGNGまぁ、今となってはありがたみはあまり無いね。
でも、ウインドウ一つ、strcopy()一つで100KBと言うのは誰でも一度はナンセンスだと感じたはず。
0165デフォルトの名無しさん
NGNG>誰でも一度はナンセンスだと感じたはず。
でもそのうちフォーム一枚で300kbになっても、どうでもよく
なるんだよね。こういう感覚は、自分は「便利さ」を優先しているので
VCLつかうのは仕方がない、という一種の諦めではあるんね。
01661
NGNGprocedure toClip(const s:string);
var size:Integer;
var dh: THandle;
var dt:PChar;
begin
size:=Length(s)+1;
EmptyClipboard;
OpenClipBoard(0);
try
dh := GlobalAlloc(GMEM_MOVEABLE+GMEM_DDESHARE, size);
try
dt := GlobalLock(dh);
try
Move(PChar(s)^, dt^, size);
SetClipboardData(CF_TEXT, dh);
finally
GlobalUnlock(dh);
end;
except
GlobalFree(dh); //エラー時のみ
end;
finally CloseClipboard; end;
end;
01671
NGNGこれを使ってこんなのを作ってみました。
program Bin2Byte;
uses Windows,SysUtils;
// >>166の修正してコピペ
function readFileStr(fname:string):string;
var hin:THandle;
var rsize:DWORD;
begin
result:='';
hin:=CreateFile(PChar(fname),GENERIC_READ,FILE_SHARE_READ ,nil,OPEN_EXISTING
,FILE_ATTRIBUTE_NORMAL,0);
if hin<>0 then try
SetLength(Result, GetFileSize(hin, nil));
ReadFile(hin,PChar(Result)^,Length(Result),rsize , nil);
finally CloseHandle(hin);
end
end;
function getWin32Find(const fname:string):TWin32FindData;
var h:THandle;
begin
h:=FindFirstFile(PChar(fname),Result);
if h = INVALID_HANDLE_VALUE then begin
Result.cFileName[0]:=#0;
end else Windows.FindClose(h);
end;
var buf,s,c0,wk,fname:string;
var i,n,siz,bufc:Integer;
procedure puts(s:string);
var i:Integer;
begin
for i:=1 to Length(s) do begin buf[bufc+1]:=s[i];inc(bufc);end;
end;
begin
if ParamCount<1 then exit;
fname:=ParamStr(1);
with getWin32Find(fname) do begin
if cFileName='' then exit;
s:=cFileName;
end;
for i:=1 to Length(s) do if s[i]='.' then s[i]:='_';
bufc:=0;
wk:=readFileStr(fname);
siz:=Length(wk);
SetLength(buf,siz*4+(siz div 4)+length(s)+1000);
puts('const '); puts(s);puts(':array[0..'+IntToStr(siz-1)+'] of byte='#13#10);
n:=0;
c0:='($';
while n<siz do begin
for i:=0 to 15 do if(n<siz) then
begin puts(c0+IntToHex(ord(wk[n+1]),2));inc(n);c0:=',$';end;
puts(#13#10);
end;
puts(');'#13#10);
SetLength(buf,bufc);
toClip(buf);
end.
01681
NGNG例 Bin2Byte Bin2Byte.exe
実行結果
const =Bin2Byte_exe:array[0..43519]=
($4D,$5A,$50,$00,$02,$00,$00,$00,$04,$00,$0F,$00,$FF,$FF,$00,$00
,$B8,$00,$00,$00,$00,$00,$00,$00,$40,$00,$1A,$00,$00,$00,$00,$00
・・・・ 略・・・・
);
というようなのがクリップボードに入ります。
これを使えばバイナリファイルをリソースではなく直接ソースに埋め込めます
取り出す時のコードは
function writeFileBin(fname:string;data:array of byte):boolean;
var hout:THandle;
var wsize:DWORD;
begin
result:=false;
hout:=CreateFile(PChar(fname),GENERIC_WRITE,0,nil,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,0);
if hout<>0 then try
if WriteFile(hout,data,Length(data),wsize,nil) then
result:=wsize=DWORD(Length(data));
finally CloseHandle(hout);
end
end;
01691
NGNGこれはまだ工夫すると半分に出来ます。
SysUtils を外して、IntToHex IntToStrの2つを自作に置き換えれば
19,455Byteとなりました
0170デルファイの名無しさん
NGNG0171デフォルトの名無しさん
NGNG0172デフォルトの名無しさん
NGNG0173デフォルトの名無しさん
NGNGDelphi6 16,384バイト
C# 3072バイト
よって
C#>>>>>>>>>>>>>>Delphi
0174デフォルトの名無しさん
NGNGよって
Perl>>>>>>>>>>>>>>>>>>>>>C#>>>>>>>>>>>>>>Delphi
0175デフォルトの名無しさん
NGNGよって
Ruby>>>>>>Perl>>>>>>>>>>>>>>>>>>>>>C#>>>>>>>>>>>>>>Delphi
0176デフォルトの名無しさん
NGNGスタートアップルーチンなどは勿論デフォルトの物で。
cl -MD hello.c -link -merge:.data=.text -merge:.rdata=.text -align:64
#include <stdio.h>
main()
{
printf("Hello, World!\n");
}
0177デフォルトの名無しさん
NGNGよって
バイナリエディタ>>>>>>>>>>>>C#>>>>>>>>>>>>>>Delphi
0178デルファイの名無しさん
NGNGDelphi6 9,216 バイトでしたが。
小さくしたいならuses SysUtilsは消しましょう。
ついでにC#と近い条件にするため実行時パッケージを使うと4,096。
負けてはいるけど">"14個も大袈裟かな…
0179デルファイの名無しさん
NGNG0180デフォルトの名無しさん
NGNGprogram Hello;
uses
Windows;
const helloStr='Hello, World'#13#10;
var putSize:DWORD;
var buf:array [0..100] of char;
begin
AllocConsole;
WriteConsole(
GetStdHandle(STD_OUTPUT_HANDLE)
, pChar(helloStr),length(HelloStr),putSize,nil);
ReadConsole(
GetStdHandle(STD_INPUT_HANDLE)
, @buf,High(buf)-1,putSize,nil);
end.
実行ファイルのサイズは1024の倍数になる様子
0181デフォルトの名無しさん
NGNG0182デフォルトの名無しさん
NGNG0183デフォルトの名無しさん
NGNGBorlandのリンカにはファイルアライメントを調整するオプションはないの?
0184デルファイの名無しさん
NGNG普通にコンパイルすると.dprに関しては中間ファイルが作られず直接exeになってしまいますが
dcc32 -J でコンパイルすると.objができたので、これをilink32に渡して…
…誰かこの先を教えて下さい。
0185デルファイの名無しさん
NGNGilink32には一応-Afとか-Aoなどあるみたいですが。
0186デフォルトの名無しさん
NGNGNT系ならAf:16 Ao:任意。
0187デフォルトの名無しさん
NGNG自分でEXEを作るしかないと思う。
ただし、WinAPIしか使わない前提で、かつImport情報とリロケート
情報をちゃんと作らなければならないのが難点だけど・・・
でも、チラっとみた感じ、Importに必要な情報は入ってるようす
リロケート情報は判らない
0188デフォルトの名無しさん
NGNGbcc32には -l というオプションがありますけど
dcc32にはないのですか?
>>186
Win9xでも-Af:512でOKです。
Win95までは-Af:512でした。
0189デフォルトの名無しさん
NGNG0190デフォルトの名無しさん
NGNGオプションは存在しないってこと?
0191デフォルトの名無しさん
NGNGサゲ進行だと誰も気づいてくれないような・・・
0192デフォルトの名無しさん
NGNG0193Delフサギコ ◆VzDeLphI
NGNGΛΛ. ||:::::::::::||
ミ ミ―||:::::::::::||―――
ミ つ二二lニl 且
=@ | ̄ ̄|__ミ―――――
`ー┬‐'' アスタから仕事ですねー
┴
SysUtilsを使いたくなくて
ByteTypeを自分で実装しようとおもうますた。
ByteTypeを自分で実装しようとすると
IsDBCSLeadByte APIを使ったり
どなたかが作った
IsDBCSLeadChar 関数を使うとよさそうですが
どうも変な挙動が出て困ってます。
procedure Check(A, B: Variant);
begin
if A <> B then
begin
Assert(False, 'エラー')
// raise Exception.Create('エラー');
end;
end;
function IsDBCSLeadChar(c:char):boolean;
begin
Result:=c in [#$81..#$9f,#$E0..#$fc]
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Check(True, IsDBCSLeadChar( ('る'[1]) ));
Check(True, IsDBCSLeadChar( ('る'[2]) ));
Check(True, IsDBCSLeadChar( ('あ'[1]) ));
Check(False, IsDBCSLeadChar( ('あ'[2]) ));
Check(True, IsDBCSLeadByte( Byte('る'[1]) ));
Check(True, IsDBCSLeadByte( Byte('る'[2]) ));
Check(True, IsDBCSLeadByte( Byte('あ'[1]) ));
Check(False, IsDBCSLeadByte( Byte('あ'[2]) ));
end;
このプログラムでテストが通るのですが
なんで"る"と"あ"で挙動が違うのでしょうか?
"る"の2バイト目にはなぞな何かがあるんでしょうか?
0194デフォルトの名無しさん
NGNGDelフサのあのモサモサした身体に後ろから抱きつきたい。
モサモサ体を弄りたい(・∀・)!
0195Delフサギコ ◆VzDeLphI
NGNG.ΛΛ. ||:::::::::::||
―――ミ;゚Д゚ミ―||:::::::::::||――キタ――
ミ つ二二lニl 且
| ̄ ̄|__ミ―――――
`ー┬‐''
┴
0196ねこま
NGNGる = $82E9
0197デフォルトの名無しさん
NGNGmain() {
char buf1[]="る";
char buf2[]="あ";
printf("%s : %2x | %x\n", buf1, buf1[0], buf1[1]);
printf("%s : %2x | %x\n", buf2, buf2[0], buf2[1]);
}
る : 82 | e9
あ : 82 | a0
あ の場合範囲外
る の場合範囲内
よくわからんが・・・。
0198Delフサギコ ◆VzDeLphI
NGNG.ΛΛ. ||:::::::::::||
―――ミ;゚Д゚ミ―||:::::::::::||―オシエテモラタ―
ミ つ二二lニl 且
| ̄ ̄|__ミ―――――
`ー┬‐''
┴
0199Delフサギコ ◆VzDeLphI
NGNG.ΛΛ. ||:::::::::::||
―――ミ;゚Д゚ミ―||:::::::::::||―オシエテモラタ―
ミ つ二二lニl 且
| ̄ ̄|__ミ―――――
`ー┬‐''
┴
つまり、APIが主っきりバグってると??
IsDBCSLeadByteがニポンゴの1バイト目発見のための
関数だとすると
普通に考えたら
function IsDBCSLeadChar(c:char):boolean;
begin
Result:=c in [#$81..#$9f]
end;
これじゃだめなのですか?
SJISの仕様とか知らべる気力もないんですが,,,
SysUtilsの20KB増がいやだから
単にByteTypeを作りたいだけなのに、、、
0200Delフサギコ ◆VzDeLphI
NGNG∧,,∧ 茶どうぞ
ミ,,゚Д゚彡
ミ つ旦)~~
〜と,,,~),,~)
0201デフォルトの名無しさん
NGNGここの読んでみるといいかもです。
S_Jisのコードの割り当て方が詳しく乗ってますです。
0202デフォルトの名無しさん
NGNG0203ねこま
NGNGSJIS の LeadByte をピンポイントで正格に知る方法は無いよ(ね!?)
0204ねこま
NGNGLeadByte じゃなくて2バイト目
0205デフォルトの名無しさん
NGNG次のバイトはすっ飛ばすかなんかしなきゃあかんとおモイまう。
S-JIS にぽんごが1バイト目にとるであろう範囲
半角かな 1 バイト文字 0xA0〜0xDF
全角文字 2 バイト文字 0x81〜0x9F 0xE0〜0xFF
っでいいのかな?
0206ねこま
NGNG0207Delフサギコ ◆VzDeLphI
NGNGミ ゙''゙゙゙つ ________
ミ∧,,∧ /
ミ,,゚Д゚彡 < SysUtils.ByteTypeはみたいでつ
U U \
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ソースコピペしてもちゃんと動かないので
やっかいなのだ。
0208Delフサギコ ◆VzDeLphI
NGNGミ ゙''゙゙゙つ ________
ミ∧,,∧ /
ミ,,゚Д゚彡 < はみタイツじゃなくて・・・
U U \
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
SysUtils.ByteTypeは
2バイト目のお知らせが正確みたいでつ。
と書きそこねですた
0209ねこま
NGNG>2バイト目のお知らせが正確みたいでつ。
正確でなくては困ります.
「ピンポイントで」と言ったのは,1バイトの情報だけでという意味です.
すべては SysUtils.ByteTypeTest を通されます.
おやすみなさい.
0210デフォルトの名無しさん
NGNG$000〜#255の間でチェック
130, 132, 134, 136, 138, 140, 142, 144, 146,
148, 150, 152, 154, 156, 158, 160, 225, 227,
229, 231, 233, 235, 237, 239, 241, 243, 245,
247, 249, 251, 253
でも、この範囲外のコードを持つ2バイト文字もあると思うので
2バイト目だけで正確な判断は無理かと・・・。
0211デルファイの名無しさん
NGNG仕様すら調べもせずバグ疑惑ですか…
他のスレの話題を混ぜる(蒸し返す)ことになり、また僕程度がこんな事を言うのは大変失礼ですが、
Delフサギコさんを満足させるライブラリは無い予感。
>>207
SysUtilsからソースコピペしても動かないのは、LeadBytes変数が設定されていないと予想。
初期化部分も持って来るか、そこだけIsDBCSLeadByteに書き換えれば動くかと。
それと、言語設定がS-JIS以外の時も考慮するなら、
(>>193のIsDBCSLeadCharのように数値を埋めこまずに)
IsDBCSLeadByte APIとかCharNext APIとかを使うべきです。
0212デフォルトの名無しさん
NGNGこの初期化してる部分を参考にするといい
0213Delフサギコ ◆VzDeLphI
NGNG_____________
/
| ?ハァ?
| SysUtils.ByteTypeと同仕様で軽量
| って仕様なライブラリは無いのでつか?
\_ ____________
|/
∧,,∧
ミ,,゚Д゚ミy━~~
U ミ
〜ミ ミ
∪''∪
>IsDBCSLeadByte APIとかCharNext APIとかを使うべきです。
べきとか、そういうのはどうでもいいのですが
とりあえず、今の所中身がわからなきゃ調査に困るです。
>仕様すら調べもせずバグ疑惑ですか…
>>193をみて、IsDBCSLeadByteが正しいと思えるですか?
名前からして、'る'の2バイト目にヒットすると誰が思う?
誰もが'る'の2バイト目にもTrueを返すと思える?
0214デルファイの名無しさん
NGNGhttp://pc3.2ch.net/test/read.cgi/tech/1027343132/635 でも、ライブラリの充実を訴えてますが、
こんな程度で文句を言うようでは、どんなに高機能でいい設計のライブラリでも
満足できないんじゃ無いかなあ…と思えてしまって。失礼しました。
当然SysUtilsの外でByteTypeは実装できる筈(汗
で、SHIFT-JISですが、
IsDBCSLeadBytesは、文字どおりLeadBytesかどうかを判断する関数であって、
2バイト目についてどうにかする関数じゃ無いですね。
というか、1バイトだけの情報でそこまで求めるならば、
1バイト目と2バイト目の範囲が重なるコード体系は全滅ですよ。
マルチバイト文字列を扱う時は、先頭から走査していかないと何処までが1文字なのか区切りがつかないのは
文字列処理のセオリーというか、Delフサギコさんが知らなかった事の方が驚きというか。
とりあえず、漢字混じりのテキストファイルをバイナリエディタでいじってみる事を推奨。
0215デフォルトの名無しさん
NGNG途中から検査したい時は 第2バイトにもならないコードを探して、そこから戻って
検索する事で処理を高速にする為に必要なのです
0216デルファイの名無しさん
NGNGじゃ、便乗質問していいですか?
1バイト目の集合はGetCPInfoでいいとして、DBCSの2バイト目の集合はどうやって求めればいいでしょうか?
0217デフォルトの名無しさん
NGNG>文字列処理のセオリーというか、
UNICDOE で上から下までかける現在の Windows 開発環境ではちょっと言い過ぎだね。
廃れかけている古い技術をあまり大声で言うもんじゃない。
0218デフォルトの名無しさん
NGNG>>217 そうなんだけど DelphiはTurboPascalの昔からShiftJISだったからさ
0219デフォルトの名無しさん
NGNGなぁーに言ってるんだか。
現在の Delphi についてでしょ。
> 先頭から走査していかないと
これが重要なんだってば!
0220デフォルトの名無しさん
NGNG2バイト目も判定できるの?
0221デフォルトの名無しさん
NGNG0222デルファイの名無しさん
NGNG>>217
UTF-8も、2バイト目と3バイト目が重なる時ありませんでしたっけ?気のせいかな。
0223デフォルトの名無しさん
NGNGΛΛ. ||:::::::::::||
ミ ミ―||:::::::::::||―――
ミ つ二二lニl 且
| ̄ ̄|__ミ―――――
`ー┬‐'' うまく動かないなー
┴
____
.ΛΛ. ||:::::::::::||
―――ミ ゚Д゚ミ―||:::::::::::||――
ミ つ二二lニl 且
| ̄ ̄|__ミ―――――
`ー┬‐'' APIのバグだねこれ
┴
0224デフォルトの名無しさん
NGNGチャント流れ読んでる? 1バイト目が確定するなら
なんで2バイト目を取得する必要があるの?
0225デルファイの名無しさん
NGNG215の指摘を受けて、そのテクニックを(言語を問わず)使うために、216で便乗質問したのですが。
0226デフォルトの名無しさん
NGNG>>216
>1バイト目の集合はGetCPInfoでいいとして、DBCSの2バイト目の集合はどうやって求めればいいでしょうか?
でしょ? 1バイト目が確定することを仮定しておいて、2バイト目
を議論するのはどういうことよ。1バイト目 LeadingByte なら
その次は DBCS の2バイト目であることは定義より明らかでしょ
0227デルファイの名無しさん
NGNG長い長い文字列で、現在位置が最後の方だった時、一々先頭から全部走査するのを避けるため、
後ろから、絶対2バイト目にはならないコードを探して、そこから普通に走査開始!
というテクニックと解釈しましたが。
0228デフォルトの名無しさん
NGNG222 では > 2バイト目を求めるAPIは無いのでしょうか。
と書いてるじゃないの。2バイト目を求めるのと、
「絶対2バイト目にはならないコード」を求めるのとは
同等じゃないぞ
0229Delフサギコ ◆VzDeLphI
NGNGミ゚Д゚,,彡 < 忙しすぎて、
⊂⊂ ミ──────
ヾ ,,ミ〜 ────
し じ ─────
_____________
____∧ ∧_ /
___ミ,,゚Д゚ミ< レスも終えなくてスマソー
__ ミ ⊃ つ \______________
_〜ミ,, ,,〃
_ ∪ ∪
>>214さん、そう、俺はVCLでも満足できません。
より高機能でいい設計のライブラリを求めてしまう。
楽をしたいから、いいライブラリに飛びつきたいのれす。
楽をしたいのは技術者として大切だと思うんですが,,,,
というか、TMemoにUndoが実装されてないのを
自然だと思えるセンスは俺にはないです。あからさまに不自然ぢやない?
ピンポイントで調べるのではなくて
ByteType関数と同じ仕様で文字列とIndexをわたしたら
そこが2バイト目かどうかを調べる。<<これはピンポイントではないですよね。
これはできると思うんだけど・・・
なんにせよ、
SysUtilsをusesした時の20KB増が嫌ってだけなんですけど、
このスレむきな話題かと重いますた。
>>223
仕様とバグは紙一重かも。
>>201タンのリンク先を目が節穴になるほど、みると
わかるのかな。
http://www.unixuser.org/~euske/doc/kanjicode/sjistab.gif
この図が重要だと思うてるんですが,,,,
0230デフォルトの名無しさん
NGNGttp://tohoho.wakusei.ne.jp/wwwkanji.htm#Map
この図も面白げです。
0231デフォルトの名無しさん
NGNGTMemo には Undo メソッドがあるよ
0232デフォルトの名無しさん
NGNG> ByteType関数と同じ仕様で文字列とIndexをわたしたら
> そこが2バイト目かどうかを調べる。<<これはピンポイントではないですよね。
> これはできると思うんだけど・・・
文頭から調べる! 何度言った分かりますか。
> ByteType関数と同じ仕様
こんな関数簡単につくれるだろうに....
0233Delフサギコ ◆VzDeLphI
NGNG| CLXの |
| TMemoす |
|______| _____
∧,,∧.||__ /
/ミ,゚Д゚ Φ/\< 死ってびっくり
/| ̄∪ ̄ ̄|\/ \ミてびくり。
|____|/  ̄ ̄ ̄ ̄ ̄
D7Pro以上お餅の方は
http://software.nikkeibp.co.jp/software/download/0209/klx0209.zip
ダウソしてUndoの実装みてみそ
CLXじゃなくてQTのAPI(?)関数コールしてます。
0234Delフサギコ ◆VzDeLphI
NGNG∧,,∧___ /文頭から調べるのは遅いと
/ミ,,゚Д゚ミ/\< 思われなんだけど,,,,,
/| ̄∪∪ ̄|\/ \_____
|____|/
作るヒマないって逝ってるのに,,,
もうちょっと考えさせてって。
(というか、簡単につくれるだろうに、って言うなら
作ってくれんですか?面倒なのなら"簡単に"なんて使うな)
0235デフォルトの名無しさん
NGNGByteType程度自分で作れない奴が言うなよー、みたいなー。
「自分は何もしたく無いから、何でもかんでもライブラリで実装してくれ。理解できない仕様はバグね」としか読めん。
特にこのスレだと、(Systemユニット以外は)一切使わず全部自前で実装して省サイズって
流れでもいいと思う。
0236デフォルトの名無しさん
NGNG> CLXじゃなくてQTのAPI(?)関数コールしてます。
見てないけど、Windows と QT のエディットコントロールの実装の差じゃ
ないのですか。VCL とか CLX とかのライブラリがどうの、ということじゃなく
0237デフォルトの名無しさん
NGNGソースみたらほとんどコピペでできると思うよ。
0238デフォルトの名無しさん
NGNG>>211の第2段落
0239デフォルトの名無しさん
NGNGお前の頭のバグ
0240Delフサギコ ◆VzDeLphI
NGNG;゙⌒ヽ彡
〜ミ___ミ
''" ""''"" "''
>ByteType程度自分で作れない奴が言うなよー、みたいなー。
「作れないヤシがいうなよー」なら、
作れるやつだけで高尚な会話しとけ。
(つか、小難しい事を小難しくしか説明でけないヤツは
本当には理解してないと表るから、いいよ別に
難しい事を難しく話して、どうぞ。
それに"その程度"ってなら、さっさと作ればいいでしょ?)
>理解できない仕様はバグね
バグかしら、と疑う事と、バグだと断定することには
ずいぶんと差があるのだけど、そのことわかってる?
>「自分は何もしたく無いから、何でもかんでもライブラリで実装してくれ。理解できない仕様はバグね」
オレが作りたいのはソフトウェアの機能であって
ライブラリを自分で実装するのはあまりキボンヌではないです。
>>236
もしかしたら、QTのUndo機能呼び出しがWinとLinuxで違うから
あえて別実装なのかも?
でも、CLXがQT.pasを読めない初心者向けに作られている
優れたライブラリとは、ちょっといえない気がするです。
0241デフォルトの名無しさん
NGNG>ライブラリを自分で実装するのはあまりキボンヌではないです。
答えはもう211の第2段落で出ているし、難しく無い説明も何度も出ているので、
それすらやりたくない/理解するのが面倒/作ってくれ、としか読めませんが。
>バグかしら、と疑う事と、バグだと断定することには
>ずいぶんと差があるのだけど、そのことわかってる?
自分が勘違いしているかどうか疑うよりも先に他人を疑うのも、どっか変ですね。
> 楽をしたいのは技術者として大切だと思うんですが,,,,
てか、お前技術者じゃないじゃん。
0243ねこま
NGNG>>209 で言った SysUtils.ByteTypeTest はまさに
>>215 を実装したものです.
よって,わざわざ作る必要性がありません.
0244デルファイの名無しさん
NGNGなるほど!
ソース読んで紙に書いて理解しました。
Leadじゃない→Trail or Single→その次の文字はLead or Singleという理屈なわけですね。
2バイト目になり得るコードの集合がわからなくても、戻る方法は実装可能でしたか…。
僕もひとつ勉強になりました。
0245デフォルトの名無しさん
NGNGで、そのコードは DBCS / 2バイトシステムでしか動かないわけだな。
UTF-8 / 通常は 1-3 バイトのシステムで破綻する。
UTF-8なら、少なくとも1バイト目かどうかは一発で分かるんだから、
別にいいんじゃねーの?
0247デフォルトの名無しさん
NGNG楽をするために最大限の努力をするのが技術者だと思っているが……
まあ、そういう意味でもDelギコはもうちょっとガンバレやとしか言えんか。
0248デフォルトの名無しさん
NGNG0249デフォルトの名無しさん
NGNGUTF-8 だと
Leadじゃない→Trail or Single→その次の文字はまだ Trail かもしれない。
ってことで終わり。
もちろん、UTF-8 だと Lead か Trail か直接判断できるので問題は無いんだけど
同じコードを使いまわすことはできない。
0250デルファイの名無しさん
NGNG2バイト目の集合を取得するAPIは無いなあ→
その場合言語設定を問わずに「戻る」テクニックを使うにはどうすればいいのだろう→
244で書いた方法、というわけです。
UTF-8なら言語設定関係ないので、直接UTF-8専用のコードを使うと思います。
0251デフォルトの名無しさん
NGNGSJISの場合に、たとえばマウスで矩形選択した文字をひらいたいような場合
先頭から検索すればいいんだけど、それより高速にする方法は無いかとい
う事でしょ?
今だとそんな工夫も必要無いくらいパソコンは高速なんだけどね
0252Delフサギコ ◆VzDeLphI
NGNG∧,,∧ /
ミ,,゚Д゚彡 < とりあえず、できますた
U つ∀ \
〜ミ ミ ┴  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
∪''∪ 思いっきり
SysUtils.BytetypeTestと同じやんけ....
(犬阪弁)
function IsDBCSLeadChar(c:char):boolean;
begin
Result:=c in [#$81..#$9F,#$E0..#$FC]
end;
function ByteType(const S: string; Index: Integer): TMbcsByteType;
var
i: Integer;
SingleIndex: Integer;
begin
if Index = 1 then
begin
if IsDBCSLeadChar(S[Index]) then
begin
Result := mbLeadByte;
end else
begin
Result := mbSingleByte;
end;
end else
begin
Result := mbSingleByte;
i := Index-1;
while IsDBCSLeadChar(S[i]) do
begin
Dec(i);
if i = 0 then break;
end;
if Odd(Index - i) then
begin
if IsDBCSLeadChar(S[Index]) then
begin
Result := mbLeadByte;
end else
begin
Result := mbSingleByte;
end;
end else
begin
Result := mbTrailByte;
end;
end;
end;
0253Delフサギコ ◆VzDeLphI
NGNGミ,,゚Д゚ミつテストはこれでしますた。
とりあえず、EmEditorPluginで
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1006076016
ここのソースが正常に動作しているので問題ないかと思われです。
procedure testByteType;
begin
Check(True, IsDBCSLeadChar( ('る'[1]) ));
Check(True, IsDBCSLeadChar( ('る'[2]) ));
Check(True, IsDBCSLeadChar( ('あ'[1]) ));
Check(False, IsDBCSLeadChar( ('あ'[2]) ));
Check(mbSingleByte, ByteType('ABC', 1));
Check(mbLeadByte, ByteType('あ', 1));
Check(mbTrailByte, ByteType('あ', 2));
Check(mbLeadByte, ByteType('る', 1));
Check(mbTrailByte, ByteType('る', 2));
Check(mbLeadByte, ByteType('ああああ', 1));
Check(mbTrailByte, ByteType('ああああ', 2));
Check(mbLeadByte, ByteType('ああああ', 3));
Check(mbTrailByte, ByteType('ああああ', 4));
Check(mbLeadByte, ByteType('ああああ', 5));
Check(mbTrailByte, ByteType('ああああ', 6));
Check(mbLeadByte, ByteType('ああああ', 7));
Check(mbTrailByte, ByteType('ああああ', 8));
Check(mbLeadByte, ByteType('るるるる', 1));
Check(mbTrailByte, ByteType('るるるる', 2));
Check(mbLeadByte, ByteType('るるるる', 3));
Check(mbTrailByte, ByteType('るるるる', 4));
Check(mbLeadByte, ByteType('るるるる', 5));
Check(mbTrailByte, ByteType('るるるる', 6));
Check(mbLeadByte, ByteType('るるるる', 7));
Check(mbTrailByte, ByteType('るるるる', 8));
Check(mbLeadByte, ByteType('ABCああああ', 4));
Check(mbTrailByte, ByteType('ABCああああ', 5));
Check(mbLeadByte, ByteType('ABCああああ', 6));
Check(mbTrailByte, ByteType('ABCああああ', 7));
Check(mbLeadByte, ByteType('ABCああああ', 8));
Check(mbTrailByte, ByteType('ABCああああ', 9));
Check(mbLeadByte, ByteType('ABCああああ', 10));
Check(mbTrailByte, ByteType('ABCああああ', 11));
Check(mbLeadByte, ByteType('ABCるるるる', 4));
Check(mbTrailByte, ByteType('ABCるるるる', 5));
Check(mbLeadByte, ByteType('ABCるるるる', 6));
Check(mbTrailByte, ByteType('ABCるるるる', 7));
Check(mbLeadByte, ByteType('ABCるるるる', 8));
Check(mbTrailByte, ByteType('ABCるるるる', 9));
Check(mbLeadByte, ByteType('ABCるるるる', 10));
Check(mbTrailByte, ByteType('ABCるるるる', 11));
end;
0254デフォルトの名無しさん
NGNGアホらし
0255デフォルトの名無しさん
NGNG0256デフォルトの名無しさん
NGNGbinフォルダにある何かを入れたら パレットにCPU タブが出て
メモリのダンプとか何のコードも書かなくても出来た記憶があるんだけど
そのパッケージの名前を忘れてしまった・・その時嬉しくなって2CHで報告した記憶があるんだけど
0257デフォルトの名無しさん
NGNG俺もDel6Personalでできた記憶がある。
Personalなのにダイアグラムが使えるようになったりもした。
再インストしたらできなくなったけど。
0258C言語マンセー
NGNG小さいバイナリ作りたきゃC言語でも使えよ。
DelphiのいいとこはD&Dでフォーム作って
最速コンパイル(ここまで数分)だろ?
多少サイズがでかくてもいいじゃねえか。
なんで不得意なことするの?
0259デフォルトの名無しさん
NGNG0260デフォルトの名無しさん
NGNG厨房お得意の台詞
0261デフォルトの名無しさん
NGNG不得意じゃないからです。
手間という点で言えば、C言語と同等かそれ以下(OOPLである点を考慮して)
0262デフォルトの名無しさん
NGNGそれと多少サイズがデカクナッテモいいじゃないかってのは同意。
最近どうでもよくなってきた。
0263C言語マンセー
NGNG0264デフォルトの名無しさん
NGNGだからDelphi開発環境に頼るだけじゃない、こういうスレは勉強になる。
0265デフォルトの名無しさん
NGNGbegin
button13.Enabled:=true
button26.Visible:=true
button1.Visible:=false
end;
---
↑これ、なんかおかしい?
エラーが出るけど。
0266デフォルトの名無しさん
NGNGスレ違いでエラーメッセージも書いてない、お前がおかしい。
セミコロンが抜けてるのは写し間違いか?
0267デフォルトの名無しさん
NGNG0268デフォルトの名無しさん
NGNGワラタ
しかもスレ違い。
0269デフォルトの名無しさん
NGNG2バイト目も判定できるの?
0270Delフサギコ ◆A6VzDeLphI
NGNG。。 ・・Λ〜Λ ・。。。 ∬ かと.
o0o゚゚ ミ*゚Д゚,,彡 ゚゚oo
。oO ( (( ー----‐ )) ) O0o
(~~)ヽ (´^ヽO,
(⌒ヽ (⌒)(゙゙゙)~
/~゙゙ヾ⌒`ゝ-(~´`(⌒(⌒~ヽ~ ~~
ゝー ′ '" ``"
0271デフォルトの名無しさん
NGNG0272デフォルトの名無しさん
NGNG0273デフォルトの名無しさん
NGNG0274デフォルトの名無しさん
NGNG0275デフォルトの名無しさん
NGNG0276デフォルトの名無しさん
NGNGそんなことない。
Windows なら TForm 等の VCL を使わずに WinMain から CreateWindow とかでスクラッチで書けば
すごく小さくできる。
Delphi と Delphi 付属 VCL とをごっちゃにしちゃだめ。
0277デフォルトの名無しさん
NGNG作る方法が載っている。
Delphi 2 の時代のなのでもちろん Windows 専用だが、Kylix でも基本的な
考え方は役に立つはず。
0278デフォルトの名無しさん
NGNGVCL使わなかったらDelphi使う意味ないやん。
0279デフォルトの名無しさん
NGNGVCL使わなくてもDelphiを使う意味はありません。
0280デフォルトの名無しさん
NGNG0281280
NGNG0282デフォルトの名無しさん
NGNG・VCL使わなくてもDelphiを使う意味はありません。
この2つは同じ意味であり、皮肉になっていないと考える事もできる
0283デフォルトの名無しさん
NGNG>この2つは同じ意味であり
ぜんぜん同じではありませんよ。
0284デフォルトの名無しさん
NGNGあのねぇー、>>275 はそんなことは百も承知だよ。
CreateWindow() で作っても、KOL 版より小さくできない。デフォルトで uses
される System.pas の違い
0285デフォルトの名無しさん
NGNG0286デフォルトの名無しさん
NGNG意味が分かりません。説明キボン
0287デフォルトの名無しさん
NGNGリ ン カ を 作 れ と ! ?
そこまでやるとすでにDelphiじゃねー。
最後はアセンブラ作るとか言い出すなよな。
0288デフォルトの名無しさん
NGNG0289デフォルトの名無しさん
NGNGhttp://home1.infonia.ne.jp/~delphian/delphi/compo/applicat.html#AP0050
0290デフォルトの名無しさん
NGNGブラクラ
0291デフォルトの名無しさん
NGNG0292デフォルトの名無しさん
NGNGつぶしがきかない知識だ。
0293デフォルトの名無しさん
NGNGそうかなあ・・・
組み込みの仕事なら使うでしょう。
0294デフォルトの名無しさん
NGNG潰しが利かないし労多くして益少ない作業だということでは?
0295デフォルトの名無しさん
NGNG俺? 俺は・・・COFFでやったからいいや。
0296デフォルトの名無しさん
NGNG0297デフォルトの名無しさん
NGNG・KOLを知っている
・見ず知らずの他人のためにわざわざ解説を書いてあげるやさしさの持ち主
これらが融合する人がいると思う?
0298ねこま
NGNGリンカなどいらない様な気がする.
だれか作って (w
0299デフォルトの名無しさん
NGNG0300ゲット300
NGNG/ ヽ
/ //////ヽヽヽ ヽ
| / ー ー | |
| / ・ ・ |/ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
\ | ○ ー ○| < 小さーい!すごーい!
ノへ_____/ \____________
岡部玲子
0301デフォルトの名無しさん
NGNG0302デフォルトの名無しさん
NGNG0303デフォルトの名無しさん
NGNG0304Delフサギコ ◆A6VzDeLphI
NGNG0305ねこま
NGNG0306デフォルトの名無しさん
NGNG0307デフォルトの名無しさん
NGNG0308デフォルトの名無しさん
NGNG0309デフォルトの名無しさん
NGNG0310デフォルトの名無しさん
NGNG0311デフォルトの名無しさん
NGNG0312デフォルトの名無しさん
NGNG0313デフォルトの名無しさん
NGNG0314デフォルトの名無しさん
NGNG0315デフォルトの名無しさん
NGNG0316デフォルトの名無しさん
NGNG0317デフォルトの名無しさん
NGNG03181
NGNG0319デフォルトの名無しさん
NGNG最近は古いヴァージョン使っている。
ただし、あまり古いと今度は使えない機能があったりするから
その辺を考慮して判断すると Delphi5 が最強だと思う。
0320デフォルトの名無しさん
NGNG;'`,゙、.||'、 I'm happy...
'; 、' /´;`'.,
´' .; ' ; '、'.
'; 、 ' ,'
'.,´; '
l !j
/ルゝ
0321デフォルトの名無しさん
NGNG禿銅。
D6以降で Kylix が入ったのがすべての災いのもとである、と思う
0322デフォルトの名無しさん
NGNGったく、Linux みたいなマイナーな環境に引きずられて、もとの Del が汚された
と感じるよなぁー
0323デフォルトの名無しさん
NGNG変えなければまたぶーたれる。
お前らいったいどうしろって言うんだよ。
0324デフォルトの名無しさん
NGNG某関係のひとですか?
323が変えたわけでもないのにエラソーなのはどうして?
そもそも「変えた」って何のこと?
0325デフォルトの名無しさん
NGNG実行サイズが大きくならないように言語やライブラリを拡張しろ
0326デフォルトの名無しさん
NGNG0327IP記録実験
NGNGhttp://qb.2ch.net/test/read.cgi/accuse/1042013605/
1 名前:ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ 投稿日:03/01/08 17:13 ID:???
そんなわけで、qbサーバでIPの記録実験をはじめましたー。
27 名前:心得をよく読みましょう 投稿日:03/01/08 17:20 ID:yL/kYdMc
SETTING.TXT管轄でないということは全鯖導入を視野に、か?
38 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:22 ID:rLfxQ17l
>>27
鋭いです。
73 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:27 ID:rLfxQ17l
>ところで、IPが抜かれて何か今までと変わることってあるのでしょうか?
・今までより、サーバが重くなる。
・裁判所や警察からの照会があった場合にはIPを提出することがある。
0328デフォルトの名無しさん
NGNG/ ヽ / ヽ
______ / ヽ__/ ヽ
| ____ / :::::::::::::::\
| | // \ :::::::::::::::|
| | | ● ● ::::::::::::::|
| | .| :::::::::::::| ・・・・・
| | | (__人__丿 .....:::::::::::::::::::/
| |____ ヽ .....:::::::::::::::::::::::<
└___/ ̄ ̄ :::::::::::::::::::::::::|
|\ | :::::::::::::::::::::::|
\ \ \___ ::::::::::::::::::::::::|
0329IP記録実験
NGNGhttp://qb.2ch.net/test/read.cgi/accuse/1042013605/
1 名前:ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ 投稿日:03/01/08 17:13 ID:???
そんなわけで、qbサーバでIPの記録実験をはじめましたー。
27 名前:心得をよく読みましょう 投稿日:03/01/08 17:20 ID:yL/kYdMc
SETTING.TXT管轄でないということは全鯖導入を視野に、か?
38 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:22 ID:rLfxQ17l
>>27
鋭いです。
73 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:27 ID:rLfxQ17l
>ところで、IPが抜かれて何か今までと変わることってあるのでしょうか?
・今までより、サーバが重くなる。
・裁判所や警察からの照会があった場合にはIPを提出することがある。
0330デフォルトの名無しさん
NGNG|/゚U゚| ヤレヤレ
___|__|____
/ \ ___\
.<\※ \____|\____ヽ
ヽ\ ※ ※ ※| |====B=|
\`ー──-.|\|___l__◎..|ヽ
 ̄ ̄ ̄ ̄| .| ̄ ̄ ̄ ̄|
\| |〜
0331デフォルトの名無しさん
NGNG0333デフォルトの名無しさん
NGNG2ちゃんねるのお勧めな話題と
ネットでの面白い出来事を配送したいと思ってます。。。
===============================読者数: 138720人 発行日:2003/1/9
年末年始ボケがそろそろ収まり始めた今日このごろのひろゆきです。
そんなわけで、年末に予告したIP記録ですが実験を開始しています。
「2ちゃんねる20030107」
こんな感じで各掲示板の最下部に日付が入ってるんですが、
20030107以降になってるところはログ記録実験中ですー。
んじゃ!
────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50
────────────────────────────
0335デフォルトの名無しさん
NGNG開き直れよ! 俺は変態だ!!って。
変態の何処が悪いんだよ。
男はな、みんな大なり小なり変態なんだよ。
そのことを女の大半が知らないだけなんだよ。
結論として言えることは、女の無知が悪いってことだよ。
0336デフォルトの名無しさん
NGNG0337デフォルトの名無しさん
NGNGどこの板が取っているの?
0338デフォルトの名無しさん
NGNG0339デフォルトの名無しさん
NGNG覆しようのない事実なわけですが
0340デフォルトの名無しさん
NGNGそれはある。
0341デフォルトの名無しさん
NGNG鑑定スレでお願いしようとして誤爆し・ま・す・た・!
0342デフォルトの名無しさん
NGNG0343デフォルトの名無しさん
NGNGまとめ方の理想像の例
http://qb.2ch.net/test/read.cgi/sakud/1028262850/69
育児のまとめは、とりあえず理想的かなと。一応、私もそれに
近い形で分類して、アンカー付けて、というのを心がけてます。
(ただ、不備な依頼を抜くかどうかは、人によりけりかな。「これは
不備」と書いてあげた方が、再依頼する人のチェックの手間は
省けるわけで)
http://qb.2ch.net/test/read.cgi/sakud/1028262850/143
>まとめるならレスアンカーは付けて欲しいなと。
0344デフォルトの名無しさん
NGNG負荷が高そうなサーバー…live(・∀・)?
0345デフォルトの名無しさん
NGNGIP記録されてること自体気づいてないユーザーの方が圧倒的かと・・・
0346デフォルトの名無しさん
NGNG来週も番組が無事でありますように
0347デフォルトの名無しさん
NGNG0348デフォルトの名無しさん
NGNG3桁?&まだある、そのサイト?
0349デフォルトの名無しさん
NGNG夜なのですの?
0350デフォルトの名無しさん
NGNG0351デフォルトの名無しさん
NGNG書き込み回数激減したよ。強制ID入ったときは。
0352デフォルトの名無しさん
NGNGどこから請求が来たかにもよるかも知らんが
0353デフォルトの名無しさん
NGNG0354デフォルトの名無しさん
NGNG0355デフォルトの名無しさん
NGNG俺のことが言いたいんだろ?
ストーカーみたいに追いこんでくるね、ほんと。
2003・1・11
2ちゃん閉鎖ってなったらどう?
ありえなくもないだろ?
http://live2.2ch.net/test/read.cgi/news/1041948269/l50
0356デフォルトの名無しさん
NGNGすまん!
0357デフォルトの名無しさん
NGNGhttp://qb.2ch.net/test/read.cgi/accuse/1042013605/
1 名前:ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ 投稿日:03/01/08 17:13 ID:???
そんなわけで、qbサーバでIPの記録実験をはじめましたー。
0358デフォルトの名無しさん
NGNG授業料は、ひろゆきさん、もしくは一部の無鉄砲な人たちが
払ってくれるでしょう。
0359デフォルトの名無しさん
NGNGさ〜よな〜ら、大好きな2ちゃん〜♪
0360デフォルトの名無しさん
NGNG0361デフォルトの名無しさん
NGNG横付けしろなんて言ってないだろうに…
子供が危ないかもしれないのに、
親は家で待ってるだけですか?
0362デフォルトの名無しさん
NGNG全部削除してもかまわないとおもうね
誰が文句を言うと言うのだ
匿名である以上削除されても文句など出るわけもない
0363デフォルトの名無しさん
NGNG0364デフォルトの名無しさん
NGNG(ただし、公共の利益になる場合はこの限りではないのだけど)
事実誤認のレスで 名誉を毀損された =営業的な不利益が生じた のであれば
確かにレスが事実誤認であることを証明するのは 原告側。
しかし その反証の場が 2ch でなくてはならないというのは ? です。
今や 2ch は管理人の個人サイトとは判断されないほど メディアとしての
認知・影響力が裁判所で認定されているですから
公序良俗に反する情報発信は情報の発信者が責任を負うべきでしょう。
その発信者の情報をわざと特定させないのは
ある意味、確信犯的な共犯者と見なされても仕方ないでしょ。
(もちろん、Internet の匿名性 については十分、議論の余地はあります。)
0365デフォルトの名無しさん
NGNG0366山崎渉
NGNG0367デフォルトの名無しさん
NGNG他に、今、裁判中なのは何??
0368山崎渉
NGNG0369デフォルトの名無しさん
NGNG0370山崎渉
NGNG0371山崎渉
NGNG0372デフォルトの名無しさん
NGNG0373デフォルトの名無しさん
NGNGコンポの作り方がいまいち理解できない。
0374人いないから無駄だよ
NGNGヘヴィ・D!とか出るヤツ?
ジェノサイッ…… カタッ!
0375デフォルトの名無しさん
NGNGErrorProc変数設定しても何も変わらないし。
SetUnhandledExceptionFilterを使ってもデバッグ時に実行時エラーを
捕まえられない・・・ていうか実行時エラーの破棄の仕方がわからない。
こういうときソースもっていないとやっぱりつらい。
0376デフォルトの名無しさん
NGNGしかもスレに合ってる?人いないのに…)
0377デルファイの名無しさん
NGNGUnhandled…よりも先にまずFS:[0]に飛んでくるので、そこで処理された場合Unhandled…には来ない。
try文をCPU窓で見ればわかるけど、以前のFS:[0]を待避させた上で置き換えてる。
ってなんでこんなつまらんこと知ってんだワタシは…
0378デフォルトの名無しさん
NGNG0379375
NGNG互換のファイルだと書いてある。ソース読んでみるとSystem.ExceptObjProc
変数を設定することで実行時エラーからDelphi例外を生成できることを発見。
他にもExceptClsProcやAssertErrorProcを設定すれば標準の例外処理をほぼ
実現できるようだ。ちなみにこの方法でOS例外(実行時エラー)を処理できる
実行ファイルを作ると、Delphi6で16KBになった。
>>377
すいません、アセンブラわかりません。
0380デフォルトの名無しさん
NGNGいや、なんでVCLはサイズ大きくなるんですか?
なんでKOLはObjectなんですか?
いや、なんでVCLはClassなんですか?
なんでKOLのTListが高速なんですか?
いや、
0381デフォルトの名無しさん
NGNG0382デルファイの名無しさん
NGNGあら、それでは不親切だったかな。
解決したようですけど、一応説明加えとくと、
FS:[0]というのは、まあそういうOSが用意した変数があると思ってもらって、
アクセス違反や0割などが発生すると、まずFS:[0]に設定したアドレス(except節)へ飛ぶ。
で、まず例外をDelphiのオブジェクトに置き換え(そういう関数を呼ぶコードをコンパイラが勝手に埋めこむ)、
処理すべき例外かどうかチェックして(on 〜に相当)、処理できるならできる、できないならできないと返す。
処理できるルーチンが見つかるまで、スタックを遡って、見つからなければUnhandled〜というわけです。
で、この「例外をDelphiのオブジェクトに置き換え」の部分が、あなたの言ったExceptObjProcなど。
0383デフォルトの名無しさん
NGNG0384デフォルトの名無しさん
NGNG0385デフォルトの名無しさん
NGNG0386山崎渉
NGNG0387山崎渉
NGNG( ^^ )< ぬるぽ(^^)
0388デフォルトの名無しさん
NGNG小さいEXE作ろうと思ってMCKに挑戦してるんですが、あまりにも情報が少ないので。
例えば終了ボタンを作る場合、VCLならボタンのOnClickのハンドラにCloseと書くだけですが、
MCKだとどうすればいいんでしょうか。
0389388
NGNGForm1.Close もダメだし、KOLForm1.Close もダメで困ってたんですが、Form.Close でいいんですね。
ロシア語の解説サイト(http://kol.mastak.ru/)を翻訳サービスで英訳して読んでたらわかりました。
0390過疎地
NGNGいや、マジで。
0391デフォルトの名無しさん
NGNGで、最新パソコンで無くても動くように小さなVCLが欲しい要求が日本なんかよりとても大きくて
0392388
NGNGhttp://bonanzas.rinet.ru/
とりあえずここ参照。
VCLでフォームにボタンやらエディットやら貼り付けただけでコンパイルすると400KB。
MCKだとほぼ同じ操作で同じ物が作れて、そのサイズが30KBなんだからすごいですよ。
300KBの間違いじゃないですよ。
ただ日本語はおろか英語でもほとんど情報がなくて、とりあえず始めるまでにえらく苦労しました。
あとクラスというものが使えないらしく、代わりにオブジェクトを使えとか書いてますが、
この辺がまだよくわからないです。
誰か詳しい人いないのかな・・・。
0393デフォルトの名無しさん
NGNG0395デフォルトの名無しさん
NGNG0396デフォルトの名無しさん
NGNG0398デフォルトの名無しさん
NGNGいや、凄すぎて忘れられないw
0399ミ;゚Д゚彡 ◆A6VzDeLphI
NGNGなにこれ、すごすぎ。
0400デフォルトの名無しさん
NGNGDelphi 6 Personal使ってるけど、どうやるの?
0401Delフサギコ ◆A6VzDeLphI
NGNGミ,,゚Д゚彡
ミつ日(ミ
kol_mck.zipをダウソして解凍して出来る
Kol_mck.exeを実行して
C:\KOLができるです。
各Verのパッケージ(dpkファイル)があるので
それをDelphiから開いてください。
で、パッケージをコンパイルしてインストールしたら、
コンポーネントがたくさん入るはず。
それをしてから、
KOLサイトからDEMOプログラムをダウソして
プロジェクトファイル(dpr)を開いてみてください。
一番単純なFormだけのものとか開いて
ちょこちょこ改造すると面白い感じ。
0402388
NGNG導入ガイドのサイトを作ってみました。
http://www.geocities.co.jp/SiliconValley-Sunnyvale/3282/
これでどんどんユーザーが増えて情報が増えるとウレスィな〜
なんて思ってたら、既にフサギコさんに言い尽くされてる。鬱氏・・・
まあ暇があったらコンテンツ増やすようにします。
0403ミ,,゚Д゚彡 ◆A6VzDeLphI
NGNG>[致命的エラー] Unit1.pas(7): ファイル 'ExptIntf.dcu' が見つかりません
こんエラーがでるです。
??
0404デフォルトの名無しさん
NGNG一度保存すると別のプロジェクトが作成されるんじゃなかった?
それを開くとMCKが使えるようになったような気がしますた。
0405デフォルトの名無しさん
NGNG>>402の導入ガイドへにわかりやすくかいてるYO
0406デフォルトの名無しさん
NGNGん〜、私も何度か見た覚えが・・・
どうしようもない場合はBINフォルダのdefproj.dofを消すとデフォルトの状態に戻るので、
それで解決したような気がします。
0408デフォルトの名無しさん
NGNGお気に入りに入れますた。
0409デフォルトの名無しさん
NGNG0411Delフサギコ ◆A6VzDeLphI
NGNG∧,,∧∩ /
ミ,,゚Д゚彡 < できまった!!>>404
U ミ \
@ミ ミ  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
∪''∪ ありがとうございます
[デフォルトプロジェクト]-[検索パス]
に入れるのと
[環境オプション]-[ライブラリパス]
に入れるのはどっちも同じ効果なんですか?
0412デフォルトの名無しさん
NGNGインストールしようとしたら
[致命的エラー] mirror.pas(51): ファイル 'Kol.dcu' が見つかりません
だそうです。
どうしたらよいのでしょうか。
(KOLDEF.INCもエラーが出たけどそれはコピーして持ってきた)
0413デフォルトの名無しさん
NGNGそりゃ見つからないんだから、
Kol.dcuを探して、
ダウンロードして、
パスの通ってるところなどに置いてから、
改めてインストールすれば良いのではないでしょうか?
0414デフォルトの名無しさん
NGNGぐぐっても
http://www.google.co.jp/search?num=100&hl=ja&ie=Shift_JIS&safe=off&c2coff=1&q=Kol.dcu&btnG=Google+%8C%9F%8D%F5&lr=
だけです。
0415デフォルトの名無しさん
NGNGできました。
0416デフォルトの名無しさん
NGNG試してみるか
0417416
NGNG↓こんなん出ます。「この仕様」って、どの仕様やねん
[Pascal エラー] kol.pas(62235): Object : この仕様はサポートされていません
0418デフォルトの名無しさん
NGNG乙
0419デフォルトの名無しさん
NGNGobject型はBCBのpascalコンパイラではサポートされてないんだ。
BCBで使うならobject型の部分をクラスにするかレコードにするかしないとだめだね
0420デフォルトの名無しさん
NGNG0422416
NGNG情報tnx.
とりあえず、type = object のところを機械的にclassに置き換えて試してみたが、
「オブジェクト型が必要です」と怒られてしまった。
うまくいかんものだな。
0423ミ,,゚Д゚彡 ◆A6VzDeLphI
NGNGtype = classは
オブジェクト生成の方法や
引数渡しの方法がぜんぜん違うから
そのあたりを調べながらやってみてはどうでしょうか?
大きいライブラリであるほど
焼き直しは大変だと思うけど。
0424416
NGNG>オブジェクト生成の方法や
>引数渡しの方法がぜんぜん違う
やはりそうですか……
Delphiのobject型については、ぐぐっても思うように情報が見つからんので
ちと頭が痛いですyo
暇なときに、MLあたりで情報収集しますわ
0425デフォルトの名無しさん
NGNGRichEdit1.Lines.LoadFromFile(OpenDialog1.FileName)
という形式が使えなくなった!
どうすればファイルを読み込めるのでしょう?
0426Delフサギコ ◆A6VzDeLphI
NGNGミ,,゚Д゚彡
ミつ日(ミ
とりあえず、これで動きました。
(サンプルアプリのMultiClbrd見たよ)
procedure TForm1.Button1Click(Sender: PObj);
var
SL: PStrList;
begin
SL := NewStrList;
SL.LoadFromFile('C:\Borland\Delphi6\Projects\testKOL\Unit1.pas');
RichEdit1.Text := SL.Text;
SL.Free;
end;
ライブラリの根幹から
type Objectを使っているので
改造は大変そうですね。
0427416
NGNG普段はBCBばっかり使ってるし。
昔Delphiで作った小物をいくつかKOL化してみたけど、いいわーコレ。
Indyみたいに、おまけでDelphiについてきたら面白いかも。
0428デフォルトの名無しさん
NGNGそうすると解放の手間がいらないわけでその分便利なんだけど、
そういう便利さを使ってるとクラス型には簡単に置き換えてOKって訳にはいかない。
レコード型にして、メソッドの部分を関数に置き換えてゆくのも苦労だし
クラスに置き換えるのも結構大変
0429デフォルトの名無しさん
NGNG古めのDel本でも読んだらいい?
0430デフォルトの名無しさん
NGNGターボパスカル本を探さないとダメでしょ Delphi1以後はclass型推薦だから
0432デフォルトの名無しさん
NGNGDelphiのclassはJava似だけど、objectはC++のstructに近い。多重継承を除いて…。
個人的には、object型でもインターフェースさえ実装させて欲しい。
0433デフォルトの名無しさん
NGNG0434デフォルトの名無しさん
NGNGhttp://www.mactech.com/articles/mactech/Vol.02/02.12/ObjectPascal/
0435ねこま
NGNG- override できない
- interface の導入も無理
- 唯一 virtual が出来る?のでこれで継承
※object 型の New 手続きの使い方はヘルプから削除されている
日本語での情報としては FDELPHI の過去ログが一番イイ!
いまさら感が否めないけど.
0436デフォルトの名無しさん
NGNGその代わり、recordにメソッドが持たせられるとかどうとか。
ようは、C#っぽくなるわけだが。
どちらにせよ、objectは将来性がないから、あまり肩入れし過ぎないようにしないと(´д`;)
0437デルファイの名無しさん
NGNG一瞬戸惑ったけど、"override" という指令が使えない、という意味ですね。
C++同様に同名のvirtualメソッドを派生クラスで宣言すればオーバーライドです。
あと、virtualの後に数字を付ければ、今「message 数値」と書いているのと同様なことが出来るはず。
それとNew/Disposeはこんなの。
New(インスタンスを格納するポインタ, コンストラクタ(引数)); // New(PObj, Init(123));
Dispose(ポインタ, デストラクタ); //Dispose(PObj, Done);
Delphi1付属のOWL(Pascal版)のソースを見れば使い方はだいたいわかる。
でも代入演算子が再定義できないので、結局はメソッド付きrecordに留めておくのが吉。
0438デルファイの名無しさん
NGNGん?それ(recordにメソッド)がサポートされるからこそ、今安心してobject型が使えるんじゃないですかw
TOBJ = {$IFDEF DOTNET(←?)} record {$ELSE} object {$ENDIF}
なんたら;
end;
0439デフォルトの名無しさん
NGNG0440デフォルトの名無しさん
NGNG0441デフォルトの名無しさん
NGNG0442ねこま
NGNG(流行ってない)
0443デフォルトの名無しさん
NGNGしかも、フォント選択ダイアログがないことがもうダメかな。
そんな漏れにKOLを教えてくれー
0444デフォルトの名無しさん
NGNGSaveToFileあるよ。
0445デフォルトの名無しさん
NGNG実際にコンポーネントのHintプロパティに何か入れるとエラーが出ます。
KOLではHintは使えないんでしょうか?
0446デフォルトの名無しさん
NGNG0447446
NGNG0448デフォルトの名無しさん
NGNG0449446
NGNGレスどうも。
フォームの定義をまねて、
PMyTimer = ^TMyTimer;
TMyTimer = object(TTimer)
とやったらいけました。
constructorの代わりにNewMyTimerという関数を作って
その中で
new ( Result, Create);
とやってるんですが、これで正しいんでしょうか。
今のところ思い通りに動いてるからよしとするかな・・・。
0450デフォルトの名無しさん
NGNG0451デフォルトの名無しさん
NGNG0452デフォルトの名無しさん
NGNG早く作り上げるという選択肢を選ぶ方が賢い
0453デフォルトの名無しさん
NGNG興味の無いスレなら見なければいい話。
自己展開書庫の頭につけるコードとか、フロッピーが生き残っている環境とか、
小さい方がいいのはいくらでもある。
0454デフォルトの名無しさん
NGNG0455デフォルトの名無しさん
NGNG100KB以上の巨大アプリはもういらん。
0456デフォルトの名無しさん
NGNGデザパタ適用できないのかよ。
0457デフォルトの名無しさん
NGNG0458デフォルトの名無しさん
NGNG0459デフォルトの名無しさん
NGNGそうだな。
0460デフォルトの名無しさん
NGNG何で?
0461デフォルトの名無しさん
NGNG0462デフォルトの名無しさん
NGNG0463デフォルトの名無しさん
NGNGいまどきタダ同然のHDD領域がもったいないと思う奇特な奴だけが
圧縮すればいいだろ。
0464デフォルトの名無しさん
NGNGどうせ実行時にはメモリ上に展開されるわけだし。
0465デフォルトの名無しさん
NGNGメモリ上は圧縮したほうが食うだろう。
どうしても実行可能状態でのHDD領域が気になる奴は、
ドライブごと圧縮すればいいんだし。
0466デフォルトの名無しさん
NGNGほぼ同じ
0467デフォルトの名無しさん
NGNG0468デフォルトの名無しさん
NGNG0469デフォルトの名無しさん
NGNGまあでも LAN越しやFDに入れて動かすには圧縮しておけば便利じゃないか。
0470デフォルトの名無しさん
NGNG>>460
0471デフォルトの名無しさん
NGNGUPXで圧縮してからzipアーカイブにした方が実は配布サイズが小さくなるYO。
0472デフォルトの名無しさん
NGNG0473デフォルトの名無しさん
NGNG起動時に若干多く食うだけ。
起動後は変わらない。
0474デフォルトの名無しさん
NGNG常時接続高速回線の時代に何言ってんだアンタ
0475デフォルトの名無しさん
NGNG0476デフォルトの名無しさん
NGNG( ´Д⊂ヽ
0477デフォルトの名無しさん
NGNG0478デフォルトの名無しさん
NGNG0479デフォルトの名無しさん
NGNG0480デフォルトの名無しさん
NGNG0481デフォルトの名無しさん
NGNG鯖の負荷が小さくなる。
0482デフォルトの名無しさん
NGNGprogram Project1;
uses
Windows,
ShellAPI,
Graphics,
Messages;
{$R *.res}
procedure ICONMessage(var Msg : TMsg);
var
FIconData : TNotifyIconData;
Icon: TIcon;
Point : TPoint;
0483デフォルトの名無しさん
NGNGwith FIconData do
begin
cbSize := SizeOf(TNotifyIconData);
uID := 1;
Wnd := Handle;
uFlags := NIF_MESSAGE or NIF_ICON or NIF_TIP;
uCallbackMessage := WM_USER + 100;
szTip := 'メール未チェック';
Icon := TIcon.Create;
Icon.LoadFromFile('Nomal.ico');
hIcon := Icon.Handle;
Shell_NotifyIcon(NIM_ADD, @FIconData);
Icon.Free;
end;
0484デフォルトの名無しさん
NGNGcase Msg.wParam of
WM_LBUTTONDOWN:
begin
〜
end;
WM_RBUTTONDOWN:
begin
〜
end;
WM_LBUTTONDBLCLK:
begin
〜
end;
end;
end;
end.
としてもうまくいきません。
タスクトレイに常駐させるサンプルを
かいていただけませんか?
0485デフォルトの名無しさん
NGNGスレ違い 質問スレ池
0486デフォルトの名無しさん
NGNG0487デフォルトの名無しさん
NGNGここのスレタイ嫁
ここでどうぞ↓
ミ,,゚Д゚彡フサギコとモナーのDelphi質問相談談話室
http://pc2.2ch.net/test/read.cgi/tech/1052312038/
0489デフォルトの名無しさん
NGNGじゃ、ここの
ttp://homepage1.nifty.com/~okapon/download/
小さいタスクトレイ常駐アプリケーションを作りたい!!
を参考にして下さいって事で
0490デフォルトの名無しさん
NGNG0491デフォルトの名無しさん
NGNG新着メール数を得るのにいいものはありませんか?
IndyのIdPOP3は使えないや…
dllとかでもいいので教えて下さい
0492デフォルトの名無しさん
NGNG↓
「ある」「無い」「出来る」「出来ない」
質問だけ敬語
↓
レスは「ありが�d」
0493デフォルトの名無しさん
NGNGこのスレの頭から読めば判るだろうけど、
小さな実行ファイルを作りたいというのは自分で調べてローレベルから実装しようという意味だよ。
0495デフォルトの名無しさん
NGNGprocedure TForm1.Button1Click(Sender: TObject);
procedure msg(s:string);
begin Memo1.Lines.Add(s) end;
function Send(s:string):string;
var w:string;
begin msg('送信 :' + s);
with TcpClient1 do begin Sendln(s); Sleep(300); WaitForData(1000);
w:= Receiveln; msg(w);
if copy(w,1,3)<>'+OK' then abort;//通信エラー
delete(w,1,4);
Result:=w;
end
end;
var w:string;
begin
TcpClient1.Open;
if not TcpClient1.Active then abort;
msg('Active');
TcpClient1.Connect;
TcpClient1.WaitForData(1000);
if not TcpClient1.Connected then abort;
Send('USER '+user); Send('PASS '+pass);
Send('STAT');
Send('LIST');
TcpClient1.WaitForData(1000);
while TcpClient1.BytesReceived>0 do begin
with TcpClient1 do w:= Receiveln; msg(w);
TcpClient1.WaitForData(1000);
if copy(w,1,1)='.' then break;
end;
end;
0496デフォルトの名無しさん
NGNG新着メール数をえるのに Indyが小さな実行ファイルを作るのに使えないというなら、
>>495のように TcpClientを直接叩け
それでも大きいというなら、WinSockを直接叩け
0497デフォルトの名無しさん
NGNG不明な点があるなら RFC1939 を読め。 検索すれば日本語翻訳も見つかる
0498デフォルトの名無しさん
NGNG0499デフォルトの名無しさん
NGNGIndy for KOL v0.15
http://kol.mastak.ru/files3.htm
0500500
NGNG0501デフォルトの名無しさん
NGNG大きな実行ファイルを作りたいです
0502デフォルトの名無しさん
NGNG大きい画像を、リソースにでも埋め込めば?
0503デフォルトの名無しさん
NGNGDelphiで作ると普通に大きくなると思うが
0505デフォルトの名無しさん
NGNGワラタ
0506デフォルトの名無しさん
NGNGぼくは、誰にも負けない大きな大きな実行ファイルを作るのが夢なんです
0507デフォルトの名無しさん
NGNGエエやないの)
0508デフォルトの名無しさん
NGNGぼくは、誰にも負けない大きな大きなうんこをするのが夢なんです
0509山崎渉
NGNGピュ.ー ( ^^ ) <これからも僕を応援して下さいね(^^)。
=〔~∪ ̄ ̄〕
= ◎――◎ 山崎渉
0510デフォルトの名無しさん
NGNG0511デフォルトの名無しさん
NGNG0512デフォルトの名無しさん
NGNG0513デフォルトの名無しさん
NGNG0514デフォルトの名無しさん
NGNG0515デフォルトの名無しさん
NGNG0516デフォルトの名無しさん
NGNGあんまりいないの?
Delphiを使ってる人はサイズが大きくなるのを
黙認してるのかな…
0517デフォルトの名無しさん
NGNGDelphiで小さな実行ファイルを作ろう。
↓
API直叩き。
↓
Delphiを使う意味が無いことに気付く。
↓
C/C++へ。
0518デフォルトの名無しさん
NGNGDelphiで小さな実行ファイルを作ろう。
↓
実行時パッケージ使えばいいか。
0519デフォルトの名無しさん
NGNGいるよ〜。
ただ、>>517は事実なので、PascalとC++(というよりむしろ
高速コンパイルとtemplate)のトレードオフになってしまう。
で、両方を一定レベル以上で使える香具師ならtemplateを選ぶだろう。
俺のように、高速コンパイルを選ぶやつは少数派ってことです…
0520デフォルトの名無しさん
NGNGCを使う必要が無いと言ってるようなもん
0521デフォルトの名無しさん
NGNGはっきりいって、template満載のC++のコンパイルに我慢できないよ・・・
どうしてくれるんだYO!!
0522デフォルトの名無しさん
NGNGSTL使うよりコード書いた方が楽しいじゃないか
テンプレート書くのは楽しいけど、他人のテンプレート使うと、なんだかVBプログラマになったようで嫌だろ?
0523デフォルトの名無しさん
NGNG0524デフォルトの名無しさん
NGNG0525ななしへたぐらま ◆XcB18Bks.Y
NGNG小さな実行ファイルの需要が限られているからでしょうか.
中規模以上なら数百キロの差は無視できるでしょうし,
自分で使うだけのアプリなら多少大きくても問題ないでしょうから.
>>517
KOLは無視?
0526デフォルトの名無しさん
NGNG某有名Delphiさんのアプリで実行ファイル10MBのあったし。
そんなのに比べれば1Mや2Mくらいね〜
…デモ ヤッパリ サイズハ キニスル ヨナァ...
0527デフォルトの名無しさん
NGNGDL時間とかは今や問題にならないにしても、見た目がねえ。
というわけでKOLマンセー。
0528デフォルトの名無しさん
NGNG…それ、ゲームじゃないか?
音楽とか実行ファイルに含めりゃ余裕でそれくらいいくけど、別にDelphiに限ったことじゃない。
0529デフォルトの名無しさん
NGNGDelphiやVBの優位点はサクサク作れるスピードなのに、
それを殺してまでサイズを減らす必要あるのかな?
時代の流れで、サイズが気にされなくなってきてるならDelphiにとっては嬉しいことなのにね。
0530デフォルトの名無しさん
NGNGはいスレ違い
0531デフォルトの名無しさん
NGNG大きいアプリに成れば成る程気にならなくなる。
0532デフォルトの名無しさん
NGNG0533デフォルトの名無しさん
NGNG0534デフォルトの名無しさん
NGNG0535デフォルトの名無しさん
NGNG0536デフォルトの名無しさん
NGNG0537デフォルトの名無しさん
NGNG0538デフォルトの名無しさん
NGNGVCL廃止してKOLにしてくれよボーランド
0539デフォルトの名無しさん
NGNGKOLはKOLで使っていけばいいし、VCLはVCLで存在することで何の迷惑もかけていない
0540デフォルトの名無しさん
NGNG0541デフォルトの名無しさん
NGNG漏れみたいな初心者には全く向いてないね、うん。
Memo1コントロールにあるようなMemo1.Lines.LoadFromFileとかが使えないし。
んー、漏れが勉強しなければいけないのかもしれないけど
使うかどうかは微妙〜
0542デフォルトの名無しさん
NGNG日本語ドキュメントが無いならソース読むしかない。
0543デフォルトの名無しさん
NGNG英語を読むという手もあるぞ。
Padcalのソースと英語と、どちらが読みやすいかは、個人によるが…
0544デフォルトの名無しさん
NGNGRichEdit使っとけば?
RichEdit1.RE_LoadFromFileっての
0545デフォルトの名無しさん
NGNG0546デフォルトの名無しさん
NGNG大きいことはいいことだ
0547デフォルトの名無しさん
NGNGhttp://www.geocities.co.jp/SiliconValley-Sunnyvale/3282/
0548デフォルトの名無しさん
NGNGしんどいし、生産性が極端に悪くなるから嫌だ。
0549デフォルトの名無しさん
NGNGその通りだけど、そうやって自分を鍛えようってのがこのスレの趣旨だろ
0550デフォルトの名無しさん
NGNG0551デフォルトの名無しさん
NGNGWhat are u getting at?
0553デフォルトの名無しさん
NGNGOh yeah!
0554デフォルトの名無しさん
NGNG駆使って言うほどWinAPIって難しかったっけか?
ウインドウの初期化処理は使い回しできるし、後はメッセージ受けとるだけ。
「僕はコンポーネントをダブルクリックして自動的にコードを書かせなきゃプログラムは書けない!」
とか言うんなら、哀れな目で応援するが。
0555デフォルトの名無しさん
NGNGということだと桃割れ
0556デフォルトの名無しさん
NGNGまぁ、今更VCL捨ててまで遊ぶのもアレだな。昔みたいにHDD320MBとかなら納得するけれど。
0557デフォルトの名無しさん
NGNGコンポーネントをダブルクリックしてもコードは自動生成されませんが。
いや、言いたいことはわかるけどね。
>ウインドウの初期化処理は使い回しできるし、後はメッセージ受けとるだけ。
この程度の話をしているわけではあるまい?
0558デフォルトの名無しさん
NGNGそれ以外にDelphiはやらなくて良くてWindows APIではやらなきゃいけない事ってあったっけか?
0559デフォルトの名無しさん
NGNG0560デフォルトの名無しさん
NGNGあるよ。普通に。
最近は色々考えることあってTWinControlを欲しない物はクラスにしてるけど。
0561デフォルトの名無しさん
NGNGじゃぁ、コンポーネント化が「メッセージを受け取るだけ」ではないことは容易にわかるだろうに。
多分、知ってて書いているんだろうけどさ。
0562デフォルトの名無しさん
NGNGビジュアルじゃないVCLライブラリに関しては便利なことは認めるけどな。
0563548
NGNGCreateWindow、CreateWindowExの使い方を理解していない。
サブクラス化の簡単なのとか、SendMessage 等は一通り理解していますが。
0564デフォルトの名無しさん
NGNGCだと あの教科書コピペしたらそのまま動くから面白くないし、Delphiで書く方が理解が進むでしょ?
0565デフォルトの名無しさん
NGNG0566デフォルトの名無しさん
NGNG0567デフォルトの名無しさん
NGNGでもこのスレ的にはSDKのCソース見て地道に勉強する方がいいだろうね。
アレ見てコピペしちゃあ結局Cで勉強してるのと同じでしょ。
というかそれが勉強になるならCでやった方が効率的だ。
0568デフォルトの名無しさん
NGNGありがとうございます。
(結果報告は後日・・・)
0569デフォルトの名無しさん
NGNG0570デフォルトの名無しさん
NGNG所詮、WindowsとLinuxでしか動かん開発環境だから・・・。
0571デフォルトの名無しさん
NGNGすべてを再利用しようとするなってこった。
VCLの思想やオブジェクト指向の知識はどこに行っても役に立つ。
言語に縛られるな。もっと大きく物を見ろ。
0572デフォルトの名無しさん
NGNG0573デフォルトの名無しさん
NGNG0574デフォルトの名無しさん
NGNG0575デフォルトの名無しさん
NGNG0576デフォルトの名無しさん
NGNG0577デフォルトの名無しさん
NGNG愛したひとは〜 あなただけ〜
泣いて笑って〜 一人きーりー
あなーだけよとー ひとりきーりー
はぁ〜〜♪
0578デフォルトの名無しさん
NGNG0579デフォルトの名無しさん
NGNG#include <iostream>
using namespace std;
int main()
{
cout << " _、_" << endl;
cout << "( ,_ノ` )y━・~~~" << endl;
}
こんなプログラムを書いてコンパイルしたら、450Kにもなりました。
0580デフォルトの名無しさん
NGNGC++は小さいプログラムだと大きく感じるが、
大きいプログラムになってもサイズはあまり増えない。
Delphiは小さいプログラムでもそこそこの大きさで、
大きいプログラムになればなるほどサイズも
増えていくというのは常識。
0581デフォルトの名無しさん
NGNGなるほろ。
0582デフォルトの名無しさん
NGNGどれだけライブラリ(中の無駄な部分)を抱え込むか/削れるか、の問題だろ?
VCLにも無駄な部分は多いけど。とりあえず全コントロールにドッキング要らん。
TControlを太らせなくてもTDockSiteとTDockPanelさえ用意しておけば済む話じゃ無かったのかと小一時間…
0583デフォルトの名無しさん
NGNGOOPとして使えばC++もDelphiも同じ。
ただし、C++の場合テンプレートがあるから、使えば使う程コードは増えてしまうよ。
しかしまあ、書いたコードだけサイズが増えてしまうのは仕方ないし、当然だと思うけどね。
0584デフォルトの名無しさん
NGNG0585デフォルトの名無しさん
NGNGiostreamつかうなYO
0586デフォルトの名無しさん
NGNGそういう所をコンパイラで最適化して欲しいけどなぁ
0587山崎 渉
NGNG__∧_∧_
|( ^^ )| <寝るぽ(^^)
|\⌒⌒⌒\
\ |⌒⌒⌒~| 山崎渉
~ ̄ ̄ ̄ ̄
0588山崎 渉
NGNG__∧_∧_
|( ^^ )| <寝るぽ(^^)
|\⌒⌒⌒\
\ |⌒⌒⌒~| 山崎渉
~ ̄ ̄ ̄ ̄
0589デフォルトの名無しさん
NGNG0590デフォルトの名無しさん
NGNG0591デフォルトの名無しさん
NGNG0592デフォルトの名無しさん
NGNGFree Pascalってそんなにひどいの?
0593デフォルトの名無しさん
NGNGDelphiのコンパイラがただで手にはいるんだから必要ないだろ。
0594デフォルトの名無しさん
NGNG(´・ω・`)
0595デフォルトの名無しさん
NGNGしたいんだけど、フォームなしの通常のアプリにするべきか、コンソールアプリに
するべきかどっちがいいんでしょう?
例えばコンソールアプリにした場合にダイアログを出しても問題はないのでしょうか?
ダイアログは API の MessageBox を使うと思います。
とりあえず簡単なテストしましたが、今のところ問題ないんですが
コンソールアプリとしては邪道だと思うので、そのあたりを教えて下さい。
要するにEXEサイズが小さければ何でもいいのですが。
0596デフォルトの名無しさん
NGNG中途半端で、キモイって思う人が居るくらいで、問題無い
1.デルファイ ヲ ヤメル。
2.アセンブラ デ ゴリゴリ カク。
3.ウマー!!
0598デフォルトの名無しさん
NGNG了解です。
0599デフォルトの名無しさん
NGNGLinuxのサーバーに繋いで、ファイルのパーミッションを変更するもんを
作りたいのだが、Delphiは全くの初心者で、何の関数をつかえば、全く
わかりません。どうしたらできるの。
0600デフォルトの名無しさん
NGNG使うツールが違うよ。Debian使いなよ。
0601デフォルトの名無しさん
NGNG0602デフォルトの名無しさん
NGNGなんのサーバーだ?FTPサーバか?
0603デフォルトの名無しさん
NGNGtelnet でやれば。
つか、擦れ違い。
http://pc2.2ch.net/test/read.cgi/tech/1058834815/l50
から入ってゆっくり勉強せい。
0604デフォルトの名無しさん
NGNGサーバーはsambaだ。クライアントは、OSがWindosのPCだ。
知りたいのは、Delphiには、パーミッションを取得し書き換える関数かなんかあると
おもうのだが、それは何だ、どうするのだ。と言うこと。
FTPクライアントでその機能をもっているものが多数あるのは知っている。その中の、
パーミッションだけを書き換える部分を特化したものがほしいのだ。できれば、オナー
やグループが書き換えられるともっといい。
いいか、初級Windowsユーザーがsambaにファイルをおくだろ。あとで、グループに
公開したいとか、なんかパーミッションを変更したくなった時、手軽にそれを変更でき
るアプリがほしいわけ。telnet使える連中なら苦労はしないんだよ。
でも、あれだな、603のいうとおり質問の場所まちがったかな。まあここで質問してしま
たので、最後までたのみまつ。おねがい。
0605デフォルトの名無しさん
NGNG一応突っ込んで置くが、DelphiはWindows3.1で動くバージョンも存在する。
0606デフォルトの名無しさん
NGNG0607デフォルトの名無しさん
NGNG>Delphiには、パーミッションを取得し書き換える関数かなんかあると
>おもうのだが
>>601か>>603が正解。
0608デフォルトの名無しさん
NGNGわかる?
0609デフォルトの名無しさん
NGNG「ここは教習所じゃない。」とかほざいて平気で信号無視するDQNとどう違うんだ?
0610デフォルトの名無しさん
NGNG0611デフォルトの名無しさん
NGNG公道を走ったとき、どうして人を轢かないんだ、と言っているのが、606だ。
こう、説明するとわかるか609
0612デフォルトの名無しさん
NGNGしている頭の固いやつは、きっとプログラマーにはむかない。 ということで納得して
くれ。な、みんな。
0613デフォルトの名無しさん
NGNG0614デフォルトの名無しさん
NGNG0615デフォルトの名無しさん
NGNGそれにしても、FFFTPなんかは何で作っているのでしょうね。
0616デフォルトの名無しさん
NGNGここで関数の有無を質問してる奴はプログラマーにはむかない。
ということで納得してくれ。な、おまえ。
0617デフォルトの名無しさん
NGNG0618デフォルトの名無しさん
NGNG0619デフォルトの名無しさん
NGNG多分あんたが夏とか冬に湧き出る人か、ここが2chだという事を認識できてない
頭の固い人だからじゃない?
0620デフォルトの名無しさん
NGNG0621デフォルトの名無しさん
NGNG質問するのか。まったく下等な発想とおもうぞ。
0622デフォルトの名無しさん
NGNG0623デフォルトの名無しさん
NGNG0625デフォルトの名無しさん
NGNGだからどうかしたか?
0626名無しさん
NGNG615だが、寝ようとおもったが、おまえな、せっかくおしえてくれたのに
失礼だろ。
0627デフォルトの名無しさん
NGNGつまりDelphiを窓から捨てようってことだ
0628デフォルトの名無しさん
NGNG0629デフォルトの名無しさん
NGNG0630デフォルトの名無しさん
NGNG0631デフォルトの名無しさん
NGNG何逝ってんの?基地害?
0632デフォルトの名無しさん
NGNG0633デフォルトの名無しさん
NGNG0634デフォルトの名無しさん
NGNGマン毛をかくプログラム
procedure TForm1.Button1Click(Sender: TObject);
var a,b,x,y,z:integer;
begin
randomize;
for x:=0 to 1000 do
begin
a:=random(Form1.Width);
b:=random(Form1.Height);
y:=Random(Form1.Width);
z:=Random(Form1.Height);
Canvas.MoveTo(a,b);
Canvas.LineTo(y,z);
end;
end;
0635デフォルトの名無しさん
NGNG300kb近いから小さい実行ファイルとは言い難いな。
0637デフォルトの名無しさん
NGNGvar a,b,x,y,z:integer;
dc:hdc;
begin
dc:=GetDC(Form.Handle);
randomize;
for x:=0 to 1000 do
begin
a:=random(Form.Width);
b:=random(Form.Height);
y:=Random(Form.Width);
z:=Random(Form.Height);
MoveToEx(dc,a,b,nil);
LineTo(dc,y,z);
end;
ReleaseDC(Form.Handle,dc);
end;
KOLのCanvasの使い方がよくわからないんでAPIにしちゃったけど、これで16,384バイト。
0638デフォルトの名無しさん
NGNG/* Button2を反射神経でクリックするとゲーム終了するゲーム */
/* コンポーネントはボタン2個、タイマー1個です */
procedure TForm1.FormCreate(Sender: TObject);
begin
Form1.BorderStyle:=bsNone;
Form1.WindowState:=wsMaximized;
Timer1.Enabled:=False;
Button2.Visible:=False;
Timer1.Interval:=500;
randomize;
end;
//画面を最大化して、できるだけ広く使います
//終了するときはALT+F4キーを押してください
procedure TForm1.Timer1Timer(Sender: TObject);
var x,y:integer;
begin
x:=random(Form1.Width);
y:=random(Form1.Height);
Button2.Visible:=True;
Button1.Visible:=False;
Button2.Left:=x-50;
Button2.Top:=y-100;
end;
0639デフォルトの名無しさん
NGNG//ボタン2を0.5秒ごとにランダムな場所に出現させます
procedure TForm1.Button1Click(Sender: TObject);
begin
Timer1.Enabled:=True;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
ShowMessage('おしまい');
Form1.Close;
end;
0640デフォルトの名無しさん
NGNG0641デフォルトの名無しさん
NGNG0642デフォルトの名無しさん
NGNGD6Personal+KOL1.80でコンパイルしてみたけど、24KBになったよ。
D7なら16KBになるとか?
0643637
NGNG私も同じ環境です。
ただKOLのSystem units replacementというのを入れてるので小さくなったようです。
試しに外してコンパイルしてみたら、24,576バイトになりました。
0645デフォルトの名無しさん
NGNGこれ読んで改心しました。
0646デフォルトの名無しさん
NGNGそんなの間に受けるなよ。
0647デフォルトの名無しさん
NGNG本当にそう思っているの?
あのページ見て、「冗談もほどほどにしろ」なんて一瞬でも思ったなら、
一度自分のコードを見直したほうがいい
0648デフォルトの名無しさん
NGNGいや、そうでもないだろ。
「一番単純で短いアルゴリズムを使います。」なんて書いてるが、
いくら単純でも O(n^3) なアルゴリズムなんて使うか?
0649デフォルトの名無しさん
NGNG0650デフォルトの名無しさん
NGNG0651デフォルトの名無しさん
NGNGのページより
>カーネギーメロン大学で開発されたAmuletというツールキットを使うと
> ``Hello, world''とウィンドウに表示するプログラムのサイズが5MBになります。
>素敵な富豪感覚ですね。
delphi も所詮中産階級のようです。
0652デフォルトの名無しさん
NGNG使わない。
富豪的以前の問題で、ライブラリのソート関数使うだけ。
もうちと答えに詰まるような例えにしてくれ。面白くない。
0653デフォルトの名無しさん
NGNG富豪的に資産を使うのが目的ではなく、
より早く目的に達成するために、富豪的なプログラミングを許すということ。
0654デフォルトの名無しさん
NGNGアルゴリズム=ソートかよ。
夏だな。
0655山崎 渉
NGNG0656デフォルトの名無しさん
NGNG面白いとか面白くないとか
そういうスレじゃねえんだよ
0657デフォルトの名無しさん
NGNG0658デフォルトの名無しさん
NGNG0660デフォルトの名無しさん
NGNG0661デフォルトの名無しさん
NGNG0662デフォルトの名無しさん
NGNG夏だから
0663デフォルトの名無しさん
NGNG634にかなり感動した。&爆笑してしまった。
0664デフォルトの名無しさん
NGNGhttp://bluetree.2.pro.tok2.com/monjyu/up/up.cgi
って 削除されたら しらん
0666デフォルトの名無しさん
NGNG0667デフォルトの名無しさん
NGNGボタンを数回押したらすごい剛毛になってしまいますた
0668デフォルトの名無しさん
NGNG0669デフォルトの名無しさん
NGNG0670山崎 渉
NGNG│ ^ ^ │<これからも僕を応援して下さいね(^^)。
⊂| |つ
(_)(_) 山崎パン
0671デフォルトの名無しさん
NGNG0672デフォルトの名無しさん
NGNG0673デフォルトの名無しさん
NGNGvar h:THANDLE;
var i,x,y:Integer;
var dt : array[0..511] of byte; //2HD 512byteセクタ用
var siz:DWORD;
var s:string;
var w:string;
begin
h:= CreateFile ('\\.\A:',GENERIC_READ, FILE_SHARE_READor FILE_SHARE_WRITE ,nil, OPEN_EXISTING,0,0 );
if h=THandle(-1) then exit;
SetFilePointer( h , pos,nil, FILE_BEGIN);
try
if ReadFile(h,dt,Sizeof(dt),siz,0) then begin
i:=0;
for y:=0 to length(dt) div 16-1 do begin
s:=IntToHex(pos,4)+';';
w:='';
for x:=0 to 16-1 do begin
if x<>0 then s:=s+' ';
if Char(dt[i]) in [' '..'z'] then w:=w+Char(dt[i]) else w:=w+'・';
s:=s+IntToHex(dt[i],2); inc(i);inc(pos);
end;
sout.Add(s +w);
end;
end;
finally CloseHandle(h); end;
end;
0674デフォルトの名無しさん
NGNG0675デフォルトの名無しさん
NGNG0676デフォルトの名無しさん
NGNG0677デフォルトの名無しさん
NGNG0678デフォルトの名無しさん
NGNG0679デフォルトの名無しさん
NGNG0680デフォルトの名無しさん
NGNGあれは、ハードディスクの使用率をちょっと少なくするという利点だけで、
起動時間が遅くなり、使用メモリも増加する。
0681デフォルトの名無しさん
NGNG0682デフォルトの名無しさん
NGNGハードディスクよりメモリのほうが速い。
メモリ消費は確かに増えるがな。とくにDLLを圧縮すると
共有されるものもされなくなる。
0683デフォルトの名無しさん
NGNG0684デフォルトの名無しさん
NGNG0685デフォルトの名無しさん
NGNG書き込んだとき初めて独自にページが割り当てられて、
それまでは共有される(copy on write)。
UPXは圧縮解除のために全領域にわたって書き込みを行うから
まったく共有されなくなるわけ。
0686デフォルトの名無しさん
NGNGデフォルトのままのDLLを複数のアプリがロードすると 当然同じアドレスにロード出来ない。
そうすると、別のアドレスに割り当てられられた方は実メモリを必要とする
0687デフォルトの名無しさん
NGNG0688デフォルトの名無しさん
NGNG0689デフォルトの名無しさん
NGNG0690デフォルトの名無しさん
NGNG馬鹿?
0691デフォルトの名無しさん
NGNG変数に名前つきメモリ空間とか使わないで済むじゃん。
不定期ローテク講座参照。
0692デフォルトの名無しさん
NGNGいや普通でも使わなくて済むが。区別する必要ができたらその時点で
共有されなくなるんだから。普通はメモリマネージャの中の人を
意識する必要はない。
「必要もないのに」共有されるからメモリの無駄遣いなの。
0693デフォルトの名無しさん
NGNGhttp://www.geocities.co.jp/SiliconValley-Sunnyvale/3282/
0694デフォルトの名無しさん
NGNGhttp://www.geocities.co.jp/SiliconValley-Sunnyvale/3282/
0695ScrollBarを探していた男
NGNG0696デフォルトの名無しさん
NGNG0697デフォルトの名無しさん
NGNG0698デフォルトの名無しさん
NGNG0699デフォルトの名無しさん
NGNGVCL と同じようなことをしようとすると、結局似た大きさに戻る
0700デフォルトの名無しさん
NGNGたとえばあるユニットのある関数だけ使った場合、
使ったユニットの分だけ大きくなるのではなく、使った関数の分だけ大きくなる。
SysutilsやClassesといった、usesするだけでサイズが増えるユニットは、
Initialization部分などで関数や変数を使っているからだ。
と、フサギコに教わった。
普通にVCLアプリを作ると、ウィンドウ一つ作るのに多数のユニットを使っていて、
Initializationも多数あるし、クラスもたくさん使っているため、
実行ファイルははじめから数百KBになってしまう。
ところが、KOLの場合、KOL.pasだけでウィンドウを作れるので実行ファイルが小さい。
usesしているWindowsとMessagesは定数ならべるにすぎないユニットなので肥大しない。
クラスはすべて名前変えただけのTObj型なのでこれも肥大しない理由。
当然だが、サイズが小さい分、実装している機能も少なく、>>699のような結論。
0701デフォルトの名無しさん
NGNG相対的に無茶苦茶EXEのサイズ小さくなってるよな。
0702デフォルトの名無しさん
NGNG昔 2GBytes 1万円とすると、0.0000046566 円/Byte
今 100GBytes 1万円 とすると、0.0000000931 円/Byte
Delphi+VCLの素組みアプリが400KBytesだとすると、
昔 約 1.91 円
今 約 0.04 円
0703デフォルトの名無しさん
NGNG(ユーザーから見て)同等の機能を有する二つのソフトが、
500KBと50KBだったら、ハードディスク空いてても50KBの方を使っちゃう。
起動の時ガリガリガーモサッてソフトと、ジパッってソフトがあれば速いほう使っちゃう。
MsOfficeの同等品がダウンロード2秒のフリーソフトで存在すれば使っちゃう。
大した違いがなくてもユーザーは常に比較してるものだ。
プログラマでもないのにワープロとエディタ使い分ける人がいるんだから、
小さいEXEに対する需要も有り続けると思う。
0704デフォルトの名無しさん
NGNG0705デフォルトの名無しさん
NGNG0706デフォルトの名無しさん
NGNG0707デフォルトの名無しさん
NGNG結構な数のフリーソフト使ってきたけど、Exeサイズで比較したことなんかないぞ
動作の軽快さとか、実際の使用に関ってくる部分といっしょにするなよ
0708デフォルトの名無しさん
NGNG君はO型なんでしょう。A型の人のことはわからないと思われ
0709デフォルトの名無しさん
NGNGすげえ、当たりだ
でも、>703も50kと500kのアプリで、明らかに500kの方が使い勝手がよければ
確実に500kの方を使うんだろうし、結局たいした意味は無いと思うけどね<Exeサイズ
同等の機能、同等の使い勝手なら、俺はExeサイズよりもアプリの見栄えを優先するな。
あとは配布してるHPなんかも結構重要だったりする。
0711デフォルトの名無しさん
NGNG0712デフォルトの名無しさん
NGNG0713デフォルトの名無しさん
NGNG[警告] 願望.pas(3): 'カリ'が必要な場所に識別子 '皮' があります
[エラー] 願望.pas(3): 指定された引数で呼び出すことができるオーバーロード関数 '彼女' が定義されていません
[エラー] 願望.pas(3): 'smallchinko型' と 'largechinko型' には互換性がありません
[致命的エラー] '願望.pas' ユニットはコンパイルできませんでした
0714デフォルトの名無しさん
NGNG0715デフォルトの名無しさん
NGNG0716デフォルトの名無しさん
NGNGこの方法で小さなEXEつくると
Indyとかの通信ようコンポーネント使えますか?
無理ですよねぇ?
0717デフォルトの名無しさん
NGNGWinSock使え。Win32APIな
0718デフォルトの名無しさん
NGNG使えるよ。大きなEXEになるけど。
0719デフォルトの名無しさん
NGNGだから、1バイトあたりいくらだとかいう経済的な話は全く関係ないんだよね。
小さい方が美しい、それだけだよ。
0720デフォルトの名無しさん
NGNG0721デフォルトの名無しさん
NGNG0722デフォルトの名無しさん
NGNG気にしなくなった。
0723デフォルトの名無しさん
NGNG0724デフォルトの名無しさん
NGNG0725722
NGNG0726デフォルトの名無しさん
NGNGhttp://program.dot.thebbs.jp/1071486463.html
0727デフォルトの名無しさん
NGNG全くのプログラミング知識0から初めて、次のようなことを
実行するプログラムを作りたいのですが、まず手始めに、
どのようなサイト等で勉強すればよいでしょうか。アドバイス
いただけると助かりますm(_ _)m
使用ソフト Delphi6 personal
プログラムの内容、 aというファイルにおいて、
バイナリの一部をXorさせた値を、あるアドレスに書き込み、
ある場所のバイナリを書き換えて、b というファイルを出力
する
0729デフォルトの名無しさん
NGNG特に、自分で作ったものと同等の他社ソフトのサイズが小さいと燃ゆる。
他社ソフトが大きいと勝手に優越感。
あと、関係ないけどバグのあるライブラリをそのまま使ってる他社ソフトにも勝手に優越感。
0730デフォルトの名無しさん
NGNGいまだにVB製のメモ帳が軽さをウリにしてるし。
0731デフォルトの名無しさん
NGNG現実はそんなもんか。
0732デフォルトの名無しさん
NGNG彼女はvirtualか、、、
0733デフォルトの名無しさん
NGNG童貞はいつまでたっても抽象クラスってことか
0734デフォルトの名無しさん
NGNGunit Who;
interface
type
TWho = class(TMan)
private
procedure Lover; virtual; abstract;
public
procedure Friend; virtual; abstract;
end;
implementation
uses RightHand;
end.
0735デフォルトの名無しさん
NGNGKOLほど小さくはならないけど、KOLほどクセが無いのでちょうどいい。
0736デフォルトの名無しさん
NGNGKOL以上に小さくなる上に、KOLほどクセが無いのでちょうどいい。
0737デフォルトの名無しさん
NGNGそれ小さくなったとは言わないだろ・・・
0738デフォルトの名無しさん
NGNG本当だ、僕のモンスターがこんなに小さくなっちゃったっ!!
0739デフォルトの名無しさん
NGNGBCBで試したら出来たヨ!
400KBあったアプリがなんと十分の一以下に!ワァオ♥
0740デフォルトの名無しさん
NGNG俺も使わしてもらっているんだけど、
TAPIWindowって20バイトのメモリリークがあるんだよね。
どこでメモリリークを起こしているかわからないだよな。
0741デフォルトの名無しさん
NGNG確認してみたがしてなかったよ。
0742デフォルトの名無しさん
NGNG0743デフォルトの名無しさん
NGNGメモリー関係なら
PMemoryManager のメンバー(関数ポインタ) をフックして調べればいいじゃない
0744デフォルトの名無しさん
NGNG0745デフォルトの名無しさん
NGNG後は、堀さんのMemCheck.pas を使うとスタックトレース有効にして使うのも便利なんだけど、
1つでもスタックトレースなしでコンパイルされているライブラリが、
あったりすると動作不良起こすので、事実上使えないのが悲しい
0746デフォルトの名無しさん
NGNGhttp://halbow.cool.ne.jp/
0747デフォルトの名無しさん
NGNG予想外の多くの方々が訪れて頂き、ありがとうございました。
Halbow
0748デフォルトの名無しさん
NGNG0749デフォルトの名無しさん
NGNG0750デフォルトの名無しさん
NGNG読んでる途中だったのに(´・ω・`)
0751デフォルトの名無しさん
NGNG0752デフォルトの名無しさん
NGNG0753デフォルトの名無しさん
NGNGどこかにうpしたいけど、うpろだ知らないし、ナローバンドじゃマンドクサ('A`)
0755デフォルトの名無しさん
NGNG0756Delフサギコ ◆A6VzDeLphI
NGNG∧,,∧ /2002年5月から
ミ,,゚Д゚彡 < 更新されてないの?
ミ つ旦)~~ \
@ミ ミ  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
∪''∪
0757デフォルトの名無しさん
NGNG去年の11月くらいだったかな。ああ保存しておけばよかった・・・。
0758デフォルトの名無しさん
NGNGお前が2chで叩くからこんなことになったんだよ
反省しろ反省を
0759Delフサギコ ◆A6VzDeLphI
NGNG∧,,∧ / はぁ? 頃スゾ氏ネ>>758
ミ#゚Д゚彡 < 俺はHal氏をたたいた
ミ つ旦)~~ \ ことはねーぞ
@ミ ミ  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
∪''∪ 尊敬こそすれ、なぜ叩かねばいかん。
駄みたいに何も貢献してない奴ならともかく。
ああいう人にはずっと続けてほしかったな。
勝手に勘違い厨がたたいてただけだろ
0760デフォルトの名無しさん
NGNGおめーら仲間割れかよ(笑)
0761デフォルトの名無しさん
NGNGユーザーはそのまま使えるライブラリを望んだ。
各自でどうにかすべきことを作者に要求し、
掲示板が2chみたいになっちゃった。
といういきさつでしたとさ。
0762デフォルトの名無しさん
NGNGHalbow氏のサイトが無くなるのはけっこう痛いなぁ。
0763デフォルトの名無しさん
NGNG0764デフォルトの名無しさん
NGNG0765デフォルトの名無しさん
NGNG0766デフォルトの名無しさん
NGNGttp://www.google.com/search?hl=ja&lr=lang_ja&ie=UTF-8&q=+site:halbow.cool.ne.jp+halbow
0767デフォルトの名無しさん
NGNG2003年11月22日(土)に「delphiに興味が無くなってきたうんぬん」って
書いてある。
ハンドルネタ面白いけど、複雑。
0768デフォルトの名無しさん
NGNGHTMLHelp版のはちょと古いまんまだよ。
0769デフォルトの名無しさん
NGNG0770ミ,,゚Д゚彡 ◆A6VzDeLphI
NGNG0771デフォルトの名無しさん
NGNG0772デフォルトの名無しさん
NGNG0773デフォルトの名無しさん
NGNG0775デフォルトの名無しさん
NGNGほんとに荒れてたの?
0776デフォルトの名無しさん
NGNGHaibowさんの「最近はdelphiには興味がなくなって、VC#などをいじるようになってきた」みたいな書き込みに対して、
「あなたは落ちこぼれたんだ。Delphiマンセー」と噛み付いてきた奴はいた。
サイトをもうすぐ閉じると書いた後の話だけどね。
0777デフォルトの名無しさん
NGNG0778デフォルトの名無しさん
NGNG0779デフォルトの名無しさん
NGNG0780デフォルトの名無しさん
NGNG「使いもしないで .NET を否定するのは、新しいものを否定しているだけではないか」という程度の内容。
で、荒らされたんじゃなくて、Delphi-ML の個人を馬鹿にする記事を Halbow 本人が
書いちゃって、それが即本人に伝わり「諸般の事情で閉鎖」となったんです。
独り言コーナーでも、ML の何人かに対する不満を愚痴愚痴つづっていたし。
吐駄がいなけりゃねぇ
0781デフォルトの名無しさん
NGNG0784デフォルトの名無しさん
NGNGそのハンドルの人、そこそこ見るけど、その人が受けついだんかー。
一子相伝(?)。
0785デフォルトの名無しさん
NGNG春坊と同じような掲示板で似たような口調で回答つけているんだよなぁ。
0786デフォルトの名無しさん
NGNGメニューだけどうしてもユニコードになりません。
メニューはVSでデザインしてリソース化したんだけど、
コードページ1200は出来ませんとか言われるし、
InsertMenuWで手動で構成してもダメみたいです。
何か足りないのかな?
0787デフォルトの名無しさん
NGNGリソースコンパイラに対する指定だと思うけど、たぶんそれが原因。
メニューと文字列(ストリング)リソースは常に UNICODE で格納されます。
リソースコンパイラに指定するのはソースコードのコードページ
0788786
NGNGいったん.rcに変換して#pragma code_page(932)を1200に変えたりなど小細工したらVSでも読めなくなった。
そんな話してるんじゃないんだよ。
リソースで埋めようが、APIでメニューを作ろうが、どうしてもメニューだけは、
どれか一カ国語でしか挿入できなかったっていってるんだよ。
紛らわしくてすまんね。
メニューにも中途半端ユニコードウィンドウみたいな概念はあるのかね?
0789デフォルトの名無しさん
NGNGメニューはキャプションと同じでウィンドウズが管理するから、アプリケーションそのものも
UNICODE ウィンドウになっていないといけないよ?
つーことで、確認。キャプションに任意の文字は表示できますか?
0790786
NGNGタイトルバーはハングル混じり日本語可能です。
貼り付けてある複数行エディットの右クリックメニューにはユニコード用項目あり。
ハングルページからのコピペも可能。
VSのデザイナーでハングル混じり日本語メニューが、ハングルだけ??になるので、
InsertMenuWで#$xxxx+#$xxxx+'日本語'を挿入するが、やはり??日本語になる。
フォントに問題があれば「・・日本語」になるが、?はOSがANSI変換できない場合に出る。
つーわけで、どこか中途半端ユニコードかなと確認中だけど、
そもそもメニューに多言語って表示できるの?と疑問。
MSDNには複数言語で別のリソース使いわけろと書いてあるけど。
0791デフォルトの名無しさん
NGNG複数言語対応のリソースに関しては、SDK のドキュメントを。とりあえずニュートラルにしておけばどの状態でも読み込まれる。
なんかメニューウィンドウが ANSI になっているようですね。
あなたのコードが読めないから何ともいえないけど、-GD オプションつけて .map ファイル出して、
A バージョンの API を呼び出していないか確認してみませんか?
0792786
NGNGこれわかりません
exeをバイナリエディタで開いたら
GetStartupInfoA
GetCommandLineA
GetModuleHandleA
GetModuleFileNameA
CharNextA
GetStringTypeExA
GetModuleFileNameA
GetLocaleInfoA
GetDiskFreeSpaceExA
GetObjectA
SystemParametersInfoA
SendMessageA
LoadCursorA
A付きはこれだけありました。SendMessageAが気になるところですが、
まだGrep確認中で見つかってません。
0793デフォルトの名無しさん
NGNGIDE 使っているのならリンカページに対応する設定があると思う。
あと TDUMP ってのも使えると思うぞ。
で、SendMessageA が臭いね。これを誰が呼び出しているのかを調べるのが最初かな?
0794786
NGNGしかしメニューはやっぱりまだ??なんで、どっかで凡ミスしてると踏んで、
も一回クラス登録から見直してみます。
そこそこ有益な情報ありがとうよ。
0795デフォルトの名無しさん
NGNGRegisterClass(Ex)W使ってる?
0796デフォルトの名無しさん
NGNGA 付きは全部チェックしたといっているし、キャプションは正常っぽいから
RegisterClassW は使っているかと思うが。LoadMenuA を使っている用に思えるの
だが。
0797786
NGNGもうA付きはhInstanceに使われてるGetModuleHandleAのみ。
最初にメニューがユニコード化できてないことに気がついたとき、
LoadMenuAからLoadMenuWに変えた。
それまではリソースの名前をVSで"MENU"にしていて、
読み込めなくなったので数字に変えてみたら読み込めた。
これでユニコード文字表示できるか、と思ったら??のままだったって感じでしたぜ。
$#xxxxがsjisの文字なら表示できるのだがなぁ。
つーかスキー&セックス行ってくるから次の報告遅れます。
0798デフォルトの名無しさん
NGNG0799デフォルトの名無しさん
NGNGVCLがAnsiしか使わないので気がついていないDelphiのスレだよ
0800デフォルトの名無しさん
NGNG0801デフォルトの名無しさん
NGNG900のとき1000って書くための布石ですか?
0802786
NGNGが、どちらを使った場合でも、いったんメニューを挿入した後、
AppendMenuWで、キャプションを書き換えた場合はユニコード表示できました。
何がおかしいのかまだわからないけど、当面これで二度手間すれば解決です。
訳わからんことばっかりやっててごめんな。
0803786
NGNG水平スクロールするかどうかを設定して再生成するところまでわかりました。
当然折り返し変更するたびにUndo出来なくなりますが、VCLはなぜかUndoできます。
VCLのTMemoやTRichEditでも、WordWrapを切り替えるたびにウィンドウを破棄しているようですが、
Undoの情報を再生成したウィンドウに受け渡してる部分が見つかりません。
どうやって、次のウィンドウでもUndo出来るようにしますか?
0804デフォルトの名無しさん
NGNG0805デフォルトの名無しさん
NGNGOSとかデバイスドライバクラスもいける?
0806デフォルトの名無しさん
NGNG言語としては問題なし。
0807デフォルトの名無しさん
NGNGリンカーで配置アドレスを指定したり、デバイスドライバである事を示すマークを付けなければいけない。
ブートコードを書く時はCOFFを書き込むツールを作る必要がある時もある
Delphiは高速コンパイルの為に、コンパイル+リソースコンパイル+リンクを一度にやってしまう。
しかし、objも吐けるし、dcrを自分で処理すれば、そりゃ何でも出来る。
ただ、普段が便利なぶん、そういうノウハウが蓄積されないからあまりやる人がいない。
0808デフォルトの名無しさん
NGNG例外サポートも例外を書かなければ空にすればすむ
Delphiの場合、空にすればいいといっても結構沢山のランタイムを用意する必要がある。
例外についても文字列を手続内で使うと自動的に使われてしまうので、
これもサポートしなければいけない。
出来ると言っても、最初の敷居が高い。
これを乗り越えれば書けるけど、乗り越えられるのはDelphi以外に低レベルな部分のノウハウを積んでる必要がある。
0809デフォルトの名無しさん
NGNGただでさえ少ないDelphiの本や情報が、低レベルなんて誰も
やらないようなことだとさらに少ない。
0810デフォルトの名無しさん
NGNG実際デバイスドライバ作ってますなんてのも、仕事だとコードコピーしてちょっと直すだけで、
普通のWinアプリ作るのと同じ。あんまり勉強にはなんない。
0811デフォルトの名無しさん
NGNG0812デフォルトの名無しさん
NGNG0813デフォルトの名無しさん
NGNG0814Delフサギコ ◆A6VzDeLphI
NGNGミ,,゚Д゚彡
ミ つ旦)~~
〜と,,,~),,~)
えっと、TaskTray常駐アプリで
Formを使わないタイプのサイズの小さい
アプリを作る方法、教えて欲しいです。
どこかに参考となるページとか紹介されてませんか?
0815Delフサギコ ◆A6VzDeLphI
NGNGミ,,゚Д゚彡
ミ つ旦)~~
〜と,,,~),,~)
えっと、TaskTray常駐アプリで
Formを使わないタイプのサイズの小さい
アプリを作る方法、教えて欲しいです。
どこかに参考となるページとか紹介されてませんか?
0816デフォルトの名無しさん
NGNGKOLぢゃだめなの?
0817Delフサギコ ◆A6VzDeLphI
NGNG⊂ミ゚Д゚⊂,,,,,,,`つ≡≡(´⌒;;;≡≡≡
ごめんなさーーーーい
KOLでTrayアイコンアプリは
作れるでしたけ?
アンインスコしちゃったからなあ…
0818デフォルトの名無しさん
NGNGttp://okapony.hp.infoseek.co.jp/download/index.html
の「小さいタスクトレイ常駐アプリケーションを作りたい!!」を参考にするとよろし。
中で、Classes.pasとSysUtils.pasを使っているので思ったより小さいサイズにはならないけど。
0819デフォルトの名無しさん
NGNG最近特にボケてきたよね。
0820Delフサギコ ◆A6VzDeLphI
NGNG∧,,∧ ありが�d
ミ*゚Д゚彡 うまくいきそうでつ。
ミ つ日
.@ミ,,,,,, ,,ミ
常駐ソフトって、exeサイズがメモリ上に展開されっぱ(?)だから
いまだに、ちっちゃい方が助かるですよね。
VCL系を3つも起動してると
なんか体感的に重くて…
>>819
・・・・ミ;゚Д゚彡・・・・ヒ...ヒミツ....
0821デフォルトの名無しさん
NGNG0822デフォルトの名無しさん
NGNG0823デフォルトの名無しさん
NGNG0824デフォルトの名無しさん
NGNGexeサイズを気にされるのなら
ttp://bonanzas.rinet.ru/e_adds.htm#Utilities
のBAPTrayIconがとても良いです。
サンプルも付いてるからすぐわかります。
KOLですけど。
0825デフォルトの名無しさん
NGNGフルアセンブラで小さなexeを作れそうだが
問題はどうすれば空のsystem.dcuを作れるのか
0826デフォルトの名無しさん
NGNGまあアルファベット全部試せば(ry
KOL用の小さなsystem.pasとかあったはずだから、それ見ればわかるかな
ところでフルアセンブラで書くなら、高級言語のインラインアセンブラじゃなくて、
普通のアセンブラをそのまま使った方がいいと思うのだが
0827825
NGNG>>普通のアセンブラをそのまま使った方がいいと思うのだが
Delphiで究極に小さいアプリを作ってみたいんです。
しかしインラインアセンブラでinvokeとif擬似命令が使えないから
やはりアセンブラか...?
0828デフォルトの名無しさん
NGNG*最新のアップデート(2004年7月現在)を適用済みの状態で作成
*下記のプロパティで統一(他のプロパティは初期状態の設定)
Caption : Delphi*(*はDelphiのバージョンの半角数字1文字)
Left : 0(Delphi8では8以下に設定をする事が不可能であるため8で設定)
Top : 0(Delphi8では8以下に設定をする事が不可能であるため8で設定)
Width : 320
Height : 240
Position : poScreenCenter
FormStyle : fsStayOnTop
Delphi1.exe : 195KB(200,448バイト) [Win16]
Delphi2.exe : 154KB(158,208バイト) [Win32]
Delphi3.exe : 174KB(178,688バイト) [Win32]
Delphi4.exe : 274KB(281,088バイト) [Win32]
Delphi5.exe : 285KB(291,840バイト) [Win32]
Delphi6.exe : 374KB(382,976バイト) [Win32]
Delphi7.exe : 359KB(367,616バイト) [Win32]
Delphi8.exe : 1.29MB(1,356,800バイト) [.NET]
Delphi1.exe : 16bitアプリケーションなのでNT系で実行をするとシステムが不安定になった。
Delphi2.exe : Delphi1〜Delphi8の全ての中でファイルサイズが1番小さくなった。
Delphi6.exe : Win98SEよりも古い9x系とWin2000よりも古いNT系では起動しなかった。
(クリーンインストール直後の状態で実行した結果であるためIE5以上を入れれば動く可能性あり)
Delphi8.exe : .NET専用アプリケーションなので例外ではあるがファイルサイズが1番大きくなった。
だから何?って感じですけど・・・KOLでもやってみようかな。
0829デフォルトの名無しさん
NGNG乙乙。是非KOLでもやって下さい。ついでにKOL+UPXの比較もやって欲しいです。
Delphi2+KOL+UPXならDelphi6の実行時パッケージ以下になるかも。無理か・・・
Delphi6で作った実行ファイルがIE5以下の古いWindowsで動かないのは
IE5以上のOLEAUT32.DLLが必要だからです。
IE5とかVB6とかOffice2000を入れれば動きます。
ちなみに一緒に配布しようとするとOLEAUT32.DLLだけで500KB超えちゃいます。
Delphi7で作った実行ファイルはIE5以下の古いWindowsでも問題なく動きます。
Delphi6をわざとうんこにしてDelphi7以上を買わせるBorlandの罠か?
0830デフォルトの名無しさん
NGNG0831デフォルトの名無しさん
NGNGボーランドも終わったな。
0832デフォルトの名無しさん
NGNGDelphi8を買うとDelphi7がもれなく付いてくるから
ランタイム不要のアプリケーションは一応作れるよ。
.NETアプリケーションを動かすには.NETパッケージが必要だから
Borlandに関係なくどんな開発環境でもその点は仕方がない。
.NETの未来には期待できないから終わったなと言われれば終わったかも。
なんかスレ違いになってきた。
0833デフォルトの名無しさん
NGNGおつかれ。
D6,D7はCLX, D8はWindows.Formsという選択肢もありますね。
もっとも、exeを小さくするのか、消費メモリを減らすのか、は、別問題…
0834828
NGNG>>833
参考にしてくだされ。
Delphi8で作成した実行ファイル
*最新のアップデート(2004年7月現在)を適用済みの状態で作成
VCL フォームアプリケーションの場合
[TForm]
Caption : Delphi8
Width : 320
Height : 240
Position : poScreenCenter
FormStyle : fsStayOnTop
(他のプロパティは初期状態の設定)
Delphi8.exe : 1.29MB(1,356,800バイト)
Windows フォームアプリケーションの場合
[TWinForm]
Text : Delphi8
Width : 320
Height : 240
StartPosition : CenterScreen
TopMost : True
(他のプロパティは初期状態の設定)
Delphi8.exe : 21.0KB(21,504バイト)
0835828
NGNGDelphi1〜Delphi8で作成した実行ファイル
*最新のアップデート(2004年7月現在)を適用済みの状態で作成
*下記のプロパティで統一(他のプロパティは初期状態の設定)
*Delphi8はVCL フォームアプリケーションを新規作成
[TForm]
Caption : Delphi*(*はDelphiのバージョンの半角数字1文字)
Left : 0(Delphi8は0に設定をする事が不可能であるため初期状態の設定)
Top : 0(Delphi8は0に設定をする事が不可能であるため初期状態の設定)
Width : 320
Height : 240
Position : poScreenCenter
FormStyle : fsStayOnTop
Delphi1.exe : 195KB(200,448バイト) [Win16]
Delphi2.exe : 154KB(158,208バイト) [Win32]
Delphi3.exe : 174KB(178,688バイト) [Win32]
Delphi4.exe : 274KB(281,088バイト) [Win32]
Delphi5.exe : 285KB(291,840バイト) [Win32]
Delphi6.exe : 374KB(382,976バイト) [Win32]
Delphi7.exe : 359KB(367,616バイト) [Win32]
Delphi8.exe : 1.29MB(1,356,800バイト) [.NET]
Delphi1.exe : 16bitアプリケーションなのでNT系で実行をするとシステムが不安定になった。
Delphi2.exe : Delphi1〜Delphi8の全ての中でファイルサイズが1番小さくなった。
Delphi6.exe : Win98SEよりも古い9x系とWin2000よりも古いNT系では起動しなかった。
(IE5やVB6やOffice2000等を入れてOLEAUT32.DLLをアップデートすれば動く可能性あり)
Delphi8.exe : .NET専用アプリケーションなので例外ではあるがファイルサイズが1番大きくなった。
0836デフォルトの名無しさん
NGNG最新バージョンのBPL(DPL)のサイズも知りたいな。
Delphi3とDelphi6は持ってるから分かるけど。
0837デフォルトの名無しさん
NGNG0838デフォルトの名無しさん
NGNGぐらいしか使ったことない、宝の持ち腐れだけど。
先輩方が書いてる軽量化の方法+UPXMaskを
使えば、もっと小さな実行ファイルが生まれるのかなー
とか、想像しちゃってます。
0839デフォルトの名無しさん
NGNG0840838
NGNG0841デフォルトの名無しさん
NGNGそんなことよりもDelphiの未来を心配しろ。
0842デフォルトの名無しさん
NGNG0843828
NGNGDelphi3〜Delphi7(実行時パッケージ)で作成した実行ファイル
*最新のアップデート(2004年7月現在)を適用済みの状態で作成
*下記のプロパティで統一(他のプロパティは初期状態の設定)
[TForm]
Caption : Delphi*(*はDelphiのバージョンの半角数字1文字)
Left : 0
Top : 0
Width : 320
Height : 240
Position : poScreenCenter
FormStyle : fsStayOnTop
[実行ファイル]
Delphi3.exe : 9.50KB(9,728バイト)
Delphi4.exe : 12.5KB(12,800バイト)
Delphi5.exe : 13.5KB(13,824バイト)
Delphi6.exe : 14.5KB(14,848バイト)
Delphi7.exe : 16.5KB(16,896バイト)
[実行時パッケージ]
[Delphi3] VCL30.DPL : 1.21MB(1,277,440バイト)
[Delphi4] VCL40.BPL : 1.79MB(1,884,160バイト)
[Delphi5] VCL50.BPL : 1.92MB(2,023,424バイト)
[Delphi6] vcl60.bpl : 1.26MB(1,323,008バイト) / rtl60.bpl : 656KB(672,256バイト)
[Delphi7] vcl70.bpl : 1.31MB(1,383,936バイト) / rtl70.bpl : 765KB(783,360バイト)
0844デフォルトの名無しさん
NGNG0845デフォルトの名無しさん
NGNGスレ違いだからなあ・・・
Delphiなら2〜7を揃えて使い分けたいとは思うけど。
C++Builderを全バージョン揃える利点が感じられないし
VC++と併用してるけど結局VC++に移植してしまう事が多いよ。
C++BuilderにKOLみたいなのがあれば文句ないけどね。
0846デフォルトの名無しさん
NGNG>>842
ファイルサイズがMB超えるとメールに添付するのがためらわれるし
同じ性能でフロッピーに1個しか入らない大きさの実行ファイルと
何十個も入る大きさの実行ファイルだったら小さいほうが便利だよ。
USBメモリとかMOとかDVD-RAMとかでも書き込みや読み込みが速い方が便利でしょ。
釣られてみた。
0847デフォルトの名無しさん
NGNG>>841はそんなのはメリットとは言わない時代だと言いたいんじゃないのかな?
0848デフォルトの名無しさん
NGNG>>846がメリットと思わない環境の方がまだ少ないんじゃないか?
Web上で公開する事を考えても小さければ小さい程良いよ。
アップロード時間やホームページ容量がさほど気にならなくなるし。
そもそも無駄に大きくて良い事は何一つないと思う。
0849デフォルトの名無しさん
NGNGVCLを使うのが無駄だと思うならDelphi使うなよばーか
0850デフォルトの名無しさん
NGNGお前の方がばかだろ。ばーか。
0851デフォルトの名無しさん
NGNG0852デフォルトの名無しさん
NGNG>>848
おまいらが正しいよ。キチガイは放置しとけ。
>>843
乙。KOLまだー?
0853デフォルトの名無しさん
NGNGあなたの28.8kbpsの環境ならかなりメリットあるでしょうよ。
Delで作るアプリでWeb上で公開するようなものに数十MBなんてことは無いだろうから
今時アップロードやダウンロードの時間を気にしているユーザーなんてのも皆無。
そんなにHPスペースが気になるならDelの議論するより、圧縮アルゴリズムの議論
でもしたほうがいいんじゃないか。
>>そもそも無駄に大きくて良い事は何一つないと思う。
無駄に大きいが簡単にできるのがDelの良いところだ。
0854デフォルトの名無しさん
NGNG何をムキになって言っているのかさっぱり理解出来ません。
どうしましょうか?放置ですか?
0855デフォルトの名無しさん
NGNGここはDelphiで小さな実行ファイルを作る議論をする所だ。
0857デフォルトの名無しさん
NGNG0858デフォルトの名無しさん
NGNGいちばん感激したレスをコピペしておくよ。
719 :デフォルトの名無しさん :03/12/10 12:19
俺思うんだけどさあ、小さいEXEがいいかどうかってのは、美意識の問題なんだよ。
だから、1バイトあたりいくらだとかいう経済的な話は全く関係ないんだよね。
小さい方が美しい、それだけだよ。
0859デフォルトの名無しさん
NGNG0860デフォルトの名無しさん
NGNG0861デフォルトの名無しさん
NGNGDelphiなんて駄目駄目。
0862デフォルトの名無しさん
NGNGスレタイ嫁
0863デフォルトの名無しさん
NGNG0864デフォルトの名無しさん
NGNG0865デフォルトの名無しさん
NGNGでも、アセンブラで窓アプリ作った人はそんなにいないよ。Delphi でも
インラインアセンブラ使えるけどさ。
0866828
NGNGDelphi2〜Delphi7(KOL)で作成した実行ファイル
*最新のアップデート(2004年7月現在)を適用済みの状態で作成
*KOL v1.90 21-Jan-2004/MCK v1.90 21-Jan-2004で作成
*下記のプロパティで統一(他のプロパティは初期状態の設定)
[TKOLProject]
dprResource : True
[TKOLForm]
Caption : Delphi*(*はDelphiのバージョンの半角数字1文字)
Left : 0
Top : 0
Width : 320
Height : 240
CenterOnScreen : True
StayOnTop : True
Delphi2.exe : 21.5KB(22,016バイト)
Delphi3.exe : 25.5KB(26,112バイト)
Delphi4.exe : 26.0KB(26,624バイト)
Delphi5.exe : 26.5KB(27,136バイト)
Delphi6.exe : 24.0KB(24,576バイト)
Delphi7.exe : 25.0KB(25,600バイト)
Delphi2.exe : VCLと同じくファイルサイズが1番小さくなった。
Delphi5.exe : ファイルサイズが1番大きくなったが5KBの差でしかなかった。
(VCLではDelphi2.exeとDelphi6.exeで219.5KBもの差があった)
Delphi6.exe : VCLでは起動が不可能だったIE4以下の古いWindowsでも動作した。
0867デフォルトの名無しさん
NGNGお疲れ様。
KOLで作るとタスクバーの右クリックメニューがまともになるのが良いね。
(元のサイズに戻す、移動、サイズ変更、最大化、最小化、閉じる)
VCLで作ると[元のサイズに戻す、最小化、閉じる]だけになっちゃうから
いかにもDelphiで作りましたって感じでなんだか嫌だ。
Delphi3とDelphi4の最小化アニメーションが標準で可能になるのも良いよ。
Delphi2のいんちき最小化アニメーションは綺麗になるのかな?
0868デフォルトの名無しさん
NGNG乙。
>>867
なる。
0869デフォルトの名無しさん
NGNG0870デフォルトの名無しさん
NGNG実行時パッケージみたいにランタイムとかが要ったりするなんてオチはないよね?
0871デフォルトの名無しさん
NGNG使いやすさを犠牲にしてサイズを小さくしている感じ。
そこそこ使い勝手も欲しかったらHalbow氏のライブラリをつかうのもよいと思う。
>>828
KOLのSystem units replacementを使ってコンパイルするともう少しファイルサイズが小さくなると思う。
0872デフォルトの名無しさん
NGNG俺の和訳がおかしいのかなあ?インストールし直してまた失敗すると辛いなあ。
D6PROでKOL1.90なのですがどなたか易しく教えて頂けませんでしょうか。
0873↑
NGNGもっかいやったら出来ました。すみません。
教えて貰う程の事でもありませんでした。ただ寝ぼけてただけでした。
828さんと全く同じ設定でSystem units replacementを使用して作成。
Delphi6.exe : 16.5KB(16,896バイト)
0874828
NGNGSystem units replacementって不要になった時に元に戻すのが面倒だよね。
Halbow氏のライブラリよりKOLのが使い勝手が良いと思うのは俺だけかな?
Delphi4〜Delphi7(KOL+System units replacement)で作成した実行ファイル
*最新のアップデート(2004年7月現在)を適用済みの状態で作成
*KOL v1.90 21-Jan-2004/MCK v1.90 21-Jan-2004で作成
*下記のプロパティで統一(他のプロパティは初期状態の設定)
[TKOLProject]
dprResource : True
[TKOLForm]
Caption : Delphi*(*はDelphiのバージョンの半角数字1文字)
Left : 0
Top : 0
Width : 320
Height : 240
CenterOnScreen : True
StayOnTop : True
Delphi4.exe : 15.5KB(15,872バイト) [Ver.1.1]
Delphi5.exe : 16.0KB(16,384バイト) [Ver.1.1]
Delphi6.exe : 16.5KB(16,896バイト) [Ver.1.4]
Delphi7.exe : 16.0KB(16,384バイト) [Beta Ver.2]
*[Ver.〜]はSystem units replacementのVersionです。
0875デフォルトの名無しさん
NGNGSystem units replacementはシステムに組み込むと外すのが面倒だから
適当な別の場所に置いといてライブラリパスを切り替えて使ったほうが良いですよ。
0876デフォルトの名無しさん
NGNG乙彼。UPXの比較も是非やって下さい。
System units replacementは元々小さい実行ファイルで比較すると
数KB位しか差が出ない事が多いけど100KB以上の実行ファイルで比較すると
Delphi4+System units replacementで作ったファイルは格段に小さくなりますね。
uses節がWindowsとKOLだけの場合でもDelphi2+KOLよりも
Delphi4+KOL+System units replacementのが小さい事が多いですね。
0877デフォルトの名無しさん
NGNG0878デフォルトの名無しさん
NGNGただ普通に作ってUPX使うだけじゃDelphiとは関係ないかも知れんが。
各バージョンのDelphiで作った小さな実行ファイルが
UPXで圧縮するとさらにどれ位小さくなるのか俺は興味があるな。
全く関係ないけどUPXのVersion 1.25が知らん間に出てた。6月か。
0879デフォルトの名無しさん
NGNG0880デフォルトの名無しさん
NGNG0881デフォルトの名無しさん
NGNG0882デフォルトの名無しさん
NGNG0883デフォルトの名無しさん
NGNG0884デフォルトの名無しさん
NGNG0885デフォルトの名無しさん
NGNG出力先やビルドオプションをDebug/Releaseで分けることはできない。
オプションに関してはインクルードファイル中で{$IFDEF RELEASE}{$R-}{$ENDIF}とかやるしかない。
某はプロジェクト管理機能に関してはまるでやる気なし。
0886デフォルトの名無しさん
NGNG0887デフォルトの名無しさん
NGNG0888デフォルトの名無しさん
NGNG面倒だし、今のところ不都合ないし。
0889デフォルトの名無しさん
NGNGじゃ、ユーザーが使うリリース版は、開発者はデバッグしないのか?
出荷バイナリと開発バイナリが異なっているとしたら、何をテストしているのだ?
0890888
NGNGDelphiスレのどこかで断言された。
俺は最適化されるとデバッグが面倒だからOFFのままだけど。
0891デフォルトの名無しさん
NGNG質問に答えてないな
いったいどんなビルドオプションでリリースしてるんだ?
0892デフォルトの名無しさん
NGNG国語力0
0893デフォルトの名無しさん
NGNGVS C++ での話だが、開発初期は最適化オフ。テストが始まるころに最適化を有効にし、
ベータテストが始まったら最終的な出荷用フラグで開発。
そうしなきゃバグ取れないでしょ。
Delphi/PASCAL 系ではコンパイル時に強めに型チェックできるので、バイナリができる。
ということはロジックバグ以外のケアレスミスはほとんど残っていない。
ロジックミス(比較の符号を間違えるとか)はビルドオプションなどでは見つけられないバグ
だからどうしようもない。
昔の VB のような実行時にならないとチェックしようのない言語処理系とは
C/C++/C#/Delphi は本質的に異なるわけ。
インタプリタにも利点はあるので否定はしないよ。ただそういった点が開発スタイルにも
影響が出る。というのは事実だ。
VS だって C++/W32 はいまだに大量のコンパイルオプションをしょっているが
C# なんか本質的なスイッチは4つくらいじゃないか?
ディレクトリが変わる以外にデバッグとリリースとでどれだけのオプションが代わっているのか
考えてごらん。
0894デフォルトの名無しさん
NGNGこれを簡単に切り替えられないDelphiのIDEは糞だけど代案があるから致命的な問題ではない。
Delphiに存在しない機能を必死に否定するのはアホのやることだよ。
なんにしてもスレ違いだな。
0895デフォルトの名無しさん
NGNGbegin
Label1.caption:=Hellow,World!
end:
0896デフォルトの名無しさん
NGNGないのは未来だけ
0897デフォルトの名無しさん
NGNGつっこみどころが多すぎてわからない
0898デフォルトの名無しさん
NGNG.dprをふたつ作ってプロジェクトグループで管理とか、代案は無い訳では無いが
スレ違いには間違い無いな
0899828
NGNG>>876
>>878
こんな感じで宜しいですかね?
Delphi2〜Delphi7(KOL)で作成してUPXで圧縮した実行ファイル
*UPX Version 1.25で圧縮率をMAXにして圧縮
*UPX 日本語 frontend ver.0.4.5の標準設定で圧縮
[KOL&UPXのファイルサイズ / KOLのファイルサイズ / VCLのファイルサイズ]
(KOLのみを使用して作成した場合)
Delphi2.exe : 13.5KB(13,824バイト) / 21.5KB(22,016バイト) / 154KB(158,208バイト)
Delphi3.exe : 15.5KB(15,872バイト) / 25.5KB(26,112バイト) / 174KB(178,688バイト)
Delphi4.exe : 15.5KB(15,872バイト) / 26.0KB(26,624バイト) / 274KB(281,088バイト)
Delphi5.exe : 15.5KB(15,872バイト) / 26.5KB(27,136バイト) / 285KB(291,840バイト)
Delphi6.exe : 14.5KB(14,848バイト) / 24.0KB(24,576バイト) / 374KB(382,976バイト)
Delphi7.exe : 15.0KB(15,360バイト) / 25.0KB(25,600バイト) / 359KB(367,616バイト)
[KOL&UPXのファイルサイズ / KOLのファイルサイズ / VCLのファイルサイズ]
(KOL+System units replacementを使用して作成した場合)
Delphi4.exe : 10.0KB(10,240バイト) / 15.5KB(15,872バイト) / 274KB(281,088バイト)
Delphi5.exe : 10.0KB(10,240バイト) / 16.0KB(16,384バイト) / 285KB(291,840バイト)
Delphi6.exe : 10.5KB(10,752バイト) / 16.5KB(16,896バイト) / 374KB(382,976バイト)
Delphi7.exe : 10.5KB(10,752バイト) / 16.0KB(16,384バイト) / 359KB(367,616バイト)
0900デフォルトの名無しさん
NGNGDelphi6のVCLで普通に作成すると374KBもの大きさになってしまうって事は
いかにVCLで作成された実行ファイルに無駄が多いって事ですよね。
生産性の高さやランタイムが不要な点を重視してDelphiを使用している方々にとっては
ファイルサイズなんかどうでも良いって感じでしょうけど。
まあそれが普通でこだわるのはマニアとかフリーソフト作者とかだけだと思いますが。
でも俺は同じ機能と性能で他よりも小さい実行ファイルはカコイーと思う。
0901デフォルトの名無しさん
NGNGKOLは充分使いやすいけど。
0902デフォルトの名無しさん
NGNG0903デフォルトの名無しさん
NGNG0904デフォルトの名無しさん
NGNG0905デフォルトの名無しさん
NGNG80KB位になりました。Delphi6+KOL+System units replacementでも120KB位になりました。
SysUtilsとRegistryをKOLで代用するのにヘルプがないのでかなり手間取りましたが
慣れてしまえばVCLとさほど変わらないので何でもKOLで作れそうです。
最大の問題はDelphiの未来かな・・・
0906デフォルトの名無しさん
NGNG(体験版のクラックアプリとかではありませんよ。念の為)
usesはWindowsとKOLのみでなんとかなりました。
VC++で24KBだったものがDelphi6+KOLで17KBになりました。
Delphi2+KOLでは10KBになりました。
Delphi4+KOL+System units replacementでは8KBになりました。
(大小アイコンとバージョン情報等のリソース込みのサイズです)
もっと早く使っておけば良かったよ。Delphiが旬のうちに。
0907デフォルトの名無しさん
NGNG0908デフォルトの名無しさん
NGNG今から説明するとスレッドが終わってしまうよ。
次スレかKOLスレを立てておくれや。
そんな事してたら質問が不要な位に分かるかも。
0909デフォルトの名無しさん
NGNG0910デフォルトの名無しさん
NGNG安定している物を作れば安定するし安定しない物を作れば安定しない。
しっかり作るかいいかげんに作るかは言語を問わず本人次第。
Windowsって安定してるの?って言われたら安定してないとしか答えられないが。
0911デフォルトの名無しさん
NGNG0912デフォルトの名無しさん
NGNG0913デフォルトの名無しさん
NGNGを作るのが趣旨だったような。この意味では、UPX は論外だろなー。KOL を使用する
ことが「道具を研ぐ」ことになるのかな?
0914デフォルトの名無しさん
NGNGSystem units replacementを使用しなければusesにSysUtilsとかを
追加する事は可能。まだ未開拓だからはっきりした事は何とも言えないよ。
面白いからとりあえず色々やってみれ。
0915デフォルトの名無しさん
NGNG最初から切れる道具は有効に活用した方が良いと思うな。
勿論さらに研ぐ事も大事だと思うがそんな時代じゃなくなってきたかも。
UPXは論外だけどDelphiとは相性が良いって聞いたことがあるが
何と相性が悪いんだろうか?マイナーな日本語開発環境とかかな?
0916デフォルトの名無しさん
NGNG0917デフォルトの名無しさん
NGNG最初の1枚目はオークションで1万円位で買いました。
2枚目は期間限定パッケージで3万円位で買ってユーザー登録をしました。
3枚目はDelphi8(Pro)をアップグレード価格(2万円)で買ったら付いてきました。
結局6万円位でDelphi7(Pro)を3枚とDelphi8(Pro)を1枚買ってしまいました。
オークションで売るのも面倒だしな・・・ってスレ違いだった。
0918デフォルトの名無しさん
NGNGメモリ食う量減るならKOL使ってみようと思うんだけど、そこんとこどうなの?
教えてエロイ人
0919デフォルトの名無しさん
NGNG828さんと同じ条件の実行ファイルをDelphi7とDelphi7+KOLで比較したら
メモリ使用量はDelphi7が4056KBでDelphi7+KOLが3008KBだった。
ちなみにDelphi7+KOL+System units replacementでは2996KBだった。
Pen4の3.06GHzとDDR333の1GBでWin2Kを使って測定した結果だから
環境によっては多少異なると思う。
最近はメモリ512MBが標準になってきてるからこれ位の差じゃ使う意味ないかな?
0920デフォルトの名無しさん
NGNG上のほうでイラネとかいってた奴絶対使うなよw
0921デフォルトの名無しさん
NGNG0922デフォルトの名無しさん
NGNG100個起動したら十分差が付くから意味あるよ
0923デフォルトの名無しさん
NGNG100個起動する必要があるアプリに意味が無いので意味が無い。
0924デフォルトの名無しさん
NGNGHDDの数百KBよりはメモリの1MBのほうが重要だと思うよ
0925デフォルトの名無しさん
NGNGたったの12KBじゃないかorz
0926デフォルトの名無しさん
NGNG勘違い野郎
>>924
恥の上塗り
0927デフォルトの名無しさん
NGNG0928デフォルトの名無しさん
NGNGVCLとKOLの差は12KBじゃなくて1048KBあるじゃん。
>>919をちゃんと見れよ。
0929デフォルトの名無しさん
NGNGメモリ使用量で10MBの差が出たよ。
もっと大きい実行ファイルで比較したらどうなるんだろう?
0930デフォルトの名無しさん
NGNGデータだけで十分
0931デフォルトの名無しさん
NGNG0932デフォルトの名無しさん
NGNG0933デフォルトの名無しさん
NGNG0934デフォルトの名無しさん
NGNGメモリマップされてんだから
0935デフォルトの名無しさん
NGNG0936デフォルトの名無しさん
NGNGdllとexeとファイルマッピングオブジェクトの関係を知らんのか?
exeは実行するたびにプロセスごとに独立したメモリにロードされるとでも?
0937デフォルトの名無しさん
NGNG0938デフォルトの名無しさん
NGNG0939デフォルトの名無しさん
NGNGexeのコード部はデフォルトで共有されるぞ
0940デフォルトの名無しさん
NGNG0941デフォルトの名無しさん
NGNG> Prime examples of shared memory are code pages and read-only data sections.
> Because these pages of memory don't change, the operating system can use the
> CPU hardware to map the physical pages of RAM into multiple ad-dress spaces.
0942デフォルトの名無しさん
NGNGメモリ書き換えが出来る事からも分かるように、
書き換え可能だよ。だからコピーされるんだよ。
0943デフォルトの名無しさん
NGNG0944デフォルトの名無しさん
NGNG0945デフォルトの名無しさん
NGNG0946デフォルトの名無しさん
NGNG0947デフォルトの名無しさん
NGNG0948デフォルトの名無しさん
NGNG知らないのはヤバいだろ
0949デフォルトの名無しさん
NGNGする必要がないだろ
0950デフォルトの名無しさん
NGNG0951デフォルトの名無しさん
NGNG0952デフォルトの名無しさん
NGNGお前が950取ったから次スレ立てろと
0953デフォルトの名無しさん
NGNG0954デフォルトの名無しさん
NGNGでもKOLスレとこのスレの次スレに分かれたらKOLスレのが人気が出そう。
っていうか両方ともスレが立たないに100万ペソ。
Delphiには未来が無いよな。でもDelphi9にちょっと期待している俺。
0955デフォルトの名無しさん
NGNGここはDelphi板じゃないんだ
0956デフォルトの名無しさん
NGNGDelphiスレが増えるのが嫌なら比較スレとか雑談スレのひとつぐらい減らしても…
…と思ったが被害担当艦が無くなると質問スレが荒らされるしなあ
0957デフォルトの名無しさん
NGNG0958デフォルトの名無しさん
NGNGまとめを頼む。
ネタ
フォームアプリだけで数100食うのを設定でなんとか減らしなさい。
0959デフォルトの名無しさん
NGNG0960デフォルトの名無しさん
NGNGそうだね。なんだか、今の道具を磨くのも虚しくなってきた。2年後は無意味になりそうで。
0962デフォルトの名無しさん
NGNGLonghorn は何年後に延期になったんだっけ
0963デフォルトの名無しさん
NGNGHalbow氏のGeneric01.dprを各バージョンのDelphiで比較して下さい。
ってもう居ないかな?
0964デフォルトの名無しさん
NGNG比較乙
0965デフォルトの名無しさん
NGNGDelphi5が17408バイトでDelphi6が9216バイトだった。
後は持ってないのと動かせる環境がないから俺には無理。
0966デフォルトの名無しさん
NGNGあそこには
> Delphi3.1 で 15.872キロバイト、Delphi2.0 では 10.240キロバイトであった。
って書いてあるから、あと4と7だけかな。
0967デフォルトの名無しさん
NGNG7は持ってるので試してもいいが、そのgeneric01.dprってどこにあるの?
0968デフォルトの名無しさん
NGNG0969デフォルトの名無しさん
NGNG0970デフォルトの名無しさん
NGNGDelphi7最新アップデート適用後は16384バイト。
D5とD6は>>965が最新アップデート適用後と一緒だった。
D3とD4は持ってねえ。
0971828
NGNG今さらですけどこんな感じでした。
全て最新アップデート適用済みのProfessional(Developer)版です。
Halbow氏のGeneric01.dprをDelphi2〜Delphi7でコンパイルした実行ファイル
[通常の方法でコンパイル]
Delphi2.exe : 8.50KB(8,704バイト)
Delphi3.exe : 15.5KB(15,872バイト)
Delphi4.exe : 16.0KB(16,384バイト)
Delphi5.exe : 17.0KB(17,408バイト)
Delphi6.exe : 9.00KB(9,216バイト)
Delphi7.exe : 16.0KB(16,384バイト)
[System units replacementを使用]
Delphi4.exe : 5.50KB(5,632バイト)
Delphi5.exe : 5.50KB(5,632バイト)
Delphi6.exe : 6.50KB(6,656バイト)
Delphi7.exe : 7.00KB(7,168バイト)
0972デフォルトの名無しさん
NGNGスレの最後に面白い物が見られて良かったよ。
0973デフォルトの名無しさん
NGNGDelphiのバージョンでファイルサイズが変わるのが納得いかないよ。
Delphi2〜7の全部が使用可能な環境を今からわざわざ用意するのも大変だし
1台のマシンに2種類以上のDelphiを入れると不具合が出そうだし
みんなどうやってるんだ?VPCとかVMwareとか使ってるのか?
0974デフォルトの名無しさん
NGNGD3.1とD4
D4とD5
D5とD6
D6とD7
という組み合わせで同居させたことがあるけど問題なかった。
同時にBCBも2種類入れてたりしたし。
0975デフォルトの名無しさん
NGNG一応install.txtにはBDEのバージョンに気をつけろみたいなことは書いてあった気がする
0976デフォルトの名無しさん
NGNG0977デフォルトの名無しさん
NGNGどうせ使うならFirebird embeddedの方がイイ
0978デフォルトの名無しさん
NGNG0979デフォルトの名無しさん
NGNG0980デフォルトの名無しさん
NGNGあまり役に立たなかったけど、なんか雰囲気がすきだったな
0981デフォルトの名無しさん
NGNGレス数が950を超えています。1000を超えると書き込みができなくなります。