Delphi(デルファイ)について、他のスレッドでは書き込めない超低レベル、もしくは
質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
Delphi使いが優しくコメントを返しますが、お礼はDelphiの布教と初心者の救済をお願いします。
■Delphi 10.3
ttp://www.embarcadero.com/jp/products/delphi
■Delphi Community Edition (無料)
iOS、Android、Windows、macOS向けアプリも開発可能。年間売上5000 US$以内の商用開発可。
https://www.embarcadero.com/jp/products/delphi/starter
<前スレ>
くだすれDelphi(超初心者用)その57
https://mevius.5ch.net/test/read.cgi/tech/1476332514/
探検
くだすれDelphi(超初心者用)その58【Embarcadero】
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2020/03/11(水) 18:30:39.03ID:NTiFnax/397デフォルトの名無しさん
2021/01/06(水) 11:20:51.65ID:DWMAQd+1 シーケンサーと信号のやり取りをするプログラムを作成中なんだけど、相手からの入力を監視する場合ってマルチタスクで監視するかアイドル時に監視するかどっちが負荷が少ないですか?
398デフォルトの名無しさん
2021/01/06(水) 11:54:00.61ID:9KnhFZZ7399デフォルトの名無しさん
2021/01/06(水) 13:13:15.14ID:DWMAQd+1 マルチスレッド、その通りです。
ありがとうございます。
ありがとうございます。
400デフォルトの名無しさん
2021/01/06(水) 18:47:01.99ID:xfJpH4ty 負荷を計測する方法は知らないけどスレッド増やしまくったらファンがブォンブォン唸り始めるんだがこれは負荷が高いってことなんでないの?
401デフォルトの名無しさん
2021/01/06(水) 19:10:41.59ID:tQupLFJC まず、マルチスレッドかどうかにかかわらずどうやってデータ監視してるの?
データが来なくても、頻繁に無限ループでチェックしたらそりゃマルチスレッドにしたとん、全開のCPUコアが増えるから死ぬだろ
データが来なくても、頻繁に無限ループでチェックしたらそりゃマルチスレッドにしたとん、全開のCPUコアが増えるから死ぬだろ
402デフォルトの名無しさん
2021/01/06(水) 19:17:25.73ID:tQupLFJC シーケンサがようわからんが、UIスレッド以外の監視スレッドは一つだけでいいんじゃ?
403デフォルトの名無しさん
2021/01/06(水) 19:25:44.95ID:g/7zORbT アイドル時をどうやって判断してるのかとか色々疑問が残る吉宗であった
404デフォルトの名無しさん
2021/01/06(水) 21:10:21.72ID:ShgVExHv405デフォルトの名無しさん
2021/01/06(水) 21:11:11.60ID:ShgVExHv CPUnの負荷を最小にするには割り込みしか無いよ。
406デフォルトの名無しさん
2021/01/06(水) 21:13:14.70ID:v3Dwbq+8 OnIdleとかそういうことじゃね?
407デフォルトの名無しさん
2021/01/06(水) 21:43:26.03ID:9KnhFZZ7408デフォルトの名無しさん
2021/01/06(水) 22:17:47.00ID:ShgVExHv409デフォルトの名無しさん
2021/01/06(水) 22:49:58.18ID:tQupLFJC 同一コア?
実行環境が1コアでも、OSのスレッドで分けてればタイムスライスでメインがbusyでも、子スレッドはbusyじゃないが
エスパーして、子スレッドで受信したデータを子スレッドでTThread.synchoronizeしてUIスレッドに同期とってUIスレッドに渡したりしたらメインがbusyなら子スレッドも引きづられるけど
その場合はTThread.Queueでいいのかな
つか、受信したデータどうするのか知らんが..
実行環境が1コアでも、OSのスレッドで分けてればタイムスライスでメインがbusyでも、子スレッドはbusyじゃないが
エスパーして、子スレッドで受信したデータを子スレッドでTThread.synchoronizeしてUIスレッドに同期とってUIスレッドに渡したりしたらメインがbusyなら子スレッドも引きづられるけど
その場合はTThread.Queueでいいのかな
つか、受信したデータどうするのか知らんが..
410デフォルトの名無しさん
2021/01/06(水) 23:05:19.23ID:tQupLFJC ごめん、1コアの話は忘れてくれw
同一コアって、OSのスレッドでわけてれば、OSがスレッドの実行をコアが複数あれば適切に振り分けるし、仮に同一コアになってもタイムスライスでメインがbusyでも子はbusyにならん
同一コアって、OSのスレッドでわけてれば、OSがスレッドの実行をコアが複数あれば適切に振り分けるし、仮に同一コアになってもタイムスライスでメインがbusyでも子はbusyにならん
411デフォルトの名無しさん
2021/01/06(水) 23:07:23.62ID:9KnhFZZ7 >>408
は?
は?
412デフォルトの名無しさん
2021/01/06(水) 23:11:46.48ID:ShgVExHv >>410
1コアの話は忘れた。
>> OSがスレッドの実行をコアが複数あれば適切に振り分けるし、
PPL使えばね
>>仮に同一コアになってもタイムスライスでメインがbusyでも子はbusyにならん
メインCPUがbusyってCPU使用率が100%近いって事だよね、子スレッドはどのCPUで動いてるの?
もっとググって!
1コアの話は忘れた。
>> OSがスレッドの実行をコアが複数あれば適切に振り分けるし、
PPL使えばね
>>仮に同一コアになってもタイムスライスでメインがbusyでも子はbusyにならん
メインCPUがbusyってCPU使用率が100%近いって事だよね、子スレッドはどのCPUで動いてるの?
もっとググって!
413デフォルトの名無しさん
2021/01/06(水) 23:22:00.30ID:tQupLFJC414デフォルトの名無しさん
2021/01/06(水) 23:24:18.56ID:9KnhFZZ7 >>412
問題です
WebBrokerアプリケーションを新規で作ります
デフォルトのHttp応答にDateTimeToStr(Now)を追加して時間が表示されるようにします
メインフォームにボタンを追加して
d := now;
while True do begin
if secondsBetween(now,d) > 10 then break;
end;
を実行するようにします
コンパイルし、Httpサーバーを起動します
デフォルトのブラウザを開くボタンを押します
追加したボタンを押してメインフォームを応答なしにします
ブラウザ側を更新します
さてどうなるでしょう
問題です
WebBrokerアプリケーションを新規で作ります
デフォルトのHttp応答にDateTimeToStr(Now)を追加して時間が表示されるようにします
メインフォームにボタンを追加して
d := now;
while True do begin
if secondsBetween(now,d) > 10 then break;
end;
を実行するようにします
コンパイルし、Httpサーバーを起動します
デフォルトのブラウザを開くボタンを押します
追加したボタンを押してメインフォームを応答なしにします
ブラウザ側を更新します
さてどうなるでしょう
415デフォルトの名無しさん
2021/01/06(水) 23:25:52.63ID:9KnhFZZ7 答え
メインフォームが応答なしでもブラウザは更新された正常に現在の時間を表示します
WebBrokerは意識せずマルチスレッドを実験できる良いコンポーネントですね
メインフォームが応答なしでもブラウザは更新された正常に現在の時間を表示します
WebBrokerは意識せずマルチスレッドを実験できる良いコンポーネントですね
416デフォルトの名無しさん
2021/01/06(水) 23:34:47.78ID:tQupLFJC DelphiのPPLって内部でOSのスレッド使って実装してて、
スレッドやスレッドプールをもっと使いやすくしたものがPPLというライブラリ
文末がおかしかくて放置しようかと思ったけど、彼は根本的に間違ってるのでちゃんと修正しときます
スレッドやスレッドプールをもっと使いやすくしたものがPPLというライブラリ
文末がおかしかくて放置しようかと思ったけど、彼は根本的に間違ってるのでちゃんと修正しときます
417デフォルトの名無しさん
2021/01/07(木) 00:08:05.04ID:yPIN+dBS >>412
>メインCPUがbusyってCPU使用率が100%近いって事だよね、子スレッドはどのCPUで動いてるの?
だから、タイムスライスとかでOSがスレッド(例えばメインスレッド)の実行を強制的に停止するんだって、で、他のスレッドにそのCPUを割り当てる
https://ascii.jp/elem/000/000/672/672088/
タイムスライスとかプリエンプティブとか、スレッドの実行がどうなってるか勉強しよう
>メインCPUがbusyってCPU使用率が100%近いって事だよね、子スレッドはどのCPUで動いてるの?
だから、タイムスライスとかでOSがスレッド(例えばメインスレッド)の実行を強制的に停止するんだって、で、他のスレッドにそのCPUを割り当てる
https://ascii.jp/elem/000/000/672/672088/
タイムスライスとかプリエンプティブとか、スレッドの実行がどうなってるか勉強しよう
418デフォルトの名無しさん
2021/01/07(木) 00:22:12.33ID:sNfaNTws >>417
前にも書いたがCPU負荷が100%近いってのが前提だが、その状態で子プロセスにCPUが割り当てられても殆ど動かん。
Webbrokerの話はそもそも、http serverは固まったアプリの子プロセスでないんで無いの?
前にも書いたがCPU負荷が100%近いってのが前提だが、その状態で子プロセスにCPUが割り当てられても殆ど動かん。
Webbrokerの話はそもそも、http serverは固まったアプリの子プロセスでないんで無いの?
419デフォルトの名無しさん
2021/01/07(木) 00:36:01.13ID:yPIN+dBS420デフォルトの名無しさん
2021/01/07(木) 00:41:06.78ID:yPIN+dBS だから、メインスレッドがbusyっていってんだから、負荷の原因はそのメインスレッドの処理が主で、そのメインスレッドの実行をOSが強制的に停止して他のスレッドに割り当てるんだから
421デフォルトの名無しさん
2021/01/07(木) 00:41:31.32ID:PM727nrP >>418
???
そもそもCPU使用率が100%なんて前提は誰も話してないわけで(まぁOSのタスクスケジューリングさえなんとか稼働してりゃ例に出したコードは動くが)
机上の空論はいいからコードで示して
???
そもそもCPU使用率が100%なんて前提は誰も話してないわけで(まぁOSのタスクスケジューリングさえなんとか稼働してりゃ例に出したコードは動くが)
机上の空論はいいからコードで示して
422デフォルトの名無しさん
2021/01/07(木) 00:50:04.29ID:PM727nrP あと面倒だけど確認の為にソースおさらいしてきた
WebBrokerの送受信はTThreadから派生したTidThreadが担当してて立派にメインスレッドの子スレッドだった事をお知らせしておきます
WebBrokerの送受信はTThreadから派生したTidThreadが担当してて立派にメインスレッドの子スレッドだった事をお知らせしておきます
423デフォルトの名無しさん
2021/01/07(木) 00:51:53.74ID:sNfaNTws メインスレッドがbusyってどんな状態?
もしかして、*****中って表示されてる事?
それならあなたの言う通りです。
ウィンドウが真っ白、無応答時のCPU負荷見てみて。
Windows95だとマウスすら動かんかったわ。
もしかして、*****中って表示されてる事?
それならあなたの言う通りです。
ウィンドウが真っ白、無応答時のCPU負荷見てみて。
Windows95だとマウスすら動かんかったわ。
424デフォルトの名無しさん
2021/01/07(木) 00:55:48.92ID:sNfaNTws >>422
嘘はいけないよ
嘘はいけないよ
425デフォルトの名無しさん
2021/01/07(木) 00:59:01.61ID:yPIN+dBS426デフォルトの名無しさん
2021/01/07(木) 01:00:53.79ID:yPIN+dBS 君が勝手に想定する状態でもPPLなら大丈夫っていってるんだけど
どういうことなの?
どういうことなの?
427デフォルトの名無しさん
2021/01/07(木) 01:08:10.16ID:PM727nrP >>424
だから嘘だと言うならソコード示してって
だから嘘だと言うならソコード示してって
428デフォルトの名無しさん
2021/01/07(木) 01:08:41.78ID:PM727nrP ソコードってなんじゃw
コードね
コードね
429デフォルトの名無しさん
2021/01/07(木) 01:10:13.52ID:PM727nrP >>425
407だけどアンカー間違いだよね?
407だけどアンカー間違いだよね?
430デフォルトの名無しさん
2021/01/07(木) 01:11:03.96ID:yPIN+dBS431デフォルトの名無しさん
2021/01/07(木) 01:11:50.55ID:sNfaNTws >>426
面倒くさいのでこれが最後ね
PPLは並列プログラミングライブラリーの略で、スレッドを複数のCPUに振り分けて高速化が出来る。
通信スレッドでPPLを使う事は通常少ないと思うが、PPLを使い子プロセスを実装した場合はメインスレッドとCPUが違うので取りこぼしは無いって事。
因みにこのスレはDelphiユーザーが多いからか、話が噛み合わない、日常的にマルチスレッドアプリを作成してるC++builderでした。
おやすみ
面倒くさいのでこれが最後ね
PPLは並列プログラミングライブラリーの略で、スレッドを複数のCPUに振り分けて高速化が出来る。
通信スレッドでPPLを使う事は通常少ないと思うが、PPLを使い子プロセスを実装した場合はメインスレッドとCPUが違うので取りこぼしは無いって事。
因みにこのスレはDelphiユーザーが多いからか、話が噛み合わない、日常的にマルチスレッドアプリを作成してるC++builderでした。
おやすみ
432デフォルトの名無しさん
2021/01/07(木) 01:13:00.20ID:PM727nrP いやだから逃げる前にコードをー・・・
433デフォルトの名無しさん
2021/01/07(木) 01:13:09.84ID:yPIN+dBS434デフォルトの名無しさん
2021/01/07(木) 01:13:55.72ID:PM727nrP 受信用にスレッド作る
メインで全部やると取りこぼす可能性がある
ってだけの話が何故ここまでこじれるかなぁ
メインで全部やると取りこぼす可能性がある
ってだけの話が何故ここまでこじれるかなぁ
435デフォルトの名無しさん
2021/01/07(木) 01:16:44.70ID:PM727nrP >>431
>CPUが違うので
ダウト!
どのスレッドがどのCPU(論理コアか??)使うかはOSのタスクスケジューラーが決める事で違う論理コアか同一論理コアかは一般的なWin32アプリケーションでは意識することができない
>CPUが違うので
ダウト!
どのスレッドがどのCPU(論理コアか??)使うかはOSのタスクスケジューラーが決める事で違う論理コアか同一論理コアかは一般的なWin32アプリケーションでは意識することができない
436デフォルトの名無しさん
2021/01/07(木) 01:23:47.23ID:aDgUeF3/ すげえC++BuilderでPPL使うとCPU使用率100%の壁突破して動けるのか
未来技術やんけ
未来技術やんけ
437デフォルトの名無しさん
2021/01/07(木) 06:24:47.98ID:hT+jKrlH なんでメインスレッドがbusy=cpu使用率100%前提で話しているの?
メインスレッドbusyっていうのはメインスレッド側の処理が手一杯で受信処理に時間が割り当てられず
取りこぼしてしまうような状態を言うんでないの?
一つのスレッドがCPU食い潰して他のスレッド止めてしまうのはもはやバグの類だろう
メインスレッドbusyっていうのはメインスレッド側の処理が手一杯で受信処理に時間が割り当てられず
取りこぼしてしまうような状態を言うんでないの?
一つのスレッドがCPU食い潰して他のスレッド止めてしまうのはもはやバグの類だろう
438デフォルトの名無しさん
2021/01/07(木) 06:44:54.69ID:hT+jKrlH コード実行時のタイムスケジュールの問題とハードウエアであるCPUのリソースの問題を混ぜこぜにして論ずるからこんなことになる。
シーケンサ、乱暴に言ってしまえばプログラマブルリレー回路の出力信号の受信の話だから前者の話だと思うんだけどな。
せいぜい数ms程度の信号でしょ
シーケンサ、乱暴に言ってしまえばプログラマブルリレー回路の出力信号の受信の話だから前者の話だと思うんだけどな。
せいぜい数ms程度の信号でしょ
439デフォルトの名無しさん
2021/01/07(木) 14:24:42.44ID:iqEdBFD0 なんかやけに伸びてるな
10年近くC++Builder使ってるけど>>431が何を言っているのか理解が追いつかん
10年近くC++Builder使ってるけど>>431が何を言っているのか理解が追いつかん
440デフォルトの名無しさん
2021/01/07(木) 21:39:31.17ID:3QA7toxp ざっと読んでみたけどPPLの並列スレッドとメインスレッドからCreateしたTThreadは別物って考えてそうだね。
メインスレッドのビジー状態が子スレッドを引きずるってTThread.Createで実行するかSynchronize内で実行しないとそんな事にはならないんだけども。
むかーしそれこそDelphi使い始めた頃、TThread.Create内にスレッドでやりたい処理書いちゃって応答なしになったの思い出したわ。なつかしいな。
メインスレッドのビジー状態が子スレッドを引きずるってTThread.Createで実行するかSynchronize内で実行しないとそんな事にはならないんだけども。
むかーしそれこそDelphi使い始めた頃、TThread.Create内にスレッドでやりたい処理書いちゃって応答なしになったの思い出したわ。なつかしいな。
441デフォルトの名無しさん
2021/01/08(金) 07:33:08.43ID:nf9CXDv3 そもそも>>397は負荷を聞いてて
アプリケーションのフリーズの話はしてない
メインVCLスレッドでも別スレッドでも同じ処理の負荷は変わらない
もし割り込みなし、OSのタイムスライスも気になるレベルで
入力監視がしたいと言うなら
sleepもなしにビジーウェイトを全力で回し続けるという事で、
そのスレッドはコア一つを可能な最大限まで食いつぶす
スレッドの優先度を上げれば取りこぼしや遅延が減る代わりに
他のプロセス、スレッドの実行に支障が出る可能性がある
そんだけの話では?
質問が言葉不足で意図や前提条件が不明だから本当に欲しい答えは分からんけど
アプリケーションのフリーズの話はしてない
メインVCLスレッドでも別スレッドでも同じ処理の負荷は変わらない
もし割り込みなし、OSのタイムスライスも気になるレベルで
入力監視がしたいと言うなら
sleepもなしにビジーウェイトを全力で回し続けるという事で、
そのスレッドはコア一つを可能な最大限まで食いつぶす
スレッドの優先度を上げれば取りこぼしや遅延が減る代わりに
他のプロセス、スレッドの実行に支障が出る可能性がある
そんだけの話では?
質問が言葉不足で意図や前提条件が不明だから本当に欲しい答えは分からんけど
442デフォルトの名無しさん
2021/01/08(金) 10:09:57.74ID:pqOuylpr >>441
そんな実装メインスレッドでやったらそれこそずっと応答なしのアプリが完成するわ
そんな実装メインスレッドでやったらそれこそずっと応答なしのアプリが完成するわ
443デフォルトの名無しさん
2021/01/08(金) 10:11:08.99ID:GVXTbeyU どうやったら応答しないアプリを作れるか考察するスレですね
444デフォルトの名無しさん
2021/01/08(金) 15:11:32.92ID:gj5d/kIu445デフォルトの名無しさん
2021/01/10(日) 16:47:14.22ID:YM2bPyCT Turbo Pascal 6.0(pc98)流したら嬉しい?
446デフォルトの名無しさん
2021/01/10(日) 17:32:11.28ID:fr5GfUjj >>445
流す、とは?
流す、とは?
447デフォルトの名無しさん
2021/01/10(日) 18:38:31.06ID:7jcMDU2L 流すのはトイレかそうめんぐらいしかない
448デフォルトの名無しさん
2021/01/10(日) 18:50:01.17ID:mPqKhk55 背中もお願いします
449デフォルトの名無しさん
2021/01/10(日) 19:59:15.57ID:LDe5rN+a >>445
ありがとう
ありがとう
450デフォルトの名無しさん
2021/01/11(月) 01:31:52.59ID:DVSPXgZF Kylix3なら封も開封して無いのが内にあるぞ
使えねー
使えねー
451デフォルトの名無しさん
2021/01/11(月) 14:46:44.02ID:jR/gx3T3 ディスク壊れてた
452デフォルトの名無しさん
2021/01/12(火) 15:31:20.64ID:5cL+u1HJ SQLサーバーからデータを読み込んでExcelの表を作るソフトを作ろうと考えています。
会社のPCにDelphi10.4が入っています。
すごくざっくりした質問なのですが標準のVCLの機能だけで作れますでしょうか?
DelphiからExcelを扱うのは練習してできるようになりました。
出来るか出来ないかならできるという答えなのでしょうが、この程度の質問をするような
レベルの人間にはハードルが高すぎますか?
会社のPCにDelphi10.4が入っています。
すごくざっくりした質問なのですが標準のVCLの機能だけで作れますでしょうか?
DelphiからExcelを扱うのは練習してできるようになりました。
出来るか出来ないかならできるという答えなのでしょうが、この程度の質問をするような
レベルの人間にはハードルが高すぎますか?
453デフォルトの名無しさん
2021/01/12(火) 15:43:48.11ID:j/YjggYo454デフォルトの名無しさん
2021/01/12(火) 15:45:57.35ID:j/YjggYo 何をやろうとしていて
今はこうやってるけど
ここの動作ができないので方法を知りたい
またはここでこういうエラーが出る
みたいな情報があれば優しい兄貴達がメッセージくれるよきっと
今はこうやってるけど
ここの動作ができないので方法を知りたい
またはここでこういうエラーが出る
みたいな情報があれば優しい兄貴達がメッセージくれるよきっと
455デフォルトの名無しさん
2021/01/12(火) 16:22:19.37ID:I6fF/sQE でもこんな頭の弱い人が作ったプログラムを使わされる方、もしくは辞めたり移動した後にメンテされられ方にとっては迷惑なんだよ
456452
2021/01/12(火) 17:07:33.71ID:5cL+u1HJ ありがとうございます。
ぼちぼち調べながらやっていきます。
また、質問させてもらうと思いますがよろしくお願いします。
自分の勉強の為なので、周りには迷惑かけるような事には
ならないと思います。
ご心配どうもです。
ぼちぼち調べながらやっていきます。
また、質問させてもらうと思いますがよろしくお願いします。
自分の勉強の為なので、周りには迷惑かけるような事には
ならないと思います。
ご心配どうもです。
457デフォルトの名無しさん
2021/01/12(火) 19:24:04.36ID:dZe4Jb1o458デフォルトの名無しさん
2021/01/12(火) 22:25:33.13ID:j/YjggYo >>456
がんばれー
がんばれー
459デフォルトの名無しさん
2021/01/13(水) 00:30:16.80ID:bv7dWCc1460デフォルトの名無しさん
2021/01/13(水) 09:36:17.06ID:++3RBKQw >>459
こういうバカっていなくならないよねw
こういうバカっていなくならないよねw
461デフォルトの名無しさん
2021/01/13(水) 17:28:25.54ID:XY6XuwJD >>460
上司にクソコード怒られてイライラしてるんだよきっと
上司にクソコード怒られてイライラしてるんだよきっと
462デフォルトの名無しさん
2021/01/13(水) 17:30:18.19 まぁどっちの気持ちもわかる
463デフォルトの名無しさん
2021/01/13(水) 17:35:13.75ID:Mb95xbD5 TListViewのヘッダが白くなるバグ回避法教えてよ
464デフォルトの名無しさん
2021/01/13(水) 17:50:37.60ID:OOEmtSqw OwnerDrawで塗りつぶし処理実装すりゃいいんじゃね
465デフォルトの名無しさん
2021/01/13(水) 17:53:22.33ID:Mb95xbD5 >>464
ヘッダの色を変えるならそれでいいんだけど
デフォでヘッダが真っ白になっててアレ
どうやらOSの設定に依存しているみたいって事がわかったんだけど
Win10の場合どこでその設定があるのかがわからない
TListViewのヘッダの色に影響するWin10の設定教えてエロくさい
ヘッダの色を変えるならそれでいいんだけど
デフォでヘッダが真っ白になっててアレ
どうやらOSの設定に依存しているみたいって事がわかったんだけど
Win10の場合どこでその設定があるのかがわからない
TListViewのヘッダの色に影響するWin10の設定教えてエロくさい
466デフォルトの名無しさん
2021/01/13(水) 18:04:52.43ID:Mb95xbD5 ちな、TStringGridの固定セルも同様にデフォで白になっとぇr
設計時にTStringGridやTListViewを貼り付けたら既に白
それでexeを作成し実行しても白なんだけど、
別のPCで実行するとちゃんとヘッダに色がついてるのでOS設定っぽい
何か気が付いたらこんなんなってた何時設定かえたんだろか
設計時にTStringGridやTListViewを貼り付けたら既に白
それでexeを作成し実行しても白なんだけど、
別のPCで実行するとちゃんとヘッダに色がついてるのでOS設定っぽい
何か気が付いたらこんなんなってた何時設定かえたんだろか
467デフォルトの名無しさん
2021/01/13(水) 18:17:32.16ID:OOEmtSqw 自分でどっかのプロパティいじった結果ならまっさらなプロジェクトで最初から作り直せばいいんじゃね
468デフォルトの名無しさん
2021/01/13(水) 19:09:29.35ID:d1Rkm+bX TListviewの諸問題にはもしtsReportで使ってるなら
いっそVirtualTreeviewなどに乗り換えるのも一つの手
TListviewの描画遅いし
いっそVirtualTreeviewなどに乗り換えるのも一つの手
TListviewの描画遅いし
469デフォルトの名無しさん
2021/01/13(水) 20:58:05.24ID:+S7gAlIH 10.4.1のTSpeedButtonおよびそれに派生するバグの件
470デフォルトの名無しさん
2021/01/13(水) 21:02:26.10ID:+S7gAlIH 10.4.1のTSpeedButtonおよびそれに派生するバグの件
QCのコメントが荒れてて、Marco Cantuが釈明する羽目になってるな。
Marcoはβテストに参加してくれといってるが、フリーソフトコミュじゃあるまいし
仕事でDelphiを使っててその開発上でバグに遭遇して困っているわけで、
俺たちはバグFixを期待してサブスク料を払ってるんだという突っ込みは当然だよな。
QCのコメントが荒れてて、Marco Cantuが釈明する羽目になってるな。
Marcoはβテストに参加してくれといってるが、フリーソフトコミュじゃあるまいし
仕事でDelphiを使っててその開発上でバグに遭遇して困っているわけで、
俺たちはバグFixを期待してサブスク料を払ってるんだという突っ込みは当然だよな。
471デフォルトの名無しさん
2021/01/13(水) 21:43:58.51ID:72pGagZC472デフォルトの名無しさん
2021/01/18(月) 20:25:38.96ID:Hfw9auVI 超基本機能のデグレのバグ指摘したらβテストに参加せよって
なんてメーカーだよ
今は何人が作ってるんだっけ?
なんてメーカーだよ
今は何人が作ってるんだっけ?
473デフォルトの名無しさん
2021/01/18(月) 23:45:51.46ID:s11ixUhB アメリカ人
474デフォルトの名無しさん
2021/01/21(木) 17:45:55.62ID:5uOPQELD475デフォルトの名無しさん
2021/01/23(土) 17:02:57.42ID:j761FKKd >>20
メモリーリークを防ぐためにParentを指定するというのは、どうやってやるのですか?
メモリーリークを防ぐためにParentを指定するというのは、どうやってやるのですか?
476デフォルトの名無しさん
2021/01/23(土) 20:04:23.97ID:cQOSINeL ParentじゃなくてOwnerだなぁ
Thoge.Create(AOwner);
AOwnerが破棄される時に一緒に破棄される(はず)
俺はなんだか気持ち悪いからCreateした物は明示的にどっかで破棄してるけど
Thoge.Create(AOwner);
AOwnerが破棄される時に一緒に破棄される(はず)
俺はなんだか気持ち悪いからCreateした物は明示的にどっかで破棄してるけど
477デフォルトの名無しさん
2021/01/24(日) 01:46:16.84ID:OkXYdm3O >>476
ありがとう
ありがとう
478デフォルトの名無しさん
2021/01/28(木) 00:28:57.27ID:/eIE0m5X レンタルサーバーのMySQLに接続したいのですがFDConnectionにSSHのパスフレーズを書く場所ってどこでしょうか.
よろしくお願いします。
よろしくお願いします。
479478
2021/01/28(木) 00:31:26.38ID:/eIE0m5X すみません、途中で送ってしまいました。
そもそも接続に使うのはFDConnectionでよかったでしょうか。
そもそも接続に使うのはFDConnectionでよかったでしょうか。
480デフォルトの名無しさん
2021/01/28(木) 00:51:39.09ID:hXwW1wFB481478
2021/01/28(木) 10:28:21.01ID:/eIE0m5X 有難うございます。
私に知識がなくMySQL Workbenchで接続ができたので、MySQL Workbenchと比べて設定内容が
違うので戸惑っている現状です。
>>478の質問以前に理解してなさすぎとわかりました。
(ネットの知識もあまりありません。)
MySQL WorkbenchとFDConnectionの比較になるのですが確認と質問をさせて下さい。
私が借りているサーバーのことをAサーバーとさせてもらいます。
1.ServerはAサーバーのIPアドレス?
2.MySQL Workbenchにはデータベースのホスト名とデータベース名を設定するのですが
FDConnectionではデータベースのホスト名はどこに書くのでしょうか?
3.Aサーバーへの接続時のユーザー名とパスワードはどこに書くのでしょうか?
4.教えていただいたヘルプにはSSLの事が書いてあったのですが、SSHでの接続はできないのでしょうか?
長くなって申し訳ないですがよろしくお願いします。
私に知識がなくMySQL Workbenchで接続ができたので、MySQL Workbenchと比べて設定内容が
違うので戸惑っている現状です。
>>478の質問以前に理解してなさすぎとわかりました。
(ネットの知識もあまりありません。)
MySQL WorkbenchとFDConnectionの比較になるのですが確認と質問をさせて下さい。
私が借りているサーバーのことをAサーバーとさせてもらいます。
1.ServerはAサーバーのIPアドレス?
2.MySQL Workbenchにはデータベースのホスト名とデータベース名を設定するのですが
FDConnectionではデータベースのホスト名はどこに書くのでしょうか?
3.Aサーバーへの接続時のユーザー名とパスワードはどこに書くのでしょうか?
4.教えていただいたヘルプにはSSLの事が書いてあったのですが、SSHでの接続はできないのでしょうか?
長くなって申し訳ないですがよろしくお願いします。
482デフォルトの名無しさん
2021/01/28(木) 10:48:33.00ID:hXwW1wFB >>481
SSH TunnelとFireDACのMySQL接続は全く別の機能
何某かのSSH Clientコンポーネント(またはSSH Tunnel機能を持つSSHクライアントソフト)でサーバーにSSH接続してlocalhoatへFireDACを接続する
どこに書くのでしょうか?とか丸投げしてないでちょっとは自分でトライアンドエラーしよう
SSH TunnelとFireDACのMySQL接続は全く別の機能
何某かのSSH Clientコンポーネント(またはSSH Tunnel機能を持つSSHクライアントソフト)でサーバーにSSH接続してlocalhoatへFireDACを接続する
どこに書くのでしょうか?とか丸投げしてないでちょっとは自分でトライアンドエラーしよう
483デフォルトの名無しさん
2021/01/28(木) 14:45:42.45ID:/eIE0m5X >>482
有難うございます。
丸投げしたつもりはないのですが申し訳ないです。
ググってもDelphi関係は英語ばかりでMySQL Workbenchの説明を見ながら何とか接続できた感じなので
FDConnectionのテストで全然接続できなくて何が間違えているのかさえ良くわからなくて質問させてもらいました。
自分の知識ではだめそうなので他の手を考えます。
ありがとうございました。
有難うございます。
丸投げしたつもりはないのですが申し訳ないです。
ググってもDelphi関係は英語ばかりでMySQL Workbenchの説明を見ながら何とか接続できた感じなので
FDConnectionのテストで全然接続できなくて何が間違えているのかさえ良くわからなくて質問させてもらいました。
自分の知識ではだめそうなので他の手を考えます。
ありがとうございました。
484デフォルトの名無しさん
2021/01/28(木) 17:17:16.92ID:/fB2idDN 初心者スレなんでいいと思うぜ
回答してくれる人がいるかは別だが
回答してくれる人がいるかは別だが
485481
2021/01/29(金) 15:09:24.05ID:08mxf/Xc >>482さんの
何某かのSSH Clientコンポーネント(またはSSH Tunnel機能を持つSSHクライアントソフト)でサーバーにSSH接続してlocalhoatへFireDACを接続する
をもとにググりまくってなんとか外部サーバーのMySQLと繋ぐことが出来ました。
ありがとうございました。
何某かのSSH Clientコンポーネント(またはSSH Tunnel機能を持つSSHクライアントソフト)でサーバーにSSH接続してlocalhoatへFireDACを接続する
をもとにググりまくってなんとか外部サーバーのMySQLと繋ぐことが出来ました。
ありがとうございました。
486デフォルトの名無しさん
2021/01/29(金) 15:27:17.80ID:v1y4KIIs487デフォルトの名無しさん
2021/01/29(金) 22:59:53.84ID:7ZkjE6Dj 10.3だけどListViewのGroupsってクリアしちゃまずいの?
クリアしてもIDの値がリセットされずに増え続けて
このあやしいIDをListViewItemのGroupIDに割り当てると項目が表示されなくなる
ListView1.Groups.Clear;
var gi := ListView1.Groups.Add;
// gi.ID => 0
ListView1.Groups.Clear;
gi := ListView1.Groups.Add;
// gi.ID => 1
ListView1.Groups.Clear;
gi := ListView1.Groups.Add;
// gi.ID => 2
この現象のせいで外部ファイルを読み込んでGroupsを(再)構成するというやり方が破綻する
Clearする前なら設計時のGroupsを使ったり動的にAddしていっても正常に動作している
今はClearせずにGroupsを検索してすでにあったらその項目を使い回すというコードでしのいでいるけど実質的なメモリリーク状態になっている
クリアしてもIDの値がリセットされずに増え続けて
このあやしいIDをListViewItemのGroupIDに割り当てると項目が表示されなくなる
ListView1.Groups.Clear;
var gi := ListView1.Groups.Add;
// gi.ID => 0
ListView1.Groups.Clear;
gi := ListView1.Groups.Add;
// gi.ID => 1
ListView1.Groups.Clear;
gi := ListView1.Groups.Add;
// gi.ID => 2
この現象のせいで外部ファイルを読み込んでGroupsを(再)構成するというやり方が破綻する
Clearする前なら設計時のGroupsを使ったり動的にAddしていっても正常に動作している
今はClearせずにGroupsを検索してすでにあったらその項目を使い回すというコードでしのいでいるけど実質的なメモリリーク状態になっている
488デフォルトの名無しさん
2021/01/30(土) 01:19:38.77ID:fQLcTFFI ソース見て何してるか調べたほうが早いのでは
489デフォルトの名無しさん
2021/01/30(土) 09:51:46.34ID:LGk+5gcn >>487
なんかバグっぽいね
ListView.Groups.Clear したら NextGroupIDは1に設定されるのに
Groups.Addしたら反映されずCrear前のGroupID + 1になってしまう
なんかバグっぽいね
ListView.Groups.Clear したら NextGroupIDは1に設定されるのに
Groups.Addしたら反映されずCrear前のGroupID + 1になってしまう
490デフォルトの名無しさん
2021/01/30(土) 10:01:14.58ID:LGk+5gcn >>489
と書いた後にソース見たんだけど
ListView.Groups.Clear じゃなくて ListView.Groups.ClearAndResetID を使えば
IDも0にリセットされるのに気付いた。
と書いた後にソース見たんだけど
ListView.Groups.Clear じゃなくて ListView.Groups.ClearAndResetID を使えば
IDも0にリセットされるのに気付いた。
491デフォルトの名無しさん
2021/02/01(月) 09:36:39.55ID:utVqb3+S そういう仕様か
492デフォルトの名無しさん
2021/02/02(火) 01:05:38.43ID:7g9y5NW4 Delphi10.4を使っています。
TEditにデータを入力してからMySQLに対してTFDQueryでSQL文を実行しています。
SQLは実行はできてデータベースも更新されるのですが、DBGridが真っ白になり表示がされません。
そこでSQLを実行した後に下記のようにしています。
FDQuery1.ExecSQL;
FDQuery1.sql.text := 'select * from DB_hoge';
.FDQuery1.open;
これでDBGridに表示はされるのですが、皆さんもこんな感じですか?
また、これだと先頭行に選択行が行ってしまいます。
例えば10行目の内容変更後も10行目が選択された状態にするにはどうすればいいでしょうか?
よろしくお願いします。
TEditにデータを入力してからMySQLに対してTFDQueryでSQL文を実行しています。
SQLは実行はできてデータベースも更新されるのですが、DBGridが真っ白になり表示がされません。
そこでSQLを実行した後に下記のようにしています。
FDQuery1.ExecSQL;
FDQuery1.sql.text := 'select * from DB_hoge';
.FDQuery1.open;
これでDBGridに表示はされるのですが、皆さんもこんな感じですか?
また、これだと先頭行に選択行が行ってしまいます。
例えば10行目の内容変更後も10行目が選択された状態にするにはどうすればいいでしょうか?
よろしくお願いします。
493デフォルトの名無しさん
2021/02/02(火) 05:07:12.22ID:lxj5XU1q >>492
どーしてもSQL文でやりたい場合
procedure hogehoge;
var
Qry : TFDQuery;
begin
Qry := TFDQuery.Create(nil);
try
Qry.Connection := FDQuery1.Connection;
Qry.SQL.text := 'update nantoka kantoka';
Qry.ExecSQL;
finally
FreeAndNil(Qry);
end;
if FDQuery1.Active then begin
FDQuery1.Refresh;
end else begin
FDQuery1.Open;
end;
end;
どーしてもSQL文でやりたい場合
procedure hogehoge;
var
Qry : TFDQuery;
begin
Qry := TFDQuery.Create(nil);
try
Qry.Connection := FDQuery1.Connection;
Qry.SQL.text := 'update nantoka kantoka';
Qry.ExecSQL;
finally
FreeAndNil(Qry);
end;
if FDQuery1.Active then begin
FDQuery1.Refresh;
end else begin
FDQuery1.Open;
end;
end;
494デフォルトの名無しさん
2021/02/02(火) 05:09:47.68ID:lxj5XU1q >>492
FDQueryの関数を使う場合
procedure hogehoge;
begin
FDQuery1.Edit; //DBのカーソルを編集したいレコードに合わせる事
FDQuery1.FieldByName('fugafuga').Value := something;
FDQuery1.Post;
end;
FDQueryの関数を使う場合
procedure hogehoge;
begin
FDQuery1.Edit; //DBのカーソルを編集したいレコードに合わせる事
FDQuery1.FieldByName('fugafuga').Value := something;
FDQuery1.Post;
end;
495デフォルトの名無しさん
2021/02/02(火) 05:10:33.84ID:lxj5XU1q トランザクションとかその他の面倒な事はすべてすっ飛ばしてるから適宜追加して
496デフォルトの名無しさん
2021/02/02(火) 06:03:32.97ID:XgMLtpK0 >>492
既存行の状態を管理したいならTBookmarkを使えばよいかと思う
既存行の状態を管理したいならTBookmarkを使えばよいかと思う
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国国営メディア「沖縄は日本ではない」… ★5 [BFU★]
- 高市政権にパイプ役不在…日中高まる緊張 公明党の連立離脱影響、自民内にも懸念「自分でまいた種は自分で刈り取ってもらわないと」★2 [ぐれ★]
- 【速報】 高市政権、「日本版DOGE」を立ち上げ 米国で歳出削減をした「政府効率化省(DOGE)」になぞらえたもの [お断り★]
- 【速報】 日経平均の下落率3%超す、財政懸念で長期金利上昇 [お断り★]
- 台湾声明 「台湾は独立した主権国家、中国は台湾を統治したことがなく、中国は口出しする権利ない」 中国が高市首相に抗議で ★7 [お断り★]
- 【こんなの初めて…】民泊には既にキャンセルも 中国の渡航自粛で ★2 [ぐれ★]
- 日経平均、49000円割れ 国賊高市を許すな ★2 [402859164]
- 高市政権「中国さん、日本はいつでも対話に応じるで」 [834922174]
- 【悲報】安倍晋三、弟子である高市早苗の暴走を止めずにひたすら静観。一体なぜ‥‥ [153736977]
- 日経平均、49000円割れ 国賊高市を許すな [402859164]
- 中国「高市が謝罪撤回しないとこれ全部なくなるけどどうする?」 [931948549]
- 吉村はん「高市さんは発言を撤回する必要ないですよ。中国の大阪総領事が謝罪すべき」 [256556981]
