Имя: Пароль:
IT
 
Delphi приложение без формы.
0 CepeLLlka
 
30.09.13
08:36
Ребята.. я не умею в делфи ничего.. ща буду по гайдам делать небольшую фигню..
Подскажите пожалуйста..
Как мне создать приложение чтобы не было формы, чтобы оно просто выполнилось 1 раз и закрылось..?
52 skunk
 
30.09.13
09:22
(48)а разве не с версии 5.0 он начал поддерживать сом?
53 skunk
 
30.09.13
09:23
(51)он и близко никогда Майкрософт не принадлежал
54 Rie
 
30.09.13
09:23
(51) Я, видимо, что-то пропустил... С каких пор Delphi принадлежит Microsoft'у?
(Я не шучу, я правда некоторое время не следил за ситуацией. Переход разработчика - это не переход решения).
55 mzelensky
 
30.09.13
09:23
(53) Здрасти, мелкософт давно уже выкупил Борланд.
57 skunk
 
30.09.13
09:24
58 skunk
 
30.09.13
09:24
(55)а ну как подробнее?
59 mzelensky
 
30.09.13
09:26
(55) Не, вру.

В конце 2002 года появились слухи о возможной покупке компании корпорацией Microsoft[2], однако сделка не состоялась, при этом, по неподтверждённым данным, в какой-то момент около 5 % уставного капитала Borland всё-таки принадлежало Microsoft[источник не указан 572 дня].
60 Rie
 
30.09.13
09:26
(52) Виноват. VB(чего-то там) - воспринимаю как VBx. Но суффиксы-то -  разные :-) Вот и...
61 Кирпич
 
30.09.13
09:28
(33) чо там гуглить из за трех строчек
62 mzelensky
 
30.09.13
09:28
(59) там у них еще в 2006 году что-то было...мутное с компанией, кто-то их перекупал
63 Кирпич
 
30.09.13
09:28
+(61)

program Project1;

uses
  SysUtils;

const
  Dir: string = 'c:\temp\';
  FileCount = 4;
var
  names1: array[1..FileCount] of string = ('file1.txt', 'file2.txt', 'file3.txt', 'file4.txt');
  names2: array[1..FileCount] of string = ('_file1.txt', '_file2.txt', '_file3.txt', '_file4.txt');

  i: integer;

begin
  for i := 1 to FileCount do
  begin
    if FileExists(Dir + names1[i]) then
      RenameFile(Dir + names1[i], Dir + names2[i]);
  end;
end.
64 skunk
 
30.09.13
09:30
(59)там не уставной капитал ... а именно часть акций ... говорят с правом голоса, что и заставило(ли) Borland вывести отдел по разработке средств разработки сперва в дочернее подразделение а потом и во все продать ... правда с продать тоже не все понятно ... как CodeGear разрабатывала ... так и разрабатывает ... правда вот владельцы CodeGear поменялись, но Майкрософт владельцем не стала
65 CepeLLlka
 
30.09.13
09:30
(63)Дак я так и хотел.. но они иеня уговаривают делать на VBS :(
66 CepeLLlka
 
30.09.13
09:31
(63)Спасибо тебе..
С этого примера сделаю всё..
С П А С И Б О !
67 skunk
 
30.09.13
09:32
(62)7-го мая 2008 года корпорация Borland объявила о продаже своей дочерней компании CodeGear Embarcadero Technologies
68 skunk
 
30.09.13
09:32
7-го мая 2008 года корпорация Borland объявила о продаже своей дочерней компании CodeGear - Embarcadero Technologies
69 mzelensky
 
30.09.13
09:33
(63) Вот это единственное что меня убивало в Делфи:

"
  FileCount = 4;
var
  names1: array[1..FileCount] of string = ('file1.txt', 'file2.txt', 'file3.txt', 'file4.txt');
"

Хотя можно и динамические массивы замутить :)
70 Кирпич
 
30.09.13
09:36
(69) чо тут такого убийственного?. так же как и во всех других языках.
71 Rie
 
30.09.13
09:36
(69) Извини, укажи, какое слово стояло перед FileCount=4
А динамические массивы на _этой_ основе - замутить не получится.
72 skunk
 
30.09.13
09:37
(71)+100 ... в лучшем случае цепочку объектов
73 CepeLLlka
 
30.09.13
09:40
(71) в (63)Полная версия ж
74 Кирпич
 
30.09.13
09:41
(71) ну можно и динамические массивы использовать. просто они здесь не нужны.
75 Кирпич
 
30.09.13
09:43
+(74) если у автора фиксированный набор имен файлов, накой тут динамические массивы?
76 Rie
 
30.09.13
09:44
(74) Можно. Но дело не в том, что их можно использовать (кстати, синтаксис был бы чуток другой). У меня возникло ощущение, что товарищ, замалчивая кой-какие детали, пытается выдать нечто желаемое за действительное.
77 Кирпич
 
30.09.13
09:46
(76)"товарищ, замалчивая кой-какие детали, пытается выдать нечто желаемое за действительное."

тыж гляди яка ссука :)
78 Rie
 
30.09.13
09:47
(73) Ключевое слово - "const".
79 Rie
 
30.09.13
09:48
(77) Уж извини, но ты и Pascal, и Delphi прекрасно знаешь. И понимаешь, что я имел в виду :-)
80 Кирпич
 
30.09.13
09:49
(79) если честно, я ничего не понял
81 Rie
 
30.09.13
09:54
(80) Там - const. Не знаю, как там в DelphiX (полагаю, что ничего не изменилось), но в предыдущих версиях Borland просто использовал текстовую подстановку "тела" константы (теоретически - абсолютно прав; практически - доходило до фигни полной, когда, к примеру, const X = 1/0;).
Механизм выделения памяти под массивы во фрейме подпрограммы - несколько отличается, в зависимости от того, выделяется ли память константного размера или зависит от чего-то там..
82 mzelensky
 
30.09.13
09:54
(70) убийственно то ,что нужно заранее указывать размерность массива. А знать ее заранее не всегда бывает возможно.
83 mzelensky
 
30.09.13
09:55
(71) С чего бы это "не получится". Очень даже получится...у меня же работает :)
84 Rie
 
30.09.13
09:55
+(81) На самом деле - уже знаю :-) Просто ранее не было повода проверять :-)
85 Rie
 
30.09.13
09:56
(82) Разные алгоритмы выделения памяти.
86 Rie
 
30.09.13
09:57
+(85) Спрошено лично у Вирта, если что :-)
87 mzelensky
 
30.09.13
09:57
(85) Естественно разные, а с чего им быть одинаковыми.
88 Rie
 
30.09.13
10:00
(87) Дружище... Делаю вывод - компиляторов ты не писал. (Это никоим образом не упрёк - все мы пишем те программы, которые нам заказывают. И на самом деле - мой тебе большой респект за многие комменты. Но - не за все).
89 mzelensky
 
30.09.13
10:03
(88) Нет, компиляторов не писал.
90 Rie
 
30.09.13
10:05
Объясняю. Если размер типа известен заранее (ни слова о .NET), то и размер выделяемой на стеке памяти - тоже заранее известен. (И его там можно зафиксировать).
Теперь предположим, что размер массива заранее не известен. В таком случае - два варианта. Либо это размер считывается из параметров (и на стеке выделяется _динамически_ соответствующая область). Либо - чхаем на это глубоко, и все динамические массивы размещаем в куче.
91 Кирпич
 
30.09.13
10:06
(82) А что есть в природе языки которые угадывают размер массива, который тебе понадобится? Ничего тут убийственного. Всё как у всех. Массивы статические, массивы динамические. Хош сам память выделяй под массивы, хош пользуйся встроенными возможностями. Ничего убийственного не вижу.
92 Кирпич
 
30.09.13
10:07
(90) чо ты голову людям морочишь. просто константу объявили и всё. при чем тут стек и компилятор.
93 Rie
 
30.09.13
10:13
(92) При том, что константа - это такая цифирь. Нет разницы между const N=4; с последующим использованием N и просто числом 4 (Мля... В некоторых языках - есть... Читатели, игнорируйте, пжалста, этот момент! Просто примите, что в Delphi - ну вот так сложилось. "Почему мы руки моем, а ноги - нет"). А "головы морочу" - я не морочу, я предпочитаю, чтобы люди понимали, почему так, а не иначе.
94 mzelensky
 
30.09.13
10:15
(90) Я реализовывал через кучу.
95 Rie
 
