[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 03/27 14:57 / Filesize : 277 KB / Number-of Response : 972
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:デフォルトの名無しさん mailto:sage [2009/12/01(火) 20:41:37 ]
Delphi(デルファイ)について、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を
勇気を持って書き込むスレッドです。
Delphi使いが優しくコメントを返しますが
お礼はDelphiの布教と初心者の救済をお願いします。

<前スレ>
くだすれDelphi(超初心者用)その50
pc12.2ch.net/test/read.cgi/tech/1246340765/

<過去スレ>
DelWiki避難所(Delphi 関連の過去スレッド)
delwiki.info/?%E3%83%AA%E3%83%B3%E3%82%AF%2F%E3%82%B3%E3%83%9F%E3%83%A5%E3%83%8B%E3%83%86%E3%82%A3%2FDelphi%20%E9%96%A2%E9%80%A3%E3%81%AE%E9%81%8E%E5%8E%BB%E3%82%B9%E3%83%AC%E3%83%83%E3%83%89

756 名前:747 mailto:sage [2010/06/09(水) 07:20:10 ]
DelphiスレなのにJavaやらCやらJavascriptもなんなので、
ideone.comのPascal(FPC:Free Pascal)でDelphiできるか?試してみました。
ideone.com/5Q6ky
結果:プログラム本体の書き換えは一切せずに動作しました。
追加したこと
 1. コンパイラモードをDelphi互換に指定 → {$MODE DELPHI}
 2. Uses節を追加、StrToIntのためにsysutilsを指定
 3. function MakeWordをWindows.pasからパクってきた

以上、初心者の研究コーナーでした
スレ汚しまくってスマソ

757 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 09:40:11 ]
>>756 君は毎回誤るんかい。
>>745
S0QSUB595BKSK4B0QRLEPJ43A7 誤り
S0QSUB595BKSK4BOQRLEPJ43A7 正しい
だね?

右から左への場合は入力を5の倍数ワード、出力を8の倍数にしなければならないが、
Base32HEX (WXYZを使わない) でエンコードする場合。

Base32を使って、左から右に5ビットで区切ってエンコード
1 c 6 8 e e 5 7 4 9 6 5 5 1 4 e c 9 c 2 7 a 5 7 9 7 2 7 1 9 e a 0 0 0 0 0 0 0 0
3 11 14 E 1C 15 1A 9 C 15 8 14 1D 12 E 2 F 9 B 19 E 9 18 19 1D 8 0 0 0 0 0 0
3HKESLQ9CL8KTIE2F9BPE9OPT8

Encode32を使って、左から右に5ビットで区切ってエンコード
1 c 6 8 e e 5 7 4 9 6 5 5 1 4 e c 9 c 2 7 a 5 7 9 7 2 7 1 9 e a 0 0 0 0 0 0 0 0
1C 0 1A 1C 1E B 5 9 5 B 14 1C 14 4 B 18 1A 1B 15 E 19 13 4 3 A 7 0 0 0 0 0 0
S0QSUB595BKSK4BOQRLEPJ43A7

Base32を使って、右から左に5ビットで区切ってエンコード
0 0 0 0 0 0 0 0 e a 1 9 2 7 9 7 5 7 7 a c 2 c 9 4 e 5 1 6 5 4 9 5 7 e e 6 8 1 c
0 0 0 0 0 0 7 A 3 4 13 19 E 15 1B 1A 18 B 4 14 1C 14 B 5 9 5 B 1E 1C 1A 0 1C
0000007A34JPELRQOB4KSKB595BUSQ0S

Encode32を使って、右から左に5ビットで区切ってエンコード
0 0 0 0 0 0 0 0 e a 1 9 2 7 9 7 5 7 7 a c 2 c 9 4 e 5 1 6 5 4 9 5 7 e e 6 8 1 c
0000008TPO9EPB9F2EITK8LC9QLSEKH3
0 0 0 0 0 0 8 1D 19 18 9 E 19 B 9 F 2 E 12 1D 14 8 15 C 9 1A 15 1C E 14 11 3

