نمایش نتایج 1 تا 5 از 5

نام تاپیک: با ایجاد اشیا در حالت run-time مشکل دارم

  1. #1

    Question با ایجاد اشیا در حالت run-time مشکل دارم

    اصلا متوجه نمیشم، برنامه کامپایل میشه اما در هنگام اجرا پیغام میده که کلاس های تعریف شده رو پیدا نمیکنه

    interface

    uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs, DB, ADODB, ExtCtrls, DBCtrls, Grids, DBGrids, XPMan, StdCtrls,
    Buttons;

    type
    TForm1 = class(TForm)
    XPManifest1: TXPManifest;
    procedure FormCreate(Sender: TObject);
    Private
    public
    DataSource: TDataSource;
    DataSet: TADODataSet;
    Connection: TADOConnection;
    procedure btnSaveClick(Sender: TObject);
    procedure btnRefuseClick(Sender: TObject);
    end;
    var
    Form1: TForm1;
    implementation
    {$R *.dfm}

    procedure TForm1.FormCreate(Sender: TObject);
    var
    Grid: TDBGrid;
    Navigator: TDBNavigator;
    btnSave: TBitBtn;
    btnRefuse: TBitBtn;
    begin

    Connection:= TADOConnection.Create(nil);
    DataSource:= TDataSource.Create(nil);
    DataSet:=TADODataSet.Create(nil);
    btnSave:=TBitBtn.Create(nil);
    btnRefuse:=TBitBtn.Create(nil);

    With Connection do
    begin
    end;

    DataSource.DataSet:=DataSet;

    With DataSet do
    begin
    end;

    Grid:= TDBGrid.Create(nil);
    with Grid do
    begin
    Align:=alTop;
    Width:=550;
    Height:=361;
    Options:= Options + [dgAlwaysShowEditor];
    DataSource:=DataSource;
    end;

    Navigator:= TDBNavigator.Create(nil);
    with Navigator do
    begin
    DataSource:=DataSource;
    align:= alBottom;
    width:=550;
    height:=27;
    end;

    with btnSave do
    begin
    Caption:='OK';
    Kind:=bkOK;
    ModalResult:=mrOK;
    Width:=99;
    Height:=33;
    left:=160;
    top:=376;
    OnClick:=btnSaveClick;
    end;

    with btnRefuse do
    begin
    Caption:='OK';
    Kind:=bkCancel;
    ModalResult:=mrCancel;
    Width:=99;
    Height:=33;
    left:=280;
    top:=376;
    OnClick:=btnRefuseClick
    end;
    end;

    procedure Tform1.btnSaveClick(Sender: TObject);
    begin
    end;
    procedure Tform1.btnRefuseClick(Sender: TObject);
    begin

    end;

    Class TDBGrid,TAdoConnection,TDataSet not found

  2. #2
    کاربر دائمی آواتار shervin farzin
    تاریخ عضویت
    مرداد 1387
    محل زندگی
    مشهد - shervinfarzin@gmail.com
    پست
    256

    نقل قول: با ایجاد اشیا در حالت run-time مشکل دارم

    سلام
    علت اينه كه وقتي برنامه از تابع FormCreate خارج ميشه فضاي دريافتي توسط متغييرهايي
    كه در بخش Var از اين تابع اعلان شدن آزاد ميشه و طبيعيه كه در توابع ديگه به اونها
    دسترسي نداشته باشيد ، چئن وجود ندارند . كاري كه بايد بكنيد اينه كه متغيرهاي بخش Var
    از تابع FormCreate رو به بخش Public از فرمتون انتقال بديد .
    از اين گذشته پيشنهاد ميكنم هم براي Object هاي جديد Name تعيين كني و هم Parent .
    موفق باشيد .

  3. #3

    نقل قول: با ایجاد اشیا در حالت run-time مشکل دارم

    در هنگام اجرا پیغام میده که کلاس های تعریف شده رو پیدا نمیکنه
    علتش اینه که این کامپوننت ها را اول از طریق Designer به فرم منتقل کردی، بعد اومدی در کد به اون شکل اینها را ساختی! وقتی کامپوننتی از طریق Designer به فرم اضافه میشه، Designer بطور خودکار کد مربوط به رجیستر کردن کلاس کامپوننت را به پروژه اضافه میکنه. ولی وقتی کامپوننت را از visibility پیش فرض خارج میکنی، مجبوری خودت کلاس مربوط به اون کامپوننت را با استفاده از RegisterClass رجیستر کنی.
    اگر فقط میخوای اون کامپوننت ها را بصورت Runtime استفاده کنی، و میخوای این خطا داده نشه، تعریف مربوط به اون کامپوننت ها را از فایل DFM حذف کن.


    وَ سَيَعْلَمُ الَّذِينَ ظَلَمُوا [آل محمد حقهم] أَيَّ مُنْقَلَبٍ يَنْقَلِبُونَ - الشعراء (227)
    و ظالمین [حق آل محمد (ص) ] به زودی خواهند دانست که به کدام بازگشتگاه بازخواهند گشت.

  4. #4
    کاربر دائمی
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    گمگشته در دیارغریب و عجیب
    سن
    66
    پست
    276

    نقل قول: با ایجاد اشیا در حالت run-time مشکل دارم

    بعد از تعاریف پنجره والد باید مشخص و تابع painto تعریف شود
    امیدوارم این مثال یک کامپوننت bitbtn را ایجاد ونمایش دهد
      btnSave:=TBitBtn.Create(nil);
    with btnSave do
    begin
    Caption:='OK';
    Width:=99;
    Height:=33;
    left:=160;
    top:=376;
    btnsave.ParentWindow:=form1.Handle;
    btnsave.PaintTo(1,1,1);
    end;

  5. #5
    کاربر دائمی
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    گمگشته در دیارغریب و عجیب
    سن
    66
    پست
    276

    نقل قول: با ایجاد اشیا در حالت run-time مشکل دارم

    من مثال خودم را چک کردم دستور آخر(paintto) را نیاز ندارد

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •