Форум: "Потрепаться";
Текущий архив: 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.48 MB
Время: 0.007 c