30.09.13
10:15
+(92) Это - к вопросу об использовании тех или иных инструментов. Вот сделали люди. Вот в Delphi - так сделали. Замечательно. В динамических языках - иначе. Тоже замечательно. Просто выбирайте инструмент, который нужен...
96 mzelensky
 
30.09.13
10:15
(93) не понимаю чего ты так хорохоришься. Это и Ёжику понятно, что

"Нет разницы между const N=4; с последующим использованием N и просто числом 4"
97 Rie
 
30.09.13
10:16
(94) Ну так и в Delphi - динамические массивы в куче лежат. Но у них в декларации переменной размер не задаётся.
98 Rie
 
30.09.13
10:17
(86) На самом деле - это особенность именно Delphi, в других компиляторах бывает и иначе.
99 Кирпич
 
30.09.13
10:32
(98) ага. а еще в других компиляторах нету слова BEGIN и END
100 Тоненький Клиент
 
30.09.13
10:33
как бы
101 skunk
 
30.09.13
10:35
(99)в паскале нету {} ... это плохо?
102 Кирпич
 
30.09.13
10:36
(101) это отвратительно
правда {} там есть, но всё равно отвратительно
103 Сергей Д
 
30.09.13
10:44
(0) Создаешь приложение, закрываешь все формы без сохранения, код пишешь между begin и end в главное модуле (которы program). Вроде все.
104 CepeLLlka
 
30.09.13
10:44
Ребята.. ребята.. подскажите раз уж вы тут...

А есть в Delphi ключ и значение? :)
105 Сергей Д
 
30.09.13
10:45
(104) Ассоциативный массив? В D7 не было.
106 CepeLLlka
 
30.09.13
10:45
(103)Спасибо, Серёж.. уже подсказал Кирпич..
107 skunk
 
30.09.13
10:45
(104)что ты под этим имел ввиду? ... структуру?
108 CepeLLlka
 
30.09.13
10:45
У меня D7
Блин.. Все хают 1С.. а в других системах ничего нет такого, что есть в 1С..
109 CepeLLlka
 
30.09.13
10:46
(107)Ну можно и структуру.. или же соответствие..
110 Кирпич
 
30.09.13
10:46
(104) я ж тебе готовую программу дал уже. накой тебе ключ и значение?
а так есть конечно.
111 CepeLLlka
 
30.09.13
10:47
(110)Ну не красиво же так :)
Два массива.. в одном ключ, в другом значение :)
Но за программу огромное спасииииииииибо!
112 Кирпич
 
30.09.13
10:48
издевается паразит
113 CepeLLlka
 
30.09.13
10:48
(112)Неет.. неет..
Не надо.. я так сделаю.. извини.. :(
Я просто спросил.. мой мозг просто привык к 1С уже.. вот и туплю сижу.. не могу воспринять другую прогу..
114 skunk
 
30.09.13
10:49
115 CepeLLlka
 
30.09.13
10:50
(114)Спс..
116 mzelensky
 
30.09.13
11:17
(111) В делфи массивы могут быть многомерными :)
117 Кирпич
 
30.09.13
11:21
(116) молчи! ты компиляторов не писал! (не был в Керчи)
118 Абырвалг
 
30.09.13
11:22
пиши на асме
119 Кирпич
 
30.09.13
11:24
(118) на асТме :)
120 CepeLLlka
 
30.09.13
11:25
Не могу иконку сменить :(
Жму кароче - project-options-application

Там не активно всё о_О
121 Кирпич
 
30.09.13
11:29
(120)у как жалко
122 Кирпич
 
30.09.13
11:32
program Project1;

uses
  SysUtils;

{$R *.res} //подключить ресуры
123 Кирпич
 
30.09.13
11:33
создай другой проект. выбери в нем иконку. компильни и скопируй res файл в свою пуперпрограмму
124 CepeLLlka
 
30.09.13
11:43
(122) У меня всё это есть..
125 CepeLLlka
 
30.09.13
11:43
(123)Ок... попробую..
126 Кирпич
 
30.09.13
11:46
для верности переименуй свой res c иконкой (в myres.res например), скопируй в папку с пуперпрограммой и вместо {$R *.res} напиши {$R myres.res}
127 mzelensky
 
30.09.13
11:47
Видимо весь смак этой гипер проги именно в иконке :)

Если компиляторов не писал, это сложно осознать :(
128 CepeLLlka
 
30.09.13
11:50
Ребята.. ну зачем вы так? Давайте жить дружно.. в одной стране живём.. хватит сраца!
129 skunk
 
30.09.13
11:52
а кто тут реально писал компилятор?
130 Кирпич
 
30.09.13
11:52
Rie писал
131 ДенисЧ
 
30.09.13
11:53
(129) Я писал. Как курсовую...
132 Кирпич
 
30.09.13
11:54
(131)да кто их не писал. кто учился, все писали.
133 CepeLLlka
 
30.09.13
11:55
Всё готово! Rename.exe ЙууХууу :)
134 skunk
 
30.09.13
11:56
(132)все ... правда 90% дальше эбаута не уходило
135 Кирпич
 
30.09.13
11:57
короче назрел вопрос о интерпритаторе языка 1с, на котором будут писать батники. ибо одинеснику не нужно ничего знать кроме одинеса.
136 Кирпич
 
30.09.13
11:57
интерпрЕтаторе. пардон.
137 Кирпич
 
30.09.13
11:59
сяду напишу чтобы пацаны не мучились больше с дельфями всякими
138 Кирпич
 
30.09.13
12:01
(133) покаж чо написал
139 mzelensky
 
30.09.13
12:02
(136) на ИС валялось несколько разработок по этой теме.
140 Кирпич
 
30.09.13
12:03
(139) пойду поищу
141 Кирпич
 
30.09.13
12:07
http://infostart.ru/public/18681/

вот есть вроде. но там .NET
а .NET это из пушки по воробьям
142 skunk
 
30.09.13
12:20
(141)это сейчас такие программеры пошли ... тыкают все галочки и аля компилить аплюхи по 3 гигабайта каждая
143 mzelensky
 
30.09.13
12:29
(141) Я пробовал эту штуку - мне не понравилось.

Так что пиши свою!
144 Кирпич
 
30.09.13
12:32
(142) напишут какую нибудь фигню, которая через интернет текстовый файлик отправляет. скачиваешь эту программу, размером в 140 мегабайт, устанавливаешь, запускаешь, а она выдает сообщение "неправильная строка с указанием класса "Excel.Application"" и падает.
Оказывается я дурак забыл купить офис.
145 CepeLLlka
 
30.09.13
13:07
(138)
program rename;

uses
  SysUtils;

{$R *.res}

const
  FileCount = 52;
var
  Dir: String;
  names1: array[1..FileCount] of string = ('????????.DBF', '????????.DBF', '???.DBF', '????????.DBF');
  names2: array[1..FileCount] of string = ('F4378001.DBF', 'F4378002.DBF', 'F4378003.DBF', 'F4378004.DBF');

  i: integer;

begin
  Dir := ExtractFileDir(ParamStr(0))+'\';
  for i := 1 to FileCount do
  begin
    if FileExists(Dir + names1[i]) then
      RenameFile(Dir + names1[i], Dir + names2[i]);
  end;
end.

Да ничё не написал... подменил твои названия файлов, ну и плюс за место статичной папки поставил папку из которой запускается программа..
В массивы добью оставшиеся 48 организаций.. и всё... можно будет юзать и таскать файл в банк в том виде, в котором они хотят.. вот :)
146 Кирпич
 
30.09.13
13:17
ну и ладушки
147 Помогите
 
30.09.13
13:24
(9) В BAT/CMD есть массивы
148 Кирпич
 
30.09.13
13:25
(147) ну вот. ты всё испортил :)
149 CepeLLlka
 
30.09.13
13:25
(147)Да может и есть.. но только гуглить нужно пол дня чтобы сделать такую простую задачу..
150 Помогите
 
30.09.13
13:28
(149)
Че там гуглить...
:: инициализировать 10 переменные вида arr.X случайными числами

for /l %%i in ( 0, 1, 9 ) do (
    set /a arr.%%i=!RANDOM!
)
151 CepeLLlka
 
30.09.13
13:30
(150)Видел эту ссылку..

Даю тебе 30 минут чтобы сделать то, что сделано в (145)..
Кирпич это сделал за 5 минут, если не меньше.
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший