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/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を使えばよいかと思う
497492
2021/02/02(火) 13:11:27.23ID:7g9y5NW4 皆さん、ありがとうございました。
希望通りの動きができました。
TFDQueryとTFDTableは基本同じことができると思っていいのでしょうか?
ヘルプにはTFDQueryのほうが効率がいいみたいなことが書いてあったのと、名前からSQL文
を扱うのに都合が良いのかな?と思った程度で使っています。
Tableを使うのが一般的なのでしょうか?
希望通りの動きができました。
TFDQueryとTFDTableは基本同じことができると思っていいのでしょうか?
ヘルプにはTFDQueryのほうが効率がいいみたいなことが書いてあったのと、名前からSQL文
を扱うのに都合が良いのかな?と思った程度で使っています。
Tableを使うのが一般的なのでしょうか?
498デフォルトの名無しさん
2021/02/02(火) 15:31:58.02ID:lxj5XU1q 想定通りの動作してるなら好きな方使えばいい
499デフォルトの名無しさん
2021/02/02(火) 16:56:46.94ID:rAxQwi5Z そもそも排他処理とか他で使ってるとか考えない個人レベルのプログラムで笑える
500デフォルトの名無しさん
2021/02/02(火) 17:14:11.70ID:+YBVnJ9D マウント取りたがりおじさんがやってきたw
501デフォルトの名無しさん
2021/02/02(火) 17:18:17.54ID:XgMLtpK0502デフォルトの名無しさん
2021/02/02(火) 17:18:37.66ID:lxj5XU1q すぐ下の495くらいは読んでほしいな
503492
2021/02/03(水) 01:06:08.16ID:eL+KspiW 皆さん、ありがとうございました。
トランザクションのことは知らなかったので助かりました。
Delphiのヘルプを読んだりググったりして、結局ヘルプのサンプルに倣ったコードを書きました。
これが自分の環境に合っているかは分からないのですが、とりあえず害はないみたいなので
様子見です。
また、聞きに来ることになると思いますがよろしくお願いします。
トランザクションのことは知らなかったので助かりました。
Delphiのヘルプを読んだりググったりして、結局ヘルプのサンプルに倣ったコードを書きました。
これが自分の環境に合っているかは分からないのですが、とりあえず害はないみたいなので
様子見です。
また、聞きに来ることになると思いますがよろしくお願いします。
504デフォルトの名無しさん
2021/02/03(水) 03:40:44.27ID:Fxo5X5Aw こんな奴を雇うクズ会社
505デフォルトの名無しさん
2021/02/06(土) 03:42:34.70ID:7O9KzLyl Community Editionをインストールしても最後に「BDS.exeが見つかりません」
というエラーが出て失敗する 何度やり直してもダメ もう入れるの諦めた・・
というエラーが出て失敗する 何度やり直してもダメ もう入れるの諦めた・・
506デフォルトの名無しさん
2021/02/06(土) 11:55:17.38ID:v0k5HBI3 >>505
よくわからんが、Windows Defenderの履歴は見た?
よくわからんが、Windows Defenderの履歴は見た?
507デフォルトの名無しさん
2021/02/06(土) 18:22:25.50ID:2QF+wrzj >>506
ESETを入れているので、DefenderはOFFになっている
エラーの原因は不明
最後の手段で、7GBもあるオフラインインストーラーのISOを
数時間かけてダウソして入れたら、何とか入った
Community Edition用のキーを入れたら、ちゃんとそれになった
ESETを入れているので、DefenderはOFFになっている
エラーの原因は不明
最後の手段で、7GBもあるオフラインインストーラーのISOを
数時間かけてダウソして入れたら、何とか入った
Community Edition用のキーを入れたら、ちゃんとそれになった
508デフォルトの名無しさん
2021/02/06(土) 18:31:10.66ID:iAhLUnF1509デフォルトの名無しさん
2021/02/06(土) 20:18:51.32ID:pFF8LBVY Community Editionてまだ10.3.3のまま?
510デフォルトの名無しさん
2021/02/06(土) 21:49:22.40ID:NS321T+y >>508
以前アップデート途中で固まって再起動したら。
ライセンス情報まで消えて、再インストール等非常に手間取った。
今もアップデータが有るって表情さててるけど怖くてそのまま。(10.4)
いつになったら、何も考えないでアップデート出来るのだろう? トラウマです。
以前アップデート途中で固まって再起動したら。
ライセンス情報まで消えて、再インストール等非常に手間取った。
今もアップデータが有るって表情さててるけど怖くてそのまま。(10.4)
いつになったら、何も考えないでアップデート出来るのだろう? トラウマです。
511デフォルトの名無しさん
2021/02/08(月) 21:19:22.83ID:mnaXFAst データベースのことで教えて下さい。
MySQLに FDQuery -> DatasetProvider -> Clientdataset -> Datasource -> DBGrid
こんな感じで接続しているのですが
テーブルでdecimal(11,2)と設定している所がオーバーフローと表示されてしまいます。
多分、ClientdatasetのFieldDefsのDataTypeがおかしいと思うのですが。。。
(ftBCDになっていました。)
MySQLのdecimal(11,2)に対応するDataTypeの設定は何になるのでしょうか?
因みにFDQuery -> Datasource -> DBGridと接続する時は正常に表示されます。
宜しくお願い致します。
MySQLに FDQuery -> DatasetProvider -> Clientdataset -> Datasource -> DBGrid
こんな感じで接続しているのですが
テーブルでdecimal(11,2)と設定している所がオーバーフローと表示されてしまいます。
多分、ClientdatasetのFieldDefsのDataTypeがおかしいと思うのですが。。。
(ftBCDになっていました。)
MySQLのdecimal(11,2)に対応するDataTypeの設定は何になるのでしょうか?
因みにFDQuery -> Datasource -> DBGridと接続する時は正常に表示されます。
宜しくお願い致します。
512デフォルトの名無しさん
2021/02/08(月) 22:40:51.73ID:69CLP1ii currencyはどうかな
513デフォルトの名無しさん
2021/02/08(月) 23:17:29.83ID:4klqN5oD >>511
CDSじゃなくてTFDMemTable噛ませてみて
CDSじゃなくてTFDMemTable噛ませてみて
514デフォルトの名無しさん
2021/02/10(水) 05:49:52.15ID:0CK/W94g コードテンプレートのリロードの方法がわかったぞ
code_templatesと同じ場所に
code_template_reloadというフォルダを作る
フォルダ名は何でも良いんだがとにかくcode_templatesの真上に来るような名前にする
例えばbegin.xmlというテンプレートに変更を加えたら
このファイルをつまんでreloadフォルダに移動すると
テンプレート一覧からbeginがフッと消える
そしたらexplorerで^zして移動を取り消すとまたファイルが戻って
修正した内容が反映される
新規作成したファイルもこの方法で反映される
これで細かい試行錯誤が楽にできる
いっそ.xmlファイル全部をガバっと移動して5秒後に戻すスクリプト書いて
ツールメニューから呼び出せばよいのかもしれない
code_templatesと同じ場所に
code_template_reloadというフォルダを作る
フォルダ名は何でも良いんだがとにかくcode_templatesの真上に来るような名前にする
例えばbegin.xmlというテンプレートに変更を加えたら
このファイルをつまんでreloadフォルダに移動すると
テンプレート一覧からbeginがフッと消える
そしたらexplorerで^zして移動を取り消すとまたファイルが戻って
修正した内容が反映される
新規作成したファイルもこの方法で反映される
これで細かい試行錯誤が楽にできる
いっそ.xmlファイル全部をガバっと移動して5秒後に戻すスクリプト書いて
ツールメニューから呼び出せばよいのかもしれない
515デフォルトの名無しさん
2021/02/10(水) 11:09:38.15ID:w5zc+tMZ community版さすがにアプデ遅すぎだろ
516デフォルトの名無しさん
2021/02/10(水) 12:03:36.20ID:v1Zy3l0+ >>512,513
ありがとうございました。
教えてもらったことを試したのですが改善されず色々調べてみたら
MySQL側とFDConnection側の文字コードの設定の食い違いでオーバーフロー
になるようでした。
少数を使わなければ正しく表示できていたので気づきませんでした。
お騒がせしました。
ありがとうございました。
教えてもらったことを試したのですが改善されず色々調べてみたら
MySQL側とFDConnection側の文字コードの設定の食い違いでオーバーフロー
になるようでした。
少数を使わなければ正しく表示できていたので気づきませんでした。
お騒がせしました。
517デフォルトの名無しさん
2021/02/10(水) 13:10:47.83ID:ulzQqER8 ここに書くぐらいだから初心者さんなのかもしれないが
>FDQuery -> Datasource -> DBGrid
じゃあなんでこっちはOKだったかの情報ももらえるとうれしいよね
>FDQuery -> Datasource -> DBGrid
じゃあなんでこっちはOKだったかの情報ももらえるとうれしいよね
518デフォルトの名無しさん
2021/02/10(水) 20:13:21.52ID:yblOKi5a もう終わった言語だよね?
519デフォルトの名無しさん
2021/02/10(水) 20:19:20.50ID:77qVEHiH520デフォルトの名無しさん
2021/02/10(水) 22:14:44.95ID:FfKq3R6D521デフォルトの名無しさん
2021/02/10(水) 22:53:51.82ID:Be7o6/0k 規約を守ってないかどうか、どうやって判定してるんだろう
522516
2021/02/10(水) 23:21:25.21ID:v1Zy3l0+ >>517
色々テストして数字のみのテーブルの時は少数があっても問題が出ない。
商品名などの文字列データを含むとオーバーフローと出たり、エラーメッセージで
'1000@'は整数ではありませんと出たり、また、文字列データの列順を変えると
数字の変わり方に変化が出たりしました。
なので、サーバーの照合順序の文字コードとアプリ側が合ってないのが原因と思いました。
>FDQuery -> Datasource -> DBGridで問題が出ないのは、多分、ClientdatasetのFieldDefsのDataTypeの
様にカラム毎のデータタイプをしていないからだと思います。
数字のみの時は正常なのでFDConnectionのCharacterSetを色々いじってcsSjisにしたら落ち着いた感じです。
データベース側はutf8mb4_general_ci,FDConnectionはcsSjisの組み合わせです。
理屈がわかってる訳ではないのでこれで正しいのかはわかりません。
長くなりましたが素人の考察です。
色々テストして数字のみのテーブルの時は少数があっても問題が出ない。
商品名などの文字列データを含むとオーバーフローと出たり、エラーメッセージで
'1000@'は整数ではありませんと出たり、また、文字列データの列順を変えると
数字の変わり方に変化が出たりしました。
なので、サーバーの照合順序の文字コードとアプリ側が合ってないのが原因と思いました。
>FDQuery -> Datasource -> DBGridで問題が出ないのは、多分、ClientdatasetのFieldDefsのDataTypeの
様にカラム毎のデータタイプをしていないからだと思います。
数字のみの時は正常なのでFDConnectionのCharacterSetを色々いじってcsSjisにしたら落ち着いた感じです。
データベース側はutf8mb4_general_ci,FDConnectionはcsSjisの組み合わせです。
理屈がわかってる訳ではないのでこれで正しいのかはわかりません。
長くなりましたが素人の考察です。
523デフォルトの名無しさん
2021/02/11(木) 01:37:39.80ID:7+LZM72z524デフォルトの名無しさん
2021/02/11(木) 04:42:02.58ID:r5DE13lh525デフォルトの名無しさん
2021/02/11(木) 05:16:17.51ID:p5U1dq/b なんかおかしいのが1匹張り付いてるね
526デフォルトの名無しさん
2021/02/11(木) 12:32:54.00ID:+Ah7+QkV >>520
10.4の品質が改善されないままcommunity版を放流しちゃうと
更に悪評が拡大するから出せない面もあるのでは
ここまで長引くと、もう品質改善にリソースを注ぎ込むための
利益に還元させるビジネスモデルとして難しいんだろうか
機能制限した10.2Starterを継続していき、community版を出さなければよかったのかなぁ
10.4の品質が改善されないままcommunity版を放流しちゃうと
更に悪評が拡大するから出せない面もあるのでは
ここまで長引くと、もう品質改善にリソースを注ぎ込むための
利益に還元させるビジネスモデルとして難しいんだろうか
機能制限した10.2Starterを継続していき、community版を出さなければよかったのかなぁ
527デフォルトの名無しさん
2021/02/11(木) 12:43:59.64ID:r5DE13lh WINUIみたいにPreview出せばいいのに
528デフォルトの名無しさん
2021/02/11(木) 12:50:56.84ID:Lq1QhI81529デフォルトの名無しさん
2021/02/11(木) 12:55:14.55ID:jHyALkc5 2007を使い続けている俺は勝ち組だな
新しい文字列の取り扱いを覚えたくないだけだが
(実際はもっぱら以前のプログラムのメンテしかやっていないからなのだが)
新しい文字列の取り扱いを覚えたくないだけだが
(実際はもっぱら以前のプログラムのメンテしかやっていないからなのだが)
530デフォルトの名無しさん
2021/02/11(木) 14:55:18.92ID:Lq1QhI81 10.3.3はHiDPI環境でスケーリンクを変えている際タイトルバーのサイズなど
対応し切れてない部分があるから10.4には期待してたんだけどね
対応し切れてない部分があるから10.4には期待してたんだけどね
531デフォルトの名無しさん
2021/02/12(金) 06:55:30.14ID:QnldmLcq 10.3が快適すぎて流石に文句行ったらバチ当たるレベル
手持ちのバージョンがXE7までしか無いから
CE切られたら不自由すぎて引退考える
手持ちのバージョンがXE7までしか無いから
CE切られたら不自由すぎて引退考える
532デフォルトの名無しさん
2021/02/12(金) 18:36:00.54ID:HelPTmty 教えてください
533532
2021/02/12(金) 18:36:45.24ID:HelPTmty ■;パネル |:splitterの時に
534532
2021/02/12(金) 18:38:05.16ID:HelPTmty ■|■とするとSplitterが全然動かないけど特別な設定ってありますか?
535デフォルトの名無しさん
2021/02/12(金) 18:50:43.33ID:GhVjb1+H >>534
AlignLayoutが左からLeft Left Clientになってるか確認
AlignLayoutが左からLeft Left Clientになってるか確認
536532
2021/02/12(金) 19:22:30.78ID:HelPTmty レスありがとうございます
AlignはLeft Left Clientにしていますが、なぜか動かないんです。
PanelじゃなくMemoとかだとカンタンなんですが・・。
AlignはLeft Left Clientにしていますが、なぜか動かないんです。
PanelじゃなくMemoとかだとカンタンなんですが・・。
537デフォルトの名無しさん
2021/02/12(金) 19:50:30.74ID:n1OCIsO2 すげえな
質問が全然わからないわw
質問が全然わからないわw
538532
2021/02/12(金) 19:59:15.09ID:HelPTmty 言葉足らずですみません
539532
2021/02/12(金) 20:00:17.82ID:HelPTmty Splitter使うのが初めてでさっぱり判らないんです。
540デフォルトの名無しさん
2021/02/12(金) 20:18:52.16ID:cNPyFZGq ホントにSplitter使ってる?何か別のコンポの可能性は?
そもそもDelphiのバージョンはいくつ?
そもそもDelphiのバージョンはいくつ?
541デフォルトの名無しさん
2021/02/12(金) 20:21:03.60ID:cNPyFZGq ひょっとしてIDEでデザイン時に動かそうとしてない?
ちゃんとコンパイルビルドしてから動かしてる?
ちゃんとコンパイルビルドしてから動かしてる?
542デフォルトの名無しさん
2021/02/12(金) 20:34:29.57ID:n1OCIsO2 !やっとわかったわ533は記号の説明か
サンプルでパネル2つとスプリッタ1つ配置した画面でも動かないわけ?
サンプルでパネル2つとスプリッタ1つ配置した画面でも動かないわけ?
543デフォルトの名無しさん
2021/02/12(金) 21:21:49.39ID:QnldmLcq まずは気を落ち着けてまっさらなフォームで
panel配置,align=left
splitter配置,align=left
まずはこの2つでやってみると良い
memoで出来てるならpanelも一緒なはずだからなにか勘違い・手違いをしている
全然関係ないけど
exe/dcuの出力先を
$(Temp)\$(Platform)\$(Config)\RbdUeZpU <- パスワードジェネレータで作ったランダムな文字列
にするとクソデカexeをtempフォルダに作れて使い捨てテストプロジェクトなんかは便利だ
panel配置,align=left
splitter配置,align=left
まずはこの2つでやってみると良い
memoで出来てるならpanelも一緒なはずだからなにか勘違い・手違いをしている
全然関係ないけど
exe/dcuの出力先を
$(Temp)\$(Platform)\$(Config)\RbdUeZpU <- パスワードジェネレータで作ったランダムな文字列
にするとクソデカexeをtempフォルダに作れて使い捨てテストプロジェクトなんかは便利だ
544デフォルトの名無しさん
2021/02/12(金) 22:37:13.80ID:Q/MXWGlX 質問のIDがhelpだすごい。
memoではうまく行くなら、
splitterをpanelの中に入れちゃってそうだな。
構造ツリーで
Form1
Panel1
Panel2
Splitter1
のようになっていたら動かない。
下のようにSplitterを作用させるPanelと同じ階層に置く必要がある。
Form1
Panel1
Panel2
Splitter1
memoではうまく行くなら、
splitterをpanelの中に入れちゃってそうだな。
構造ツリーで
Form1
Panel1
Panel2
Splitter1
のようになっていたら動かない。
下のようにSplitterを作用させるPanelと同じ階層に置く必要がある。
Form1
Panel1
Panel2
Splitter1
545532
2021/02/13(土) 09:27:36.91ID:Wl7fFNG/ いっぱいアドバイスありがとうございます
546532
2021/02/13(土) 09:36:46.49ID:Wl7fFNG/ 送ってしまった。
Panel1(atLeft)
Panel2(atCliant)
Splitter(atLeft)
のようにやると、>>544さんの仰るとおり左側は動きます。
ですが、Panel1とPanel2でSplitterを挟む方法が判りません
急にMemoでもできなくなってしまった。
まさか、インターフェースでつまずくとは思いませんでした。
Panel1(atLeft)
Panel2(atCliant)
Splitter(atLeft)
のようにやると、>>544さんの仰るとおり左側は動きます。
ですが、Panel1とPanel2でSplitterを挟む方法が判りません
急にMemoでもできなくなってしまった。
まさか、インターフェースでつまずくとは思いませんでした。
547デフォルトの名無しさん
2021/02/13(土) 10:32:34.68ID:RAblQzIu 1 Panel1、Panel2、Splitter1のAlignを全てalNoneにする
2 Panel1を切り取って貼り付けてAlignをalLeftにする
3 Splitter1を切り取ってPanel1の右側に貼り付けてAlignをalLeftにする
4 Panel2を切り取ってSplitter1の右側に貼り付けてAlignをalClientにする
これでどうだ?
2 Panel1を切り取って貼り付けてAlignをalLeftにする
3 Splitter1を切り取ってPanel1の右側に貼り付けてAlignをalLeftにする
4 Panel2を切り取ってSplitter1の右側に貼り付けてAlignをalClientにする
これでどうだ?
548デフォルトの名無しさん
2021/02/13(土) 11:05:20.62ID:Y7XMn6Sd こいつ、ホントにわかってんのか?
550532
2021/02/13(土) 11:24:29.86ID:Wl7fFNG/ 丁寧に教えてくださりありがとうございました
レベルの低い質問すみませんでした
レベルの低い質問すみませんでした
551デフォルトの名無しさん
2021/02/13(土) 11:37:01.98ID:Y7XMn6Sd552532
2021/02/13(土) 11:45:59.16ID:Wl7fFNG/ ごめんなさい
553デフォルトの名無しさん
2021/02/13(土) 11:51:17.55ID:RAblQzIu555532
2021/02/13(土) 11:57:25.84ID:Wl7fFNG/ また送ってしまった
Panel1
Panel2
Splitter
のようにしてみましたが、動かずに困っていました。
>>544さんの言うようにやってみましたが、最初はなぜかうまくいかずに
試行錯誤していたらできるようになりました
なんか説明が下手で済みません。
Panel1
Panel2
Splitter
のようにしてみましたが、動かずに困っていました。
>>544さんの言うようにやってみましたが、最初はなぜかうまくいかずに
試行錯誤していたらできるようになりました
なんか説明が下手で済みません。
556532
2021/02/13(土) 12:03:27.37ID:Wl7fFNG/ Splitterを一回切り取って他の場所にコピーしてAlignをLeftにすることで解決しました。
後は水平も必要なんですが、もう少し試行錯誤します。
後は水平も必要なんですが、もう少し試行錯誤します。
557デフォルトの名無しさん
2021/02/13(土) 12:11:19.67ID:RAblQzIu >>556
縦横のSplitterが必要で例えばメーラのように
縦を画面の上下に通して横を右のパネルを分割するような構成にする場合
簡単なのは
1 画面の中に左から順にPanel1(alLeft)、Splitter1(alLeft)、Panel2(alClient)を配置する
2 Panel2の中に上から順にPanel3(alTop)、Splitter2(alTop)、Panel4(alClient)を配置する
こうするといいかと思う
縦横のSplitterが必要で例えばメーラのように
縦を画面の上下に通して横を右のパネルを分割するような構成にする場合
簡単なのは
1 画面の中に左から順にPanel1(alLeft)、Splitter1(alLeft)、Panel2(alClient)を配置する
2 Panel2の中に上から順にPanel3(alTop)、Splitter2(alTop)、Panel4(alClient)を配置する
こうするといいかと思う
559532
2021/02/13(土) 13:09:10.80ID:Wl7fFNG/ >>557
教えていただいた方法で、水平方向のSplitteの動作を実現できました。
alClientを使うことと,Splitterを一度切り取ることがポイントなんですね。
勉強になりました。ありがとうございました!
教えていただいた方法で、水平方向のSplitteの動作を実現できました。
alClientを使うことと,Splitterを一度切り取ることがポイントなんですね。
勉強になりました。ありがとうございました!
560デフォルトの名無しさん
2021/02/13(土) 13:10:26.55ID:RAblQzIu561532
2021/02/13(土) 13:19:32.42ID:0pD1IJR5 すみません、設計時にも動くと勘違いしていました。
コンパイルしてexeにしたら動きました!
コンパイルしてexeにしたら動きました!
563デフォルトの名無しさん
2021/02/13(土) 16:17:45.60ID:B+YKCIU8 俺だよ俺
564デフォルトの名無しさん
2021/02/13(土) 16:58:08.66ID:dLeNuyjF 今回のsplitterのようにフォームデザイナ上のドラッグドロップでは難しいコントロールの位置調整は、
オブジェクトインスペクタで座標を編集するといい。
同じ階層にPanel1, Panel2, Splitter1があったとき、
例えばPanel1(Align=alLeft, Left=0, Width=100) Panel2(Align=alClient, Left=100, Width=任意)という状況なら、
オブジェクトインスペクタでSplitter1.Leftを0にすればPanel1の左に、Splitter1.Left=100とすればPanel1とpanel2の間に収まる。
数字はぴったり合わせなくてもデザイナが適当に補正してくれる。
オブジェクトインスペクタで座標を編集するといい。
同じ階層にPanel1, Panel2, Splitter1があったとき、
例えばPanel1(Align=alLeft, Left=0, Width=100) Panel2(Align=alClient, Left=100, Width=任意)という状況なら、
オブジェクトインスペクタでSplitter1.Leftを0にすればPanel1の左に、Splitter1.Left=100とすればPanel1とpanel2の間に収まる。
数字はぴったり合わせなくてもデザイナが適当に補正してくれる。
565532
2021/02/14(日) 12:26:12.35ID:9r8GentR 座標大事なんですよね。
566532
2021/02/14(日) 12:29:14.74ID:9r8GentR またやっちゃった
ボタンを等間隔で並べるときとかオブジェクトインスペクタで数字を設定すると見栄えが良くなりますし。
今回のsplitterでは切り取りができることを初めて知りましたが、
ボタンを等間隔で並べるときとかオブジェクトインスペクタで数字を設定すると見栄えが良くなりますし。
今回のsplitterでは切り取りができることを初めて知りましたが、
567532
2021/02/14(日) 12:31:27.86ID:9r8GentR 数字で設定すればキレイに行くのが発見でした
無駄にコメント欄使ってしまい申し訳ありません
ついくせでshift+enter押してしまうんです
無駄にコメント欄使ってしまい申し訳ありません
ついくせでshift+enter押してしまうんです
568デフォルトの名無しさん
2021/02/14(日) 13:44:01.50ID:fYbbX2St 質問なら答えてあげるけど
ここは日記じゃないからな少し自重したほうがいいのでは
ここは日記じゃないからな少し自重したほうがいいのでは
569532
2021/02/14(日) 14:29:31.50ID:8ung+JgV すみません、Splitterは設計時にも動くと勘違いしていました。
コンパイルしてexeにしたら動きました!
コンパイルしてexeにしたら動きました!
570デフォルトの名無しさん
2021/02/14(日) 14:32:12.88ID:P11XyCvR ゆとり
571532 ◆9NhhNagxEk
2021/02/14(日) 16:46:10.26ID:9r8GentR >>562
そうですね。失礼しました。
そうですね。失礼しました。
572532 ◆9NhhNagxEk
2021/02/14(日) 16:51:36.66ID:9r8GentR つくっているのは、Panel2にScrollboxにImageを乗せて
ウィンドウの大きさに比例して動的に倍率を変えて画像が表示するものを作っています。
Panel2のサイズをリアルタイムで判らないとできないと思えるのですが
どうやってもうまくいきません。
わかりにくい質問ですみません
ウィンドウの大きさに比例して動的に倍率を変えて画像が表示するものを作っています。
Panel2のサイズをリアルタイムで判らないとできないと思えるのですが
どうやってもうまくいきません。
わかりにくい質問ですみません
573デフォルトの名無しさん
2021/02/14(日) 17:16:46.32ID:Z2QLb1zh >>572
なんか質問がイマイチよくわからんが
Panel2にTImageを貼り付けて、Alignを alClientにして、TImageの2のプロパティ StrechをTrueにするだけでいいような気がするが。
画像のアスペクト比を維持したいのなら多少工夫をする必要はあるけど
Panelのサイズは WidthとHeightプロパティで取得できるでしょ
なんか質問がイマイチよくわからんが
Panel2にTImageを貼り付けて、Alignを alClientにして、TImageの2のプロパティ StrechをTrueにするだけでいいような気がするが。
画像のアスペクト比を維持したいのなら多少工夫をする必要はあるけど
Panelのサイズは WidthとHeightプロパティで取得できるでしょ
574532 ◆9NhhNagxEk
2021/02/14(日) 17:31:13.21ID:9r8GentR 画像のアスペクト比を取得して、元の画像の比率で、
拡大縮小させ方法が判らず悩んでいます
拡大縮小させ方法が判らず悩んでいます
575デフォルトの名無しさん
2021/02/14(日) 17:41:11.43ID:4NJ07IZU とりあえずソースでもアプしてみなよ
質問内容が意味不明では誰もまともに答えられんよ
質問内容が意味不明では誰もまともに答えられんよ
576デフォルトの名無しさん
2021/02/14(日) 18:09:45.64ID:fYbbX2St ・画像はどうやって取り込みするの?その画像のサイズはどうやって知るの?
・倍率の変更って具体的にはどういう仕組みを考えてるの?画像の倍率変更は何を使って行うの?
・PanelにScrollBoxをのせる理由は?
・ImageはTImageとしてそれを使う理由は?どう使うつもり?
・倍率の変更って具体的にはどういう仕組みを考えてるの?画像の倍率変更は何を使って行うの?
・PanelにScrollBoxをのせる理由は?
・ImageはTImageとしてそれを使う理由は?どう使うつもり?
577532 ◆9NhhNagxEk
2021/02/14(日) 18:23:55.25ID:9r8GentR どうやってもロダに上がらないのでソース貼り助けます
private
{ Private 宣言 }
mWidth : Integer;
mHeight : Integer;
ClientW : Integer;
ClientH : Integer;
public
{ Public 宣言 }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
private
{ Private 宣言 }
mWidth : Integer;
mHeight : Integer;
ClientW : Integer;
ClientH : Integer;
public
{ Public 宣言 }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
578532 ◆9NhhNagxEk
2021/02/14(日) 18:24:23.87ID:9r8GentR procedure TForm1.Button1Click(Sender: TObject);
begin
Image1.AutoSize := True;
Image1.Picture.LoadFromFile(FileListBox1.FileName);
mWidth := Image1.Picture.Width;
mHeight := Image1.Picture.Height;
Image1.AutoSize := False;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
//Image1.AutoSize := True;
Image1.Width := mWidth div 2;
Image1.Height := mHeight div 2;
//Image1.AutoSize := False;
end;
begin
Image1.AutoSize := True;
Image1.Picture.LoadFromFile(FileListBox1.FileName);
mWidth := Image1.Picture.Width;
mHeight := Image1.Picture.Height;
Image1.AutoSize := False;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
//Image1.AutoSize := True;
Image1.Width := mWidth div 2;
Image1.Height := mHeight div 2;
//Image1.AutoSize := False;
end;
579532 ◆9NhhNagxEk
2021/02/14(日) 18:24:30.81ID:9r8GentR procedure TForm1.Button3Click(Sender: TObject);
begin
//Image1.AutoSize := True;
Image1.Width := mWidth;
Image1.Height := mHeight;
//Image1.AutoSize := False;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
//Image1.AutoSize := True;
Image1.Width := mWidth * 2;
Image1.Height := mHeight * 2;
//Image1.AutoSize := False;
end;
procedure TForm1.FileListBox1Click(Sender: TObject);
begin
Image1.AutoSize := True;
Image1.Picture.LoadFromFile(FileListBox1.FileName);
mWidth := Image1.Picture.Width;
mHeight := Image1.Picture.Height;
Label1.Caption := inttostr(Panel2.Width);
Label2.Caption := inttostr(Panel2.Height);
Image1.AutoSize := False;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
//
end;
こんな感じなんです。
begin
//Image1.AutoSize := True;
Image1.Width := mWidth;
Image1.Height := mHeight;
//Image1.AutoSize := False;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
//Image1.AutoSize := True;
Image1.Width := mWidth * 2;
Image1.Height := mHeight * 2;
//Image1.AutoSize := False;
end;
procedure TForm1.FileListBox1Click(Sender: TObject);
begin
Image1.AutoSize := True;
Image1.Picture.LoadFromFile(FileListBox1.FileName);
mWidth := Image1.Picture.Width;
mHeight := Image1.Picture.Height;
Label1.Caption := inttostr(Panel2.Width);
Label2.Caption := inttostr(Panel2.Height);
Image1.AutoSize := False;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
//
end;
こんな感じなんです。
580デフォルトの名無しさん
2021/02/14(日) 18:40:18.53ID:Z2QLb1zh581デフォルトの名無しさん
2021/02/14(日) 18:40:37.28ID:EwStug71 こういう手合いは自分で考えることもせずあれもこれもとしつこく粘着してくる
582532 ◆9NhhNagxEk
2021/02/14(日) 19:03:02.66ID:9r8GentR 見本がこれですパスはすべて123です
https://up2.karinto.in/uploader/download/1613296732.zip
このソフトのautoモードを実装したいのです
よろしくお願い致します
https://up2.karinto.in/uploader/download/1613296732.zip
このソフトのautoモードを実装したいのです
よろしくお願い致します
583デフォルトの名無しさん
2021/02/14(日) 19:04:30.55ID:pwOd/6zZ はいはい丸投げ丸投げ
584デフォルトの名無しさん
2021/02/14(日) 19:38:46.26ID:e5KKhyzi fmxにはimage系の色々便利なコンポーネントがある
585デフォルトの名無しさん
2021/02/14(日) 20:26:12.76ID:fYbbX2St >>580
Propotionalは縮小はできても100%を超える拡大は無理みたい
Propotionalは縮小はできても100%を超える拡大は無理みたい
586デフォルトの名無しさん
2021/02/14(日) 20:33:00.63ID:Z2QLb1zh >>585
あ、そうなんだ
画像系はほとんどやんないし縮小くらいしかやったことないから知らなかったよ
まぁそれならコード書くか、適当なコンポーネントでも探すかだな
GDI+あたりを使えば比較的楽にできそうかな
あ、そうなんだ
画像系はほとんどやんないし縮小くらいしかやったことないから知らなかったよ
まぁそれならコード書くか、適当なコンポーネントでも探すかだな
GDI+あたりを使えば比較的楽にできそうかな
587デフォルトの名無しさん
2021/02/15(月) 09:00:31.63ID:8yfKyD33 >>582
もうその見本を使い続けろよ、よくできてるじゃないか?w
もうその見本を使い続けろよ、よくできてるじゃないか?w
588デフォルトの名無しさん
2021/02/15(月) 18:00:35.98ID:s4Yu3N1x DBEditやDBComboBoxについて教えてください。
DBEditやDBComboBoxを配置してDBGridのセルを選択すると、そのレコードの各フィールド値が
表示され値を変えれば変更するまではできたのですが、新規のレコード追加がうまくできません。
DBGridをクリックした時点でレコードが選択された状態になっているので、追加できたとしても他の
レコードも変更されたり重複エラーが出てしまします。
DataSetのActiveをFalseにするとDBEditやDBComboBoxの入力が出来なくなるようで、
どうしたものかとググって調べているのですがお手上げ状態です。
普通のEditやConboBoxを使えば追加、更新は出来ますが今後のためにも知っておきたいので
よろしくお願いします。
DBEditやDBComboBoxを配置してDBGridのセルを選択すると、そのレコードの各フィールド値が
表示され値を変えれば変更するまではできたのですが、新規のレコード追加がうまくできません。
DBGridをクリックした時点でレコードが選択された状態になっているので、追加できたとしても他の
レコードも変更されたり重複エラーが出てしまします。
DataSetのActiveをFalseにするとDBEditやDBComboBoxの入力が出来なくなるようで、
どうしたものかとググって調べているのですがお手上げ状態です。
普通のEditやConboBoxを使えば追加、更新は出来ますが今後のためにも知っておきたいので
よろしくお願いします。
589532 ◆9NhhNagxEk
2021/02/15(月) 21:28:19.75ID:Y0qPpBSk >>587
なんかそれっぽいのができたので、使ってみてもらえませんか?
よろしくお願いいたします。
https://up3.karinto.in/uploader2/download/1613391876.zip
パスは123です
なんかそれっぽいのができたので、使ってみてもらえませんか?
よろしくお願いいたします。
https://up3.karinto.in/uploader2/download/1613391876.zip
パスは123です
590デフォルトの名無しさん
2021/02/15(月) 21:30:39.37ID:sJ8ABHAV591デフォルトの名無しさん
2021/02/15(月) 23:57:49.51ID:/39Nd84y >>589
rtl220.bplがなくて起動できない
rtl220.bplがなくて起動できない
592532 ◆9NhhNagxEk
2021/02/16(火) 01:23:32.21ID:mFLoLS1Q■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【サッカー】U-17日本代表、激闘PK戦制す 北朝鮮撃破で6大会ぶり8強入り U17W杯 [久太郎★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★3 [ぐれ★]
- 【サッカー】日本代表、ボリビアに3発快勝 森保監督通算100試合目を飾る…鎌田、町野、中村がゴール [久太郎★]
- XやChatGPTで広範囲の通信障害 投稿や閲覧できず [蚤の市★]
- 【芸能】日中関係悪化でエンタメ業界に大ダメージ… JO1の中国でのイベント中止、邦画は公開延期、STARTOアイドルへの影響も [冬月記者★]
- 【インバウンド】中国人観光客の日本での消費額は年間約2兆円超…中国政府は公務員の出張取り消し [1ゲットロボ★]
- ハゲがレジやってるコンビニって
- 4時だから窓から4回ちんこ出した
- クマどもが冬眠拒否
- さわやかって
- Perfume・あ~ちゃんの結婚相手の一般男性、吉田カバンの社長と判明 [977261419]
- 自民党議員「高市は先人が築き上げた日中関係を壊した。外務省が謝罪に言ってるが自分で責任を取れ」 [834922174]
