• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Delphiですが、楕円の回転について関数を見つけ)

【Delphi】楕円の回転に関する関数を探しています

A88No8の回答

  • A88No8
  • ベストアンサー率52% (834/1602)
回答No.1

こんにちは >関数drawDeclinedEllipsePは宣言されていますが、中身がないような。  見たところdrawDeclinedEllipsePの中身はありますよ。(^^; >procedureがbegin~~end;で終わっていいるのに、次にいきなりまたbegin~~endがあるとか?  それは、異なる手続きです(-_-;)  TForm1.Button1Click手続きはdrawDeclinedEllipseP手続きの使い方を示すサンプルプログラムですm(__)m

situmonnsya
質問者

お礼

ご回答、ありがとうございます。 drawDeclinedEllipsePPはありますが、 drawDeclinedEllipsePがなくて・・・(引数も違う) 異なる手続き(いきなりbegin~~end)がdrawDeclinedEllipsePかと思っても違うし・・・

関連するQ&A

  • Delphiのマルチスレッドの割り込み処理について

    Delphiのマルチスレッドの割り込み処理について教えて欲しいのですが、ファイルをスレッドオブジェクトで作成して クラス名.Execute関数内でSynchronizeメソッドを使用しています。 本にはSynchronizeメソッドは「渡したメソッドが実行され終了するまで待ちます」と書いてあり、テストプログラムを作成してもそうでした。ということはSynchronizeメソッドは普通の関数と一緒のような気がしてしまうのですが、違うのでしょうか? Procedure MyThread.Execute begin Synchronize(AAA); AAAの処理が終了するまで待機している end; Procedure TmyThread.AAA; begin 'したい処理' end;

  • delphiで、タイマー関数の中で、変数の初期値を入れ、カウントする場合。

    delphiで、タイマーで関数を作るとします。 正式な呼び名が分からないのですが、いわゆるTimer1Timerこれです。 1秒ごとに、0からカウントする機能をつけたいのですが、変数の型を宣言する所に、変数を入れると、注意されます。 下記の方法だと、変な値が入ります。 関数の中に入れてしまうと、最初に入れた値に、毎回初期化されてしまいます。 こんな事を考慮に入れていない訳がないと思うのですが、当方に知識としてありません。 どうか、よろしくお願いします。 あ、もちろん、グローバル変数や、外部から持ち込むのは、やり方として分かるのですが、それが正統的なやり方ですか? label3に0を入れて、読み取って、1足して、label3に返して・・・の繰り返し、とか。 procedure TForm1.Timer1Timer(Sender: TObject); var  Count : Integer ; begin  Count := Count +1 ;  //Inc(Count,1);  label2.Caption := IntToStr(Count) ; end;

  •  Delphiの”手続き”について。

     とりあえず、作ったプログラム試作第一号を関数化や手続き化しているのですが、手続きや関数の中でCaptionを使いたいのですが未定義となります。 procedure Information( InfoMass : String ); begin   Info.Caption := 'InfoMass' + 'です';   Info2.Caption := 'InfoMass' + 'ます'; end; で、手続きを呼び出すと、複数のCaptionを変更したいのですが。 typeの中で、Info: TLabel と型の宣言をしてるのでは?

  • Delphi6でVB.NETで作成のDLL呼出

    VisualSutudio2005で作成され提供されているDLLをDelphi6から呼びだしたいと思っています。 提供ファイルとしてあるのは以下のものです。 ・DLLファイル本体 ・XMLファイル 直接は呼びだせない(?)と思ったので、 VB.NETでDLLを作って間に入れて、 下のように呼び出せばいいのかなと考えています。 Delphi6で作成のEXE → VB.NETで作成のDLL(COM登録?) → 対象のDLL まずはDelphi6のEXE→VB.NETのDLLの部分を作って試してみたですが Delphi6のEXEの起動時にエラーとなってしまいます。 「アプリケーションの初期化に失敗しました」 ネットなどで調べてみて作り方は下記のようにしました。 <呼ばれる側:VB.NETのDLL> 1.COMクラスを作る。   ・COM参照可能の設定にした。 (タイプライブラリが作成され、レジストリへのCOM登録は自動でされる?) 2.作成したDLLはCドライブ直下に置いた。 ※下の*****は自動作成された固定値が入っています。  また見やすくするためここでは半角空白を全角空白に変えています。 -------------------------------------------------------------------- Imports System.Windows.Forms <ComClass(Middle_Dll.ClassId, Middle_Dll.InterfaceId, Middle_Dll.EventsId)> _ Public Class Middle_Dll #Region "COM GUID"   ' これらの GUID は、このクラスおよびその COM インターフェイスの COM ID を   ' 指定します。この値を変更すると、   ' 既存のクライアントはクラスにアクセスできなくなります。   Public Const ClassId As String   = "**************************"   Public Const InterfaceId As String = "**************************"   Public Const EventsId As String  = "**************************" #End Region   ' 作成可能な COM クラスにはパラメータなしの Public Sub New() を指定しなければ   ' なりません。これを行わないと、クラスは COM レジストリに登録されず、   ' CreateObject 経由で   ' 作成できません。   Public Sub New()     MyBase.New()   End Sub   Public Sub DispMsg()     Dim MsgRet As MsgBoxResult     MsgRet = MessageBox.Show("VB.NET DLLより表示!", "確認メッセージ", MessageBoxButtons.YesNo, MessageBoxIcon.Information)   End Sub End Class --------------------------------------------------------------------- <呼び出し側:Delphi6のEXE> 1.タイプライブラリの取り込み設定で登録したDLLを選択し、   「コンポーネントラッパーの作成」にチェックを入れてインストールを実行。 --------------------------------------------------------------------- unit Unit1; interface uses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  Dialogs, StdCtrls,OleCtnrs,ComObj, OleServer; type  TForm1 = class(TForm)   Button1: TButton;   Edit1: TEdit;   procedure Button1Click(Sender: TObject);  private   { Private 宣言 }  public   { Public 宣言 }  end; var  Form1: TForm1;  //----------  //静的呼出  //----------  procedure DispMsg();Stdcall; external 'c:\Middle_Dll.dll' name 'DispMsg'; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin  //----------  //静的呼出  //----------  DispMsg(); end; end. ----------------------------------------------------------------- Delphi6のEXEはすでにあるものなので、 呼び出し元はDelphi6から変えられませんが、 呼び出し先はC#やC++でも構いません。 (1)Delphi6のEXE→VB.NETのDLLの呼び出しは可能でしょうか? (2)可能でしたら不具合と思われる箇所はどこでしょうか? (3)この方法より良いと思われる方法はありますでしょうか? DLLを作った事がないので見よう見まねで作っています。 気になる点やアドバイス程度でも構いませんので、 どうかよろしくお願いいたします。 == 開発環境 == WindowsXP SP3 Delphi6 Enterprise SP2 VisualSutudio2005 ProffesionalEdition 評価版 .NET Framework 1.1~3.5

  • エクセル:チェックボックスで他シートの図形を操作。

    質問させていただきます。 現在、エクセルにて sheet1に帳簿内容入力画面 sheet2に入力画面の項目を反映した印刷用帳簿 というものを作成しています。 その中で、sheet1にチェックボックスを設置し、チェックONでsheet2任意の場所に オートシェイプの楕円を表示(チェックOFFで楕円は消える)させたいのですが、 うまくいきません。 試しにsheet1上にチェックボックス・楕円を設置し、 ------------------------------------------- Sub test01() With ActiveSheet If .CheckBoxes(Application.Caller).Value = xlOn Then .Shapes("楕円1").Visible = True Else .Shapes("楕円1").Visible = False End If End With End Sub ------------------------------------------- とイベント設定をしたところ、sheet1上ではチェックON/OFFで楕円の 表示/非表示ができました。 しかし、実際sheet1にチェックボックス、2に楕円と設置すると「オブジェクトが存在しません」と エラーになってしまいます。 IF関数のような(シート名!セル名)的に楕円の場所を指定しなければいけないのかな?と 思い、色々試してみたのですが実現できませんでした。 勉強不足で恐縮なのですが、詳しい方アドバイスをいただきたいです。

  • 【Excel VBA】 WorksheetやRangeオブジェクトとして宣言した変数の開放は必要でしょうか?

    こんばんは。 プロシージャレベルで宣言したWorksheetやRangeなどのオブジェクト変数に対し、 プロシージャを終了する直前に、 Set ○=Nothing を実行して、変数(オブジェクトへの参照)を開放する処理を習慣的行っていました。 これは、絶対に必要な処理なのでしょうか? 開放しないことで不具合が出るケースとはどういう場合なのでしょうか? どなたか、ご教示いただけないでしょうか。 よろしくお願いいたします。 <例> Sub test()   Dim Ws1 As Worksheet      Set Ws1 = Worksheets("Sheet1")   '処理内容      Set Ws1 = Nothing End Sub 尚、CreateObject関数で作成したオブジェクトへの参照などではなく、 あくまでもWorksheetやRangeなどの話です。

  • API関数(DLL)の呼び出しにおいて、DLLの格納場所は?

    お世話になります。 VB.NETでAPI関数を呼び出す場合にまず、API関数を格納しているDLLを宣言しなけれならないと下記URLにあります。 (http://www.atmarkit.co.jp/fdotnet/dotnettips/024w32api/w32api.html) (a)DllImport属性を利用する方法 <System.Runtime.InteropServices.DllImport("DLL名")> _ Function API関数名(仮引数) End Function (b)Declareステートメントを利用する方法 Declare Function API関数名 Lib "DLL名" (仮引数) そこで、質問なのですが、(a)、(b)どちらの方法で実現する場合においても、DLLの格納場所はC:\Windows\System32でないといけないのでしょうか?(実際にコーディングしてもSystem32フォルダにないとエラーになってしまいます。) 任意のフォルダにDLLを格納し、そこを参照できるようにできるのでしょうか? また、一般常識としてDLLはSystem32フォルダに格納しておかないといけないものなのでしょうか? 以上、よろしくお願いいたします。

  • 【Excell VBA】ユーザーフォーム上のスプレッドシートのセルを選択したときのイベント

    Excell VBA にて、 ユーザーフォーム(userForm1)に、スプレッドシートを 1)その他のコントロール 2)Microsoft Spreadsheetを追加 によって追加して、 そのspreadSheet1上のsheet1の任意のセル(D:*)をクリックしたとき、その行のD1:D5k一連の値を変数に代入したいのですが、 まず手始めとして、そのセルを選択したときにイベントを発生させたい。  該当のセルを選択してプロシージャを追加すると Private Sub Spreadsheet1_BeforeContextMenu( _ ByVal x As Long, _ ByVal y As Long, _ ByVal Menu As OWC11.ByRef, _ ByVal Cancel As OWC11.ByRef _ ) となります。 比較のため Private Sub Spreadsheet1_SelectionChange(ByVal Target As Range)   If Target.Address() = "$A$1" Then     MsgBox "このセルはA1です。"   End If End Sub だと、 Error・・・「コンパイル エラー: プロシージャの宣言が、イベントまたはプロシージャの定義と一致していません。」 ・・・どうすればよいのでしょう。 最終的には、「その行のいくつかの値を変数に代入したい」のですが

  • DLLサンプルプログラムが動きません

    Delphi XE5 starter で、 http://www39.atwiki.jp/kgh07155/pages/28.html を参考にして以下のようなプログラムを作りました。 コンパイルはできたのですが、Button1をクリックすると「TDllFormリソースが見つかりません」というエラーメッセージが出ます。 どういう風に修正すればいいのでしょうか? //***************************** //SamoleUnit2.pasの内容 unit Unit_Sample2; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private 宣言 } public { Public 宣言 } end; var Form1: TForm1; implementation {$R *.dfm} function ShowDLLForm(hOwner: HWND): TModalResult; stdcall; external 'DLLSample.dll'; procedure ShowDLLForm2; external 'DLLSample.dll'; // ここまで、DLLを呼び出すための記述。 procedure TForm1.Button1Click(Sender: TObject); begin ShowDLLForm(Application.Handle); // DLL側でフォームを作成した後、 // 通常のフォームのShowModalメソッドと同じ動作をして // 作成したフォームを破棄。 end; procedure TForm1.Button2Click(Sender: TObject); begin ShowDLLForm2; // DLL側でフォームを作成した後、 // 作成したフォームを表示。 end; end. //******************************** //DllSample.dprの内容 library DLLSample; uses System.SysUtils, System.Classes, Windows, Forms, Controls, Unit_DLLForm in 'Unit_DLLForm.pas' {Form1}, Unit_Sample2 in 'Unit_Sample2.pas' {Form2}; type TDllForm = class(TForm) end; {$R *.res} function ShowDLLForm(hOwner: HWND): TModalResult; stdcall; var DllForm:TDllForm; begin Application.Handle := hOwner; // 呼び出し元の情報をDLL側が受け取る。 DllForm := TDllForm.Create(Application); // DLL側でフォームを作成する。 // フォームに配置された各オブジェクトも、自動で作成される。 Result := DllForm.ShowModal; // 返し値を設定。 DllForm.Free; // DLL側で作成したフォームを破棄。 Application.Handle := 0; // 呼び出し元の情報を破棄。 end; procedure ShowDLLForm2; var DllForm:TDllForm; begin DllForm := TDllForm.Create(Application); // DLL側でフォームを作成する。 DllForm.Show; // 作成したフォームを表示。 end; exports ShowDLLForm, ShowDLLForm2; begin end. //******************************** //unit_DLLForm.pasの内容 unit Unit_DLLForm; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls; type TForm1 = class(TForm) Button1: TButton; private { Private 宣言 } public { Public 宣言 } end; var Form1: TForm1; implementation {$R *.dfm} end.

  • 楕円関数

    (x̄):楕円曲線 pr:(x̄)={(z,w)|w^2=φ(z)}∪{∞_±}→P^1 z→z ∞_±→∞ は楕円関数とします。 φ(z)=a(z-α_0)(z-α_1)(z-α_2)(z-α_3)が重根を持たない4次式である時、無限遠点∞_±のそれぞれで1位の極を持つことを示して欲しいです。