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

Вниз

В чем разница? аспекты компилятора Дельфи мне незнакомые.   Найти похожие ветки 

 
sniknik   (2003-07-18 17:32) [0]

почему так работает
program Project1;
uses
Forms, Unit1 in "Unit1.pas" {Form1};
{$R *.res}
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Title:= "Моя крутая прога";
Application.Run;
end.


а так, не дает даже скомпилить? а если сделать билд(его дает) и сохранить проект то последующее открытие этого проекта вызывает ошибку.
program Project1;
uses
Forms, Unit1 in "Unit1.pas" {Form1};
const Test_STR = "Моя крутая прога";
{$R *.res}
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Title:= Test_STR;
Application.Run;
end.


изменения делались на пустом только что созданом проекте, проверялось в 6 и 7 дельфях (в обоих одинаково). думал может константа нулем не завершается, сам добавлял (Test_STR = "Моя крутая прога"#0). не проблема конечно, есть 2 рабочих варианта (второй в опциях проекта написать) просто интересно почему так происходит.
в любом другом месте (создание/показ формы/т.д.) меняется без проблем, и из любого источника (переменная/константа/т.д.).


 
LordOfSilence   (2003-07-18 17:47) [1]

А если сделать Test_STR типизированной константой? Чего будет?
Не пробовал?


 
me2   (2003-07-18 17:52) [2]

Ничего не изменится.


 
sniknik   (2003-07-18 17:53) [3]

пробовал, та же фигня. (просто кнопка Run, и пункт меню по F9 становятся неактивными, похоже в любом случае если только после Title нет прямой строки - "xxxxx", строки, переменные,конкатентные из разных, функции их возврашающие, ничего не проходит)
странно да?


 
sniknik   (2003-07-18 17:55) [4]

me2 (18.07.03 17:52)
почему? чего знаеш? делись сим тайным знанием. ;о))


 
vuk   (2003-07-18 17:57) [5]

Этот баг IDE, кажется был в QualityCentral описан...


 
sniknik   (2003-07-18 18:11) [6]

vuk © (18.07.03 17:57)
поточнее не вспомниш? я не нашол. (хотя если это уже опроделено, что баг... а надо ли? :о))


 
Nikky   (2003-07-18 18:35) [7]

насчет багов иде в фаилах dpr (в 6-ых дельфях точно еще есть):

когда mdiform создается после (remote)datamodule, возникает ошибка при последующем создании mdichild..

если между созданиями форм вставить какой-либо код, формы, создаваемые после кода, не видятся в Project/Options/Forms/Auto-creatable forms..


 
KDS   (2003-07-18 18:52) [8]

попробуй const uses поменять местами, вернее порядок изменить


 
sniknik   (2003-07-18 19:19) [9]

KDS © (18.07.03 18:52)
в смысле?

константы перед uses нельзя поставить, вернее можно :о), но он после uses-ы не воспринимает, а порядок констант изменить? с одной как это получится? с первого места на нулевое поставить?. :о)))
а вобще весь код перед вами, я ничего не "сокращал", модуль в Unit1 пустой, как его автоматом делает.

вот если uses убрать то да, Run становится активным, но не компилится естественно (Application).


 
Aldor   (2003-07-18 20:57) [10]

Этот баг известен уже давно. Добавление практически любых строк между begin и end проекта вызывает любо ошибку, либо некоторые модули (содержащие окна) изчезают из проекта.

см. также www.delphikingdom.ru -> "Подводные камни"


 
sniknik   (2003-07-18 22:43) [11]

Aldor © (18.07.03 20:57)
плохо только что баги давно неизвестны тем кто в них втыкается, до того как, то есть.

посмотрел "Подводные камни"
нашол там еще один рабочий вариант от "Алексей Румянцев"
program Project1;
uses
Forms, Unit1 in "Unit1.pas" {Form1};
const Test_STR = "Моя крутая прога";
{$R *.res}
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
with Application do Title:= Test_STR;
Application.Run;
end.


понравилось, потому как сам до этого почемуто не додумался. (сейчас очевидно)

а вот с модулями в проекте проблем не было (активно пользуюсь), только он время от времени мое форматирование сбивает при добавлении нового модуля к примеру. но это совсем не проблема, лиш бы компилировалось и работало.
вот к примеру недавно начатый проект, в более развитых форм в файле проекта "между begin и end" побольше

program TrucksTrace;

uses
Windows,
Forms,
Controls,
SysUtils,
IniUnit in "IniUnit.pas",
MainUnit in "MainUnit.pas" {MainForm},
DataUnit in "DataUnit.pas" {DMod: TDataModule},
ConUnit in "ConUnit.pas" {LogForm},
LogUnit in "LogUnit.pas",
UserUnit in "UserUnit.pas" {UserForm},
ShowUserUnit in "ShowUserUnit.pas" {ShowUserForm},
CMagUnit in "CMagUnit.pas" {CMagForm},
PayUnit in "PayUnit.pas" {PayForm},
DriversUnit in "DriversUnit.pas" {DrvForm};

{$R *.res}

var isApproveRun: boolean = false;

begin
Application.Initialize;
Application.Title:= "Учет путевых листов & расчет зарплаты";
LoadParameters(ALL_PARAM);
if FileExists(BaseName) then begin
if (ParamCount = 1) and (Pos("REPAIR", UpperCase(ParamStr(1))) > 0) then begin
if MessageBox(0, PChar("Была выбрана операция сжатия/восстановления базы данных "+BaseName+#13#10"Подтвердите для продолжения."),
" Подтверждение", MB_YESNO + MB_ICONQUESTION) = IDYES then PackRepairBase(BaseName);
end else begin
with TLogForm.Create(nil) do begin
isApproveRun:= ShowModal = mrOK;
Free;
end;
end;
end else
if MessageBox(0, PChar("База данных "+BaseName+" не найдена. Создать новую?"#13#10"Не забудьте в новой базе завести пользователя! Для следующих подключений."),
" Подтверждение", MB_YESNO + MB_ICONQUESTION) = IDYES then isApproveRun:= true;
if isApproveRun then begin
Application.CreateForm(TMainForm, MainForm);
Application.CreateForm(TDMod, DMod);
end;
Application.Run;
end.


здесь только две PackRepairBase - форма с бегунком вызывается из процедуры.
и
TLogForm.Create(nil) - логон в базу, вызов непосредственно.



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

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

Наверх





Память: 0.49 MB
Время: 0.014 c
1-10228
LLOyD
2003-07-19 22:35
2003.08.04
Электронная трассировка


14-10360
Aga
2003-07-16 18:57
2003.08.04
Перенос программ


3-10114
Belkova
2003-07-14 18:02
2003.08.04
Запрос без регистра


7-10464
Alexor
2003-05-22 00:32
2003.08.04
PrintDialog


1-10214
ehri
2003-07-20 15:23
2003.08.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
Английский Французский Немецкий Итальянский Португальский Русский Испанский