Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.08.04;
Скачать: CL | DM;

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.022 c
14-10366
konstantinov
2003-07-16 19:16
2003.08.04
PDF файлы


4-10508
pirat
2003-06-01 12:09
2003.08.04
Как заставить msxml (TXMLDocument) делать переходы и отступы ?


6-10324
BoxTer
2003-05-27 13:04
2003.08.04
Перехват сообщений, посланных Net send или WinPopup..


4-10499
Rowell
2003-06-01 02:43
2003.08.04
Доступ к другому приложению


3-10109
SCORPION ZP
2003-07-13 12:02
2003.08.04
Как в Delphi открыть базу FoxPro?