Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2007.03.04;
Скачать: [xml.tar.bz2];

Вниз

загрузить форму не из [unit_name].dfm   Найти похожие ветки 

 
i-am-vladko ©   (2007-01-10 20:32) [0]

Есть unit1.dfm,создаю unit1new.dfm, ставлю
{$IFNDEF MY_VAR}{$R *.dfm}{$ELSE}{$R *new.dfm}{$ENDIF}
- при {$DEFINE MY_VAR} форма все равно грузится из unit1.dfm
Разъясните, пожалуйста, что не так


 
i-am-vladko ©   (2007-01-10 20:43) [1]

если MY_VAR задать в начале модуля, не в Project->... - начинает грузить из файла unit1new.dfm и выдает UNSUPPORTED 16bit RESOURSE


 
i-am-vladko ©   (2007-01-10 20:48) [2]

к
> i-am-vladko ©   (10.01.07 20:43) [1]

- я еще сменил {$IFNDEF MY_VAR}{$R *.dfm}{$ELSE}{$R *.dfz}{$ENDIF}


 
ors_archangel ©   (2007-01-10 23:19) [3]

[0-2]
Интересно, что тебе это даст? Ведь ресурс через {$r} линкуется всё равно статически


 
Игорь Шевченко ©   (2007-01-10 23:26) [4]

unit main;
{$DEFINE FOO}
interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs;

type
 TForm1 = class(TForm)
 end;

var
 Form1: TForm1;

implementation

{$IFNDEF FOO}
{$R *.dfm}
{$ELSE}
{$R main1.dfm}
{$ENDIF}

end.


main.dfm

object Form1: TForm1
 Left = 0
 Top = 0
 Caption = "Not defined"
 ClientHeight = 293
 ClientWidth = 426
 Color = clBtnFace
 Font.Charset = DEFAULT_CHARSET
 Font.Color = clWindowText
 Font.Height = -11
 Font.Name = "Tahoma"
 Font.Style = []
 OldCreateOrder = False
 PixelsPerInch = 96
 TextHeight = 13
end


main1.dfm

object Form1: TForm1
 Left = 0
 Top = 0
 Caption = "Defined"
 ClientHeight = 293
 ClientWidth = 426
 Color = clBtnFace
 Font.Charset = DEFAULT_CHARSET
 Font.Color = clWindowText
 Font.Height = -11
 Font.Name = "Tahoma"
 Font.Style = []
 OldCreateOrder = False
 PixelsPerInch = 96
 TextHeight = 13
end


Все прекрасно работает, просто если не *.dfm, то имя надо явно указывать в директиве $R


 
i-am-vladko ©   (2007-01-11 11:41) [5]

Очень хорошо работает только если обе формы пустые...


 
Desdechado ©   (2007-01-11 12:12) [6]

Если у форм разный состав компонентов или разные названия, то явно описание класса не совпадет с атрибутами форм из ресурса.


 
Игорь Шевченко ©   (2007-01-11 12:17) [7]


> Очень хорошо работает только если обе формы пустые...


С непустыми формами работает точно также.

Тебе чего надо-то ?


 
i-am-vladko ©   (2007-01-11 12:25) [8]


> Игорь Шевченко ©   (11.01.07 12:17) [7]

Как раз ситуация когда у форм разный состав компонентов (чето такое):

TForm1 = class(TForm)
{$IFDEF FOO}
Query : TQuery;
DataBase : TDataBase;
StoredProc : TStoredProc;
{$ELSE}
Query : TZQuery;
DataBase : TZConnection;
StoredProc : TZStoredProc;
{$ENDIF}
end;


 
Игорь Шевченко ©   (2007-01-11 12:28) [9]

i-am-vladko ©   (11.01.07 12:25) [8]

Не вижу проблемы:

unit main;

interface
{$DEFINE FOO}
uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls
{$IFDEF FOO}
 , Buttons
{$ENDIF}
 ;

type
 TForm1 = class(TForm)
   Edit1: TEdit;
{$IFDEF FOO}
   Button1: TBitBtn;
{$ELSE}
   Button1: TButton;
{$ENDIF}
   procedure Button1Click(Sender: TObject);
 end;

var
 Form1: TForm1;

implementation

{$IFNDEF FOO}
{$R *.dfm}
{$ELSE}
{$R main1.dfm}
{$ENDIF}

procedure TForm1.Button1Click(Sender: TObject);
begin
 Edit1.Text := "FOO";
end;


 
i-am-vladko ©   (2007-01-11 12:53) [10]

Вот точно так все и делаю - постоянно лезет
"Field should be of Type [first_type] but is declared [second_type]. Correct the declaration ?"


 
Игорь Шевченко ©   (2007-01-11 13:13) [11]

i-am-vladko ©   (11.01.07 12:53) [10]


> Вот точно так все и делаю - постоянно лезет
> "Field should be of Type [first_type] but is declared [second_type].
>  Correct the declaration ?"


Твой компьютер у тебя под рукой - разбирайся. У меня все прекрасно работает.


 
Desdechado ©   (2007-01-11 13:13) [12]

Значит, не Вот точно так все и делаю. Где-то прозевал свой fielddef.

PS не уверен, что IDE поддерживает вилку в загрузке формы для редактирования


 
Desdechado ©   (2007-01-11 13:14) [13]

Это же инструкции компилятору, вернее, препроцессору. А не редактору форм.


 
i-am-vladko ©   (2007-01-11 14:55) [14]


> Desdechado ©   (11.01.07 13:14) [13]

А есть инструкции редактору форм? )


 
Desdechado ©   (2007-01-11 15:16) [15]

Если эти формы и компоненты настолько отличаются, не проще ли сделать 2 независимых модуля? A в DPR уже прописать через IFDEF сборку с нужной парой pas-dfm.


 
Desdechado ©   (2007-01-11 15:16) [16]

Тогда можно будет и в редакторе IDE все исправлять нормально.


 
GrayFace ©   (2007-01-12 02:24) [17]

Или вариант - создать свои пустые компоенты, наследующиеся либо от TZQuery, либо от TQuery.


 
GrayFace ©   (2007-01-12 02:36) [18]

Правда, если свойства, которые ты хочешь редактировать в Design-Time присутствуют в одном и отсутствуют в другом, придется постоянно пересобирать пакет с этими компонентами. Но если включить в ProjectGroup пакет, то нормально. Еще тогда нет смысла в *new.dfm, все-равно в Design-Time загрузится тот, что с именем модуля. Так что стоит создать .bat-ники, копирующие нужный dfm.


 
GrayFace ©   (2007-01-12 02:42) [19]

Можно еще облегчить жизнь - сделать не .bat-ники, а .exe-шки и условия для Design-Time менять ими. Например, переключать строки {$IFDEF OldUnitLinked} и {$IFNDEF NewUnitLinked} простым StringReplace"ом. В самом коде OldUnitLinked и NewUnitLinked не использовать, их можно вообже никогда не DEFINE"ить.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2007.03.04;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.034 c
15-1170942307
Evgeniy.G
2007-02-08 16:45
2007.03.04
Delphimaster.ru - превращение в "Мопед"


2-1171496729
SerJaNT
2007-02-15 02:45
2007.03.04
ToolBar


15-1169472353
oldman
2007-01-22 16:25
2007.03.04
Гуд бай, Америка, о-о-о...


11-1150382734
DevilDevil
2006-06-15 18:45
2007.03.04
Ошибка при установке зеркала


2-1171387243
iviom
2007-02-13 20:20
2007.03.04
Как завести поток?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский