くだすれDelphi(超初心者用)その17
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
NGNGもしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
Delphi使いが優しくコメントを返しますが、
お礼はDelphiの布教と初心者の救済をお願いします。
<前スレ>
くだすれDelphi(超初心者用)その16
http://pc5.2ch.net/test/read.cgi/tech/1089779142/
<その他>
ボーランド
http://www.borland.co.jp/
DelWiki
http://onigiri.s3.xrea.com:8080/delphi/
0002デフォルトの名無しさん
NGNG16 http://pc5.2ch.net/test/read.cgi/tech/1089779142/
15 http://pc5.2ch.net/test/read.cgi/tech/1087823906/
14 http://pc5.2ch.net/test/read.cgi/tech/1085239007/
13 http://pc5.2ch.net/test/read.cgi/tech/1081003641/
12 http://pc5.2ch.net/test/read.cgi/tech/1076610073/
11 http://pc2.2ch.net/test/read.cgi/tech/1074523803/
10 http://pc2.2ch.net/test/read.cgi/tech/1074523803/
09 http://pc2.2ch.net/test/read.cgi/tech/1071294733/
08 http://pc2.2ch.net/tech/kako/1068/10682/1068201045.html
07 http://pc2.2ch.net/tech/kako/1065/10651/1065195699.html
06 http://pc2.2ch.net/tech/kako/1063/10632/1063202727.html
05 http://pc2.2ch.net/tech/kako/1061/10610/1061090908.html
04 http://pc2.2ch.net/tech/kako/1058/10588/1058834815.html
03 http://pc2.2ch.net/tech/kako/1055/10559/1055986736.html
02 http://pc2.2ch.net/tech/kako/1053/10537/1053757982.html
01 http://pc2.2ch.net/tech/kako/1051/10518/1051882835.html
0003デフォルトの名無しさん
NGNG>>>987
>何という関数でしょうか?
>いまいちWindowsAPIというのが分かりません。。
>Delphi システムコールでググってるんですが。。
>
>992 :デフォルトの名無しさん :04/08/05 10:55
>だから、システムコールです。
>Cでいうsystem()みたいなのを
システムコールとは、言語の標準ライブラリではなくて、OSの機能を直接呼ぶわけです。
例えば、Windowsにはsystem()はありませんが、UNIXにはsystem()があります。
Windowsの場合はWindows APIのことになります。
0004デフォルトの名無しさん
NGNGはい。
それで、WindowsAPIの中のどの関数を使えばいいのでしょうか。
WindowsAPI コールとかで必死に調べてるんですが・・・
0005デフォルトの名無しさん
NGNGつまり、UNIXのsystem()と同じ機能、プログラムの起動を行いたいわけね?
なら、ShellExecute or CreateProcess or ...
Delphi標準関数でもあったと思うが。
0006デフォルトの名無しさん
NGNGプログラムの起動ならそれで分かるのですが。
perl example.pl
taskkill /F /IM example.pl
というようなことをやりたいので、その関数では出来ないと思うんです
0007デフォルトの名無しさん
NGNGCreateProcess
0008デフォルトの名無しさん
NGNGフルパスでしかできないじゃないか、と思ったんですが
第二引数のほうに書けばうまくいきました。
どうもありがとうございました。
0009デフォルトの名無しさん
NGNG単にTReplaceFlagの有無でしょうか?
0010デフォルトの名無しさん
NGNG0011デフォルトの名無しさん
NGNGyahooで「ファイル 関連づけ delphi」で検索して
上から二つめのリンクのところでどお?
0012デフォルトの名無しさん
NGNGレジストリいじるんですね、OKでつ。
専用APIがあるのかと思ってました。
0014デフォルトの名無しさん
NGNGそして公開しる(・∀・)
0015デフォルトの名無しさん
NGNG名前が違いますxp
0016デフォルトの名無しさん
NGNGDOSに表示される
「コマンドまたはファイル名がちがいます」
などの結果を表すメッセージを
EditやMemoコンポーネントに出力することはできるのでしょうか?
0017デフォルトの名無しさん
NGNGバッチのリダイレクト処理でメッセージをファイルにして保存して、
それをDelで読み出すとか。
リダイレクトの内容をバッチの変数に入れて、終了後に
呼び出し元(Del製アプリ)に実行結果として渡すことって
できるんだろうか?
0018デフォルトの名無しさん
NGNGテンポラリファイルにリダイレクトしてコマンド終了後に読み出し。
探せばコンポーネントもあるけどな。
0019デフォルトの名無しさん
NGNGD5proでOracle7.3に接続するソフトを作れますか?
tcpを使ってdatabaseにアクセスしようと思っているのですが、databasenameに
\\198.1.1.1\
などと設定してもディレクトリエラーになります。
やり方を教えていただけないでしょうか?
参考になるサイトを教えていただくだけでも結構です。
delphi acidというサイトを見つけたのですが、database関連はいくつかあったのですが
tcpがらみが無かったもので。fdelphiにも無いでした。
変な質問でしたらごめんなさい。脳内補完してください。
0020デフォルトの名無しさん
NGNGOTN
http://otn.oracle.co.jp/
0021デフォルトの名無しさん
NGNG接続してあげればいいんでないの?
0022デフォルトの名無しさん
NGNG0023デフォルトの名無しさん
NGNGhttp://hp.vector.co.jp/authors/VA026252/tips/delphi_anonymous_pipe.html
ここが参考になると思う。
002419
NGNGこのサイトは知りませんでした。色々と見てみます。ありがとうございます。
>>21
すみませんが、できたらどのコンポを使ってIP指定でODBCに登録して接続するかを
教えていただけないでしょうか?
>>22
実はもっと古いのもありまつ。。。
そっちは諦めてまつ。。。
0025デフォルトの名無しさん
NGNGOracleの事が全く分かって無い気が・・・
とりあえず
http://www.dotfoward.jp/DB/Oracle/OracleIndex.html#Connection
0026デフォルトの名無しさん
NGNGオラクルが動いてるサーバにODBCで接続。
DelphiからODBCはDelのデータベース→エクスプローラから
接続すればいいんでないの?
0027デフォルトの名無しさん
NGNG0028デフォルトの名無しさん
NGNG0029デフォルトの名無しさん
NGNG聞いた者です。
どなたかご存知ないでしょうか。
0030デフォルトの名無しさん
NGNG0031デフォルトの名無しさん
NGNG0032デフォルトの名無しさん
NGNGエラーメッセージを右クリックして、
メッセージの保存
Delphi7 Professionalはこれで上手く行くけど・・・
0033デフォルトの名無しさん
NGNG処理を2秒間止める(待つ)にはどうすれば良いでしょうか?
0034デフォルトの名無しさん
NGNG0035デフォルトの名無しさん
NGNGsleepすると、他の処理まで止まってしまうんですけど・・・
という質問をエスパーが感知してTThreadを使えとおっしゃっています。
0036デフォルトの名無しさん
NGNGBrush.Style := bsDiagCross で目の大きさを変えたり出来ればと思ったけどだめでした。
0037デフォルトの名無しさん
NGNG0039デフォルトの名無しさん
NGNGWhile timeGetTime-t > 2000 do
begin
end;
・・あほだな俺
0040デフォルトの名無しさん
NGNGは
>>35
へね。
検索すればサンプルあるから。
004136
NGNG>scanlineでポチポチ打ってけば?
TPaintBoxには無いようなのでTbitmapを作ってコピーするってことでしょうか
scanline Help見てもいまいちわかりませんでした。
座標がかえってくるらしいのでその座標にたいして色を塗るってことなのかな
ちょっと調べてみます。
ありがとうございました。
0042デフォルトの名無しさん
NGNGループしてるわけじゃなくてsleepしてるのに、
どこでメッセージポンプを起動すればいいので?
0043デフォルトの名無しさん
NGNGWhile timeGetTime-t > 2000 do
begin
Application.ProcessMessages;
Sleep(1);
end;
なんてのが現実的な使い方なんじゃないの。
考え無しにやるとバグるけど。
0044デフォルトの名無しさん
NGNGProccessMessagesとTThreadのどっちがいいか
わからんね。
0045デフォルトの名無しさん
NGNGWhile timeGetTime-t > 2000 do
begin
Application.ProcessMessages;
Sleep(1);
end;
何やってんの、コイツ
0046デフォルトの名無しさん
NGNGアホには分からないらしいので一応解説。
2秒間スリープし続け、なおかつメッセージループを処理し続ける(画面が固まらない)。
ループ中でSleepはなくても動作は同じだけど、OSの負荷を低減するためのもの。
Timerとの違いは同一イベントハンドラ内に処理を記述できること。
0047デフォルトの名無しさん
NGNGSleep(1); する意味は?
004847
NGNG横やりごめん。
0049デフォルトの名無しさん
NGNG処理待ちが必要で、その間にユーザにクリックとかさせたくない
場合は(砂時計とかだして)そのまま待たせる。
ユーザがいじってもよい場合は、メインスレッドとは別のスレッドや
タイマーで処理するのが普通でしょ。
processmessagesは、単純にループ中でのフリーズ状態を解決
するだけの短絡的な解決法だし、それだとループ中にフォームの
ボタン等を押してもいいのか、それとも押しちゃいけないのかわかり
にくい。
0050デフォルトの名無しさん
NGNGCanvas.Brush.Bitmap にビットマップを割り当てて FillRect すればいい。
ただし Windows 95 の場合、8×8 以内でないといけない。
0051デフォルトの名無しさん
NGNG>普通でしょ。
質問者が具体的に聞いて無いのに「普通」もなにも無いだろ。
質問に対する俺の応えは>>34で終わってるよ。
最適解がスレッドって事はまず無いと予想してるけどね。
>43は>42へのレスだよ。
0052デフォルトの名無しさん
NGNG普通にsleep(2000)でいいような気がするが
0053デフォルトの名無しさん
NGNG試してみろ数秒で確認できるだろうから
0054デフォルトの名無しさん
NGNG0055デフォルトの名無しさん
NGNGなんでループのなかでsleepやってんの?
基地外だろ
0056デフォルトの名無しさん
NGNG0057デフォルトの名無しさん
NGNGネタならメル欄にそう書いてくれよ。
0058デフォルトの名無しさん
NGNGユーザーがなにも選択していないときはなにもしないと言う動作をしたいのですが
TListView->Selected->Indexを呼び出して、インデックス番号を取得しようとしたら
ユーザーが選択しているときは問題ないのですが、ユーザーが何も選択していないときは
ここで例外が発生します。
なんとかしてユーザーが行を選択している、いないを見分ける方法はないでしょうか?
0059デフォルトの名無しさん
NGNGselectedがnilじゃなかったらIndexを取得。
nilだったら-1を返すとかすれば?
0060デフォルトの名無しさん
NGNG条件判断の回数を減らすことができるし
CPUを一瞬だけ休ませることができる
一瞬休むかどうかでCPU使用率は大きく変わる
ループに速度は要求されてないから問題ない
そして固まらない
0061デフォルトの名無しさん
NGNGCardinalやDWORD,LongWord,UINTの違いって何ですか?
ヘルプにはInteger,Cardinalが効率的だ、みたいな感じで書いてますが
それなら他のやつは何のためにあるのですか?上位互換?
使い分けが必要なものなんでしょうか?
もし必要なら、どのように使い分ければいいのかも教えてください。
0062デフォルトの名無しさん
NGNGIntegerとCardinalはビット数がOSに依存する。
8ビット:ShortInt,Byte
16ビット:SmallInt,Word
32ビット:LongInt,LongWord
64ビット:Int64
UINTやDWORDは上記に含まれる。
0063デフォルトの名無しさん
NGNGdelのsleepはミリか。それなら納得
0064デフォルトの名無しさん
NGNG0065デフォルトの名無しさん
NGNGあたらしい技だな
0066デフォルトの名無しさん
NGNGuses MMSystem;
var
t: DWORD;
t := timeGetTime;
While timeGetTime-t > 2000 do
begin
Application.ProcessMessages;
Sleep(1);
end;
て書いてみたんですが
ウエイト処理になりません・゚・(つД`)・゚・
どこか間違ってるでしょうか
0067デフォルトの名無しさん
NGNG0068デフォルトの名無しさん
NGNG0069デフォルトの名無しさん
NGNG0070デフォルトの名無しさん
NGNG0071デフォルトの名無しさん
NGNGsleep(0) とやるもんだと思ってた。
0072デフォルトの名無しさん
NGNG他のプログラムに埋め込みたいのですが・・・
0073デフォルトの名無しさん
NGNGdcuファイル
0074デフォルトの名無しさん
NGNGパフォーマンスモニタ見ながらで0と1の挙動を比較してみろ
0075デフォルトの名無しさん
NGNGACol, ARow を知る方法はありますか?
0076デフォルトの名無しさん
NGNGOnColumnMoved
のToIndexを変数に代入しておく
0077デフォルトの名無しさん
NGNG0078デフォルトの名無しさん
NGNGプロジェクト(P)の
オプション(O)...で開く設定ダイアログの
「リンカ」タブの「リンク結果」で
出力設定ができると思います。
0079デフォルトの名無しさん
NGNGCol
Row
0080デフォルトの名無しさん
NGNG詳細きぼん
0081デフォルトの名無しさん
NGNG.objが吐けても役に立たない気がする…
0082デフォルトの名無しさん
NGNG0083デフォルトの名無しさん
NGNG確かに・・・たぶん下位互換性の為に用意されてる仕組みなのね
0084デフォルトの名無しさん
NGNG恐ろしい世の中になったな
0085デフォルトの名無しさん
NGNGその時ドロップダウンした項目の上にマウスカーソルが重なってると
ComboBoxをFrameに乗せてる時とそうでないときでは挙動が違います。
Frameの時は何故かマウスカーソルに重なっている項目がComboBoxテキスト欄に
表示されてしまいます(ここではまだ選択された事にはなっていない)。
そうなるとEnterキーで移動させてるので変更に気づかずに決定してしまいます。
Frameは辞めれないのですが、何か良い回避方法は無いでしょうか?
008685
NGNG項目の上に重なっていてもテキスト欄が変更されないようにして欲しいって事です。
0087デフォルトの名無しさん
NGNGいっている意味がわからんので、同じことやったかどうかわからんけど、
Frame上でもForm上と同じ動作ですた。Del7pro
0088デフォルトの名無しさん
NGNGD5なんですが。
0089デフォルトの名無しさん
NGNG0090デフォルトの名無しさん
NGNGええっ・・・何か人によって違いますね
0091デフォルトの名無しさん
NGNGcsDropDownListでもならんねぇ。
Tabキーで移動させてFocasあててるけど、質問者はもうちょっと
詳しく説明汁
0092デフォルトの名無しさん
NGNGComboBoxにフォーカスが当たると自動でドロップダウン。
「↑」がマウスカーソルとすると
______ ______
| |▼| ピロッ |b |▼|
 ̄ ̄ ̄ ̄ ̄ ̄ | ̄ ̄ ̄ ̄ ̄ ̄|
.|a |
↑ .|b■■↑■■. | ←選択状態
.|c |
.|d |
 ̄ ̄ ̄ ̄ ̄ ̄
こんな感じです。stayleはcsDropDownListです。
0093デフォルトの名無しさん
NGNG0094デフォルトの名無しさん
NGNG0095デフォルトの名無しさん
NGNGカーソルのx座標がComboBoxの両端の範囲ないだったら
Left - 1にカーソルを移動させるコードをドロップダウンイベントに書きました。
なんかダサいですが取りあえずこれで誤操作は防げそうです。
テストしてくださった方どうもです。
0096デフォルトの名無しさん
NGNG例えば2つのEXEファイルがあるとして、ある程度詳しい人が解析したら
作成者が同じかどうか分かったりしてしまうとかそういうことはないのでしょうか。
0097デフォルトの名無しさん
NGNGとりあえずクラス名はそのまま入ってるそうだから
ユニークな名前をつけてたりするとわかるかもしれないね。
作成者○○なんてのは自分で入れない限り勝手に入ったりすることはないと思う
0098A
NGNGドック中のオブジェクトが、ドラッグで外部に出された場合、OnUnDockで感知できますが、
ドック中のオブジェクトを、グラバのところにある、[X]ボタンで閉じる(隠す)と、
オブジェクトは消えるのですが、Panel側では、これを感知する方法はあるのでしょうか?
具体的には、Panelの上に、見えるオブジェクトが何もなければ、Panelを隠す(幅を0にする)
という処理を行いたいのです。
0099デフォルトの名無しさん
NGNGそうなんですか、ありがとうございます。
とりあえずあまり変わった名前は付けないほうが良さそうですね。
0100デフォルトの名無しさん
NGNG違法ソフトでもつくるのか?w
よほど有名にならないかぎりそんなもん調べるアフォはいないと思うがな…
0101デフォルトの名無しさん
NGNG心配性なので。
0102デフォルトの名無しさん
NGNG0103デフォルトの名無しさん
NGNGいや〜便利便利
0104デフォルトの名無しさん
NGNGまたもやDelphiの勝利だ。
0105デフォルトの名無しさん
NGNGで?
>>104
いやあれは勝利とかではなく
ただ単に「流石だなビル」ってだけだろう(;´Д`)
色んな意味でありえないよあれは…
0106デフォルトの名無しさん
NGNGということをしているのですが、カラムの幅を更新しても棒グラフが長さを変えてくれません
(デフォルトの幅を短くすると、ぬったグラフが消えてしまう。幅を長くすると塗った棒グラフの長さはそのまま)
ListView_GetSubItemRectはカラムの幅変更は探知してくれないんですか?
だとすればどうすればカラムの幅に応じて塗る幅を算出できるでしょうか?
どなたか教えてください
0107デフォルトの名無しさん
NGNGぶっちゃけると、地味にフリーソフト公開してる裏で
激しくオタ臭いのを公開してるので同一ってばれるとへこむ(つд;)
0108デフォルトの名無しさん
NGNGそれは厨房向けスクリプト言語作者として有名になっても同人エロゲを売ってるようなものか!?
0109デフォルトの名無しさん
NGNG[プロジェクト|オプション]バージョン情報で作者や著作権表示を指定できるからそこに設定してなければ大丈夫。
ただ一回でも設定してそれをデフォルトとして保存しておくと
別のプロジェクトでも勝手に設定されてしまうので注意が必要。
気になるならバージョン情報を確認しておいた方がいいかも。
0110デフォルトの名無しさん
NGNGドック中のオブジェクト側でならCM_VISIBLECHANGEDで消えるのは感知できるけど、
ドックサイト側ではワカランと思う。
ただドックサイトのAutoSizeプロパティをTrueにしとけば、勝手に隠れてくれるハズ。
0111A
NGNGありがとうございます。
やってみました。たしかに、AutoSizeで自動的に消えますね。
でも、そのままだと、Panelに連動してSplitterが消せない……
とおもったけど、Panelの、OnResizeで、Panelのサイズを見て、表示/非表示させることで
解決しました。
が…、PanelのAutoSizeがTrueだと、Splitterによるサイズ調整が効かないんですね。
そういえば、これが原因で、AutoSizeをはずしたんでした…どうしたものか…
0112デフォルトの名無しさん
NGNG0114デフォルトの名無しさん
NGNGドックサイト (Panel) に CM_DOCKNOTIFICATION が送られてくる。
これを検知して NotifyRec^.ClientMsg = CM_VISIBLECHANGED だったら
VisibleDockClientCount を調べて処理する。
Panel のメッセージを取るには Panel の WindowProc を付け替えたらいい。
新しい値を設定する前に元の値を保存して、付け替えた手続きの最後で
それを呼ぶようにする。
0115デフォルトの名無しさん
NGNG冗談抜きで真実なら、どのへんに何が埋めこまれてるのか教えてホスィ…
0116デフォルトの名無しさん
NGNGスレ違いだから、他でやってホスィ…
0117デフォルトの名無しさん
NGNGデフォルトで VersionInfo や Manifest リソースが含まれている。
デバッグリリースには関連するファイルのフルパスが含まれている。
プロジェクトを保存するデフォルトのディレクトリは、
C:\Documents and Settings\ユーザー名\My Documents\Visual Studio Projects
0118A
NGNGおお。うまくいきました! ありがとうございます。
とりあえず、こんな感じでやってみました。
procedure TForm1.PanelDocNotify(var Message: TMessage);
begin
if Message.Msg = CM_DOCKNOTIFICATION then begin
if Panel.VisibleDockClientCount < 1 then begin
Panel.Width := 0;
end;
end;
PanelWinProc(Message); // 保存しておいた元のWindowProc
end;
説明の内容より、だいぶ単純な判定しかしてないのですが、とりあえず、これで
ちゃんと動いているように見えます。
…これだと、なにか抜けてたりしますでしょうか?
NotifyRec がどこから来たのかわからなかったので…。
0119デフォルトの名無しさん
NGNGMessage を TCMDockNotification 型にキャストする。
Client にはメッセージが発生したドッキングコントロール、
NotifyRec が指す DockNotifyRec レコードには元のメッセージの
Msg, WParam, LParam に相当する値が入っている。
この場合、TCMDockNotification(Message).NotifyRec^.ClientMsg が
CM_VISIBLECHANGED のときだけ応答すればいい。
NotifyRec が nil でないことを確認してから逆参照した方が安全。
0120A
NGNGありがとうございます。 こうしてみました。
procedure TForm1.Panel5DocNotify(var Message: TMessage);
var
Pdn: PDockNotifyRec;
begin
if Message.Msg = CM_DOCKNOTIFICATION then begin
Pdn := TCMDockNotification(Message).NotifyRec;
if (Pdn <> nil) and (Pdn^.ClientMsg = CM_VISIBLECHANGED) then begin
if Panel5.VisibleDockClientCount < 1 then begin
Panel5.Width := 0;
end
else begin
if Panel5.Width = 0 then begin
Panel5.Width := Form1.ClientWidth div 4;
end;
end;
end;
end;
Panel5WinProc(Message); // 保存しておいた元のWindowProc
end;
前のだと、隠れた子コントロールが表示させられた時、に対応できてなかった…。
012119
NGNGレスありがとうございます。
>SQLでしかやったことないが、コンパネ→管理ツール→ODBCで
>オラクルが動いてるサーバにODBCで接続。
>DelphiからODBCはDelのデータベース→エクスプローラから
>接続すればいいんでないの?
データベースエクスプローラーからは接続できましたが、これをプログラム内で
利用するにはどうしたらいいでしょうか?
色々と検索しているのですが、データベースエクスプローラーに関するサイトが少ないので、
それ以上進展していません。
アドバイス、あるいは参考になるサイトがあったら教えてください。
ちなみに、ローカルに置いてあるデータベースに接続するぐらいは
本で勉強したので何とか出来ます。
0122デフォルトの名無しさん
NGNG本で勉強して何とかしろ
0123デフォルトの名無しさん
NGNGVB 2005ではできたんですが。
0124デフォルトの名無しさん
NGNG来月発表のDelphi 9なら可能です。
012519
NGNGdelphi DB&WebプログラミングとかDBが載っている本は買ったのですが、ローカルマシンのDBに
接続するやり方しか載ってないのですよ。
少なくとも書籍とネット、DelphiMLは色々と検索したのですが、分かりませんでした。
お手数ですが教えてもらえないでしょうか?
0126デフォルトの名無しさん
NGNG0127デフォルトの名無しさん
NGNGODBCドライバを設定して、外部DBに接続できているなら、外部もローカルもない。
あとはBDEやADOの問題。
BDEなら、BDE Administratorでエリアス作成して
TTableなどから、そのエリアスを使用するだけ。
ADOなら、接続文字列を作成して
TADOTableなどを使用するだけ
0128デフォルトの名無しさん
NGNGFindFirst
FindNext
FindClose
0129デフォルトの名無しさん
NGNG0131A
NGNGコンポーネント化しています。
いろいろやっていて壁にぶつかりました…。
Align プロパティの値を制限するには、どうしたらいいのでしょうか?
alTop, apLeft, alBottom, alRight だけにしたいのです。
思いついた範囲では、その4つだけの型を作って、Alignプロパティを再定義。
書き込みメソッドで、本来のAlignに変換して書き込み…とやろうとしたのですが、
本来のAlignへのアクセス方法がわからない…orz
0132デフォルトの名無しさん
NGNGInherited Align
或いは TControl.Align では?
0133デフォルトの名無しさん
NGNG○TControl(Self).Align
0134デフォルトの名無しさん
NGNG>その4つだけの型を作って
これでも全然問題ないけど
型増やさないでwriteメソッドで設定値調べてalNone, alClientなら
デフォルト値(alTopとか)をセットというのもありかも。
0135デフォルトの名無しさん
NGNG部分範囲型を使ったらいいと思う。
例えば type TAlign1 = alTop..alRight;
このように定義した TAlign1 は inherited Align に代入できる。
>>134 が書いてるように write メソッドで範囲をチェックすること。
0136A
NGNGInherited ってそういう使い方もあるんですね。overrideしたときしか使えないものだと
思い込んでました。
>>134
その方法だと、オブジェクトインスペクタに設定できない(設定しても反映されない)項目が
表示されるのが、ちょっと…と思ったので。
>>135
その方法でやってみました。
type TAmDsAlign = alTop..alRight;
property Align: TAmDsAlign read GetAlign write SetAlign default alLeft;
procedure TAmDockSitePanel.SetAlign(Value: TAmDsAlign);
begin
if not(Value in [alTop..alRight]) then Value := alLeft;
inherited Align := Value;
end;
function TAmDockSitePanel.GetAlign: TAmDsAlign;
begin
Result := inherited Align;
if not(Result in [alTop..alRight]) then Result := alLeft;
end;
としたところ、うまくいきました。オブジェクトインスペクタの表示も、4っつのみになりました。
ありがとうございます。
0137デフォルトの名無しさん
NGNG無料のものが欲しいでつ。
0138デフォルトの名無しさん
NGNG0139デフォルトの名無しさん
NGNG0140デフォルトの名無しさん
NGNG今、PCとあるデバイス(イーサネット/RS-232C変換機)を
イーサネット(LAN)とRS-232Cケーブルで相互接続しています。
ここで、シリアルケーブル(RS-232C)のCD(Carrier Detect)信号を
PCのシリアルインターフェース側から発生させて、
CDがデバイスを通してPCのLAN側で検知できているかどうかのプログラムをdelphi
で作りたいのですが何から手を付けていいのか解らない状況です。
ここで、本来は
PC--イーサネット/RS-232C変換機--RS-232C機器
という構成にしたいのですが、RS-232機器がないため、ソフト的にチェックしたいために
上記のように相互接続にしました。
アドバイスの方を下さい。よろしくお願いします。
OSはXP Pro、delphiはversion5.0 Proです。
0141A
NGNGまずはそのイーサネット/RS-232C変換機 とやらの詳細や、その変換機のドライバの情報を
調べて書くことから、始めてみたらいいとおもう。
ソフト側からは、LANポート経由で通信した内容が、ドライバで仮想的なRS-232Cに見える。
ってかんじなんだろうか…?
RS-232Cを扱うコンポーネントは、たしかあったはずだけど……みつからない…
あとで探してみよう。
0142デフォルトの名無しさん
NGNGぜんぜん分かんない。。。
ヒントでもいいから、教えてください。お願いします。
0143デフォルトの名無しさん
NGNGピタゴラス整数とは何か?要件を述べよ
0144デフォルトの名無しさん
NGNGどうやらhDCを持つ範囲すべてを全部塗りつぶしてしまっているようなのですが…
これはいったいどうやったら指定のRect範囲で塗りつぶしてくれるのでしょう?
Rectの各値をいくら調整しても、小さくなってくれません。
Rectangleにおいては中を塗りつぶさずにPenで外枠をかくと指定どおりのRectで
外枠を書いてくれているのですが…
これでBrushプロパティを指定するとRectの範囲をはみ出して描いてしまいます。
0146デフォルトの名無しさん
NGNGhttp://www004.upp.so-net.ne.jp/s_honma/pythagoras/pythagoras.htm
ピタゴラス数、ピタゴラス三角形の方がヒット数が増えるね
0147デフォルトの名無しさん
NGNG0148デフォルトの名無しさん
NGNGコードみせて
0149デフォルトの名無しさん
NGNGニュートン法?
0150140
NGNGレス有難うございます。
デバイスは以下のURLにある物で変換機のほかにルータとしての機能も付いています。
今PCのブラウザからデバイスの設定画面(ルータの設定画面の様なもの)に入り
CD信号のON,OFFが確認できるのですが、
これはシリアルケーブルの方を接続するとCDがON、離すとOFFになります。
どうやら物理的にはCD検知出来ているようです。
そこで、シリアルケーブルを繋ぐとCDがONしてあるアクションを起こすようにするために
delphiでCD信号監視プログラムを作ろうと思います。
こうすれば物理的にシリアルケーブルを接続したり離したりすれば
そのプログラムのテストが出来そうなので。
でも、肝心な実装するプログラムがわかりません。
TClientSocketコンポーネントなどを利用すれば出来ますでしょうか?
ttp://www.centurysys.co.jp/product/fa11/rindex_s.html
0152デフォルトの名無しさん
NGNGコンピュータを使ってある特定の目的を達成するための処理手順。
アルゴリズムをプログラミング言語を用いて具体的に記述したものを
プログラムという。
0154デフォルトの名無しさん
NGNGprocedure TForm1.Button1Click(Sender: TObject);
var
Ia,Ib,Ic,SumSq:integer;
rt:Extended;
begin
for Ia := 3 to 99 do
for Ib := Ia+1 to 100 do begin
SumSq := Ia*Ia + Ib*Ib;
Ic := Round(Sqrt(SumSq));
if SumSq = Ic*Ic then
Memo1.Lines.Add(Format('a : %d b : %d c : %d',[Ia,Ib,Ic]));
end;
end;
0155デフォルトの名無しさん
NGNGrt はいらない
0156144
NGNGそれをもとにAdvancedCustomDrawSubItemの部分に以下のようなコードを書きました。
ListView_GetSubItemRectマクロを使用して、棒グラフを表示させたい部分の
Rectを取得して。
Rect.Top = Rect.Top + 1;
Rect.Bottom = Rect.Bottom - 1;
として棒グラフの幅を調整
そして
//<注1>
Sender.Canvas.Pen.Color = clBlue;
Sender.Canvas.Rectangle(Rect);
とすることで、Rectの幅どおりに中が塗りつぶされていない四角形を書くことができました。
そして次に上記の<注1>の部分をそっくり以下のコードに入れ替えました
Sender.Canvas.Brush.Style := bsSolid;
Sender.Canvas.Brush.Color := clBlue;
Sender.Canvas.Rectangle(Rect);
ところがRectを無視して、棒グラフが描画されるべき欄は真っ青になってしまいます…
Rect.Top = Rect.Top + 1;
Rect.Bottom = Rect.Bottom - 1;
をいくら調整してもその変更が反映される様子はありません…
いったいどうなっているのでしょう? どなたかアドバイスよろしくお願いいたします。
0157142
NGNG154さん、本当にありがとう☆☆☆
0158デフォルトの名無しさん
NGNGDefaultDrawがtrueだからでは。
変更されたBrushを使ってデフォルトの描画をされてしまうからね。
0159デフォルトの名無しさん
NGNGSender.Canvas.Brush.Color := clBlue;
Sender.Canvas.Rectangle(Rect);
Sender.Canvas.Brush.Style := bsClear; // これを加えてみるとか
0160デフォルトの名無しさん
NGNGなるほど、わかりました!
>>159さんのコードで解決することができました!
0161デフォルトの名無しさん
NGNGわかりません。。。
どなたか教えてください。
お願いします。
0162デフォルトの名無しさん
NGNGIsLeapYear 関数
0163161
NGNGできますか?
0164デフォルトの名無しさん
NGNG0165142
NGNGピタゴラス定数を満たすa,b,cが何組あるか、
その総数を出力するプログラムを作るには、
どんな関数を使ったらいいんですか?
それと、総数もメモの欄に出力することはできますか?
何度も質問すいませんけど、教えてください。。
0166デフォルトの名無しさん
NGNGhttp://www.echizenya.co.jp/mini/colum/uruudosi.htm
1.西暦年が4で割り切れる年は閏年とする。
2.西暦年が4で割り切れる年でも、100で割り切れる年は閏年としない。
3.西暦年が4で割り切れ、100でも割り切れる年でも400で割り切れる年は閏年とする。
これをコードで表現する
0167デフォルトの名無しさん
NGNGprocedure TForm1.Button1Click(Sender: TObject);
var
Ia,Ib,Ic,SumSq:integer;
count:integer;
begin
count := 0;
for Ia := 3 to 99 do
for Ib := Ia+1 to 100 do begin
SumSq := Ia*Ia + Ib*Ib;
Ic := Round(Sqrt(SumSq));
if SumSq = Ic*Ic then Inc(count);
end;
Memo1.Lines.Add(IntToStr(count)+'個ありますけど');
end;
0169161
NGNGなるほど、ありがとうございます。
えーと、これをコードで表現しようとして、EditとBottunを一つずつ作って、
ShowMessageで閏年かどうかを示そうと思ったのですが、Edit1に入力した数字を
Bottun1のif文で使うにはどうしたらいいかがわかりません。。。
どうしたらいいのでしょう?
それとも、別の方法のほうが良いのでしょうか?
よろしくお願いします。
0170デフォルトの名無しさん
NGNG>Edit1に入力した数字をBottun1のif文で使うにはどうしたらいいかがわかりません。。。
なんだか文章がピタゴラスの人と同じですね。宿題をこの際かたずけるつもりですか。
文字列から数値に変換するには StrToInt() を使う。
整数のわり算のあまりを求めるには mod を使う。以上、ヒント
0171142
NGNG本当に・・・。
0172デフォルトの名無しさん
NGNGそれは失礼。祈る健闘。
0173デフォルトの名無しさん
NGNG0174デフォルトの名無しさん
NGNG017519
NGNGTTableのTableNameのドロップダウンリストを見ようとすると、Oracleに接続されていません。
と表示されてしまいます。
32bit Administratorではデータベースにきちんと接続できて色も変わっているのですがなかなか。
エリアスはドロップダウンリストから選択しているのでタイプミスなどは無いです。
0176デフォルトの名無しさん
NGNGテーブルへのアクセス権ってある?
0177A
NGNGそのページによると、
>2.FA-21,FA-11を意識させない透過的な接続:
>
>FutureNet FA-21,FA-11を使ってもPC上のソフトウェアに変更は必要ありません。
>RS-232を持つ装置とPCとの間の通信は透過的(ソフトウェアから見るとFA-21,FA-11は存在しない)に
>おこなわれ、PC上のソフトウェアは PCの COM ポートへアクセスするのと同じインタフェースで
>実現できます。
って書いてあるね。
てことは、PCからは、それはイーサネットではなく、RS-232Cとして見えているはずだから、
Delphiのほうも、RS-232Cとして、扱ってやればいいんだと思う。
とりあえず、Delphian World ( http://home1.infonia.ne.jp/~delphian/delphi/ )の、
Networkのコーナーに、「Delphi4用 RS-232C 通信コンポーネント」ってのがあるのは
見つけた。
こいつが、Delphi5でも動くかどうか、とか、どうやって使うのか、とかは、私にはわからないので、
あとは、がんばって自力か他の人に聞いてみて。
017836,41
NGNGやっと出来ました。
ありがとうございます。
TBitmapで書いたイメージをTPaintBoxに書き込みことは出来たのですが
Tbitmapが大きなサイズのとき、TPaintBoxに一部が表示されます。
スクロールバーで表示されていない場所を表示するようにしたいのですが
どのようにやるのでしょうか
0180178
NGNG色々やってみましたが、TPaintBox と TScrollBox はくっつかないような気がします。
間違えていましたらすみません具体的に教えてください。
0181デフォルトの名無しさん
NGNGScrollBox を貼り付けて適当なサイズに調整し、その中に PaintBox を
貼り付ける。
Bitmap のサイズを決めるときに PaintBox のサイズも変更する。
PaintBox が大きくなるとスクロールバーが自動的に出てくると思う。
描画は PaintBox の OnPaint イベントの中だけで行うこと。
描き直すべき領域は ClipRect でわかるので (座標の原点は見えている
部分に関係なくクライアント領域の左上)、その部分だけ描けばいい。
0182デフォルトの名無しさん
NGNG0183デフォルトの名無しさん
NGNG拒否或いは受け入れをを遅延させるにはどうすれば良いのでしょうか
0184デフォルトの名無しさん
NGNGClose
0185デフォルトの名無しさん
NGNG手軽にMouseDownを使えるようにするにはどうすればいいのでしょうか?
0186デフォルトの名無しさん
NGNG0187デフォルトの名無しさん
NGNGコンポーネントにすると大量に作り変えないといけないので、
現存のプログラムに追加する感じでコード上に書き足す程度の方法がいいのですが
そう言った方法ってないのでしょうか。
0188デフォルトの名無しさん
NGNGそもそも TComboBox でどうして OnMouseDown イベントがほしいの? それも大量に?
0189デフォルトの名無しさん
NGNGただ上位クラスから継承する簡単な方法があればいいなと思いまして。
0190デフォルトの名無しさん
NGNG1件だけあったけど今は見れないようで。
0191デフォルトの名無しさん
NGNG>Comboがマウスダウンを検知してくれれば
だから、なにをしたくて検知したいの?
0192デフォルトの名無しさん
NGNGあるのかないのか聞いてるんですよ。
ちょっとうざい。
0193A
NGNGフォームをテキストで表示、ソースとフォームの
TComboBoxを全てTMyComboBoxに置換。とかは?
0194A
NGNG何の為にやりたいのかがわかれば、
別の方向からの解決法があるかもしれない。
なんでわざわざ、不必要な情報隠蔽するんだ?
結局、損をするのは自分なのに。
前みたいに、「ある」とか「できる」だけの無意味なレスで埋まってるのがいいのか
0195デフォルトの名無しさん
NGNG別回答が出てくる場合もあるから、詳細を書いた方がいいと思う。
0196195
NGNG0197デフォルトの名無しさん
NGNG結論から言えば簡単ではないがやろうと思えばできる。
Style が csDropDown または csSimple のコンボボックスは複数の
ウィンドウで構成される複合コントロールなので継承クラスを作らずに
実現するのは非常に難しい。
複合コントロールでない場合は型キャストで OnMouseDown に手続きを
割り当てるだけで可能なはず。
019819
NGNGマシンを再起動したらできるようになりました。
スマソ
0199お馬鹿な回答者の為の回答フロー
NGNGif あるなら then
その方法を提示;
if ないなら or 現実的でないなら then
begin
直接的な解はないと回答
while さらに別の方法が必要か? do
一段階上位の要求を聞きだして、その方法を提示
end;
0200真・お馬鹿な回答者の為の回答フロー
NGNGバカな質問者は無視。
end;
0201デフォルトの名無しさん
NGNG>if あるなら then
> その方法を提示;
今回はここまでは行っている。でも、質問者はそれ以上に<簡単にできる>こと
を望んでいる。やりたいことがあるのは分かるけど、その目的を明らかにしない。
そういうのは無視が一番。
0202デフォルトの名無しさん
NGNG行ってないだろ。いきなり別解に突入してる。
0203デフォルトの名無しさん
NGNG0204デフォルトの名無しさん
NGNG上は標準のWebBrowserのバグ修正版みたいなの。下はMozilla版
http://www33.ocn.ne.jp/~takoyakusi/delphi/UIWebBrowser/
http://www02.so-net.ne.jp/~rando/mozilla/
海外制のもあって2chブラウザ(確かぞぬ)で使ってたはず。
興味あるなら調べてみたら。
0205デフォルトの名無しさん
NGNG継承してコンポ作れってかなり一般的で単純明快でまともな回答じゃねぇか
どこが別解なんだよ?
先のことを考えずに設計したのが悪いんだろ?
超初心者スレだから設計が下手なのは仕方がないが、
情報隠蔽しながら、より簡単な解を求められても対処のしようがない。
まぁ、何はともあれ
あとは>>202が引き受けてくれるそうです。よかったですね^^
0206デフォルトの名無しさん
NGNG0207デフォルトの名無しさん
NGNGクラス派生による差分コーディングとthrowにより行数が少ないのに高機能安定動作。
VBのイベントハンドラコピペソースはサイアク。
0208デフォルトの名無しさん
NGNGオブジェクト・インスペクタ最高!!!
特にイベント
0209デフォルトの名無しさん
NGNGどうして愛する自スレをこうも容赦なく荒らせるんですか?
初心者なので分かりやすく教えてください。
0210デフォルトの名無しさん
NGNG0211デフォルトの名無しさん
NGNG.NET 2.0 Betaを使ってみて、VCL.NETを使おうかと本気で検討中。
このスレにいる使ったこともなく語る人たちは信じられないだろう。
.NETライブラリの互換性って、クラス名、メソッド名が同じなだけで、動作はだいぶ違う。
いま1.1でできているものが、2.0でデザインが崩れたりチラツキが出たりしている。
修正したくてもクラスライブラリがsealedやinternal使ってて無理。
バージョンがあがるたびにこれほど変更されるくらいなら、VCLの方がマシ。
いや、VCLも.NET 2.0以降まで対応するという前提で。
0212デフォルトの名無しさん
NGNGVCL.NETヨサゲ
0213デフォルトの名無しさん
NGNG0214デフォルトの名無しさん
NGNG砂漠で目玉焼きでも作ってろ(藁
0215デフォルトの名無しさん
NGNG0216デフォルトの名無しさん
NGNG0217デフォルトの名無しさん
NGNG0218デフォルトの名無しさん
NGNG0219デフォルトの名無しさん
NGNGVB超初心者スレに変更だ。
0220デフォルトの名無しさん
NGNGVB使いの方が人口多いし、そうした方が有意義だね
0221デフォルトの名無しさん
NGNGどう見てもMessageDlgの勝ち。
0222デフォルトの名無しさん
NGNG氏にました。
0223デフォルトの名無しさん
NGNG0224デフォルトの名無しさん
NGNGTSpinEditのCreateParamでES_RIGHTを追加してもだめだったんだけど。
0225デフォルトの名無しさん
NGNGエンプラ版ではできるぞ。もっと貢げよ。(ゲラ
0226224
NGNG0227デフォルトの名無しさん
NGNG0228デフォルトの名無しさん
NGNG0229デフォルトの名無しさん
NGNG0230デフォルトの名無しさん
NGNG0231デフォルトの名無しさん
NGNG0232A
NGNG別に継承だけでコンポーネントとして登録しなくてもいいけどね
それが一番簡単な方法だと思う
フォームソースの方の書き換えがいやなら、
生成後にインスタンスをすりかえるとか。
ただ、先祖が公開していた物を、わざわざ隠してあるってことは、
そこには触れて欲しくないってことだろうから、
何らかの副作用が有るかもしれないけど。
あと、どうしても、既存のソースをいじりたくない、いじるのが面倒ってのなら、
継承も置き換えもせずに、やる方法も有るには有る。
ただし、継承を使う方法よりもずっと面倒で遠回りだけど
0233デフォルトの名無しさん
NGNGpublic property OnMouseDown;
end;
TMyComboBox(ComboBox1).OnMouseDown := ...
でいけるよ。動作保証も推奨もしないけど。
0234デフォルトの名無しさん
NGNG0235デフォルトの名無しさん
NGNG0236デフォルトの名無しさん
NGNG前に俺も悩んだんだけどDelphi広場で検索すると似た様なのが見つかるよ。
確かHalbowがレスつけてて神を感じたような記憶がある。
0237デフォルトの名無しさん
NGNG荒れてたのでちょっとへこんでました。
テストしましたら>>233と>>236のサイト先のどちらの方法でも検知する事ができました。
0238デフォルトの名無しさん
NGNG0239178
NGNGありがとうございます、そしてごめんなさい
TScrollBoxとTScrollBarを勘違い色々いじくっていました。
>181
>描画は PaintBox の OnPaint イベントの中だけで行うこと。
>描き直すべき領域は ClipRect でわかるので (座標の原点は見えている
>部分に関係なくクライアント領域の左上)、その部分だけ描けばいい。
ここの部分がよくわかりませんでした。
TImageでPicture.Bitmapに代入することでとりあえず目的は達成しましたが
もう少し教えてもらえないでしょうか
0240デフォルトの名無しさん
NGNG0241デフォルトの名無しさん
NGNGTCustomComboBoxで定義されたフィールド・プロパティにアクセスしている限り正しい動作が保証される。
0242デフォルトの名無しさん
NGNG0243デフォルトの名無しさん
NGNG0244デフォルトの名無しさん
NGNGPaintBox が ScrollBox よりも大きくなると PaintBox のうち
見えてない部分が発生する。それでも PaintBox.Canvas の座標の
原点は PaintBox の左上になるということ。
OnPaint イベントは WM_PAINT の呼び出しによって発生するが、
PaintBox に来る前に古くなった領域と PaintBox のクライアント
領域が重なり合う領域だけにクリッピングされているので、
ClipRect の外側は描画しなくてもいいということ。別に描画しても
まったく問題はないが、時間のかかる描画を行う場合、その部分を
省略することで高速化が図れる。
TImage は Picture が変更されるたびに Invalidate を呼び出して
Image 全体が古くなったことにするので、ドットを 1 つ打つだけでも
全部を描き直すことになる。
0245デフォルトの名無しさん
NGNGどなたかお願いいたします。
0246A
NGNGGetLogicalDrives APIを使うといいらしい。
詳しくはここに。
ttp://homepage1.nifty.com/MADIA/delphi/Win32API/GetDrives.htm
0247デフォルトの名無しさん
NGNGありがとうございます!やってみます!
0248247
NGNG0249デフォルトの名無しさん
NGNGコピペで使えるようなサイトないでしょうか?
0250デフォルトの名無しさん
NGNGBSD互換APIなら山のように転がってるだろ。Cだけど
0251デフォルトの名無しさん
NGNGいや、だからCなら知ってるの。
それをDelphiで書いてあるのがほしいの。コピペしたいの。
0252デフォルトの名無しさん
NGNG寧ろ返答者側が夏真っ盛りだな。
0253デフォルトの名無しさん
NGNG0254デフォルトの名無しさん
NGNG0255デフォルトの名無しさん
NGNGお前にはVBがお似合いだ
0256デフォルトの名無しさん
NGNG0257デフォルトの名無しさん
NGNG質問したものではありませんが、参考になりました。
TCanvas.ClipRect を有効利用する方法がわかりました。TImage よりいい感じ。
procedure TForm1.FormCreate(Sender: TObject);
begin
bmp := TBitmap.Create;
bmp.LoadFromFile('C:\WINDOWS\雲.bmp');
with PaintBox1 do begin
Top := 0;
Left := 0;
Width := bmp.Width;
Height := bmp.Height;
end;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
bmp.Free;
end;
procedure TForm1.PaintBox1Paint(Sender: TObject);
begin
with PaintBox1.Canvas do
CopyRect(ClipRect,bmp.Canvas,ClipRect);
end;
0258デフォルトの名無しさん
NGNG0259258
NGNG0260デフォルトの名無しさん
NGNG使えないんですか?って訊くのはどうして? 使えますか? じゃないの。
使えなさそうな情報でもあるの?
0261デフォルトの名無しさん
NGNG0262デフォルトの名無しさん
NGNG0263デフォルトの名無しさん
NGNG0264デフォルトの名無しさん
NGNGVB厨からの視点
VB>>>Delphi>>∞>>263
Delphi厨からの視点
Delphi>>>VB>>∞>>263
0265デフォルトの名無しさん
NGNG0266デフォルトの名無しさん
NGNG0267デフォルトの名無しさん
NGNGツールのエディタオプションとかみても見つけられないのです。
0268デフォルトの名無しさん
NGNG0269デフォルトの名無しさん
NGNGDelのバージョンは
0270デフォルトの名無しさん
NGNG0271デフォルトの名無しさん
NGNGTextOut(0, 0, '・'); // TCanvasへの「中黒」の描画
中黒がどうしても表示されない。
他の文字に置き換えると、
普通に表示されるのに。。。
こんなことって、ありえないですよね。
0273デフォルトの名無しさん
NGNG0274デフォルトの名無しさん
NGNG0275A
NGNG自分でコーディングせずに、コピペするぐらいなら、コンポーネント使ったほうが
楽だと思うのだけど…とりあえず、まじレスしてみる。
Delphi + WinSock でぐぐって最初にでてくるこのサイトでいろいろ解説されてるらしい。
ttp://www.asahi-net.or.jp/~nk2w-ishr/winsock0.htm
また、書籍では、「Delphi2 達人テクニック」という本に、詳しい解説があります。
名前からわかるように古い本なので、今でも手に入るかどうかはわかりませんが、
Indyを入れる前は、お世話になってました。
0276A
NGNGこっちにも。
DelphiでDicectXは使えます。
VC++で使うのと同じように、DirectX APIを使って、使用することができます。
また、それより楽をしたい場合は、DelphiX というフリーのコンポーネント集があります。
ただし、少し古いので、対応がDelphi5まで、DirectX7まで、になっています。
この他にも、QuadrupleD、というフリーコンポーネントもあり、こちらのほうは、
新しいものもサポートされているようです。(私は使ってないので詳しいことはわかりません)
ttp://www-fu.magma.ne.jp/~hayase/dddd/
0277デフォルトの名無しさん
NGNGキャストして入れようとしたんですが入らない。。。
配列一つ一つに文字列を一文字ずつキャストして入れればいいと思うんだけど
やり方わかりません。
教えてエロい人!
0278デフォルトの名無しさん
NGNG0279デフォルトの名無しさん
NGNGprocedure TForm1.Button1Click(Sender: TObject);
var
CharArr: array[0..255]of Char;
S: string;
begin
S := 'ミ,,゚Д゚彡';
StrCopy(CharArr, pChar(S));
Label1.Caption := CharArr;
end;
0280A
NGNGvar
c: array of char;
s: String;
i: Integer;
begin
s := 'ABCとか適当に';
SetLength(c,Length(s));
for i := 0 to Length(s)-1 do
c[i] := s[i+1];
end;
こんな感じかな?
forループの回数と、Char配列とString型の添字の値の違いに注意。
0281A
NGNG0282デフォルトの名無しさん
NGNGみんなまとめて�dクス!
0283デフォルトの名無しさん
NGNG元の文字列の長さが不定の場合は Move や StrCopy の代わりに
StrLCopy を使った方が安全。
0284デフォルトの名無しさん
NGNG0285デフォルトの名無しさん
NGNG0286A
NGNGいったのですが、一つなぞの現象が……
自作パネルのalignを、alTopかalBottomに設定して、
Formの上にclClientに設定したMemoを乗せただけのフォームをドッキングさせると、
自動的に表示されるグラバをつかんでも、ドック解除ができません。
なぜか、グラバにある[×]ボタンをダブルクリックすると、解除されます。
ドッキングに関係ありそうな部分だと…
自作パネルは、TCustomPanel より派生。
GetSiteInfo、DoDockOver、DoAddDockClient、DoRemoveDockClient の各メソッドを
オーバーライドし、CM_DOCKNOTIFICATION メッセージに反応するようにしてあります。
その他のコードは、表示制御関連で、直接関係無いと思うのですが…
実験のために、オーバーライドした、4つのメソッドの中身と、CM_DOCKNOTIFICATION メッセージ
のメソッドの中身を、inherited; を残してコメントアウト。
それでも症状は変わらず…。ということで原因はそれ以外。
alignが、alLeft、alRightの時は正常に動くので、どうやらグラバが縦長の場合にのみ
おかしくなっていそうなのですが…DockSiteなコンポーネントを作るにあたって、
DockSite := True; にする、以外に注意することって、なにかありましたでしょうか?
0287A
NGNGtype
TDSPanel = class(TPanel)
public constructor Create(AOwner: TComponent); override; end;
constructor TDSPanel.Create(AOwner: TComponent);
begin
inherited;
DockSite := True;
end;
var DSP: TDSPanel;
procedure TForm1.FormCreate(Sender: TObject);
begin
DSP := TDSPanel.Create(Self);
DSP.Parent := Self;
DSP.Align := alBottom;
end;
たったこれだけで、すでに同じ問題が起きてることがわかりました…orz
Createの、DockSite := True; をコメントアウトして、代わりにFormのほうで、
DSP.DockSite := True; すると、きちんと動くようです。
これはいったい………。DockSite := True; で何が行われているんだろう…。
0288デフォルトの名無しさん
NGNG0289A
NGNGおおっ、できました。
procedure TAmDockSitePanel.SetAlign(Value: TAmDsAlign);
begin
DockSite := False;
if not(Value in [alTop..alRight]) then Value := alLeft;
inherited Align := Value;
DockSite := True;
SplitterRePositon;
end;
こんな感じに、一度、False にしてから、Trueにすることで、正常に動くようになりました。
どうやら、DockSite := True の時に、その時点でのAlignを元に、ドックマネージャーの
生成が行われている、っぽい感じですね。
それなら、同じくAlignが変化している、alRightでは、問題が起きない理由に説明が
つきます。
ありがとうございました。
0290デフォルトの名無しさん
NGNGVB2005のExpressが非常に優秀だったので比較したかったのですが・・・。
0291デフォルトの名無しさん
NGNG今のところ予定はありません。
0292デフォルトの名無しさん
NGNGVBにはもう勝てないので出しません。
0293デフォルトの名無しさん
NGNG無償版はドキュン・厨房を増やすだけだと言う事に気づきました。
0294デフォルトの名無しさん
NGNG0295デフォルトの名無しさん
NGNG0296デフォルトの名無しさん
NGNGDelphiでTablet PC Platform Software Development Kit (SDK) v1.5
を使用してInkPictureを使ったアプリを作るにはどうすればよいのでしょうか?
ActiveXの取り込みは失敗しました(⊃д⊂)
0297296
NGNG0299デフォルトの名無しさん
NGNGエラーメッセージを出せ
0300296
NGNGコンポーネント>ActiveXコントロールの取り込み>
Microsoft Tablet PC Type Library, version 1.0
その後構築しコンパイルを掛けると
[エラー] MSINKAUTLib_TLB.pas(1045): 識別子の多重定義 : 'IInkDisp'
[エラー] MSINKAUTLib_TLB.pas(3247): 識別子の多重定義 : 'IInkDisp'
[致命的エラー] *****.dpk(36): 'MSINKAUTLib_TLB.pas' ユニットはコンパイルできませんでした
となりできません。
Delphi触ったばっかりでもう全然わからなくて;;
0301デフォルトの名無しさん
NGNG0302296
NGNG今適当に名前を変えたところコンポーネントとして登録はできたのですが、
フォームに貼り付けるとエラーが出てしまい使えません;;
---------------------------
エラー
---------------------------
アドレス 00000073 でアドレス 00000073 に対する読み込み違反がおきました。.
---------------------------
OK
---------------------------
リネームする箇所を換えてもう少しやってみます
0303デフォルトの名無しさん
NGNG既に使ってる人のpasファイル貰えば使えるよ。
その製品の会社の中の人か、使ってる人探したら?
0304デフォルトの名無しさん
NGNG0305デフォルトの名無しさん
NGNG0306デフォルトの名無しさん
NGNGTablet PC SDK 1.5 interface units TabletPC SDK 1.5 API interface units, Delphi Funktions
が1分で見つかったぞ。
0307296
NGNGそれは既にDLしたのですが中に入っていたのはただ一つのテキストファイル・・・・
コンポーネントの容量も圧縮しても1Kとおかしいなぁと思っていたのですが・・・
以前にそれをDLした方がいれば助かるのですが作者のページもなぜか見れないし
どうにかなりませんでしょうか
0308306
NGNGマジでいってんの?
interface unitの存在がわかったんだから、ググってみれよ。
http://www.pjh2.de/jediplus/download/index.php?l=en
0310デフォルトの名無しさん
NGNGお前らお客さん獲得の千載一遇のチャンスだぞ。
もっと懇切丁寧にしっかり教えてやれよ。
0311デフォルトの名無しさん
NGNGReadMeは関係ないみたいね
(作者はいじめられて、引き篭もり中みたいな内容)
これまた現在、サーバー・トラブル中みたいだが、
BDNからinterface unitをダウンロードして
usesすれば、タイプライブラリの取り込みは不要って事
0312296
NGNGBDNっていうのは
http://codecentral.borland.com/codecentral/ccWeb.exe/listing?id=21363
ここのことですよね?
ここから落とせるファイルはもう落としてやはり中身は上記と同じReadMeだったのです・・・
やはりDelphiでは簡単にはTabletPCSDKを扱えないのでしょうか;;
0313デフォルトの名無しさん
NGNG0314デフォルトの名無しさん
NGNG簡単に使えたよ。3分20秒ぐらいかかったけど
0315デフォルトの名無しさん
NGNG過去ログ
http://groups.google.co.jp/groups?hl=ja&lr=&ie=UTF-8&threadm=40fca92f%241%40newsgroups.borland.com&rnum=1&prev=/groups%3Fhl%3Dja%26lr%3D%26ie%3DUTF-8%26q%3Dtabletpc%26meta%3Dgroup%253Dborland.public.delphi.*
0316デフォルトの名無しさん
NGNGう???詳細きぼんぬ
0317デフォルトの名無しさん
NGNG教えてください。
0318デフォルトの名無しさん
NGNGTYourThreadのデストラクタでどっかのフラグでも書き換えたら
0319デフォルトの名無しさん
NGNGそれを2つのファイルに保存したいのですがどうすればいいのでしょうか。
ご教授お願い致します。
0320デフォルトの名無しさん
NGNGTFileStreamを2つ用意してそれぞれに分割した画像ファイルを書き込めばいいんじゃない?
0321デフォルトの名無しさん
NGNG2つ用意してやってみたのですが、どうもうまくいきません。
どうやったら2つに分割できるのかわからなくて・・・
どういうメソッドを使用すればいいのでしょうか?
0322デフォルトの名無しさん
NGNG0323デフォルトの名無しさん
NGNGStreamの勉強のために、それを利用してファイル分割ソフト作りたいだけっす。
0324デフォルトの名無しさん
NGNGRect使うのでは?
0325デフォルトの名無しさん
NGNGStreamに取り込んだのを何とか分割して保存しようとしてたのですが
Rect使ってやってみます。
ドゥモ ありがとうございました。
0326320
NGNGもしかして読み込みもStreamを使っている?
それなら「読み込み用に1個、書き出し用に2個Stream」を用意して、書き出しのStreamに好きな様に書き出せばいいんじゃないか?
それとも「画像として成立する形式」で分割したいのか?それだとヘッダを作ったり圧縮したりする必要があるから、結構面倒だったりするぞ。
bmpやjpegなら標準のライブラリを使えばいいから簡単だけど。
0327デフォルトの名無しさん
NGNG読み込みはTMemoryStream使ってやってました。
書き出し用に2つStream用意して試してみます。
ありが�d。
0328デフォルトの名無しさん
NGNG0329デフォルトの名無しさん
NGNGBorlandのHPから認証用のファイルreg119.txtを入手して、
C:\Document and Settings\<username> にコピーしたのですが。
Win2000です。
これだけじゃ駄目なの??
0330329
NGNG0331デフォルトの名無しさん
NGNGスタートメニューからアクセス汁
0332デフォルトの名無しさん
NGNGBasicでOSは作れる?
0333デフォルトの名無しさん
NGNG0334デフォルトの名無しさん
NGNG0335デフォルトの名無しさん
NGNG0336332
NGNG0337デフォルトの名無しさん
NGNG0338デフォルトの名無しさん
NGNGありがと。馬鹿みたいな勘違いしてた。
0339デフォルトの名無しさん
NGNG0340デフォルトの名無しさん
NGNG0341デフォルトの名無しさん
NGNG0342デフォルトの名無しさん
NGNGhttp://bbs2.orange-e.net/?id=123456
0343デフォルトの名無しさん
NGNGJava OSを知らないの?
0344デフォルトの名無しさん
NGNGやはり、アルファ・ブレンドとかを使う必要があります?
0345デフォルトの名無しさん
NGNGGDI+とかDirectXとか言ってみるテスト
「半透明の文字」だけが目的なら逆に繁雑だよな…
0346デフォルトの名無しさん
NGNGDirectXはちょっとやりたくないんで、GDI+の資料をみたんですが、
なんかフォントの指定方法とか、かなり変わってますね。
自分のプログラムではLogFont構造体なんかをいろんな個所で
直接処理してるんで、全面的に変更が必要になってくるみたい。
やっぱり、別のキャンバスに一度描画して、目的のキャンバスに
自前でブレンドするしかないのかな。。。
0347デフォルトの名無しさん
NGNG0348デフォルトの名無しさん
NGNG0349デフォルトの名無しさん
NGNGTmemoに1行に1000文字ぐらい読み込ませると
wordwrapをfalseにしてても勝手に折り返されちゃんだけど
何とかどうにか折り返させない方法を 教えてエロイ人 お願い 泣きそう
0350デフォルトの名無しさん
NGNGソースさらしてくれ
0351デフォルトの名無しさん
NGNGEDIT コントロールの仕様
泣き寝入りか自作しかない
0352デフォルトの名無しさん
NGNGricheditじゃダメな理由はあるのかな?
0353デフォルトの名無しさん
NGNGそうなんでつか。。。自作なんてスキルは全然ないっす つД`)・゚・。・゚゚・*:.。..。.:*・゚
ありがとうございました。
>>352
ちょっとやってみます。 ありがとうございました。
ダメだったらそんなに複雑なことやってないんで1000に行かないような設計をちょっと立て直してみまつ。
皆様回答ありがとうございました
0354デフォルトの名無しさん
NGNG使用者にフォルダを選ばせるにはどうすればよいでしょうか?
今はOpenDialogを使ってファイルを選ばせ
ExtractFileDir(OpenDialog.FileName)を使って収得してるんですが
これだとフォルダ内にファイルがないと選択できない
よろしくお願いします
0355デフォルトの名無しさん
NGNG0356353
NGNGキタ━━━━━━(゚∀゚)━━━━━━ !!!!!
解決しますた つД`)・゚・。・゚゚・*:.。..。.:*・゚
ほんとに泣けたっす
>>352さんサンクス!!ついに解決しますた!感謝感謝です ほえー これで寝れまつ
0357デフォルトの名無しさん
NGNGヘルプの「キーワード」へ>>355
0358デフォルトの名無しさん
NGNG思ったのですが、パッチ類が落ちてこない・・・。
どうすればいいですか?
0359デフォルトの名無しさん
NGNG0360デフォルトの名無しさん
NGNG絶対にあきらめたくないんですが・・・。
0361デフォルトの名無しさん
NGNGここで聞くようなことじゃないだろ。サイトの管理者に何とかしてもらえ。
0362デフォルトの名無しさん
NGNGボーランドにメールしました。 m(_ _)m
0363デフォルトの名無しさん
NGNG計算中はボタンが反応してくれません。どうすれば裏で計算しながらボタンを反応
させられるのでしょうか?
0364デフォルトの名無しさん
NGNGありがとうございました
でもまた問題発生です
SelectDirectoryでルートフォルダを指定すると
ルートフォルダより上が表示されないのですが
仕様ですか?
もし仕様なら
最初のディレクトリをマイコンピュータ(どのドライブにもアクセスできる)にするには
どうすれば良いでしょうか?
Delphi6 Personal です
0365デフォルトの名無しさん
NGNGマルチスレッドにすれ
0366デフォルトの名無しさん
NGNGApplication.ProcessMessages
0367デフォルトの名無しさん
NGNGhttp://ww4.tiki.ne.jp/~yonyon/programing/delphi/tips/tips-file.htm#03
0368A
NGNGルートフォルダ、ってのは、一番上のフォルダだから、その上が表示されないのは当然の仕様。
dir := 'D:\Delphi6\';
SelectDirectory('ディレクトリ選択','',dir);
こんなかんじで、予め、3っつめの引数に値を入れておくと、デフォルトの選択になるっぽい。
0369A
NGNGスマソ、読み間違えてた。 マイコンピューターの取得方法は、>367 にあるとおり。
別に、普通に全部にアクセス可能(ルートをルート)に設定するだけなら、
空文字を入れとけば、いいらしい。
0370デフォルトの名無しさん
NGNGまた、そういった情報にアクセスできる場所はどこでしょうか。
0371デフォルトの名無しさん
NGNG0372デフォルトの名無しさん
NGNG無事に反応するようになりました。おめでとうございます。
0373デフォルトの名無しさん
NGNG0375デフォルトの名無しさん
NGNGありがとうございます。
早速読ませていただきます。
0376デフォルトの名無しさん
NGNGこのやろう、ワラタ
0377デフォルトの名無しさん
NGNG大文字小文字を区別せずに指定した文字列の位置を検索したいのですけど、
Posで以下のようにしても、大文字と小文字を区別できず0になるのですが、
pos('CD', 'aあcdef') //0 (4の結果がほしい)
大文字と小文字を区別なく検索できるPos版みたいなことを実現する
何かライブラリでもあるでしょうか?
0378デフォルトの名無しさん
NGNG'aあcdef'の中の小文字を全部大文字にしてから検査すれば?
0379デフォルトの名無しさん
NGNG0380デフォルトの名無しさん
NGNG0381デフォルトの名無しさん
NGNG0382デフォルトの名無しさん
NGNG0383デフォルトの名無しさん
NGNGvar
Data, S: string;
begin
Data := Memo1.Text; //検索データ
S := Edit1.Text; //検索文字列
//チェックで区別なし
if CheckBox1.Checked then
begin
Data := UpperCase(Data);
S := UpperCase(S);
end;
if AnsiPos(S, Data) > 0 then
ShowMessage('(・∀・)アッタ!!');
else
ShowMessage('(・A・)ナカッタ!!');
end;
0384デフォルトの名無しさん
NGNGお願いします。
0385デフォルトの名無しさん
NGNG0386デフォルトの名無しさん
NGNG朝から暇を見つけては、DLやってるんですけど
無理なんですよ(泣)
どこかありませんか?
ギコナビ・プロジェクト・チームに入りたい・・・。
0387デフォルトの名無しさん
NGNG0388デフォルトの名無しさん
NGNGhttp://www.borland.co.jp/download/delphi.html
ここから
【対象アプリケーション】にDelphi 6 Personalまたは、Delphi6が入っているもの
をダウンロードする。
0389デフォルトの名無しさん
NGNG0390デフォルトの名無しさん
NGNGhttp://www.borland.co.jp/download/delphi.html
0391デフォルトの名無しさん
NGNGどういう意味ですか?(w
僕が入ったら、ソフトの品質が飛躍的に向上しますよ。
0392デフォルトの名無しさん
NGNG(´д`)へー
ところで回線は?
0393デフォルトの名無しさん
NGNGDLソフト使いたまへ
0394デフォルトの名無しさん
NGNGフレッツADSLの8Mです。
プロバイダはOCNです。
ファイヤーウォールソフトもアンインストールしたのに・・・。
0395デフォルトの名無しさん
NGNGもしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
Delphi使いが優しくコメントを返しますが、
お礼はDelphiの布教と初心者の救済をお願いします。
0396デフォルトの名無しさん
NGNG>>388のサイトでリンク先クリックするとどうなるんだ?
0397デフォルトの名無しさん
NGNG> Internet Explorer では、ftp.vorland.co.jp - delphi6update2.exe をダウンロードできません。
>
> サーバーが拡張情報を返しました
しばらくしてから、こんなmsgboxを表示します。。。
0398デフォルトの名無しさん
NGNG0399デフォルトの名無しさん
NGNG久しぶりにイリアさんでやってみます。
0400デフォルトの名無しさん
NGNGショックです。
0401デフォルトの名無しさん
NGNG> Internet Explorer では、ftp.vorland.co.jp - delphi6update2.exe をダウンロードできません。
漏れは何も問題なくダウンロードできるぞ?
FFFTPでもftp.borland.co.jpへanonymousでログイン、ダウンロードできるよ?
つーか、vorland.co.jpがここだけのtypoであることを祈る。
0402デフォルトの名無しさん
NGNG普通にダウンロードできるな
30秒もかからん。
0403デフォルトの名無しさん
NGNG0406デフォルトの名無しさん
NGNGまずは自分の環境疑えよ
0407DLできない人
NGNGプロジェクト・チームに入れるように、精進します(笑)
0408デフォルトの名無しさん
NGNGギコナビ・プロジェクト・チームに入るのか?
改悪だけはするのなよ…
0409DLできない人
NGNGなんか、エラーメッセージが表示されます。
どうしたら、いいんでしょうか。
0410ギコナビ使い
NGNG0411デフォルトの名無しさん
NGNG藻前はがんばった!よくやったよ!
もう寝ろ。
0412デフォルトの名無しさん
NGNG0413DLできない人
NGNG0414デフォルトの名無しさん
NGNG0415デフォルトの名無しさん
NGNG0416デフォルトの名無しさん
NGNGな ん だ こ の 流 れ !!
↓ 以下何事もなく質問どうぞ ↓
0417デフォルトの名無しさん
NGNG方法を教えてください。
0418デフォルトの名無しさん
NGNGSpamguardを設定しないにしお
0419デフォルトの名無しさん
NGNGソースはどこ?教えて。
0420デフォルトの名無しさん
NGNGそれってどこでするんですか?
0421デフォルトの名無しさん
NGNG状況がわからな過ぎるので詳しく書け>DLできない人
0422デフォルトの名無しさん
NGNGなんかエラーが出ます。
0423DLできない人
NGNGなんでばれたんですか(w
http://register.borland.co.jp/regist/delphipersonal/delphipersonal.dll/
にいって、アカウントの作成で、メールアドレスを入れて
アカウントの新規登録ボタンを押すと、
> Internal Application Error
> 内部アプリケーションエラー
> Unable to complete network request to host "202.33.253.164". Error writing data to the connection. 既存の接続はリモート ホストに強制的に切断されました。
がでるんです(泣)
0424デフォルトの名無しさん
NGNG某の個人情報の扱いって一体どうなってるんでしょうか?
0425DLできない人
NGNGなにも問題なかったのに・・・。
0426デフォルトの名無しさん
NGNG俺登録して半年以上たつけどまったく来ないよ
0427デフォルトの名無しさん
NGNGブラウザは何使ってる?
0428DLできない人
NGNGインターネットエクスプローラ6です。
ルータは使ってるんですけど、関係ないですよね。
あと、ネットスケープ7.1でもやってみたんですが
同じでした。
なんでだ〜(泣)
0429デフォルトの名無しさん
NGNGEditにag+oau a+garh ta+ehah oeu+hapuhのような任意の文字列がある場合で
↑ ↑
のような半角の+のみを全角の+にする方法(他の文字列は半角のまま)がわからなくて困っています
何か良い方法はないものでしょうか?
0430デフォルトの名無しさん
NGNG0431デフォルトの名無しさん
NGNG0432デフォルトの名無しさん
NGNGどちらの方を用いるべきなのでしょうか?
速さやメモリ使用量などはどうなのでしょうか?
教えてエロイ人 ヽ(`Д´)ノ
0433デフォルトの名無しさん
NGNG後者は全体を読み込んで全体を処理できる
前者のやり方で済むならその方が高速省メモリ
後者の方が扱いは簡単
0434デフォルトの名無しさん
NGNG何回やってもダメなんです(涙)
0435デフォルトの名無しさん
NGNG0436デフォルトの名無しさん
NGNGそこらへん全部取っ払ってやってみたら
0437デフォルトの名無しさん
NGNGソースの糞パーソナルファイアウォールのせいかとも思ったんですが
ファイアウォール切って、AirH”でやっても無理でした。
きっと、サイトがあぼーんしてるんでしょうね。
そう思って日を改めたいと思います。
はあ、、、、、VBから卒業できない。。。
0438デフォルトの名無しさん
NGNG0439デフォルトの名無しさん
NGNGもしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
Delphi使いが優しくコメントを返しますが、
お礼はDelphiの布教と初心者の救済をお願いします。
0440デフォルトの名無しさん
NGNGそれは君の運命だ。素直に受け入れよう。
0441DLできない人
NGNG\ / ▼■▼ \ /
|/\| ▼▼ |/\|
┃ ヽ
┃ ヽ / │ |\
┃● ヽ―-―/ ● │ | ) 寝るぞ、ハゲども!おやすみーw
┃ ヽ / │ ●
┃ ヽ/ /
┃ (
┃ / ̄ ̄ ̄ ̄ |
┃│ ノ
┃ \____ ノ
┃ |
┃ |
┃ (人) |
┃ | |
┃ ヽ__/
0442デフォルトの名無しさん
NGNGResetで開いた時に
I/O エラー(32)が出た場合
特別な処理をしたいのですが
この場合はどうすれば良いでしょうか?
0443デフォルトの名無しさん
NGNG例外処理が有効な時はtry〜exceptを書く、そうじゃなければIOResultをチェック
0444デフォルトの名無しさん
NGNGDelphi.Abone;
except
on EDelphiDied do
C#.BuyAndInstall;
end;
0445デフォルトの名無しさん
NGNG0446デフォルトの名無しさん
NGNG0447デフォルトの名無しさん
NGNG0448デフォルトの名無しさん
NGNG0449デフォルトの名無しさん
NGNG同じ
0450デフォルトの名無しさん
NGNG0451デフォルトの名無しさん
NGNGDel6ではダメなのですが
0452デフォルトの名無しさん
NGNGデバッグ目的ならAssertで充分と思うが、何がしたいのですか?
0453デフォルトの名無しさん
NGNG0454デフォルトの名無しさん
NGNG{$IFDEF DEBUG}try Assert(False) except on e:EAssertionFailed do OutputDebugString(PChar(e.Message) + 18); end;{$ENDIF}
プリプロセッサ欲しい
0455デフォルトの名無しさん
NGNGvar __LINE__ : Integer;
Assert(False); //この時点で記録される
OutputDebugString( ... __LINE_ ... );
のような書き方もできないでもない。
プリプロセッサがあるとコンパイル速度に影響するだろうからいらない。
0456デフォルトの名無しさん
NGNG0457デフォルトの名無しさん
NGNG0458デフォルトの名無しさん
NGNG0459DLできない人
NGNGこれで、ギコナビ・プロジェクトに参戦できます。
ありがとうございました。 <(_ _)>
0460デフォルトの名無しさん
NGNG0461デフォルトの名無しさん
NGNGあああいいいううう
の、一番最初のいの前に改行を入れたいのですが、どうすればできるのでしょうか?
どなたか教えていただければ・・・
0462デフォルトの名無しさん
NGNGInsert(sLineBreak, s, 挿入位置);
YourStrings.Text := s;
0463デフォルトの名無しさん
NGNGvar
sl:TStringList;
s:string;
p:integer;
begin
sl := TstringList.Create;
try
sl.Add('1234567890');
sl.Add('xxxxあああいいいうううzzzz');
sl.Add('1234567890');
s := sl.Text;
p := AnsiPos('あああいいいううう',s);
Insert(#13#10,s,p+6);
sl.Text := s;
finally
Memo1.Lines.Assign(sl);
sl.Free;
end;
end;
0464デフォルトの名無しさん
NGNGsl.Add('あああいいいううう');
sl.Insert(0, Copy(sl[0], 1, 6));
sl[1] := Copy(sl[1], 7, High(Integer));
0465デフォルトの名無しさん
NGNG>TStringListの任意の場所
0466デフォルトの名無しさん
NGNGお題の意図は任意の行の任意の位置での行の分割ですが何か?
例えばText使って3行目の6文字目を分割したい場合どうやれと?
0467デフォルトの名無しさん
NGNG迷惑かけんなよ!
0468デフォルトの名無しさん
NGNG>>463 が見えないの?
String に写し取って改行入れて、TStringList に戻す。
>お題の意図は任意の行の任意の位置での行の分割ですが何か?
はぁ? >>464 だと後ろの行がつぶれるでしょ?
0469デフォルトの名無しさん
NGNGお前は題意を読み違えてるから話にならん。
0470デフォルトの名無しさん
NGNG0471デフォルトの名無しさん
NGNGsl.Add('あああいいいううう');
sl.RegExp('s/あい/あ\nい/g');
0473デフォルトの名無しさん
NGNG>お前は題意を読み違えてるから話にならん。
たしかにそうでした。すみません。
>例えばText使って3行目の6文字目を分割したい場合どうやれと?
s:= sl[2];
Insert(#13#10,s,7);
sl[2] := s;
0474デフォルトの名無しさん
NGNGもしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
Delphi使いが優しくコメントを返しますが、
お礼はDelphiの布教と初心者の救済をお願いします。
0475デフォルトの名無しさん
NGNG0476デフォルトの名無しさん
NGNGその実行結果によってAファイルができる
このAファイルをDelphiで読み込んでMemoに表示させたいのですが
perlがAファイルを処理し終わる前にDelphiが読み込みを始めてしまいエラーがでます
(更新前のファイル内容が出たり、新規につくられるファイルではファイルがないとのエラー、読込違反のエラー)
ウェイト処理を入れたり、エラー処理をやってみたりしましたが上手くいきません
このような場合、なんか上手な対処方法はありますか?
0477デフォルトの名無しさん
NGNG予約語を太字にすると最後の文字が表示されない。
これってソースを買わないと直せないかな?
0478デフォルトの名無しさん
NGNG基準位置(原点)をどことするかが問題だ。
アクティブウインドウの位置を基準とするのか、
アクティブウインドウに乗っているコントロールを基準とするのか、
デスクトップの左上を基準とするのか。
>>477
CreateProcess を使ってループでプロセス終了まで待機する
サンプルをどっかで見た。
CreateProcess WaitForSingleObject
↑で検索すれば引っかかるかと。
0479デフォルトの名無しさん
NGNGperlの処理の最中はフィルを消しておいて、
終わったらファイルを作成。
Del側はファイルがなければWhileとかで回して待機させて、
出来たら読み込みで良いんじゃないの?
そういうことではない?
0480デフォルトの名無しさん
NGNGwhile(not FileExsist(FileName)) do
でファイルが作成されるまで待ってはどう?
もしもの時には無限ループになるけどw
0482デフォルトの名無しさん
NGNG返信トンクス
>perlの処理の最中はフィルを消しておいて、
>終わったらファイルを作成。
これはどうやるのでしょうか?
私が実行しようとしているperlは
perlを実行すると先ずディレクトリ内に空ファイルが作製され
それからファイル内部に実行結果を書き込むようです
空ファイルが出来てからファイル内部に結果が書き込まれるまでにタイムラグがあるため
Delphiはこの空ファイルに反応して読み込みエラーになります
また条件により実行結果のサイズが毎回違うために
空ファイルと結果を書き込み終わるまでのタイムラグも毎回違うのです
0483デフォルトの名無しさん
NGNGMouse.CursorPos
で良いはず。マルチモニタ等の考慮が入っているかは不明。
0485デフォルトの名無しさん
NGNGShellExecuteEx使ってperl起動して終了待ちしとけ
0486デフォルトの名無しさん
NGNGwaitforsingleobjectが出てるのに虫するなよ氏ね
0487デフォルトの名無しさん
NGNGShellExecuteじゃ待てないだろ。
0488デフォルトの名無しさん
NGNG待てないことも無い
ttp://www.asahi-net.or.jp/~GV4J-SGUR/narik/stp001.htm#ShellExecuteEx
0489デフォルトの名無しさん
NGNGこのスレで言ってもいないことを相手が理解するのを期待すんな。
0490デフォルトの名無しさん
NGNG0491デフォルトの名無しさん
NGNG板目かっこいいから使いたいです。
0492デフォルトの名無しさん
NGNG0493デフォルトの名無しさん
NGNG0494デフォルトの名無しさん
NGNGだったらお前が答えてやれと小1時間
0495デフォルトの名無しさん
NGNG即答レスはありがたいよ。
質問に質問で返すようなコンサルティング厨より大分マシ。
0496デフォルトの名無しさん
NGNG0497デフォルトの名無しさん
NGNG0498デフォルトの名無しさん
NGNG”コンポーネントの新規作成”ダイアログで、インストール先の”パレットページ名”
に自分で付けた名前を指定しているにもかかわらず、なぜかSampleページにコン
ポーネントがインストールされてしまいます。
どうすれば自分で指定したページにインストールすることが可能になるでしょうか?
0499デフォルトの名無しさん
NGNG0500デフォルトの名無しさん
NGNGこれです。
procedure Register;
begin
RegisterComponents('User', [TDrawButton]);
end;
0501デフォルトの名無しさん
NGNGそのソースにわざとコンパイルエラーを仕込んで
コンポーネントの登録しようとしたらどうなる?
もしエラーもなく登録できるなら
どこか別の場所の.dcuが使われてしまっている悪寒。
0502デフォルトの名無しさん
NGNG>そのソースにわざとコンパイルエラーを仕込んで
>コンポーネントの登録しようとしたらどうなる?
普通にコンパイルエラーになりましたね。
ちなみに、特定の1個のコンポーネントだけではなく、
全部のコンポーネント(すべてUserページにインストール指定)が
Samplesページに追加されてしまいます。
0503デフォルトの名無しさん
NGNGそれで Sample に載るならたしかに変。'User' が特別なのかなぁー。'Hoge' とかだとどうかな?
0504デフォルトの名無しさん
NGNGコンポーネント作って'Test'ページに登録した場合は?
それでも変ならもう分からん。
0505デフォルトの名無しさん
NGNG追加して(TLabelAだけHogeページ指定)試してみたのですけど、”TlabalA”はUserページに、
その他の、”TScrollBoxEx”、”TSHFileOp”がSamplesページに追加されてしまいます。
以下はRegister;手続きです。
procedure Register;
begin
RegisterComponents('User', [TScrollBoxEx]);
end;
procedure Register;
begin
RegisterComponents('User', [TSHFileOp]);
end;
procedure Register;
begin
RegisterComponents('Hoge', [TLabelA]);
end;
0506デフォルトの名無しさん
NGNG>コンポーネント作って'Test'ページに登録した場合は?
ダメですた。
とりあえず今はあきらめようと思います。
0507デフォルトの名無しさん
NGNGインストール後に場所を変更したコンポーネントが元の場所に戻ります。
HKEY_CURRENT_USER\Software\Borland\Delphi\バージョン\Palette
というキーの中にある値を全部削除してみてください。
Delphi を起動してパレットの設定を行うと再作成されますのでご安心ください。
ただし、削除前に保存しておくことをおすすめします。
0508TMSユーザー
NGNGTMS使っているけど、おそらくこの問題はソースコード入手しないと難しいような気がする。
持っているんで確認してみようと思うけど、仕事サボり中のためあまり期待しないで待ってて。
確認できたらNewsGroupかサポートにあげてフィードバック待ってみるから。
たとえばどういう単語?わかっていたら数例挙げてみて。
0509477
NGNGおおおお、ありがとうございます。
期待しないふりをしながらも期待して待っています。
例えば、Procedureとかです。
TMSのDel7を使っています。
それについていたデモでもそうなります。
よろしくお願いします。
板目→見た目です。
0510デフォルトの名無しさん
NGNGRegisterでの設定がIDEでの設定より優先したら、
パッケージをインストールするたびにIDEの設定が無効になるよ!
0511デフォルトの名無しさん
NGNG0512デフォルトの名無しさん
NGNG0513デフォルトの名無しさん
NGNG0514デフォルトの名無しさん
NGNG具体的には
処理結果がAならウィンドウAを起動、BならウィンドウBを起動
のようにしたいのです
もちろんウィンドウA、Bを外部プログラムとして設計し
内部から呼び出す手もあるのですが
それだとカッコ悪いですし、拡張などで不具合が出る可能性があるので
よろしくお願いします
0515A
NGNGよくわからないけど、フォームをいくつも作って、
if 処理結果 = A then FormA.ShowModal;
if 処理結果 = B then FormB.ShowModal;
ってこと?
それとも、ソフトの起動時に条件によって、フォームを切り替えたいってこと?
その場合は、プロジェクトファイルのほうで、
Application.CreateForm(TForm1, Form1);
の部分を切り替えればいい。
0516デフォルトの名無しさん
NGNGApplication.Handle
Application.MainForm.Handle
どちらがよいのでしょうか?
0517デフォルトの名無しさん
NGNGEM_GETFIRSTVISIBLELINEでは、Memoコンポーネント上で、実際に目
にみえている最初の行の行番号を取得できますけど、これの水平バー
ジョンみたいなのはあるでしょうか?
スクロールバーなしでWordWarpFalseのメモコンポーネントで、クライアント領域
の左端のテキストの位置(ピクセル)を知りたいです。
スクロールバーが非表示なのでGetScrollPosが使えません。
0518デフォルトの名無しさん
NGNGどうすればいいんですか?
0519デフォルトの名無しさん
NGNGF1キーを押してみろ。
0520519
NGNG0521518
NGNGボタンの中に表示したいって事なんですけど
MessageBoxも表示するボタンが決まってるみたいです。
0522デフォルトの名無しさん
NGNGCreateMessageDialog でダイアログウインドウを作成して、
表示する前に、ダイアログウインドウ中のコントロールを探索して
ボタンのキャプションを書き換えると言う方法を提示してみる。
これでは、最高で五つまでしかボタンは表示できないっぽいけど。
↑中村さんのとこでも例があったので、これが一番容易らしい。
返り値はShowModalの返り値で良い模様。
もっとスマートでインテレクタルな方法があるかもしれないけど。
任意の文字をキャプションに持つボタンを作成できる
ダイアログウインドウをコンポーネント化してしまうのも手の一つ。
0523デフォルトの名無しさん
NGNG0524デフォルトの名無しさん
NGNG0525デフォルトの名無しさん
NGNG0526デフォルトの名無しさん
NGNGありがとうございます〜
0527デフォルトの名無しさん
NGNG接続したURLのサーバが見つからないときはSocketErrorがでて、そこで終了してしまいます。
サーバにつながらないときは別の処理を実行するようにしたいのですが、どうすればよいですか。
こんな感じでやってます。
IdHTTP1.Head('http://www.2ch.net/');
0528デフォルトの名無しさん
NGNGどうしてもその組み合わせじゃないとイヤ!
ってんじゃないのなら「Wininet」をお勧めします。
0529528
NGNG読み飛ばしてください。
↓次どうぞ
0530デフォルトの名無しさん
NGNG0531デフォルトの名無しさん
NGNGName:String[20];
Age:Integer;
end;
PTest=^TTest;
var
A:PTest;
begin
New(A);
...
Dispose(A);
Dispose(PTest(A));
Aを開放するときはどっちでもOKですか?
0532デフォルトの名無しさん
NGNG0533デフォルトの名無しさん
NGNGあっ間違えた。
List:TList;
var
A:PTest;
begin
New(A);
List.Add(A);
...
Dispose(List[0]);
Dispose(PTest(List[0]));
上記の場合はどっちでもOKですか?
0534デフォルトの名無しさん
NGNG0535デフォルトの名無しさん
NGNGバリアント型やinterfaceの終了処理があるから、型付きポインタを渡さないといけない。
A := List[0];
Dispose(A);
が正しい。
0536デフォルトの名無しさん
NGNG6 personalです。
0537デフォルトの名無しさん
NGNG…環境オプション。
ソフトをインストールしたら一応オプションダイアログを眺めるのは常識では…
0538デフォルトの名無しさん
NGNGそれとも自作する必要がありですか?
abc def → Abc Def
0539デフォルトの名無しさん
NGNG流石に標準で用意するにはピンポイント過ぎるよそれは
forで一文字ずつ見てって、空白の次にUpCaseかますだけだから、書いても三行ぐらいでしょ
0540デフォルトの名無しさん
NGNG設定タブの自動保存の設定ですか?
エディタファイルとプロジェクト デスクトップとあるのですが
どっちでしょう?
0541デフォルトの名無しさん
NGNG…それぐらいは、2chに書き込む手間を費やすよりは、ヘルプを見た方が早いと思うぞ
(何を保存したいのかにもよるが、ソースコードならエディタファイル、窓とかブレークポイントとかの状態はデスクトップ)
0542デフォルトの名無しさん
NGNG正規表現があれば一発なのにね
0543デフォルトの名無しさん
NGNGまあ、使いたきゃどうぞ
http://onigiri.s3.xrea.com:8080/delphi/index.php?%5B%5BTRegExpr%5D%5D
ただ、この程度はforでやっちまったほうがusesしてCreateして〜より行数的にも短くなると思うけど
0544デフォルトの名無しさん
NGNGありがとう。
0545デフォルトの名無しさん
NGNGTextBox1.Text = StrConv(TextBox1.Text, VbStrConv.ProperCase)
End Sub
0546デフォルトの名無しさん
NGNG0547デフォルトの名無しさん
NGNG何に勝利したの?
0548デフォルトの名無しさん
NGNG0549デフォルトの名無しさん
NGNGキャストせんとMemCheck先生が怒りますよ
0550デフォルトの名無しさん
NGNGTMemoryStreamのWriteを使うのだと思うけどヘルプ読んでもワケワカメ(´・ω・`)
0551デフォルトの名無しさん
NGNG0552デフォルトの名無しさん
NGNG0554デフォルトの名無しさん
NGNGLISPってなんでしょうか?
全くの素人でして、ゼロから学ばなきゃいけないんですが
何から始めていいのかわかりません…
0555デフォルトの名無しさん
NGNGというプログラムにしたいのですがどうすれば良いでしょうか?
FileSizeだとテキストファイルに使えない上に
開かないとダメです
ご教授下さい
0556デフォルトの名無しさん
NGNG0557デフォルトの名無しさん
NGNGどうして学ばなければいけないのですか?
丸投げでいいのでは?
0558デフォルトの名無しさん
NGNGプログラム言語のひとつだよ。Delphiとはまったく無関係。
専用スレあるからそっち行って処理系なり入門サイトなり探してきな。
0559デフォルトの名無しさん
NGNGみんなVS.NETへの移行で忙しいらしい。
0560デフォルトの名無しさん
NGNG間違ったことレスするかなぁー。 >>534
型なしポインタでは Dispose で Finalize ができないので一般にはリークする
だろうことぐらい気付けよ
0561デフォルトの名無しさん
NGNGうむ、けっこうおもしろいね。実用性がまだまだだけど。
0562初心者ですいません
NGNGinterface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
type
TForm1 = class(TForm)
private
{ Private 宣言 }
public
{ Public 宣言 }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
end.
自作の関数や手続きはどこに書けば良いのでしょうか?
またC言語でいうところのヘッダファイルのような物を作るにはどうすれば良いですか?
0563デフォルトの名無しさん
NGNG別ユニットにして自作関数をため込むのが一番いいかも
0564デフォルトの名無しさん
NGNGヘッダファイルの相当するモノはない。ユニットの interface 部がそれにあたる。
uses すると見えるのはその部分だけ。
0565デフォルトの名無しさん
NGNG0566デフォルトの名無しさん
NGNG0567デフォルトの名無しさん
NGNG読まなきゃ分かるかどうかさえ分からないだろ。超初心者でも分かるヤツは分かる。
0568デフォルトの名無しさん
NGNGimplementation
{$R *.DFM}
function Tasizan(v1,v2:integer):integer;
begin
result := v1 + v2;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage('2+3 = '+IntToStr(Tasizan(2,3)));
end;
0569デフォルトの名無しさん
NGNGuses
Unit2;
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage('2+3 = '+IntToStr(Tasizan(2,3)));
end;
------------------
unit Unit2;
interface
uses
SysUtils;
function Tasizan(v1,v2:integer):integer;
implementation
function Tasizan(v1,v2:integer):integer;
begin
result := v1 + v2;
end;
end.
0570デフォルトの名無しさん
NGNGimage1.Width := 100;
image1.Height := 100;
としてから表示させ、続いて
image1.Width := 200;
image1.Height := 200;
と変更させて表示させても、最初に表示された大きさのimage以上に表示されません。
これはどこが悪いのでしょうか?
0571デフォルトの名無しさん
NGNGImage1.Stretch:=True;
0572デフォルトの名無しさん
NGNG素早い対応ありがとうございます
0573デフォルトの名無しさん
NGNGhttp://www-fu.magma.ne.jp/~hayase/
0574570
NGNG画像imageの比率というか、内部で持っている大きさと表示される大きさが
サイズを変えるたびに変わってしまいます。
0575570
NGNGそれにしても
procedure TForm1.Button1Click(Sender: TObject);
begin
image1.Width := 100;
image1.Height := 100;
Image1.Canvas.Brush.Style := bsSolid;
Image1.Canvas.Brush.Color := clWhite;
Image1.Canvas.FillRect(Rect(0,0,Image1.Width,Image1.Height));
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
image1.Width := 200;
image1.Height := 200;
Image1.Canvas.Brush.Style := bsSolid;
Image1.Canvas.Brush.Color := clWhite;
Image1.Canvas.FillRect(Rect(0,0,Image1.Width,Image1.Height));
end;
これでボタンを1から押すのか2から押すのかでなぜ表示範囲が変わるのか結局不明。
Stretchだと表示倍率が変わってしまうし。
0576デフォルトの名無しさん
NGNGStretch と Proportional を両方 True にしてみてください。
AutoSize は False、Align は alNone になってますか?
0577570
NGNGやってみましたが同じくダメでした。白で塗りつぶしてから
Image1.Canvas.TextOut(10,10,'test100');
を入れてみたのですが、ボタン1から押すとボタン2の時に文字が縦横倍に
ボタン2から押すとボタン1の時に文字が半分になってしまいます。
0578デフォルトの名無しさん
NGNGImage の Width Height を変えるとき、
Image.Picture.Bitmap の Width と Height も変えてみてくれ。
0579デフォルトの名無しさん
NGNG外観はTListViewのViewStyle=vsReportみたいな感じだけれども、マウスでクリック
したとき一番左側の値だけ選択されるのではなく、行全体が選択されるような
コントロールってどうやって実現するんでしか?
具体的に言えば、2chブラウザのスレ一覧につ変われているようなコントロールです・・・。
0580デフォルトの名無しさん
NGNG実現するんでしか? → 実現するんですか?
でした。
0581デフォルトの名無しさん
NGNGRowSelect?
0582デフォルトの名無しさん
NGNGお゛お゛、できました。素晴らしい。
0583デフォルトの名無しさん
NGNGフォームが小さくなるようにするには
どうしたらよいでしょうか?
0584デフォルトの名無しさん
NGNG0585デフォルトの名無しさん
NGNGhttp://www.google.com/search?num=50&hl=ja&ie=UTF-8&q=%E3%83%9E%E3%82%A6%E3%82%B9+%E3%83%95%E3%82%A9%E3%83%BC%E3%83%A0+%E5%87%BA%E3%81%9F%E3%80%80Delphi&lr=lang_ja
0586デフォルトの名無しさん
NGNGthx
CM_MOUSEENTERですね
0587デフォルトの名無しさん
NGNG0588デフォルトの名無しさん
NGNG0589デフォルトの名無しさん
NGNGコードが欲しけりゃDelphi Splitでググっとけ
0590デフォルトの名無しさん
NGNGDelimiterを設定して
DelimitedTextにソース文字列を代入する
0591デフォルトの名無しさん
NGNG0592デフォルトの名無しさん
NGNGできました!おありがとうございます。
0593デフォルトの名無しさん
NGNGそのようなことはできますか?
TStringsへ読み込むと分割されてしまうので
できればバイナリで読み込んでそれをStringにしたいのですが・・・
0594デフォルトの名無しさん
NGNG//FS.Position := 0;
FS.Read(s[1],FS.Size);
動作未確認
0595デフォルトの名無しさん
NGNGs := sl.Text
0596デフォルトの名無しさん
NGNG0597デフォルトの名無しさん
NGNGsをSetLengthしないとえらいことになるはず
0598デフォルトの名無しさん
NGNGTStringsのTextプロパティは駄目なの?
0599593
NGNGTextプロパティ使わせていただきました。
0600デフォルトの名無しさん
NGNGほかのどの方法よりも速いはず。
function LoadFileToString(const FileName: string): string;
var
Handle, Size: Cardinal;
begin
Handle := CreateFile(PChar(FileName), GENERIC_READ, 0, nil,
OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
if Handle <> INVALID_HANDLE_VALUE then
try
Size := GetFileSize(Handle, nil);
SetLength(Result, Integer(Size));
ReadFile(Handle, PChar(Result)^, Size, Size, nil);
finally
CloseHandle(Handle);
end
else
RaiseLastOSError; // RaiseLastWin32Error;
end;
0601デフォルトの名無しさん
NGNGここには意味があるのかないのか
0603デフォルトの名無しさん
NGNG0604デフォルトの名無しさん
NGNG0605デフォルトの名無しさん
NGNGエラーチェックが気に食わんけど(Win32Check使えとか一応全APIチェックしろとか)
>>600のでいいよ。
0606593
NGNG空のファイルができるだけです。何が問題でしょうか?
FS := TFileStream.Create('hoge.txt',fmCreate or fmOpenWrite);
FS.Write(s, Length(s));
FS.Free;
0607593
NGNGとしたらできました。
0608デフォルトの名無しさん
NGNGFS.Write(PChar(s),〜
0609デフォルトの名無しさん
NGNGFS.Write(PChar(s)^,〜
こうだ
0611デフォルトの名無しさん
NGNG0614デフォルトの名無しさん
NGNGでも、世の中には{$R+}というオプションがあって…
0615593
NGNG0616593
NGNGFS := TFileStream.Create('hoge.txt', fmOpenRead);
SetLength(s, FS.Size);
FS.Read(s[1],FS.Size);
FS.Free;
としてるんですけど、こっちもポインタみたいな指定に
したほうがいいんですか?
どういう書き方になるんでしょうか?
0617デフォルトの名無しさん
NGNGそれでいいと思う。
漏れもそう書いてる。
強いて言えば
if FS.Size > 0 then FS.Read(s[1],FS.Size);
かな。
0618デフォルトの名無しさん
NGNG素直にPChar(s)^にしとけって
0619デフォルトの名無しさん
NGNG範囲チェックオプション。
0620593
NGNG0621デフォルトの名無しさん
NGNG今回の場合は文字列ポインタと言うべきだろうな
0622デフォルトの名無しさん
NGNG0623デフォルトの名無しさん
NGNGならないならない
0624デフォルトの名無しさん
NGNGs:string[255];
と間違えてないか?
sの1文字(バイト)目だよ
0625デフォルトの名無しさん
NGNG0626593
NGNG0627デフォルトの名無しさん
NGNG0628デフォルトの名無しさん
NGNGバージョンとコンパイルオプションとWindowsによって変わるが、
D7まではSJISと思っておけばいい
D8はUNICODE
0629デフォルトの名無しさん
NGNG> 読み込むほうは
> FS := TFileStream.Create('hoge.txt', fmOpenRead);
> SetLength(s, FS.Size);
> FS.Read(s[1],FS.Size);
> FS.Free;
>
> としてるんですけど、こっちもポインタみたいな指定に
> したほうがいいんですか?
> どういう書き方になるんでしょうか?
だから、わからなかったら素直に>>598か>>600の方法使えって。
それで解決できるんだから。
>>615
> なんですか?その{$R+}というのは?
>>620
> うーんpcharが何なのかよくわからないなあ
ヘルプくらい引けよ。全部書いてあるだろ。
何か、釣りなんじゃないかという気がしてくる。
0630デフォルトの名無しさん
NGNGつまり var パラメータの位置に置いた S[1] は、文字列 S の 1 文字目の
文字を指すポインタを渡してるということ。
Delphi の文字列 (長い文字列) は、参照カウンタとバッファサイズが実際の
文字列の前に付いてるので、単なる文字列バッファではない。
従って、これを直接 TFileStream の Read などに渡すことはできない。
しかし、Delphi の文字列を PChar にキャストすると Delphi の文字列が、
その変数の文字列バッファの先頭を指すポインタに変換されるので、
PChar(S)^ と S[1] は同じになる。
この 2 つの式の型はいずれも Char になる。
0631デフォルトの名無しさん
NGNG自分が知っている知識を全て常識と思わないようにね
0632デフォルトの名無しさん
NGNG0634デフォルトの名無しさん
NGNGS[1]は例外を返す。
PChar(S)^はヌル文字列を返す。
0635デフォルトの名無しさん
NGNG繰り返しになるが…
「長さが0でかつ{$R+}」の場合を除き、varパラメータに渡す時または@でアドレス取る時、はYes
0636593
NGNG0637デフォルトの名無しさん
NGNGRecord型で「=」は使えないのでしょうか?
type TItem = record end;
として、Form1上にButton1をおいて
procedure TForm1.Button1Click(Sender: TObject);
var a,b: TItem;
begin
b:= a;
if b =a then button1.Caption:= 'true'; ←[エラー] Unit1.pas(43): 互換性の無い型です
end;
0638デフォルトの名無しさん
NGNG比較したければCompareMem関数を使う
0639デフォルトの名無しさん
NGNGこのSQL(TStrings)を書き換えたい場合はどうすれば良いでしょうか。
文字列を代入すると互換性がないといわれてしまい、
StringをTStringsに変換する方法をさがしたのですが見つからず。
師匠たち教えて下さい。
0640デフォルトの名無しさん
NGNG0641デフォルトの名無しさん
NGNG内部的にポインタだからアクセスしないだけで、
本当に逆参照したらAVが発生するでしょ。
>>637
使えない。
0642639
NGNG0643デフォルトの名無しさん
NGNG0644デフォルトの名無しさん
NGNGありがとうございました。
string中に入れたいので比較関数作って処理します
0645CLOWN
NGNG0646645
NGNG0647デフォルトの名無しさん
NGNGclassにして比較メソッド作れ
0648デフォルトの名無しさん
NGNGS のバッファが割り当てられていれば、PChar(S) は有効なアドレスを
指します。
上のような場合、割り当ては SetLength を呼び出した時点で行われて
いるので問題ありません。
割り当てによって確保されたサイズの範囲内であれば逆参照も可能です。
ただし、バッファが再割り当てされると、元のアドレスを保持していても
それが有効でなくなる可能性がありますので注意が必要です。
>>647
用途によるでしょ。
record に string や動的配列を含む場合は (自動変数でなければ) 初期化や
終了処理が必要なので class にする方がいいと思われる場合が多いですが、
単純型だけなら record でも十分です。
もっとも、要素が単純型でない場合は CompareMem は意味をなさないので、
要素ごとに適当な方法で比較するしかありません。
0649デフォルトの名無しさん
NGNG>しかし、Delphi の文字列を PChar にキャストすると Delphi の文字列が、
>その変数の文字列バッファの先頭を指すポインタに変換されるので、
変換されるのではない。string 型自身が実は文字列バッファの先頭を指すポインタなので
単なるキャスト
>>648
>それが有効でなくなる可能性がありますので注意が必要です。
有効じゃなくなる可能性なんかないだろ。S が string 型の変数であるかぎり。
0650デフォルトの名無しさん
NGNG>元のアドレスを保持していても
と書いてあるから、
A := PChar(S);
のAが無効になる可能性があるという話ではないかな?
0651デフォルトの名無しさん
NGNGそうだね。それは、今回のキャストの話とはべつのような。文脈を読むと
>>648
>S のバッファが割り当てられていれば、PChar(S) は有効なアドレスを指します。
などと書いているし。バッファが割り当てられていない string 型の変数なんかないだろな。
0652デフォルトの名無しさん
NGNGあっ、ローカル変数で初期化されていない場合かな
0653デフォルトの名無しさん
NGNG長い文字列は内部的にはバッファを指すポインタですが、文法上は
文字列型という型です。ポインタ型と文字列型は違います。
S := 'abc' みたいに書くし、S[1] は S の 1 文字目でしょ。
動的配列もオブジェクトもポインタですか?
後半は再割り当ての前後でバッファのアドレスが変わる可能性があると
いうことです。
例えば P := PChar(S) として P にアドレスを入れた後で、S に対して
SetLength すれば P に入っているアドレスは無効になるかもしれません。
0654デフォルトの名無しさん
NGNG0655デフォルトの名無しさん
NGNGちがうからキャストするんでしょ
0656デフォルトの名無しさん
NGNGちがいますがポインタにキャスト可能です。
0657デフォルトの名無しさん
NGNG0658デフォルトの名無しさん
NGNGstring → PChar は、長さが1以上ならそのままバッファへのポインタを、
長さが0の時は特別に用意された長さ0のC形式の文字列へのポインタを返してくれる
長さが0のstringは全ビット0なので、純粋なキャスト、例えばPointerにキャストすればnilだし、Cardinalにすれば0。
でも、PCharにしたときは、別の値になる。
疑うならCPUウィンドウでトレースしてみなさい
0659593
NGNG0660デフォルトの名無しさん
NGNGコンパイルすると、
「hoge.pas:ファイルが見つかりません:'DsgnIntf'」
というコンパイルエラーが出るのですが
他に何か設定する必要があるのでしょうか?
hoge.pasのusesにはDsgnIntfが書いてあります。
0661デフォルトの名無しさん
NGNG昔は実行時に使われるソースに設計時のコードまで書いてしまうコンポーネントが多かったため
Delphi5か6か忘れたけどその辺で、設計時パッケージを使わないとコンパイルできなくなってます
要するに、そのソースは古いものでしょう、と。
コンポーネントとしてインストールしたりせずに、単にユニットとして使うだけなら、
usesからDsgnIntfを消して、コンパイルエラーになったところを片っ端からコメントアウトでいけない?
0662デフォルトの名無しさん
NGNG長さが0でない場合には単なるキャストであることを確認
procedure TForm1.Button1Click(Sender: TObject);
var
S:string;
p:pointer;
i:integer;
begin
S := 'ABC';
p := pointer(@S);
//CopyMemory(@i,p,SizeOf(S)); // こっちでも同じ
Move(p^,i,SizeOf(S));
Label1.Caption := IntToStr(i);
Label2.Caption := IntToStr(integer(PChar(S)));
end;
では同じ値が表示されます。
>長さが0のstringは全ビット0なので、純粋なキャスト、例えばPointerにキャストすればnilだし、Cardinalにすれば0。
>でも、PCharにしたときは、別の値になる。
これも、上で S := 'ABC'; のかわりに SetLength(S,0); とすると確かめられる。
後者は初めて知った。ありがとう。
ところで、蒸し返すようだけど、Move() や TFileStream.Read() などの引数で
string 型にしたい場合、PChar(S)^ がいいの、それとも S[1] がいいの?
0663デフォルトの名無しさん
NGNGPointer(S)^が一番いい。不要な処理が一切無い
それ以外(APIや外部に渡すとか)は、{$R+}の事を考えると、PChar(S)^の方がいいでしょうね
0664デフォルトの名無しさん
NGNG0665デフォルトの名無しさん
NGNGヘルプ読んでも全然使いこなせません・・・
0666デフォルトの名無しさん
NGNG0667デフォルトの名無しさん
NGNGIndide Windows
0668デフォルトの名無しさん
NGNG9200円って('A`;)
0669668
NGNG0670デフォルトの名無しさん
NGNG上の話題のように、Delphi で string 型の変数がどのように実装されているか、
は、汎用性に欠けるし、知識としてもあまり有効ではありません。ポインタ一般に
ついて学ぶのがいいでしょう。Delphi では、@ でその変数のアドレス、ポインタの
後ろの ^ は逆参照、型の前の ^ は、その型へのポインタ型、とかを知っていれば
いいだけです。
0672デフォルトの名無しさん
NGNG一緒だと思ってるけど、いまいち自信がない(´・ω・`)
0673デフォルトの名無しさん
NGNG0674デフォルトの名無しさん
NGNG0675デフォルトの名無しさん
NGNG全然違うだろ。
@hoge は「変数 hoge のアドレス」をアドレスとするポインタ。
Pointer(hoge) は「変数 hoge に入ってる値」をアドレスとするポインタ。
0676デフォルトの名無しさん
NGNGますます解らない。
@hogeはhogeが構造体でも使える
Pointer(hoge)はhogeがポインタや4バイトの整数の時しか使えない。
string型は実際にはポインタなので、Pointer(S) のような使い方ができる。
S = '' の時、PChar(S) は 00 となっているコード領域のアドレスを返すため、
逆参照可能。
PChar(S)^、PChar(nil)^ は問題ない。
0677デフォルトの名無しさん
NGNG@hogeは変数hoge(の内容)を指すポインタを返す。
Pointer(hoge) は変数hogeの内容をポインタとして扱う。
hoge: Cardinal
hoge := 100;
の場合
@hoge は 変数hogeを指すポインタ
Pointer(hoge) は メモリ上の100というアドレスを指すポインタ
0678デフォルトの名無しさん
NGNGCなら"->"と"."は区別されているのだが、
Delphiの場合だとどちらでも"."でアクセスできてしまう。
0679デフォルトの名無しさん
NGNG0680デフォルトの名無しさん
NGNG0681デフォルトの名無しさん
NGNG> @hogeはhogeが構造体でも使える
> Pointer(hoge)はhogeがポインタや4バイトの整数の時しか使えない。
やってみた。
var
Ptr: Pointer;
N: LongInt;
D: double;
begin
N := 0;
D := 0;
Ptr := Pointer(N); // 4バイトでPointer型と同じサイズだからエラーが出ない
Ptr := Pointer(D); // [エラー] : 正しくない型キャスト
end;
>>676が言っているように、コンパイルできなかった。
0682デフォルトの名無しさん
NGNGB: Byte;
Pointer(B) も使える。
0683デフォルトの名無しさん
NGNG初期化なかったら大変だよ。
0684デフォルトの名無しさん
NGNG順序型ならなんだって出来るんじゃない?
0685デフォルトの名無しさん
NGNGもしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
Delphi使いが優しくコメントを返しますが、
お礼はDelphiの布教と初心者の救済をお願いします。
0686デフォルトの名無しさん
NGNG0687デフォルトの名無しさん
NGNG「書き込み時」って、何に書き込むとき? 「今でも」って何?
WideString 自身を Stream にそのまま書き込むことはできるよ。
0688デフォルトの名無しさん
NGNG>Byte型もPointerにキャストできるよ。
そりゃ、integer と代入互換性があるからでしょ。Word だってそう。
>>672
>@hogeとPointer(hoge)って一緒ですか?
この違いが分かれば、一歩前進。ポインタって、もっともナイーブに考えると
アドレスを格納するための変数なんだから、変数 Hoge のアドレスと、それが
保持している値は違うことに気づけばいい。
0689デフォルトの名無しさん
NGNGWideStringは参照カウンタがないからAnsiStringほど効率がよくないって書いてあったんよ
今のヴァージョンでも同じかいな?
0690デフォルトの名無しさん
NGNG質問の意味がわからないならすっこんでろ。
0691デフォルトの名無しさん
NGNGD7のヘルプでは
>Win32 では,WideString の値は参照カウントで管理されません。
>Linux では,参照カウントで管理されます。
と書いてある。
0692デフォルトの名無しさん
NGNGありがとう
winとlinuxで違うなんて変なの
0693デフォルトの名無しさん
NGNGCopy on Write っていうんだよ。「書き込み時」じゃ意味不明
0694デフォルトの名無しさん
NGNG0695デフォルトの名無しさん
NGNG0696デフォルトの名無しさん
NGNG0697デフォルトの名無しさん
NGNGコピーをしない、という意味だよね。string 型や TBitmap なんかもそう。
0698デフォルトの名無しさん
NGNG「長い文字列」のヘルプも読んでないならすっこんでろ。
>これは書き込み時コピーと呼ばれます。
0699デフォルトの名無しさん
NGNG0700デフォルトの名無しさん
NGNG0701デフォルトの名無しさん
NGNG0702デフォルトの名無しさん
NGNG全く理解できてない>>687、自分の思い込みを強制する>>693
話の流れすら理解できない>>699とアフォばかり出てくるのは
なぜですか?
0703デフォルトの名無しさん
NGNGで WideString 型がどういう話の流れで string 型のヘルプになるわけ?
質問者にヘルプ読めってことだろ結局 >>691 から
0704デフォルトの名無しさん
NGNG以降は「書き込み時コピー」という用語が存在するかどうかの話。
0705デフォルトの名無しさん
NGNG回答がなかったのは事実。687は689の説明を引き出すのに役立った。
はじめから689のように質問していたら、687はなかったし、回答ももっと
早かったのでは。だから、質問の意味がわからなくてもすっこんでいる必要はない。
690,698,702のレスの方が無意味
0706デフォルトの名無しさん
NGNG改行時にオートインデントの機能を付けたいのですが全然うまくいきません。
どういうコードを書いたらいいのか教えて下さい。よろしくお願いします。
0707デフォルトの名無しさん
NGNGupdownのassociateプロパティでテキストボックスとひもづけました。
そうするとそのテキストボックスをtxtHogeとします。
txtHoge.Text := '10';
で値を入れることができません。なぜでしょう?
0708デフォルトの名無しさん
NGNG入れられたけど・・・
0709デフォルトの名無しさん
NGNG0710デフォルトの名無しさん
NGNGUpDownのmaxプロパティとかminプロパティの設定が間違ってるとか、、、
0711デフォルトの名無しさん
NGNGUpDownのPositionに10といれればいけるけど
テキストボックスの.textに入れると0のまま・・・
0712デフォルトの名無しさん
NGNGUpDown1.Position := 10;
でどうですか?
0713デフォルトの名無しさん
NGNGCreateイベントではだめなんですね
0714デフォルトの名無しさん
NGNGVBでいうIsNumericのような
0715デフォルトの名無しさん
NGNGvar
i: integer;
begin
Result := True;
for i := 1 to Length(Str) do
if not (Str[i] in ['0'.. '9']) then
begin
Result := false;
Break;
end;
end;
こういう関数を用意すればいいかも・・・
0716ぬるぽの名無しさん
NGNGfunction IsNumer(NumStr: String): Boolean;
begin
try
StrToInt(NumStr);
Result := True;
except
Result := False;
end;
end;
応用するとDateTimeなどにも使える。
0717デフォルトの名無しさん
NGNG>>716
さてどっちが速いか競争してみましょう。
0718デフォルトの名無しさん
NGNG0719デフォルトの名無しさん
NGNG0720デフォルトの名無しさん
NGNGfunction IsNumericStr2(const Str: string): boolean;
var
i: integer;
begin
Result := false;
for i := 1 to Length(Str) do
if not (Str[i] in ['0'.. '9']) then exit;
Result := true;
end;
0721デフォルトの名無しさん
NGNGいただきました。
0722デフォルトの名無しさん
NGNG0723デフォルトの名無しさん
NGNG>文字列が数字かどうかチェックする関数ありませんか?
Integerに変換できなくても数字であればいいのでは? あっ、IsNumer() のほうならそのとおり。
0724デフォルトの名無しさん
NGNG0725デフォルトの名無しさん
NGNG0726デフォルトの名無しさん
NGNGそうだそうしろ。2度と来るんじゃないぞw
0727デフォルトの名無しさん
NGNG0728デフォルトの名無しさん
NGNG0729デフォルトの名無しさん
NGNGおまえみたいのがいるからな
0730デフォルトの名無しさん
NGNGDelphi やるなら、まず何でもバリアントで扱うという考えは捨てた方が
いいと思うぞ。
0731デフォルトの名無しさん
NGNG寝言はいいから早くDelphi版IsNumericのコードをください。
0732デフォルトの名無しさん
NGNGbegin
Result := True;
try
VarAsType(V, varDouble);
except
Result := False;
end;
end;
0733デフォルトの名無しさん
NGNGなんででしょう?
0734デフォルトの名無しさん
NGNGまず何をもって効かないと言ってるのか書いてみて。
0735|Д・彡 ◆A6VzDeLphI
NGNG例外キャッチだとIDEが止まるのがちょっといまいち。
D6から
TryStrToInt/TryStrToInt64/TryStrToFloart
があります。
D5以前ならこんな実装してもいいかな。
function CanStrToInt(const S: string): Boolean;
var
E: Integer;
tmp: Integer;
begin
Val(S, tmp, E);
Result := (E=0) and (@tmp=@tmp);
end;
function CanStrToInt64(const S: string): Boolean;
var
E: Integer;
tmp: Int64;
begin
Val(S, tmp, E);
Result := (E=0) and (@tmp=@tmp);
end;
function CanStrToFloat(const S: string): Boolean;
var
tmp: Extended;
begin
Result := TextToFloat(PChar(S), tmp, fvExtended);
end;
0736デフォルトの名無しさん
NGNGエラーで落ちてしまいます。
本当はキャッチするんですよね?
0737デフォルトの名無しさん
NGNG0738デフォルトの名無しさん
NGNG0739デフォルトの名無しさん
NGNGコードさらせ
Except仕切れていないだけなんじゃないの
0740デフォルトの名無しさん
NGNGとかそのままコピペしても落ちます。
0741デフォルトの名無しさん
NGNG0742デフォルトの名無しさん
NGNG知らなかった。
0743デフォルトの名無しさん
NGNG0744デフォルトの名無しさん
NGNGIDEからでも止めたくなかったら、
デバッガオプションを設定する必要あり
0745デフォルトの名無しさん
NGNG0746デフォルトの名無しさん
NGNG0747デフォルトの名無しさん
NGNG仕事で使えないのが残念
0748デフォルトの名無しさん
NGNG0749デフォルトの名無しさん
NGNGこれがだめなの?
0750デフォルトの名無しさん
NGNGだめというか、デバッグには役に立つんだけどね。
0751デフォルトの名無しさん
NGNG0752748
NGNG入ってなかったってオチ?だな
0753748
NGNG例外で止めたらexcept部分が実行されないんだな
0754デフォルトの名無しさん
NGNG0755デフォルトの名無しさん
NGNG0756デフォルトの名無しさん
NGNG0757デフォルトの名無しさん
NGNGすいません質問があります。
WindowsXP標準搭載のCDライティングウィザードを
プログラムから起動させてファイルを書き込みさせたいのですが、壁に当たってしまい困っています。
いまわかっているのはファイルをC:\Documents and Settings\ユーザ名\Local Settings\Application Data\Microsoft\CD Burningに
置くと自動的にバルーンメッセージが表示されCDに書き込める状態になるのですが、
そこからウィザードを起動させる手段がわからずにいます。拡張子が.exeでは無いようにおもうのですが。。
なにかよい知恵はありませんでしょうか?
0758デフォルトの名無しさん
NGNG昔はAPIが用意されてたみたい。
http://www.delphifaq.com/fq/q2029.shtml
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/jpwinui/html/_win32_setsysmodalwindow.asp
今でもフックで似たようなことはできるもより。
http://mfc.acty-net.ne.jp/ml/mfc/logTop/logAll/00016769.shtml
0759デフォルトの名無しさん
NGNG0760デフォルトの名無しさん
NGNG0761デフォルトの名無しさん
NGNGTInterfacedObjectに関する質問があります。
GCっぽい動作を期待しつつ、DelphiのHelpに記載されているサンプルを実行してみたところ、メモリリークが発生しているように思えます。
サンプルは、Delphiヘルプ「クラス型プロパティへの委任」から引用しました。
メモリリークの検出は、MemCheck.pas(使い方は間違ってないと思います*1)を用いました。
新規作成したプロジェクト(*2)でも、5個のメモリリークが検出されるのですが、件のサンプルを実装し、それを実行した状態だと6個に増えます。なぜなのでしょうか、エロイ方よろしくお願いします。修正法等もあれば、よろしくお願いします。
環境はDelphi6です。パッチは当たってます。
*1
program Project1;
uses
MemCheck,Forms,Unit1 in 'Unit1.pas' {Form1};
{$R *.res}
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
*2
procedure TForm1.Button1Click(Sender: TObject);
var
MyClass: TMyClass;
MyInterface: IMyInterface;
begin
MyClass := TMyClass.Create;
MyClass.FMyImplClass := TMyImplClass.Create;
MyInterface := MyClass;
MyInterface.P1; // TMyClass.MyP1 を呼び出す
MyInterface.P2; // TImpClass.MyP2 を呼び出す
end;
0762デフォルトの名無しさん
NGNG0763デフォルトの名無しさん
NGNGprocedure P1;
procedure P2;
end;
TMyImplClass自身はTInterfacedObjectじゃないからでしょ。
implementsは使ったことないからどう対処すべきかは知らないけど
0764デフォルトの名無しさん
NGNGBlockRead(だったけ?)を使えばいいのは判るけど
レコードサイズがややこしいですねえ。
0765デフォルトの名無しさん
NGNG0766デフォルトの名無しさん
NGNGTStringGridのようにも扱えますが、それぞれの使い分けというか、
どういうときにはTListViewを使用して、こういうときにはStringGridを
利用するみたいのを教えてください。
0767デフォルトの名無しさん
NGNGありがとうございました。
TInterfacedObjectの破棄時、メンバにオブジェクトがあった場合、それも自動的に破棄される物かと思ってました・・・
0768デフォルトの名無しさん
NGNG別にBlockReadで読む必要はないぞ。
var
fp : File of byte;
b : byte;
begin
AssignFile(fp, Filename);
reset(fp, 1);
while not eof(fp) do
read(fp, b);
CloseFile(fp);
end;
で1バイトずつ読める。
でも、いまならTFileStreamを使った方が良いんじゃないかな。
0769デフォルトの名無しさん
NGNG0770デフォルトの名無しさん
NGNGオーバーヘッドが大きいと聞きました。
本当に一バイトずつ読みのにTFileStreamでいいの?
0771デフォルトの名無しさん
NGNG0772デフォルトの名無しさん
NGNG心配しなくてもOSのAPIが世話焼いてくれるって…
0773デフォルトの名無しさん
NGNGTMemoryStream
0774デフォルトの名無しさん
NGNGご自分で使用したことおあり?
0775デフォルトの名無しさん
NGNG0776デフォルトの名無しさん
NGNG765だってTFileStreamで1バイトずつ読めとは思ってないだろ。
ある程度の大きさのバッファに読み込んで、そこから1バイトずつ処理すりゃいいじゃん。
0777デフォルトの名無しさん
NGNG0778764
NGNG0779デフォルトの名無しさん
NGNG>>769
0780デフォルトの名無しさん
NGNGちょっと前にあったPChar(s)^のやつ、
SetLengthを読み込むバイト数+1でやらないと
最後の1バイト切れるよ。
0781デフォルトの名無しさん
NGNG切れない切れない
0782デフォルトの名無しさん
NGNGありがとう。
おかげさまでつまらぬミスを改修できました。
0783デフォルトの名無しさん
NGNG0784デフォルトの名無しさん
NGNGこれが確実な方法です。
他の方法は不確実。
0785デフォルトの名無しさん
NGNGdelphi勉強し始めでしてとりあえずブラウザ作ってるんですが
WebBrowserにpgup/pgdnとかhome(ページの先頭へ移動)の命令を送るボタンとかつけたいんですが
どうしたらいいのでしょうか。お願いします。
0786デフォルトの名無しさん
NGNGWideChar型の変数に全角文字を代入したいのですが、
以下ではエラーになります。
どうすればいいでしょうか?
procedure TForm1.Button1Click(Sender: TObject);
var
W: WideChar;
begin
W := 'あ';
end;
0787デフォルトの名無しさん
NGNGあと、Delphi製のシェルなんてのも探してます。
散々調べてみたのですが、それらしきものが見つかりませんでした。
無ければ、つくります。
0788デフォルトの名無しさん
NGNGw := WideString('あ')[1];
0789デフォルトの名無しさん
NGNG作って下さい。
0790デフォルトの名無しさん
NGNG0791デフォルトの名無しさん
NGNGガンガレ
0792デフォルトの名無しさん
NGNGbegin
if Length(c) <> 1 then
raise Exception.Create(c);
Result := c[1];
end;
0793デフォルトの名無しさん
NGNG0794デフォルトの名無しさん
NGNG0795デフォルトの名無しさん
NGNGわかりました。
0796デフォルトの名無しさん
NGNG8のアカデミック買うのとどっちがよさげでしょうか。
0797デフォルトの名無しさん
NGNG0798デフォルトの名無しさん
NGNG今更日某にお布施はもったいない・・・
0799デフォルトの名無しさん
NGNG一応兄貴のお下がりでVBとCの本もいっぱい読ませてもらったりちょっと触らせてもらったりしたのですが、
delphiが一番打ってて楽しいので、del6getの方向でいってみます。
0800デフォルトの名無しさん
NGNGただし紙のマニュアルなどは省略されてる。
>>799 は開発対象が、Win32 ネイティブアプリケーションなのか、
CLR 上で動くマネージドアプリケーションなのかによって、
最適な選択肢が変わってくると思う。
Delphi6 でマネージドアプリを作ることは不可能だし、VS.NET の
VB でネイティブアプリを作ることも不可能。
0801デフォルトの名無しさん
NGNG0802デフォルトの名無しさん
NGNGその質問では「操作」が何を意味するのかわからない。
やりたいことをもっと具体的に書け。
0803801
NGNGすいません
具体的にはフォルダオプションのシングルクリックでプログラムを起動するように設定したり、XPでクラシック表示にしたりです。
0804デフォルトの名無しさん
NGNGかのう。
0805デフォルトの名無しさん
NGNG本当ですか!?
どこかにサンプルとかありますか?
0806デフォルトの名無しさん
NGNGレジストリエディタとにらめっこをしながら
コントロールパネルで該当のオプションを変更しなさい。
0807デフォルトの名無しさん
NGNG0808デフォルトの名無しさん
NGNG0809デフォルトの名無しさん
NGNGそうです
0810808
NGNGDateTimePickerで指定した時刻にイベントを実行するようにしたいんですが、
参考になるようなサイトはありますかね。
0811デフォルトの名無しさん
NGNGTTimer は「一定時間後」或いは「一定時間ごと」だ
指定した時間なら ApplicationEvents.OnIdle で現在時刻を調べて判定
0812デフォルトの名無しさん
NGNG0814デフォルトの名無しさん
NGNGそしたら常にメッセージループを回してないといけないじゃないか
現在時刻と指定された時間の差をTTimerのインターバルに設定すればいい話
0815デフォルトの名無しさん
NGNG0816デフォルトの名無しさん
NGNG初心者がレジストリ操作を避けるのは
「うっかり操作ミス」でキーを消したりするとあぶないから。
ちゃんと該当するキーを調べた上でプログラムから操作するなら
Windowsの設定変更にこれほど強力な手はない。
0817デフォルトの名無しさん
NGNG0818デフォルトの名無しさん
NGNGHKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer の
ShellState の 4 バイト目の 5 ビット目 (0 から数えて) が
0 ならシングルクリック、1 ならダブルクリックのようです。
レジストリを書き換えるのはそんなに難しくないと思いますが、
書き換えた後にどうやって反映させるのかは知りません。
0820デフォルトの名無しさん
NGNG0821デフォルトの名無しさん
NGNG相当するものを教えてください。
0822デフォルトの名無しさん
NGNG0823デフォルトの名無しさん
NGNG0824デフォルトの名無しさん
NGNGVBからDelphiへの移行にトライしている人がいるみたいだけど、
ここを見るといい。
ttp://www.wwlnk.com/boheme/
自分もVBから移行するときにかなり参考になった。関数や手続き別に
移行FAQが書いているよ。
もう知っているのかもしれないけど。
0825デフォルトの名無しさん
NGNGちゃんくす。ブクマクしますた!
0826デフォルトの名無しさん
NGNG0827デフォルトの名無しさん
NGNGttp://www.kanazawa-net.ne.jp/~pmansato/Tools.htm
>もし、Visual Basic の機能の範囲内で間に合うのであれば、
>Delphi も Visual Basic と同じぐらい易しいといえるでしょう。
>しかしそれなら、Visual Basic を使うことをすすめます。
0828デフォルトの名無しさん
NGNG0829デフォルトの名無しさん
NGNG半角空白や全角空白を使って調整する以外に可能ですか?
0830デフォルトの名無しさん
NGNGTabWidth, TabHeight
デフォルト(0)だとフォントによって自動調整されている。
0831デフォルトの名無しさん
NGNGありがとうございました。
子PageControl側でなく、子Tab側を探していたので見つかりませんでした。次からは親側も注意します。
0832デフォルトの名無しさん
NGNG0833デフォルトの名無しさん
NGNGどうすればよいですか?
0834デフォルトの名無しさん
NGNG制限ユーザでも HKEY_CURRENT_USER 以下のレジストリは書き込みもできる。
SystemParametersInfo だって最終的にはレジストリを操作するものだし、
そもそも直接操作出来ないようなレジストリは他の API を使って間接的に操作することも出来ん。
0835デフォルトの名無しさん
NGNG常識的に考えてそうだよね。
0836デフォルトの名無しさん
NGNG「VBは遅くない」
「Cの知識がある俺にはDelphiは使いこなせなかった」
ということをいうのにずいぶん遠まわしないいかたをするページだ
0837デフォルトの名無しさん
NGNG仕方ないよ
0838デフォルトの名無しさん
NGNGhttp://www.kanazawa-net.ne.jp/~pmansato/BCB_Main.htm
>今、話題の C# の開発者は Delphi を開発した人です。
普通に知らなかった
0839デフォルトの名無しさん
NGNG0840デフォルトの名無しさん
NGNG読み間違えてない?
基本的にVCLマンセーなサイトだけど。
.NETをどうしても使う場合にも、
>Visual Basic を選択してはいけません。Visual C# を選ぶべきです。
という感じでVBやめなさいみたいだし。
0841デフォルトの名無しさん
NGNGラベル(下記のソースではLabel5)に表示したいのですが・・・。
下のソースコードではファイルのみで、フォルダに対応できません。
複数階層のフォルダに対応させるには、どうしたらいいのでしょうか?
0842841
NGNGChange: TItemChange);
var
i: Integer;
size: Integer;
path: String;
rec: TSearchRec;
begin
Label5.Caption := '0';
size = 0;
if (ShellListView1.ItemIndex = -1) then Exit;
try
for i := 0 to (ShellListView1.Items.Count - 1) do
if (ShellListView1.Items.Item[i].Selected) then
begin
path := ShellListView1.Folders[i].PathName;
if FindFirst(path, faAnyFile, rec) = 0 then
size := size + rec.Size div 1024;
end;
end;
finally
FindClose(rec);
end;
Label5.Caption := IntToStr(size);
end;
0843デフォルトの名無しさん
NGNGAPI
0844デフォルトの名無しさん
NGNG再帰。
0845デフォルトの名無しさん
NGNGミ,,゚Д゚彡フサギコのフサフサDelphi談話室その13
http://pc5.2ch.net/test/read.cgi/tech/1089454618/
0846デフォルトの名無しさん
NGNGTabやEnter、その他の入力ができなくなっています。
フォーカスはWebBrowserにあるのですが。
WebBrowser内で一度クリックすれば入力可能になりました。
どうすればクリックせずに入力可能な状態にできるのでしょうか。
ただ、ページによっては(Googleなど)はじめからEditBoxにカーソルがあり、
Tab、Enterなどが入力可能になっていました。
UIWebBrowserでも試してみたので、WebBrowserのバグではないと思います。
環境:Delphi6 E
よろしくお願いします。
0847デフォルトの名無しさん
NGNG0848デフォルトの名無しさん
NGNG0849デフォルトの名無しさん
NGNGこっちだろ普通
http://www-6.ibm.com/jp/developerworks/java/001215/j_jw-csharp.html
0850デフォルトの名無しさん
NGNGttp://hogehoge2001.at.infoseek.co.jp/note-delphi.html
このページの「フォーカスを当てる」のとおりにすればフォーカス当たる。
0851デフォルトの名無しさん
NGNGもしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
Delphi使いが優しくコメントを返しますが、
お礼はDelphiの布教と初心者の救済をお願いします。
0852デフォルトの名無しさん
NGNGPOSTするとエラーが出るのですが、この時のエラーが
「無効/非表示ウィンドウにフォーカスを設定できません。」
と表示されるんです。これの意味がわからず、もう3日も悩んでます。
だれか教えてください。
0854デフォルトの名無しさん
NGNG落としたいのですがこれでよいでしょうか?
procedure TfrmMain.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
var
buff: array[0..4095] of char;
ret: Integer;
fs: TFileStream;
begin
ret := ClientSocket1.Socket.ReceiveBuf(buff, sizeof(buff));
fs := TFileStream.Create('hoge.jpg', fmOpenReadWrite);
fs.Seek(0, soFromEnd);
fs.Write(buff, ret);
fs.Free;
end;
0855デフォルトの名無しさん
NGNGだめです。
0856デフォルトの名無しさん
NGNGどこがだめでしょうか?
0857デフォルトの名無しさん
NGNGにしたらできました。
0858デフォルトの名無しさん
NGNG0859デフォルトの名無しさん
NGNGぜひ!
0860デフォルトの名無しさん
NGNG0861デフォルトの名無しさん
NGNG0862デフォルトの名無しさん
NGNG0863デフォルトの名無しさん
NGNGfrmSub.Show;
で表示したフォームを
OnCloseで
Action := caFree;
とするともう一度開くときに
EStackOverflow例外エラーが発生してしまいます。
どのように回避すればよいでしょうか?
0864デフォルトの名無しさん
NGNG親フォームをCreateで指定する。
自分を指定してどーする
0865デフォルトの名無しさん
NGNGネ申!
0866デフォルトの名無しさん
NGNGで日時を文字列に変換したのですが形式を
yyyy/mm/dd hh:mm:ss
にしたいのですがどのように書けばよいでしょうか?
0867デフォルトの名無しさん
NGNG0868デフォルトの名無しさん
NGNGネ申..._〆(゚▽゚*)
0869デフォルトの名無しさん
NGNGmmは月。
従って、hh:nn:ss。
0870デフォルトの名無しさん
NGNG0871A
NGNG>mm 月を先頭のゼロ付きで表示する(01 〜 12)。
> h 指定子または hh 指定子の直後に mm 指定子を指定すると,月ではなく分が表示される
hhの直後のmmは、分として判断されるので、>>867でもOK。
0872デフォルトの名無しさん
NGNGprocedure TForm1.BitBtn1Click(Sender: TObject);
var
Jpeg :TJpegImage;
begin
Jpeg :=TJpegImage.Create ;
Jpeg.LoadFromFile('hoge.jpg');
try
Image1.Picture.Assign(Jpeg);
except
end;
Jpeg.Free;
end;
例外処理をしているつもりなのですが
0バイトのjpegファイルを読み込むと
JPEGエラー #41.
がでてしまいます。
例外エラーが出ないようにするにはどうすればよいでしょうか?
0873デフォルトの名無しさん
NGNGTry
LoadFile
の順で
0874デフォルトの名無しさん
NGNG○LoadFromFile
ゴメソ
0875デフォルトの名無しさん
NGNGその順番で試してみました。
が、同じでした。うーむ。
0876872
NGNG0877デフォルトの名無しさん
NGNG0878872
NGNGこれで対応しました。
0879デフォルトの名無しさん
NGNG0880デフォルトの名無しさん
NGNG0881デフォルトの名無しさん
NGNGDragAcceptFiles(Handle,True);
↑なら正常に動いてくれますが、Form全体が受け取り範囲になっています。
D&Dを受け取るのはListView上だけにしたいのです。
そして
DragAcceptfiles(ListView1.Handle,True);
に変えてみました。マウスカーソルは期待通りに変わっていますが
いくらドロップしても無反応です。
FormのOnCreateに書いているのが悪いのかと思い(∵まだListViewがCreateされていないため
OnShow部に書いてみても同じ結果です。
以下、その他の関係ある部分です
private
procedure DropFiles(var Msg : TWMDROPFILES); message WM_DROPFILES;
procedure TDupForm.DropFiles(var Msg : TWMDropFiles);
var
FileName : array [0..255] of char;
ListItem : TListItem;
begin
DragQueryFile(Msg.Drop, 0, FileName, SizeOf(FileName));
ListItem := ListView1.Items.Add;
if FileExists(FileName) then
ListItem.Caption := ExtractFileDir(FileName)
else ListItem.Caption := FileName;
ListItem.SubItems.Add('hoge');
DragFinish(Msg.Drop);
end;
この部分は弄ってません。
メッセージをきちんと受け取れてないのだと思いますが
解決の仕方が分からないので、教えてください。
0882デフォルトの名無しさん
NGNG0883デフォルトの名無しさん
NGNG2chではそうらしいね。でも >>864 や >>867 程度でそういわれるとオチョクッテルみたいに感じる
0884デフォルトの名無しさん
NGNG0885デフォルトの名無しさん
NGNG0886864,867
NGNGいや、ほんとに助かったので。俺にとっては神そのものです。
0887863,866
NGNG0888デフォルトの名無しさん
NGNGなんかこれを思い出す
0889デフォルトの名無しさん
NGNGTListView の WindowProc で受け取りなさい。
0890デフォルトの名無しさん
NGNG「ありがとうございます。」ってついてるね。これがあるだけでずいぶん雰囲気が変わる
0891デフォルトの名無しさん
NGNG0892デフォルトの名無しさん
NGNGありがとうござまいす。
0893デフォルトの名無しさん
NGNG>ござまいす
0894デフォルトの名無しさん
NGNGDBGridのセルの文字数制限をかけようとしています。
cdsの各フィールドのSIZEを指定できればうまくいきそうなんですが、
コードでcds.FieldbyName.Size に値を入れると「cdsが既に開いてるぞゴルァ!」
とエラーが出てしまいます。考え方がいけないのか別のやり方があるのであれば
おしえてくださぃ・・・
0895デフォルトの名無しさん
NGNG0896デフォルトの名無しさん
NGNG>>355をヘルプで調べよう。
0897デフォルトの名無しさん
NGNG神から超神に格上げされた挙句に神の申し子に格下げされたのにワラタ
語彙が尽きたんだろうな・・・
0898デフォルトの名無しさん
NGNGこんなのがあったとは知りませんでした(本でも見かけたことないし・・)
勉強になりました。ありがとう。
0899デフォルトの名無しさん
NGNG0900デフォルトの名無しさん
NGNGそのボタンを削除してもコードが残りますが
そのコードを自動で削除してくる機能はありませんか?
0901デフォルトの名無しさん
NGNGbeginとendの間になにも書かなければコンパイルのときに自動で消える。
0902デフォルトの名無しさん
NGNG0903デフォルトの名無しさん
NGNG0904デフォルトの名無しさん
NGNG0905デフォルトの名無しさん
NGNG0906デフォルトの名無しさん
NGNG0907デフォルトの名無しさん
NGNG0908デフォルトの名無しさん
NGNGひょこっとメッセージが出ますがあれをdelphiで作れますか?
0909デフォルトの名無しさん
NGNG0910デフォルトの名無しさん
NGNG0911デフォルトの名無しさん
NGNG俺がいるよ(^^)ノシ
0912デフォルトの名無しさん
NGNG落馬するのは馬とは限らないじゃないか
0913デフォルトの名無しさん
NGNGうんこを排便。
精液を射精。
0914デフォルトの名無しさん
NGNGとか言われちゃうんですけど、使えないんですか?それとも何か設定
間違ってるんですかね?
0915デフォルトの名無しさん
NGNG0916デフォルトの名無しさん
NGNG?
0917デフォルトの名無しさん
NGNGあ だったら82 A0だよね。そう言う風に全角をバラしたいの。
0918914
NGNGレコードを、主キーを書き換えてコピーするという
ものです。こんな感じ。(主キー001のレコードを
000に書き換えてコピーする場合)
INSERT INTO Table(Code,Name,Address)
SELECT '000', Name , Address
From Table
Where uCode= '001'
InsertとSelectを組み合わせて使えないとか、そういう
話ですか?SQLの文法的にはあってると思うんですけど。
0919デフォルトの名無しさん
NGNG「ファイル名」に限らないですよね。AnsiStringに代入して、普通にs[1]やs[2]でアクセス。
0920デフォルトの名無しさん
NGNGオレもそのエラー文に苦しめられたなぁ・・
丸一日(本当に一日)試行錯誤を繰り返した挙句、
いつの間にか解消してしまって、解決策はもちろん原因すらわからなかったという・・
0921デフォルトの名無しさん
NGNGありがと。それで添え字バイト目にアクセスできるのは分かったけど、
あ を 82A0みたいに表示させる方法が解んないや(´▽`*)アハハ
0922デフォルトの名無しさん
NGNGIntToHexとかFormatとか
0923デフォルトの名無しさん
NGNG0924923
NGNG0925デフォルトの名無しさん
NGNG0926デフォルトの名無しさん
NGNGよい暗号化の方法ないでしょうか?
0927デフォルトの名無しさん
NGNGありがと〜。できますた。
0928デフォルトの名無しさん
NGNGそのアプリでパスワードチェックを行うだけならMD5とかでハッシュ値に変換しとけばいいし
FTPとかのパスワード入力を自動化するんであれば内部で共通キー使って暗号化するしかない。
0929デフォルトの名無しさん
NGNG自前で暗号化しとけばいいですか?
xor演算とかでいいですか?
0930デフォルトの名無しさん
NGNG0931|Д・彡 ◆A6VzDeLphI
NGNGhttp://www2.big.or.jp/~osamu/Delphi/browse.cgi?index=78308
0932デフォルトの名無しさん
NGNGvar
Socket: TClientSocket;
begin
Socket := TClientSocket.Create(nil);
try
Socket.ClientType := ctNonBlocking;
Socket.Host := '202.239.72.116';
Socket.Port := 80;
Socket.Active := True;
Socket.Active := False;
finally
Socket.Free;
end;
end;
'connect'API でWindows ソケットエラー: (10049)
が出るのですけど、どうすれば接続出来ますか?
0933デフォルトの名無しさん
NGNGで接続できました。
0934デフォルトの名無しさん
NGNGありがとうございます。やってみます。
0935908
NGNG希望の動きができました。
ただ、このアニメーションしたウィンドウが消えてくれません。
OnActiveにCloseを書いてみたのですが例外エラーで落ちて
しまいます。どこで消したらいいのでしょうか?
procedure TForm2.FormCreate(Sender: TObject);
begin
self.Left := Screen.Width - self.Width;
self.Top := Screen.Height - self.Height;
AnimateWindow(handle, 500, AW_SLIDE + AW_VER_NEGATIVE);
Sleep(1000);
AnimateWindow(handle, 500, AW_HIDE + AW_VER_POSITIVE);
end;
0936デフォルトの名無しさん
NGNG(AA、BBともTStringList)
AA[i] := BB[i]; i := i+1;
を特定の文字がAA[i]に含まれるまで繰り返すコードと、BBの要素があるだけ繰り返すコードを教えてください
0937デフォルトの名無しさん
NGNG0938908
NGNGしかし、少し消えるときに一瞬表示されるのか
ちらついてしまいます。
もっと良い方法はないでしょうか?
procedure TForm2.FormCreate(Sender: TObject);
begin
self.Left := Screen.Width - self.Width;
self.Top := Screen.Height - self.Height;
AnimateWindow(handle, 300, AW_SLIDE + AW_VER_NEGATIVE);
Sleep(500);
AnimateWindow(handle, 300, AW_HIDE + AW_VER_POSITIVE);
close;
end;
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
action := cafree;
end;
0939デフォルトの名無しさん
NGNGVBでやったほうがいいよ
0940デフォルトの名無しさん
NGNG0941デフォルトの名無しさん
NGNGSleep を使ってるからだと思います。
メインスレッドで Sleep を使うと止まってる間メッセージ処理ができなくなります。
タイマーの呼び出しで閉じるようにしてみてはどうですか?
0942デフォルトの名無しさん
NGNG要件の通りにコードしてみたけど、そのままだと使い物にならないと思う。
// 特定の文字が BB[i] に含まれるまで繰り返すコード
// 特定の文字が含まれる前に i が少ない方の要素数に達した時点で例外
while AnsiStrScan(PChar(BB[i]), 文字) = nil do
begin
AA[i] := BB[i];
i := i+1;
end;
// BB の要素があるだけ繰り返すコード
// AA の要素数が BB よりも少なければ i がそれに達した時点で例外
var J: Integer;
…
for J := i to BB.Count - 1 do
begin
AA[i] := BB[i];
i := i+1;
end;
0944908
NGNGPRINTCLIENTで書けというようなことを見たのでやってみたのですが
表示されません。どこが問題なのでしょうか?
procedure TfrmMessage.AppMessage(var Msg: TMsg; var Handled: Boolean);
begin
if Msg.message = WM_PRINTCLIENT then
begin
self.Canvas.TextOut(0,0,'hello world');
Handled := True;
end;
{ 他のメッセージに対しては Handled は False のままでおかれるので,}
{ 他のハンドルが処理することが可能となる}
end;
0945908
NGNG0946デフォルトの名無しさん
NGNG0947|Д・彡 ◆A6VzDeLphI
NGNGprocedure SleepProcessMessages(Milliseconds: Cardinal);
var
StartTime, NowTime: Cardinal;
begin
StartTime := GetTickCount;
while true do
begin
NowTime := GetTickCount;
if Milliseconds <= (NowTime - StartTime) then
Break;
Application.ProcessMessages;
end;
end;
ただし、連続で呼び出すと挙動がおかしくなります。
0948908
NGNG描画されません。なぜでしょう?
0949908
NGNG最小化されないようにできないでしょうか?
0950デフォルトの名無しさん
NGNGprocedure SleepProcessMessages(Milliseconds: Cardinal);
var
StartTime, NowTime: Cardinal;
begin
if InSleepProcessMessages then Exit;
InSleepProcessMessages := True;
try
StartTime := GetTickCount;
while true do
begin
NowTime := GetTickCount;
if Milliseconds <= (NowTime - StartTime) then
Break;
Application.ProcessMessages;
Windows.Sleep(1);
end;
finally
InSleepProcessMessages := False;
end;
end;
0951デフォルトの名無しさん
NGNGエラー リストのインデックスが範囲を超えています(1)が出ました
BBには'文字'が入った行は確実にあります・・どこがおかしいのかわかりません、助言お願いします・・・
0952デフォルトの名無しさん
NGNGまさかとは思うが、
begin
AA.Add(BB[i]);
i := i+1;
end;
で巧くいったりしないか?
0953デフォルトの名無しさん
NGNGぬおおおおおお 巧くいきました。ありがとう
かなり知識不足なんで入門サイト片っ端から読んできます
0954デフォルトの名無しさん
NGNGAnimateWindow の後に次の一行を入れてみてください。
InvalidateRect(Handle, nil, False);
ラベルには TLabel を貼ってもいいし、カスタムペイントが必要なら
OnPaint イベントを使ってください。
>>949 については申し訳ないですがよくわかりません。
下手すると TForm を使ってる時点でアウトかも。
0955908
NGNGパーフェクトです。ありがとうございます。
0956デフォルトの名無しさん
NGNGAAに何も文字が入っていないなら、
リストに有効なインデックスは存在しない。
だからアクセスしようとするとEStringListError例外が発生する。
それと、>>942の、文字列中に文字があるかどうかの判定で、
BBに格納されている文字列には全く含まれていない「文字」を
指定した場合はどうなるかな?
これも「リストのインデックスが範囲を超えています」EStringListError例外が発生するんじゃない?
漏れがテストしてみたら例外が発生した。
i := 0;
while AnsiStrScan(PChar(BB[i]), 文字) = nil do begin
AA.Add(BB[i]);
i := i+1;
if i >= BB.Count then Break; // 追加
end;
などとすると、とりあえずうまく行く。
0957デフォルトの名無しさん
NGNGもしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
Delphi使いが優しくコメントを返しますが、
お礼はDelphiの布教と初心者の救済をお願いします。
0958デフォルトの名無しさん
NGNG0959デフォルトの名無しさん
NGNGメモリーストリームにうつすにはどうしたらいいでしょうか?
どうもよく分からないのでご教授お願いします(汗
0960デフォルトの名無しさん
NGNG$200にSeekすればいいじゃん。
0961デフォルトの名無しさん
NGNGちょっと調べてみます
0962デフォルトの名無しさん
NGNG0963デフォルトの名無しさん
NGNGprocedure TForm1.Button1Click(Sender: TObject);
var
fromMS,toMS:TMemoryStream;
begin
fromMS := TMemoryStream.Create;
toMS := TMemoryStream.Create;
try
fromMS.LoadFromFile('C:\sample.txt');
fromMS.Position := $200;
toMS.SetSize($300-$200+1);
fromMS.Read(toMS.Memory^,$300-$200+1);
Memo1.Lines.LoadFromStream(toMS);
finally
fromMS.Free;
toMS.Free;
end;
end;
0964デフォルトの名無しさん
NGNGできました
ありがとうございます!!!
くだらない質問につきあっていただいてすいませんでした
0965デフォルトの名無しさん
NGNG起動するたびに毎回パスワードの入力を求められてしまって悩んでいます。
ttp://www.eva.hi-ho.ne.jp/shinnai/Oracle7/ODBCAutoLogin.html
を参考にしてレジストリにパスワードを入れたり、
Query1.param.Add('password=abcdefgh');
などとやってみましたが、駄目でした。
データベースにアクセスする為のパスワードを記憶させる方法は無いでしょうか?
0966デフォルトの名無しさん
NGNG0967デフォルトの名無しさん
NGNGレスありがとうございます。
純正のソフトだけでは出来ないのでしょうか?
0968デフォルトの名無しさん
NGNG大きいと失敗しますし、メモリが無駄かと思います。
読み出し側のストリームは TFileStream を使うことをおすすめします。
procedure TForm1.Button1Click(Sender: TObject);
var
ToMS: TMemoryStream;
FromFS: TFileStream;
begin
ToMS := TMemoryStream.Create;
try
FromFS := TFileStream.Create('C:\sample.txt', fmOpenRead);
try
ToMS.SetSize($300 - $200 + 1);
FromFS.Seek($200, soBeginning);
FromFS.Read(ToMS.Memory^, $300 - $200 + 1);
finally
FromFS.Free;
end;
Memo1.Lines.LoadFromStream(ToMS);
finally
ToMS.Free;
end;
end;
0969デフォルトの名無しさん
NGNGファイルの末尾を読みたいときはどうするの?
0970デフォルトの名無しさん
NGNG0971デフォルトの名無しさん
NGNGTDatabaseを貼り付ける
エリアスをお望みのDBに設定。
Paramsにユーザー名とパスを入力。
0972965
NGNGありがとうございます。やってみます。
0973デフォルトの名無しさん
NGNGくだすれDelphi(超初心者用)その18
http://pc5.2ch.net/test/read.cgi/tech/1093996761/
0974デフォルトの名無しさん
NGNGこの関数を使いたくBuffにText1.Textを渡したいのですが
どのようにわたせばいいのでしょうか?
Encrypts(PChar(Text1.Text), Length(Text1.Text), 'pass');
とやってみたのですが
変数パラメータに定数オブジェクトを渡すことはできません。
というコンパイルエラーが出てしまいます。
よろしくお願いします。
0975デフォルトの名無しさん
NGNGなんで PChar が参照わたしなんだろうか? へんなの
0976デフォルトの名無しさん
NGNGこのとおりだろな。
var
pc:PChar;
としておいて GetMem() で適当に確保して渡せばいいんじゃないの
0977デフォルトの名無しさん
NGNGポインタのポインタになるし、なんでだろうね。プロシージャ内で確保してるとか?
それにしても Size を設定してるし、ありえないか。
0978デフォルトの名無しさん
NGNG0979デフォルトの名無しさん
NGNGvar s : string;
s := Text1.Text;
Encrypts(PChar(s), Length(s), 'pass');
0980979
NGNG0981デフォルトの名無しさん
NGNGなんだから、なぜ var PChar なのかは、戻り値が入っていそうだな var String でも
いいようなきがするが
0982デフォルトの名無しさん
NGNGhttp://homepage3.nifty.com/m-and-i/tips/criptogram.htm
0984デフォルトの名無しさん
NGNGうまくいかなかったら、そういうの探してみるのもいいかも。
ま、フリーかどうか、商利用可かどうかとか、問題はあるのかもしれんけど。
0985974
NGNG0986デフォルトの名無しさん
NGNG使用してるDelphiバージョンのEncryptリンク参照。
Delphiのバージョンについては作者確認のバージョンなので、
Delphi5用でも、そのままか少しの手直しでDel7でも動作することもあるよん。
0987デフォルトの名無しさん
NGNG起動時に読み込んでおくのと、OKされて処理するときに読み込むのと どちらが良いんでしょうか
0988デフォルトの名無しさん
NGNG0989デフォルトの名無しさん
NGNG0990デフォルトの名無しさん
NGNG読み込み、ユーザー入力、本処理
よりは
ユーザー入力、読み込み、本処理
の方が読み込みと本処理が近くなるので読みやすくなる(可能性がある)から。
0991デフォルトの名無しさん
NGNGTrueでもfalseでも無いという事は実験でわかったのですが、では一体何なんですか?
0992デフォルトの名無しさん
NGNGおおっ、わたしと同じことを・・
わたしの調べでは、TrueでもFalseでもない謎の値が入っていて
その値はそのときによってまちまちでしたよ。
0993デフォルトの名無しさん
NGNG0994デフォルトの名無しさん
NGNGBoolean に限らず明示的に初期化されない変数は、その変数を確保した場所
(メモリ、レジスタ) に元から入っていた値になるのでは?
0995デフォルトの名無しさん
NGNGTrue→それ以外
じゃないの?
procedure TForm1.Button1Click(Sender: TObject);
var
Flag: Boolean;
B: Byte;
i: integer;
begin
Flag := True;
for i := 1 to 255 do begin
B := i and $FF;
Flag := Flag and Boolean(B);
end;
if Flag then MessageBox(Handle, 'Trueだったよ', 'Boolean型', MB_OK);
end;
でテストしたらメッセージボックス出るけど。
>>991
関数内で定義したローカル変数(上の例だとFlag、B、i)は、初期化されていないと考えましょう。
使うなら自分で明示的に初期化してから使わないと危険です。
0996デフォルトの名無しさん
NGNGクトゥルーでも眠ってるのかとビクビクしてました。
0997デフォルトの名無しさん
NGNGprocedure TForm1.Button1Click(Sender: TObject);
var
b: boolean;
begin
case b of
True:Button1.Caption := 'True';
False:Button1.Caption := 'False';
else
Button1.Caption := 'unknown';
end;
end;
を試してみるとTrueでもFalseでもないことがわかる。
not演算子を使ってもやっぱりunknown
0998デフォルトの名無しさん
NGNG0999デフォルトの名無しさん
NGNG1000デフォルトの名無しさん
NGNG10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。