Конференция "KOL" » Updown & OnChanging event [Delphi, Windows]
 
  • RusSun © (08.07.12 13:17) [0]
    Доброе время суток. Delphi 7,Win xp sp 3.

    Использую Updown для загрузки из ресурса (температуры и поправочных коэффициентов)

    вот мск вариант работает

    http://narod.ru/disk/55644044001.6b64b9d276abb4f8848a51d6525c2b9e/RTDest.rar.html

    вот заглючил не компилится даёт ошибку

    http://narod.ru/disk/55644077001.877a1a119db5480d50fdc2b57b684fa3/TDest.rar.html

    [Error] Unit1_1.inc(52): Undeclared identifier: 'Font'
    [Fatal Error] TestDest.dpr(6): Could not compile used unit 'Un1.pas'
    то есть почему то всовывает строку
    Result.UpDown1.Font.FontName := 'Tahoma';

    в Unit1_1.inc
    может конечно есть ещё различия просто глубоко не стал лезть.

    вот попытка "оживить"

    http://narod.ru/disk/55644112001.4a6b863ffdf7195d9b164f99741e0c2f/TDestP.rar.html

    Удалял UpDown с формы и заново его ложил вешал события
    и кнопки работают наоборот)

    Вот на чистом

    http://narod.ru/disk/55644219001.32820d40cfad9db857910b1e172fa4a7/UpdownSimple.rar.html

    Как правильно повесить событие OnChanging?
    UpDown1.OnChanging := TOnChanging(); //???  


    можно его и не вешать обоитись
    procedure Edit3Ch(dummy:pointer;Sender:PControl);  обходной вариант
    begin
    edit1.Text:=pdata[str2int(Edit3.text),0];
    edit2.Text:=pdata[str2int(Edit3.text),1];
    end;  
    ...
    //Edit3.onchange:=TonEvent(MakeMethod(nil,@Edit3Ch));//обходной вариант
    //тогда первое значение будет пропущено

  • Cobalt © (09.07.12 09:25) [1]
    За массой слов не видно вопроса.
  • RusSun © (09.07.12 17:25) [2]
    В  UpdownSimple
    Как правильно повесить событие OnChanging?
    UpDown1.OnChanging := TOnChanging(); //???
  • Дмитрий К © (10.07.12 09:59) [3]
  • RusSun © (10.07.12 20:30) [4]
    toДмитрий К Спасибо, теперь увидел где грабли.

    ...
    type  TOnEvent = procedure( Sender: PObj )of object;
    ...
    procedure UpDown1Ch(Dummy_Self: PObj;Sender: PObj; OldPosition,
     NewPosition: Smallint; var Allow: Boolean);
    begin
    edit1.Text:=pdata[str2int(Edit3.text),0];
    edit2.Text:=pdata[str2int(Edit3.text),1];
    end;
    ...
    UpDown1.OnChanging :=TOnChanging(MakeMethod(nil,@UpDown1Ch));

  • RusSun © (10.07.12 20:37) [5]
    В варианте где заглючил не компилится даёт ошибку.
    Даёт ошибку если пытаешься добавить код после type.
    там просто нужно добавлять в правильном месте.

    type
     {$IF Defined(KOL_MCK)}
     {$I MCKfakeClasses.inc}
     {$IFDEF KOLCLASSES} {$I TForm1class.inc} {$ELSE OBJECTS} PForm1 = ^TForm1; {$ENDIF CLASSES/OBJECTS}
     {$IFDEF KOLCLASSES}{$I TForm1.inc}{$ELSE} TForm1 = object(TObj) {$ENDIF}
       Form: PControl;
     {$ELSE not_KOL_MCK}
     TForm1 = class(TForm)
     {$IFEND KOL_MCK}
       KOLProject1: TKOLProject;
       KOLForm1: TKOLForm;
       Edit1: TKOLEditBox;
       Edit2: TKOLEditBox;
       Button1: TKOLButton;
       UpDown1: TKOLUpDown;
       Edit3: TKOLEditBox;
    //пытался сунуть сюда после этого даже если код будет исправлен в Unit1_1.inc
    //попадёт Result.UpDown1.Font.FontName := 'Tahoma';



       procedure Button1Click(Sender: PObj);
       procedure UpDown1Changing(Sender: PObj; OldPosition,
         NewPosition: Smallint; var Allow: Boolean);
       procedure KOLForm1Show(Sender: PObj);
     private
       { Private declarations }
     public
       { Public declarations }
     end;
    type
    TstrItem = string[9];
    TdataArray = array[0..110,0..1] of TstrItem;
    pDataarray = ^TdataArray;

 
Конференция "KOL" » Updown & OnChanging event [Delphi, Windows]
Есть новые Нет новых   [118389   +36][b:0][p:0.002]