758 名前:こまった?? [2010/06/09(水) 11:40:16 ]
Delphi5 から Delphi2010 に一気に移行したものですが、
たとえば、 TMemo などの既存コンポーネントを継承して、
新しいコンポーネントを作成したとき、
TEST用プロジェクトで動作確認はできるのですが、
いざ、コンポーネントタブ(たとえばsample)に登録しようとしたとき
Delphi5にはあった「コンポーネント」=>「コンポーネントのインストール」
メニューがDelphi2010メニューにありません。
どうやってインストールするのでしょうか?
それとも、プロフェッショナル版ではできない?


759 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 13:55:35 ]
>>758
mrxray.on.coocan.jp/Delphi/CompoInstall/index.htm

760 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 22:19:20 ]
TOpenDialogとかにボタンを追加したいときはどうするべきなのでしょうか。

761 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 23:49:42 ]
TOpenPictureDialogのコードが参考になると思う。

762 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 12:59:36 ]
Synchronizeで実行するプロシージャーで引数が使いたい時って皆さんはどうしていますか?

763 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 15:02:32 ]
匿名メソッドでいいじゃん

764 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 16:35:12 ]
>>762
そのためにわざわざフィールド変数を用意して、それ経由してる。




765 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 17:16:57 ]
mixiにログインして情報をとってくるようなアプリケーションを作りたいと思っています。
そこで、TIdHTTPコンポーネントを使用してログイン部分をいま作成中なのですが、Cookieが無効
になっているため、ログインできませんと言われてしまいます。
(mixi.jp/check.pl?n=%2Fhome.plが返ってくる)

TIdHTTPコンポーネントのCookieManagerには該当のTIdCookieManagerを指定し、
AllowCookiesはtrueの状態にしています。

IdHTTP1.Postの第一引数は以下の通りです。
'mixi.jp/login.pl'

IdHTTP1.Postの第二引数にはstringlistで以下のようなデータを渡しています。
'next_url=/home.pl'
'email=メールアドレス'
'password=パスワード'

TIdHTTPコンポーネントを使用して、mixiへのログインに成功した方、どのようにされたかアドバ
イスいただけないですか?

766 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 21:38:02 ]
オミトロンとかLiveHTTPHeaderなんかで
ブラウザでログインしたときの状況を確認したほうが早いと思ふ

767 名前:デフォルトの名無しさん mailto:sage [2010/06/11(金) 11:13:50 ]
>>764
無名メソッドを使えば、わざわざフィールド変数を用意する必要はない。
edn.embarcadero.com/article/39701

procedure TNewThread.Execute;
var
i: Integer;
A,B: Integer;
begin
{ スレッドとして実行したいコードをここに記述してください }
for i := 0 to 99 do
begin
A := Random(10000);
B := Random(10000);
Synchronize(procedure
begin
Form1.Memo1.Lines.Add('NT : ' + FormatFloat('#,##0',A-B));
end);
end;
end;


768 名前:765 mailto:sage [2010/06/11(金) 11:26:33 ]
>>766
LiveHTTPHeaderで確認したところ、POSTする情報は765の3つでした。
試しにブラウザからcokieを一度削除し、最初のログインでどのようなものを渡しているか確認。
それと同じ内容をIdHTTP1.Request.CustomHeaders.Addで渡してみたのですが、やはり
ttp://mixi.jp/check.pl?n=home.plのアドレスが返ってきます・・・。

なんか根本的に設定を間違えているんでしょうか・・・。

769 名前:デフォルトの名無しさん mailto:sage [2010/06/11(金) 11:40:09 ]
ssl だったり?

770 名前:769 mailto:sage [2010/06/11(金) 11:43:19 ]
>>769
あんまり関係ないか。

771 名前:765 mailto:sage [2010/06/11(金) 12:00:48 ]
>>769
C#とかのサンプルみる限りはSSLじゃなくてもログインできるようなんですよね。
Indyの情報すくなすぐる・・・泣ける・・・。

772 名前:デフォルトの名無しさん mailto:sage [2010/06/11(金) 13:34:24 ]
Indyは自力でソース見て解決できないバカが使うものじゃないから、
おとなしくTWebBrowserを操作してログインしておけ

773 名前:デフォルトの名無しさん mailto:sage [2010/06/11(金) 13:35:31 ]
cookiemanagerにsessionはいってるのか?

774 名前:デフォルトの名無しさん mailto:sage [2010/06/11(金) 20:25:06 ]
IdHTTPのProxyにオミトロン通してブラウザと挙動を比較するとか。

mixi.jp/check.pl?n=home.plは普通にログインしてても通過するみたいだから
内容がどうかだね。



775 名前:デフォルトの名無しさん mailto:sage [2010/06/11(金) 20:45:00 ]
url := 'mixi.jp/login.pl';
contents := TStringList.Create;
contents.Text := 'next_url=%2Fhome.pl&email=hogehoge%40yahoo.co.jp&password=00000000&x=0&y=0';

res := IdHTTP1.Post(url, contents);

で実行したら
<html><head><meta http-equiv="refresh" content="0;url=/check.pl?n=%2Fhome.pl"></head></html>
が返ってきた。
たぶんこれが成功じゃないかな。
LiveHTTPHeadersからコピペしたからエンコード済みの文字列だったから
IdHTTPのHTTPOptionsのhoForceEncodeParamsはFalseにしたけど。

776 名前:デフォルトの名無しさん mailto:sage [2010/06/11(金) 20:45:59 ]
クッキーマネージャは何もいじってないよ

777 名前:デフォルトの名無しさん [2010/06/11(金) 20:46:20 ]
DSPack 2.3.3

destructor TFilterGraph.Destroy;
var
  i:integer;
begin
  SetActive(False);
  DeallocateHWnd(FHandle);
  if FFilters<>nil then//追加2010.06.11
    FFilters.Free;
  FGraphEvents.Free; //追加2010.06.11
  inherited Destroy;
end;
destructor TDSVideoWindowEx2.Destroy;
begin
  FFullScreenControl.Free;//追加2010.06.11
  if DesktopPlayback then
    NormalPlayback;

  if FDDXM <> nil then
    FDDXM.SetCallbackInterface(nil, 0);
  OverlayCallback := nil;
  FOverlayMixer := nil;
  FFilterGraph := nil;
  FVideoWindow := nil;
  FVideoRenderer := nil;
  FCaps.Free;
  FColorControl.Free;
  inherited Destroy;
end;



778 名前:デフォルトの名無しさん [2010/06/11(金) 20:52:58 ]
>>777  続き

procedure TDSVideoWindowEx2.ClearBack;//変更2010.06.11
var
  DC, MemDC: HDC;
  MemBitmap, OldBitmap: HBITMAP;
  BackBrush, OverlayBrush: HBrush;
begin
*
*
*

  finally
    SelectObject(MemDC, OldBitmap);
    DeleteDC(MemDC);
    DeleteObject(MemBitmap);
    DeleteObject(BackBrush);
    DeleteObject(OverlayBrush);
    ReleaseDC(Handle, DC);
  end;
  上記を下記の順番に変更
  finally
    DeleteObject(OverlayBrush);
    DeleteObject(BackBrush);
    ReleaseDC(Handle, DC);
    SelectObject(MemDC, OldBitmap);
    DeleteDC(MemDC);
    DeleteObject(MemBitmap);
  end;
end;


779 名前:デフォルトの名無しさん mailto:sage [2010/06/11(金) 23:24:48 ]
TStringListのSaveToFileって同時に同じ名前のファイルで行われると共有違反とか起きますか?

780 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 04:08:26 ]
起きる起きない以前にそんなクソコード書かないで下さい

781 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 08:04:10 ]
「同時に」の意味は?本当に同時にはできないから、先にSaveToFileしたほうは
成功して、後のほうは失敗するんだけどね。

782 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 09:56:46 ]
あとの方で上書きされると思ってたが違うのか?w

783 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 10:12:36 ]
>>777
2.3.4の間違いだよね?

784 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 12:58:15 ]
><html><head><meta http-equiv="refresh" content="0;url=/check.pl?n=%2Fhome.pl"></head></html>
>が返ってきた。
>たぶんこれが成功じゃないかな。

ミクシィに詳しくない俺でもこれは失敗だとわかる・・・
リファラが不足してるかもしれないよ サーバーがクライアントを蹴る理由は
UA、リファラ、IP、クッキーのいずれか



785 名前:781 mailto:sage [2010/06/12(土) 18:23:37 ]
>782
ああ、先のほうの保存が終了てから後の保存が行われるならその通りだね。
「同時に」って言葉に引っぱられすぎだ。

786 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 19:31:59 ]
>>784
失敗したときは違うHTMLがかえってくるよ。
check.plを経由してhome.plにいくみたい。

787 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 20:17:10 ]
ミクシィに詳しくない俺でもこれは失敗だとわかる・・・(キリッ



うわあ・・・これは恥ずかしい
こいつに足りないのはリファラじゃなくて頭だな

788 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 21:14:20 ]
>UA、リファラ、IP、クッキーのいずれか

他のヘッダで弾いてるところもいっぱいあるよ
成功したかどうかの確認は帰ってくるURLとかじゃなくてクッキー見たほうがいい

789 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 22:17:16 ]
オミトロンなりWireSharkなりを使って、ブラウザで認証OKだったときの挙動をキャプチャしてみると
何か見つかると思うよ。

790 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 00:18:37 ]
procedure TForm1.Button1Click(Sender: TObject);
begin
Timer1.Enabled := true;
Timer2.Enabled := true;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var
sl : TStringList;
begin
sl := TStringList.Create;
with sl do begin
clear;
add(TTimer(sender).Name);
savetofile(extractFilepath(Application.ExeName)+'test.txt');
free
end;
sl := nil;
TTimer(sender).Enabled := false;
end;

保存されたテキストの中身はTimer1だった

791 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 01:42:01 ]
さすがにTimer使っといて同時はねーだろ。別スレッドとか別プロセスじゃないと。
同一スレッド上ではシーケンシャルにしか処理は動かないんだから。

792 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 02:52:43 ]
>>790
ばかだねー(´・∀・`)

793 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 13:51:21 ]
いやそうじゃなくって・・・
>>791
だから中身はtimer2になるはずでしょ?
間違ってたらスマンが。

794 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 14:15:28 ]
>>793
Timer1のイベントが先に実行されるって決まってるんですか?



795 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 14:46:53 ]
無知なのは別にいいがそれをあたかも常識のように言うのはやめていただきたい

796 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 15:01:52 ]
Timer2のイベントが存在していないのに、Timer2になるって脳内お花畑か。
まあそれより、ず〜っと以前の問題なんだけどな。


797 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 16:17:28 ]
えっ?

798 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 20:29:08 ]
イベントはTimer1とTimer2で共有ってことだろ。
>>794
決まってないと思うが、どちらのタイマイベントが先に発生するにせよ、
そのイベントハンドラの実行は同時に実行される事はない。だから、
後の方で上書きされるだけ。
タイマー使ってもマルチスレッドにはならんよ。

799 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 20:35:01 ]

明らかな間違いだぜ
イベントが共通だったとしても
Timer2になることは無いのだよ。
ヒント:タイマーはひとつだけ!


800 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 21:28:47 ]
1個のformには1個のTimerしか使えない。理由はWindowsの仕様だから。
ハイ、次の質問。

801 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 21:56:43 ]
>>800
では次の質問。

procedure TForm1.Timer1Timer(Sender: TObject);
begin
Memo1.Lines.Add((Sender as TTimer).Name);
end;

Timer1とTimer2が交互に追加されて表示されるのですが、なぜですか?

802 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 21:59:00 ]
うそはよくない。TTimerは別々にウィンドウを保持してるので独立して動作する。
ただしメッセージループが動作していないといけないし、Windowsのタイマはもともと
指定時間を経過したことを示すフラグなのでそのあたりも注意が必要だが。

803 名前:デフォルトの名無しさん mailto:sage [2010/06/14(月) 00:34:30 ]
>>800
ばかだねー(´・∀・`)

804 名前:デフォルトの名無しさん mailto:sage [2010/06/14(月) 00:46:36 ]
>>790 ファイル保存するときに排他処理やってないとかいうオチ?



805 名前:デフォルトの名無しさん mailto:sage [2010/06/14(月) 01:23:22 ]
>>804
お前は何を言ってるんだ?

806 名前:756 mailto:sage [2010/06/14(月) 12:02:13 ]
みなさん、レスありがとうございます。
あれから色々やってみたのですが、相変わらず
<meta http-equiv="refresh" content="0;url=/check.pl?n=%2Fhome.pl">
が返ってきます。

今はLive HTTP headersを火狐に入れて、正常にログインできたときの情報を確認しています
が、オミトロンを使用し、ブラウザとIdHTTP両方で確認してみます。

Indy使ったことがないので、勉強がてらやってみたのですが、俺にはてごわすぎる・・・。

807 名前:デフォルトの名無しさん mailto:sage [2010/06/14(月) 14:21:55 ]
それが正しいんじゃないの? ほんとにブラウザの動きを確認してる?

808 名前:デフォルトの名無しさん mailto:sage [2010/06/14(月) 20:59:05 ]
>>806
ブラウザの動き的にはそれであってるんじゃないの?
次にそのHTMLから/check.pl?n=%2Fhome.plにアクセスして
その次にhome.plに行けば成功じゃない?

809 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 04:36:11 ]
>>806
(´・∀・`)

810 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 08:49:21 ]
>765
漏れはこれで成功してる

MixiURL = 'mixi.jp/';
MixiLoginURL = MixiURL+'login.pl';





IdHTTP1.CookieManager.CookieCollection.Clear;

{ ==> Login }
PostData.Add('next_url=/home.pl');
PostData.Add('email='+email);
PostData.Add('password='+passwd);
PostData.Add('x=0');
PostData.Add('y=0');

IdHTTP1.Post(MixiLoginURL,PostData,Req);

そうすると
IdHTTP1.CookieManager.CookieCollection

SESSIONとSTAMPがセットされる。
あとは普通に他のページを取得できる

811 名前:765 mailto:sage [2010/06/15(火) 11:30:14 ]
>>810
コードの具体例ありがとうございます!

x=0とy=0を765のコードに加えpostしたところ、
IdHTTP1.CookieManager.CookieCollection.Cookie['BF_SESSION','mixi.jp'].Value

IdHTTP1.CookieManager.CookieCollection.Cookie['BF_STAMP','mixi.jp'].Value
に値が入っている事が確認できました。

が、この状態でIdHTTP1.Get('mixi.jp/home.pl')を行ったのですが、ログイ
ン前の画面しか取得する事ができませんでした・・。
(ログインされていない状態)

もしよければ、最初のpost以降どのようなロジックでログイン後の画面を取得され
ているかアドバイスいただけないでしょうか?

812 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 12:18:50 ]
>>811
もう数年前のコードで、内容をすっかり忘れてるし、今のmixiにログインできるかどうかすら解らないです

暇になったらDebugしながらどうなっているか確認してみます

が、期待しないでね

813 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 12:38:29 ]
>>812
OSをWindows7にした時にDelphiをインストールし直したらコンポーネント不足でもうコンパイルすら出来なくなってたorz

なので自力で頑張ってくれ

確認だけどPostしてCookieもらってGetする前に
IdHTTP1.Request.ContentType:='';
ってやってる?

それくらいかな?
ほんとにCookieもらったあとは読みたいページを直で読みに行ってるだけだから

814 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 13:10:14 ]
>>813

即興で作ってみた。
これでMemo1にはhome.plの内容が出ました。

procedure TForm1.Button1Click(Sender: TObject);
var
email:String;
passwd:String;
Buf:String;
PostData:TStringList;
Req:TStringStream;
begin
PostData:=TStringList.Create;
Req:=TStringStream.Create('');

IdHTTP1.CookieManager.CookieCollection.Clear;

email:='メールアドレス';
passwd:='パスワード';





815 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 13:13:10 ]
>>814
続き

{ ==> Login }
PostData.Add('next_url=/home.pl');
PostData.Add('email='+email);
PostData.Add('password='+passwd);
PostData.Add('x=0');
PostData.Add('y=0');

IdHTTP1.Post('mixi.jp/login.pl?from=login1',PostData,Req);

IdHTTP1.Request.ContentType:='';

Buf:=IdHTTP1.Get('mixi.jp/home.pl');

Memo1.Text:=Buf;

PostData.Free;
Req.Free;

end;

816 名前:765 mailto:sage [2010/06/15(火) 13:54:33 ]
>>814
コードありがとうございます。

が、なぜか同じコードを実行してみても、自分の環境ではログインされていない状態になるよう
です(ユーザー名とパスワード入力画面が表示される)。
TIdHTTP1でcookieを扱うために特にしなければいけない事はTCookieManagerの登録以外に
何かありますでしょうか?

うーん、まだPOSTしきれていない情報があるのか・・・?

817 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 14:24:07 ]
>>816
一度新規にProjectを作ってやってみたらどうですかね?

と言うのは、IdHTTP等のプロパティの値が違うと取得できないケースがあります

ちなみに私のコードはDelphi起動、Project作成後に何も考えずにコンポーネントをペタペタやっただけです。
ちなみにDelphi2007です。

818 名前:765 mailto:sage [2010/06/15(火) 18:06:06 ]
>>817
新規で作ってみましたが、やはりログイン前のmixi.jp/home.plの画面が表示されますね・・。
(パスワードとIDの入力画面)
postでIDとパスワードを送っているにもかかわらず、ログインできていないという事か・・?

ちなみにIndyはD2009/2010版の最新のものを入れています。

819 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 18:54:38 ]
del2006だけど成功したよ。>>814-815

820 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 19:55:13 ]
>>818
Delphi2010はStringのエンコードがややこしいので普段使ってないのですが、Delphi2010でやってみたけど出来ました。

何が違うんでしょうね

821 名前:デフォルトの名無しさん mailto:sage [2010/06/16(水) 02:19:57 ]
頭・・・ですかね

822 名前:デフォルトの名無しさん mailto:sage [2010/06/16(水) 08:33:05 ]
>>821
お前の?

823 名前:デフォルトの名無しさん mailto:sage [2010/06/16(水) 13:30:08 ]
>>822の。

824 名前:デフォルトの名無しさん mailto:sage [2010/06/16(水) 14:09:14 ]
他のアプリのウィンド内の文字列を取得するアプリを作っているのですが、
文字列を取得する時に、そのウィンドがアクティブになっていれば正常に取得できるのですが、
非アクティプの時に取得しようとすると ?Main と言う文字列が返ってきます。
目的のウィンド内の別のところの文字列は非アクティブでも取得できます。

どういう情報を書けばいいかよく分からないので、分かりにくい質問とは思いますがよろしくお願いします。











825 名前:デフォルトの名無しさん mailto:sage [2010/06/16(水) 17:50:46 ]
なんてソフトの
どんなところを
どうやって取得しているのか?

826 名前:デフォルトの名無しさん [2010/06/16(水) 23:01:31 ]
VCLベースアプリの可能性が高い感じ。
メインフォームの他に隠しウィンドウ持ってるから。

827 名前:765 mailto:sage [2010/06/17(木) 10:24:12 ]
>>819、820
ひとつ確認させてください。
同じhome.plでもログイン前とログイン後の両方があります。
みなさんはログイン後のhome.plが表示されましたか?

828 名前:765 mailto:sage [2010/06/17(木) 10:28:55 ]
ちなみにログイン前のhome.plだった場合、getで取得された情報の中に、「いますぐ利用す
る(無料)」や「すでに登録済みの方は、こちらからログインしてください」などの文字列が
入っています。 ログインされていない状態のhome.plですね。

俺がやると、なぜかこっちになるんだよね・・・。

829 名前:デフォルトの名無しさん mailto:sage [2010/06/17(木) 10:58:30 ]
いい加減、httpでアクセスして自分の送ってるパケットぐらい調べろ
httpsonlyだったり正常ならレスポンス時のカスタムヘッダを列挙しろ
それも駄目ならリクエスト時のカスタムヘッダに直接クッキー押し込め
それでも駄目ならアカウントが死んでる

クッキーコレクションだったか?あれはヘッダからクッキーを抜いて保持しとくだけの物なんだよ
使えなかったら直接ヘッダにぶち込め

つかな、もうこれdelphiスレで何度も何度もいってるんだよ
デバッグが出来ないならネットワークのプログラミングはやるな
つかRFC読んで仕組みを勉強しろ!

830 名前:デフォルトの名無しさん mailto:sage [2010/06/17(木) 11:17:53 ]

スレタイさえ読めないおバカさんですか?
このスレのタイトルは、
くだすれDelphi(超初心者用)その51
>Delphi(デルファイ)について、他のスレッドでは書き込めない超低レベル、
>もしくは質問者自身何が何だか分からない質問を
>勇気を持って書き込むスレッドです。
>Delphi使いが優しくコメントを返しますが
>お礼はDelphiの布教と初心者の救済をお願いします。


831 名前:デフォルトの名無しさん mailto:sage [2010/06/17(木) 11:26:27 ]
>>829
不快にさせて、申し訳ございません。

いままでの思考錯誤をまとめると。
httpでアクセスした際のパケッットはLive HTTP Headersで取得し、POSTしているデータは
next_url/email/password/x/yであると確認済みです。

受け取るcookieはBF_SESSION/BF_STAMPで、CookieManagerに入ってきている事も確認
しました(cookieの値は同じものであると確認)。

IdHTTP1.Request.CustomHeaders.Add('Cookie:BF_SESSION=' + BF_SESSIONの内容);
IdHTTP1.Request.CustomHeaders.Add('Cookie:BF_STAMP=' + BF_STAMP);
で、Cookieをヘッダーに送ったりもしていますが、やはり同じ結果(ログオンされていない状態に
なる)になるのです・・・。

ログインからの流れとしては
ttp://www.atmarkit.co.jp/fdotnet/dotnettips/326cookie/cookie.html
を参考にしています。 受け取ったcookieを持ってれば認証が必要なページにアクセス可能になる
ようですので、当方のCookieManagerの使い方がおかしいのか?と悩んでいるところです。
(他の方は成功しているようですので)

832 名前:デフォルトの名無しさん mailto:sage [2010/06/17(木) 17:39:38 ]
プロジェクト一式上げろよ

833 名前:デフォルトの名無しさん [2010/06/18(金) 10:56:15 ]
エクセルのファイルそのものを削除するにはどうすればいいのか誰か教えてくれないか
DeleteFile('C:\ファイル名'); でやるとTXTファイルなら削除できるのにエクセルだとなぜか削除されないんだ・・・

834 名前:デフォルトの名無しさん [2010/06/18(金) 11:17:22 ]
追記

別の名前で保存はできるが、名前を変更して保存(リネーム)もできない




835 名前:デフォルトの名無しさん mailto:delphipatch@gmail.com  sage [2010/06/18(金) 12:14:20 ]
D3のQuickReportのパッチのd3qrupd.lzhをお持ちの方居りましたらメールで送っていただけませんか?
サポート終了と言うことで本家から落とせなくて困っています。


836 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 12:22:27 ]
>>832
うpローダー探してのちほどうpしてみます。
今日午後〜火曜まで出張のため、来週半ばぐらいになるかもしれません。

837 名前:833 mailto:sage [2010/06/18(金) 15:14:23 ]
すみません。自己解決しました。お騒がせしました。

838 名前:デフォルトの名無しさん [2010/06/21(月) 17:47:50 ]
bitmapのことで質問させてください。
canvas.draw(intX, intY, 別のビットマップ)
で画像コピーができることはわかったのですが、
これって受け手側の座標しか指定できないんですか。

100X100の大きさの受け手に対して、送り手の101, 201, 200, 300から
100X100だけ持ってくるにはどうしたらいいんでしょう。

839 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 18:31:51 ]
ヘルプでTCanvasについて調べなさい

840 名前:デフォルトの名無しさん [2010/06/21(月) 19:09:39 ]
ありがとうございます。
メソッドにCopyRectってのがあったので、もしかしてこれかなと
思ってやってみたら、以下あっさりできました。
送り手.Canvas.CopyRect(Rect(0, 0, 100, 100), 受け手.Canvas, Rect(30, 30, 130, 130));

841 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 01:33:11 ]
>>840
できたならいいけど受け手と送り手勘違いしてない?
あとDrawでもマイナス指定すればできるけど

842 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 22:06:48 ]
ゲーム作っている人教えて。スーパーマリオなどのゲームって
スクロールしたとき、マリオをも背景も再描写させてるの?

843 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 22:22:30 ]
そもそも昔のゲーム機はPCとは異なる概念で描画してるから
PCでは参考にならないと思うぜ

画面全体がタイル上に分割されていて、
どこにどのタイルを貼るかを指定する感じで描画する
背景は全体的にスクロールできて、
キャラは背景とは別に置けたんじゃなかったかな(所謂スプライト)
GBAの知識だからFCやSFCくらい古くなるとどうなってんのか知らないが

最近のゲーム機なら毎回レンダリングしてるんじゃないの
カメラが固定ならさぼってるかもしんないけど

844 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 09:37:41 ]
最近、Delphi7のデータベースを使ったプログラムを作った時の
配布方法について教えて下さい。

データベースを使ったプログラム自体初めてなので、これから
本とか買って調べるのですが、データベースアプリってデータベースも含めて
Zipとかで配布できますか?
インストーラーとかよく分からないので、解凍して終わりな感じにしたいです。





845 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 09:40:18 ]
>>844
そんな知識レベルで配布とかすんな。

846 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 09:51:04 ]
Delphi は複数の DB 接続技術を利用できますから、あなたのアプリがどれを使うかによって
話は変わってしまいます。

まず、データベースアプリを作りましょう。
配布の話はそれからで十分だと思います。


847 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 10:22:34 ]
>>845
答えてくれてありがとうなんだけど、ケチ付ける前に日本語読めるか?
これから調べて作るんだよ。
すっこんどけ。ヽ(`Д´)ノプンプン

>>846
了解しました。


848 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 10:38:27 ]
あと、せめてどのデータベースにつなげたいのかくらいは書いてね。
そういうのもまだ決まっていないならどうしようも無いけど



849 名前:844 mailto:sage [2010/06/23(水) 11:27:58 ]
>>848
> あと、せめてどのデータベースにつなげたいのかくらいは書いてね。
> そういうのもまだ決まっていないならどうしようも無いけど

なにぶん、初めてでどのデータベースに繋げようかとか決まってないです。
一応、「Delphi DB&Webプログラミング」って本が手に入りそうなので、
それで調べようかなと思っています。

逆に、簡単に配布出来るものってあるんでしょうか?


850 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 11:54:09 ]
デルファイでマリオ作ろうとしてるやつっておめでたいな・・・

851 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 12:07:02 ]
>>849
何を構築しようとしてるのか知らないけど、多分、君にDBは必要無いと思うよ。

852 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 13:09:16 ]
7をWindows7で使ってます。

TRicheditの背景色についてですが、
いったん表示されてから、Windowsのテーマ変更で背景色が変わった場合
TRicheditは背景色がclWindowに追随してくれません。(ほかにTTrackbarも)
テーマ変更時のイベントを捕捉できればいいのですが、eventにはそれらしき
ものが見当たりません。
ためしにonChangeイベントで
reRichedit.color := clWindow;
とやってみましたが、テーマ変更後の色に変わりませんでした。
いったんコンポごと消して再生成するしかないのでしょうか?


853 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 15:14:26 ]
まぁ、確かに要らないかも何ですが・・・
あるデータを溜め込んで、andやorで抽出する必要があるんで
何かのデータベースを使った方が楽かと。
データリスト自前で作っても良いんですけどね。

854 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 15:18:23 ]
・自分でフィルタリングするの面倒だからDB使う。
・インストール面倒だからzipでファイルだけ配布。
・調べるの面倒だから2chで丸投げ。



855 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 15:38:43 ]
854 どれも立派な理由だと思います。

856 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 15:41:06 ]
いやいや別に丸投げって、そんんぁ。
インストーラーみたいなのをやらないといけないかどうかだけだよ知りたいのは。
データベースによるわ、ヴォケ!ってなら ヾ(゚∀゚)ノ ハイ で終わり






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<277KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef