Форум Игромании

Форум Игромании (http://forum.igromania.ru/index.php)
-   Программирование (http://forum.igromania.ru/forumdisplay.php?f=243)
-   -   Delphi/Делфи (http://forum.igromania.ru/showthread.php?t=111292)

Ost1n_ud 23.06.2010 22:42

Delphi/Делфи
 

Delphi – это удивительный язык программирования, - это безграничные возможности, сотни компонентов, тысячи функций и открытых исходников. Вот почему даже самые продвинутые гуру не знают все о Delphi. На первый взгляд, кажется, что Delphi не одолеть? Выбросите эту мысль из головы – на то Вы и пришли в Интернет, чтобы учиться. Поверьте, delphi скоро станет для Вас настоящим другом и незаменимым помощником.

Пример.
Скрытый текст:
PHP код:

 {Событиепроисходящее при создании формы MainForm}
 
procedure TMainForm.FormCreate(SenderTObject);
 var
   {
Объявление переменной типа TStrings(список строк).}
   
StringsTStrings;
 
begin
   
{Создание(выделение памяти и тд.) объекта типа TStringList.
    
TStringList это потомок TStringsреализующий абстрактные методы.}
   
Strings := TStringList.Create
   try
     {
Добавление строки.}
     
Strings.Add('Добавляемая строка.');
     {
Сохранение строк в файл.}
     
Strings.SaveToFile('C:\Strings.txt');
   
finally
     
{Удаление объекта.}
     
Strings.Free;
   
end;
 
end



Крупнейшие информационные сайты и сообщества изучающих Delphi.

КОРОЛЕВСТВО Дельфи | Виртуальный клуб программистов
Delphi Sources — Программирование на Delphi, более 800 примеров, статьи, форум, FAQ
Мастера DELPHI
Delphi Plus — новости, посвященные Delphi
Torry’s Delphi Pages — крупнейший сборник компонент для Delphi
DRKB — Русская база знаний по Delphi
DRKB — Статьи по Delphi

GDI32.dll 25.06.2010 19:43

а что это в шапке картиночка 7-ой IDE? На дворе 2010 год как бы.
Цитата:

Сообщение от Ost1n_ud (Сообщение 8136976)
Официальная страница

Вот официальная страница

Mad-Dan 28.06.2010 02:27

и ссылка в вики вот эта
http://ru.wikipedia.org/wiki/Delphi_...D0%B8%D1%8F%29

Drobot 12.07.2010 17:00

А как насчет авто запуска дисков игромании? На какой платформе сделаны они?И вопше как такое сделать?

Enchantner 13.07.2010 23:17

Drobot, судя по всему, стандартный DirectX. Какой-то модуль в духе DelphiX. Ничего особо сложного.

Стронглав 24.07.2010 01:47

Здравствуйте. Такая задача. Даны к примеру три числа (1,2,3) нужно написать программку, которая создает максимально возможное число комбинаций из этих чисел, к примеру 123, 122,331 и т.д. То есть не просто перестановки но и с повторяющимися числами. вот написал но что-то не то, посоветуйте, кто что знает.

Код:

var
 a: array[1..3] of integer;
 b: array[1..3] of real;
 z: array[1..9] of integer;
 i,k:integer;
 begin
 for i:=1 to 3 do
 if a[i]<a[i+1]  then
  begin
  z[k]:=a[i];
 end;
 write(z[i],'');
 end.


B@sil 31.07.2010 09:28

Стронглав,
Код:

var dig: array [0..2] of integer; {массив цифорок}
i: integer;
begin
for i:=0 to 26 do                    {число полученных элементов - n^m, n - число возможных цифр, m - их количество в числе}
    begin
    write(dig[i div 9]);             
    write(dig[(i+9) mod 9 div 3]);
    writeln(dig[(i+3) mod 3];
    end;
end.

писал на сях, потом переделал под паскаль, поэтому возможно начудил в синтаксисе, но думаю суть ясна.

ACC 03.08.2010 18:51

Стронглав, даны три числа или три цифры?)
в любом случае по-моему всё просто: делаем тройной вложенный цикл (по количеству чисел-цифр), в котором на каждую позицию ставим каждый элемент массива.
for i:=1 to 3 do
for j:=1 to 3 do
for k:=1 to 3 do begin write(dig[i],dig[j],dig[k]); writeln; end;
и все. можно ещё упростить при желании.

B@sil, по-моему в Делфи немножко не приветствуется стиль С и С++, я про нумерацию с нуля

Анкар 05.09.2010 12:13

Вопрос по компилятору. Можно ведь если условие булевское (переменная или функция), не писать =true? Tипа:
if function then

Такое ощущение, что меня из-за этого компьютер как-то не так понимает. Делфи 7-ка, если важно.

ACC 05.09.2010 20:08

Цитата:

if function then
можно. И даже нужно, ибо =true - это лишнее действие, оно на доли секунды тормозит работу программы.
Возможно, проблема в том, что условие надо заключить в скобки. ПРиведите кусок кода)

Vanta11a 06.09.2010 20:49

Есть SQL-запрос, где qry7 - ADOQuery, cbb(1,2,3) - combobox
Код:

  qry7.Close;
  qry7.SQL.Clear;
  qry7.SQL.text:='insert into Zakaz (Klient, Sotrudnik, Forma oplati) values (:Klient, :Sotrudnik, :Forma oplati)';
  qry7.Parameters.ParamByName('Klient').Value:=cbb2.Text;
  qry7.Parameters.ParamByName('Sotrudnik').Value:=cbb1.Text;
  qry7.Parameters.ParamByName('Fprma oplati').Value:=cbb3.Text;
  qry7.Open;

Выходит ошибка
Цитата:

Incompatible types: 'TStrings' and 'string'
Как исправить - не могу сообразить. Вроде combobox.text должно возвращать текст выбранной строки, а ParamByName вообще пофиг, что в него вписывать.

Как исправить?

ACC 12.09.2010 23:37

под рукой нет справочников, чтобы понять суть кода (с SQL общался только в С#), но просто судя по ошибке - автоматически string в TString не хочет преобразоваться, надо явно преобразовывать

handless 25.10.2010 21:14

1.как самостоятельно написать стандартные функции TrimLeft (удаляет из строки начальные пробелы и управляющие символы) ..
2. написать функцию для нахождения nго числа последовательности Фибоначчи

Steklov 31.10.2010 18:14

Build
[Fatal Error] Project1.dpr(6): Internal error: URW3950
вот возникает такая ошибка, когда копирую программу с нетбука на основной комп и наоборот.
Что это такое?
Заново переставлять дельфи или как?

AutoAndroid 01.11.2010 00:32

О Delphi
 
Delphi — что это?

В последнее время резко возрос интерес к программированию. Это связано с развитием и внедрением в повседневную жизнь информационно-коммуникационных технологий. Если человек имеет дело с компьютером, то рано или поздно у него возникает желание, а иногда и необходимость, программировать.
Среди пользователей персональных компьютеров в настоящее время наиболее популярно семейство операционных систем Windows и, естественно, что тот, кто собирается программировать, стремится писать программы, которые будут работать в этих системах.
Несколько лет назад рядовому программисту оставалось только мечтать о создании собственных программ, работающих в среде Windows, т. к. единственным средством разработки был Borland C++ for Windows, явно ориентированный на профессионалов, обладающих серьезными знаниями и опытом.
Бурное развитие вычислительной техники, потребность в эффективных средствах разработки программного обеспечения привели к появлению систем программирования, ориентированных на так называемую "быструю разработку", среди которых можно выделить Borland Delphi и Microsoft Visual Basic. В основе систем быстрой разработки (RAD-систем, Rapid Application Development — среда быстрой разработки приложений) лежит технология визуального проектирования и событийного программирования, суть которой заключается в том, что среда разработки берет на себя большую часть рутинной работы, оставляя программисту работу по конструированию диалоговых окон и функций обработки событий. Производительность программиста при использовании RAD-систем -фантастическая!
Delphi — это среда быстрой разработки, в которой в качестве языка программирования используется язык Delphi. Язык Delphi — строго типизированный объектно-ориентированный язык, в основе которого лежит хорошо знакомый программистам Object Pascal.
В настоящее время программистам стала доступна очередная версия пакета Delphi - Borland Delphi 7 Studio. Как и предыдущие версии, Borland Delphi 7 Studio позволяет создавать самые различные программы: от простейших однооконных приложений до программ управления распределенными базами. В состав пакета включены разнообразные утилиты, обеспечивающие работу с базами данных, XML-документами, создание справочной системы, решение других задач. Отличительной особенностью седьмой версии является поддержка технологии .NET.
Borland Delphi 7 Studio может работать в среде операционных систем от Windows 98 до Windows XP. Особых требований, по современным меркам, к ресурсам компьютера пакет не предъявляет: процессор должен быть типа Pentium или Celeron с тактовой частотой не ниже 166 МГц (рекомендуется Pentium II 400 МГц), оперативной памяти - 128 Мбайт (рекомендуется 256 Мбайт), достаточное количество свободного дискового пространства (для полной установки версии Enterprise необходимо приблизительно 475 Мбайт).

Enchantner 01.11.2010 22:50

AutoAndroid, товарищ, ваша информация устарела лет эдак на 5. Delphi уже давненько и не Борланд Делфи вовсе, а очень даже CodeGear RAD Studio от Embarcadero Technologies, просто седьмая версия признана классической.

Hast 02.11.2010 01:30

Цитата:

Сообщение от Enchantner (Сообщение 8631948)
AutoAndroid, товарищ, ваша информация устарела лет эдак на 5. Delphi уже давненько и не Борланд Делфи вовсе, а очень даже CodeGear RAD Studio от Embarcadero Technologies, просто седьмая версия признана классической.

Когда Embarcadero Technologies купила у Борланд CodeGear, он стал называться Embarcadero RAD Studio :) А с последней версии, её стоит называть Embarcadero RAD Studio XE :)

handless 08.11.2010 23:01

Как заполнить массив случайными числами типа +-real

Анкар 09.11.2010 08:41

Ваяю прости господи "игру для программистов". Та часть, которая отвечает за "игру" вроде бы работает, кроме одного бага, который решено считать фичей. Теперь собственно о "программировании". Это будет собственный скриптовый язык, примерно такого вида
Скрытый текст:
Код:

[Глобальные условия, чтобы по двадцать раз не писать в локальных
функция1>функция2 - условия примерно такого вида. При этом у функций  может быть разное количество параметров, можно юзать просто константы.
условие2
условиеn
]
<локальные условия
первое
второе
третье
>
команда (перемещение на 1-2 клетку в четыре стороны (+ автоматически определяемые "в сторону нашей\вражеской базы\флага") и постройка "башни")
<

>
команда
[


]
<

>


Хранится в обычном txt.

Я сейчас буду упорно курить всё, что есть в интернете о работе с текстами, но может не надо изобретать велосипед и где-то есть наводки, как это проще сделать?

Анкар 24.11.2010 13:29

Имеется функция. В случае, если вылезает какая-либо ошибка, нужно тупо сделать её равной нулю.
Код:

function Twarrior.initiate(source:Tstrings):integer;
var check:boolean;
begin
try
........
except
on e:exception do
result:=0;
end;
end;

Почему не делает, а выдает ошибку, едрить? Внутри этой функции используются другие функции и рекурсия. Может директива компилятора какая потерялась? Есть только {$R *.dfm}

Дарио 10.12.2010 12:42

Никак не могу понять, что от меня вообще требуется в этой задаче. Подскажите, пожалуйста
Скрытый текст:
В следующем фрагменте программы определите новый курс К2 корабля, если корабль сначала шел по курсу К1, а затем его курс был изменен согласно приказу ПР

type
курс = (СЕВЕР, ВОСТОК, ЮГ, ЗАПАД);
приказ = (ВПЕРЕД, ВЛЕВО, ВПРАВО, НАЗАД);
var
К1, К2: курс;
ПР: приказ;

[CCCP] Monster 10.12.2010 13:24

Дарио, Честно говоря, я тут понял еще меньше. Это хоть какая предметная область? Что за дисциплина?

Kapone 10.12.2010 13:44

Цитата:

Сообщение от Дарио (Сообщение 8781062)
Никак не могу понять, что от меня вообще требуется в этой задаче. Подскажите, пожалуйста
Скрытый текст:
В следующем фрагменте программы определите новый курс К2 корабля, если корабль сначала шел по курсу К1, а затем его курс был изменен согласно приказу ПР

type
курс = (СЕВЕР, ВОСТОК, ЮГ, ЗАПАД);
приказ = (ВПЕРЕД, ВЛЕВО, ВПРАВО, НАЗАД);
var
К1, К2: курс;
ПР: приказ;

вообще по синтаксису на паскаль тянет, а не на с/с++

Дарио 10.12.2010 20:48

В общем, требовалось что-то вроде
Скрытый текст:
begin
writeln('enter the course');
readln(K1);
writeln('enter the order');
readln(ord);
case K1 of
north: case ord of
forw: begin K2:=north; writeln(K2); end;
backw: begin K2:=south; writeln(K2); end;
left: begin K2:=west; writeln(K2); end;
right: begin K2:=east; writeln(K2); end;
east: case ord of
forw: begin K2:=east; writeln(K2); end;
backw: begin K2:=west; writeln(K2); end;
left: begin K2:=north; writeln(K2); end;
right: begin K2:=south; writeln(K2); end;
south: case ord of
forw: begin K2:=south; writeln(K2); end;
backw: begin K2:=north; writeln(K2); end;
left: begin K2:=east; writeln(K2); end;
right: begin K2:=west; writeln(K2); end;
west: case ord of
forw: begin K2:=west; writeln(K2); end;
backw: begin K2:=east; writeln(K2); end;
left: begin K2:=south; writeln(K2); end;
right: begin K2:=north; writeln(K2); end;
end.

Хоть программа пока и не работает, смысл мне стал понятен

Steklov 10.12.2010 23:19

есть два комбобокса
в одном допустим 1 2 3 4
в другом Коля петя маша саша

как записать что бы при выборе 1, во втором появлялся только маша саша, при выборе 2 появлялся коля петя, при выборе другого только определенные данные?
как бы в if записать, но как правильнее?

OneHalf 11.12.2010 19:21

Скрытый текст:
Цитата:

Сообщение от Дарио (Сообщение 8782969)
begin
writeln('enter the course');
readln(K1);
writeln('enter the order');
readln(ord);
case K1 of
north: case ord of
forw: begin K2:=north; writeln(K2); end;
backw: begin K2:=south; writeln(K2); end;
left: begin K2:=west; writeln(K2); end;
right: begin K2:=east; writeln(K2); end;
east: case ord of
forw: begin K2:=east; writeln(K2); end;
backw: begin K2:=west; writeln(K2); end;
left: begin K2:=north; writeln(K2); end;
right: begin K2:=south; writeln(K2); end;
south: case ord of
forw: begin K2:=south; writeln(K2); end;
backw: begin K2:=north; writeln(K2); end;
left: begin K2:=east; writeln(K2); end;
right: begin K2:=west; writeln(K2); end;
west: case ord of
forw: begin K2:=west; writeln(K2); end;
backw: begin K2:=east; writeln(K2); end;
left: begin K2:=south; writeln(K2); end;
right: begin K2:=north; writeln(K2); end;
end.

Это называется китайский код :)

Если религия не запрещает поставить соответствие между направлениями и цифрами, то можно сделать так:
Скрытый текст:
Код:

Const
    forward = 1;  left = 2; backward = 3; right = 4;
    north = 1;  east = 2; south = 3; west = 4;
type
    TCourse = 1..4;
    TOrder = 1..4;
var
    firstCourse1, secondCourse: TCourse;
    order: TOrder;

Begin
    writeln('enter the course (north - 1;  east - 2; south - 3; west - 4');
    readln(firstCourse);
    writeln('enter the order (forward - 1,  left - 2, backward - 3, right - 4)');
    readln(order);

    secondCourse := (firstCourse + order - 2) Mod 4 + 1;
End.



Добавлено через 21 минуту
Цитата:

Сообщение от Steklov (Сообщение 8783695)
есть два комбобокса
в одном допустим 1 2 3 4
в другом Коля петя маша саша

как записать что бы при выборе 1, во втором появлялся только маша саша, при выборе 2 появлялся коля петя, при выборе другого только определенные данные?
как бы в if записать, но как правильнее?

Можно создать массив соответствий:
Скрытый текст:
Код:

var
    // Первый индекс - индекс выбранного элемента в первом списке,
    //    второй - индекс имени. Если записано true, то соответствующее имя должно попасть в список.
    whatShow = Array [0..3, 0..3] of Boolean;
    names = Array[0..3]  of String;

Begin
    // Не знаю, есть ли в Delphi сокращенная инициализация массивов...
    whatShow[0, 0] = false; whatShow[0, 1] = false; whatShow[0, 2] = true; whatShow[0, 3] = true;
    whatShow[1, 0] = true; whatShow[1, 1] = true; whatShow[1, 2] = false; whatShow[1, 3] = false;
    whatShow[2, 0] = false; whatShow[2, 1] = true; whatShow[2, 2] = false; whatShow[2, 3] = true;
    whatShow[3, 0] = true; whatShow[3, 1] = false; whatShow[3, 2] = true; whatShow[3, 3] = false;

    names[0] = "Коля"; names[1] = "Петя"; names[2] = "Маша"; names[3] = "Саша";

    // Не помню названия методов, но суть такая:
    CheckBox2.Clear; // Чистим список с именами
    For i = 0 To 3 Do
        If whatShow[CheckBox1.SelectedItemIndex, i] Then
            CheckBox2.Items.Add(names[i]); // Добавляем имя в список, если в массиве в соответствующем месте true
End;


KTO 04.01.2011 18:55

При добавлении элемента в контейнер, он становится в начало ? почему ?

Klas 10.03.2011 19:07

Какая разница между Delphi 2007 и Delphi 7 Lite Full Edition?

[Frgt10] 14.04.2011 14:48

Как написать след. условие: если в результате sql запроса ничего не было найдено, то выполнить действие. ?
Сам запрос, на всякий случай
Скрытый текст:
Код:

DataModule1.ADOQuery1.SQL.Add('SELECT [Название вакансии]');
DataModule1.ADOQuery1.SQL.Add('FROM Вакансии WHERE [Название вакансии] =:Назв_вак;');
DataModule1.ADOQuery1.Parameters.ParamByName('Назв_вак').Value := DBEdit4.Text;


perfect.must 14.04.2011 15:07

[Frgt10], проверь количество записей после выполнения запроса. Считай, если ничего не найдено, то записей будет 0.

Цитата:

if (DataModule1.ADOQuery1.recno=0) then
Дальше пишешь то, что будет выполнятся, если в результате запроса ничего не было найдено.

[Frgt10] 14.04.2011 16:20

Цитата:

Сообщение от Celsius (Сообщение 9235162)
[Frgt10], проверь количество записей после выполнения запроса. Считай, если ничего не найдено, то записей будет 0.
Код:

if (DataModule1.ADOQuery1.recno=0) then

Попробовал. Так не правильно, т.к. даже если по запросу ничего не найдено в таблице все равно есть 1 строка, только пустая. Поэтому это условие не выполнялось. Нашел подходящую функцию:
Код:

if (DataModule1.ADOQuery_Vac.IsEmpty=true) then
Так работает.

[Frgt10] 23.04.2011 19:55

Как в таблице перейти на запись выбранную в ComboBox'e ? В комбобоксе список компаний, выбрав одну нужно отобразить сведения о ней.
Думаю что примерно так
Код:

DataModule1.ADOTable_Companys.FieldbyName('Название компании').[нечто, чему присваиваем значение комбобокса] ComboBox1.Text;
и еще подскажите как комбобоксу задать значение по умолчанию?

perfect.must 25.04.2011 07:39

Цитата:

Сообщение от [Frgt10
;9268432]Как в таблице перейти на запись выбранную в ComboBox'e ? В комбобоксе список компаний, выбрав одну нужно отобразить сведения о ней.

Через фильтр может?

Цитата:

DataModule1.ADOTable_Companys.Filter:='Название_ко мпании='+ComboBox1.Text;
Цитата:

Сообщение от [Frgt10
;9268432]и еще подскажите как комбобоксу задать значение по умолчанию?

ComboBox1.ItemIndex:=индекс выбираемого значения;

Например, если у тебя в комбобоксе значения: a, b, c, и ты хочешь чтобы по умолчанию стояло "c", то пишешь ComboBox1.ItemIndex:=2 (нумерация идет с нуля).

[Frgt10] 25.04.2011 10:15

Celsius, через фильтр не работает. Ошибка: Аргументы имеют неверный тип, выходят за пределы доспустимого диапазона или вступают в конфликт друг с другом.

perfect.must 25.04.2011 14:40

[Frgt10], попробуй

Цитата:

DataModule1.ADOTable_Companys.Filter:='[Название_ко мпании]='+ComboBox1.Text;

[Frgt10] 25.04.2011 16:52

Celsius, результат тот же. ладно, забей.

SolidlSnake 25.04.2011 22:48

[Frgt10], не надо так забрасывать - проблемы нужно учиться решать, в будущем пригодится.

[Frgt10] 26.04.2011 07:28

SolidlSnake, я и не собираюсь забрасывать.

Alex_PRO 03.05.2011 00:01

Тут с несложными заданиями помогают?

[Frgt10] 11.06.2011 10:12

Есть компонент BDCtrlGrid, на нем помимо разных edit'ов и пр. есть Label в котором должен отображаться порядковый номер записи. Как это сделать?

Sooltan DJ 02.12.2011 21:39

Нужно срочно сделать прогу по Курсовой работе, метод шифрования магический квадрат, с дизайном и с возможностью сохранения файла. Очень нужно до вторника готовая прога.

Добавлено через 20 часов 20 минут
Кто-нибудь может сделать?

Sooltan DJ 05.12.2011 17:30

Мне очень срочно нужно на этой неделе.

bober_maniac 07.12.2011 00:01

Тювак, у нас тут элитное общество, мы таким не занимаемся.

Sniffer 25.12.2011 18:05

Вводится строка, например «2+3», «7*7», «8/2».
Нужно вывести результат.
Не могу сообразить, как грамотно реализовать считывание из строки цифр и знака

CMETAHA 25.12.2011 18:52

Цитата:

Сообщение от Sniffer (Сообщение 9980832)
Не могу сообразить, как грамотно реализовать считывание из строки цифр и знака

Считывай посимвольно.

CrazyJiM 05.02.2012 23:57

считываешь по символу, а знак проверяешь с помощью if s(знак) = / then ... else if... s(знак) = * then... else if... и так со всеми знаками

D!mon 27.02.2012 14:50

задача: удалить запись из файла. решил записывать все записи кроме той что надо удалить в новый файл. потом удалять старый. и новый переименовывать по имени старого.
Скрытый текст:

begin
AssignFile(f, 'tovar.dat');
reset(f); //файл, в котором все записи хранятся
AssignFile(g, 'tmp.dat');
rewrite(g); //создаю новый файл
j:=0;
while (not EOF(f)) do
begin
seek(f,j);
read(f,x);
if x.name=namebox.text then //тут мне нужно пропустить запись, у которой имя совпадает с тем что введено в namebox
begin
inc(j);
seek(f,j);
read(f,x);
end;
write(g,x);
inc(j);
end;
Erase(f); //стираю старый файл
s:='tovar.dat';
ReName(g, s); //переименовываю новый файл
closefile(f); //я понимаю что формально я удалил файл f, но ведь он ассоциирован с файлом, который уже после переименования существует.
end

при попытке удалить запись, выдаёт ошибку io 32. проходил код пошагово, ошибка появляется уже по завершении этой процедуры, то есть даже после выполнения закрытия файла

G.E.A.R. 06.03.2012 20:16

как из WebBrowserа кликом по ссылке вызвать процедуру?

фон_Цинег 09.03.2012 11:48

Если речь идет о TWebBrowser, то обработкой его события OnNavigateComplete2.

8lunt 18.03.2012 17:28

Делаю небольшую задачку, но условия оформления таковы, что обязательно должно быть MainMenu с кучей пунктов, хотя можно было обойтись.
Хочу как бы разделить код, вынести все процедуры, отвечающие за обработку пунктов меню, в отдельный Unit. Т.е. получается одна форма, а к ней два юнита - с алгоритмами обработки данных и с обработчиками менюх. Как это сделать?

G.E.A.R. 18.03.2012 19:53

Так?

Скрытый текст:
Код:

unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    MainMenu1: TMainMenu;
    menu1: TMenuItem;
    procedure menu1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

uses Unit2;
{$R *.dfm}

procedure TForm1.menu1Click(Sender: TObject);
begin
  Procedure1;
end;

end.

Код:

unit Unit2;

interface

Procedure Procedure1;

implementation

uses Unit1;

Procedure Procedure1;
Begin
  Form1.Caption:='qwerty';
End;

end.


8lunt 19.03.2012 02:47

Да, заработало наконец-то. Гуглил что-то подобное но не работало.
Еще, когда через File-New создаешь AboutBox - при выводе его на экран он блокирует основную форму, т.е. пока не закроешь AboutBox переключиться на главную форму нельзя. Как такое сделать с собственной формой? Я так понимаю, должно быть какое-то свойство формы (потому что в AboutBox никаких обработчиков событий по умолчанию нет), но я его не могу найти.

G.E.A.R. 19.03.2012 08:13

показывай свою форму так Form2.ShowModal

MicPavlov 20.03.2012 10:47

Кто нибудь работал с графическими файлами tiff? Если есть можете библиотеку скинуть? или компонент?

гидроцветок 10.04.2012 23:27

Как получать из edit тип cordinal,а потом работать им как с int?

bober_maniac 14.04.2012 20:49

Цитата:

Сообщение от гидроцветок (Сообщение 10210210)
Как получать из edit тип cordinal,а потом работать им как с int?

А зачем тебе работать с ним как с int? Получи сразу int с помощью текста и функции StrToInt.

bober_maniac 14.04.2012 20:49

Цитата:

Сообщение от гидроцветок (Сообщение 10210210)
Как получать из edit тип cordinal,а потом работать им как с int?

А зачем тебе работать с ним как с int? Получи сразу int с помощью текста и функции StrToInt.

Льюс Терин 09.06.2012 10:09

Простите за глупый вопрос. У дэлфи свой язык? или это тот же паскаль?

D!mon 09.06.2012 13:08

NOSик,
тот же паскаль, просто среда делфи (свой компилятор и всё такое прочее)
но есть некоторые отличия при работе с объектами в обжект-паскаль и в делфи

Hast 10.06.2012 13:25

NOSик, делфи - отдельный язык. Это не обжект паскаль.

Digimortal 09.07.2012 20:54

Народ помогите советом :)
Надо написать программу (ради тренировки) для расчёта:
3*х1+2*х2+1х3 =5
2*х1+3*х2+1*х3 =1
2*х1+1*х2+3*х3 =11

Во всех трёх строках х1, х2 и х3 должны иметь одинаковые значения.
Который час ломаю голову.

CMETAHA 09.07.2012 21:08

Digimortal, Бог ты мой. Что конкретно не получается? Ты не умеешь решать систему уравнений?

Digimortal 09.07.2012 21:16

Ага, не умею.

CMETAHA 09.07.2012 21:23

Digimortal, Ну тогда дуй в гугл. Ничего сложного в решении систем нет.

Анкар 10.07.2012 04:53

Я бы даже сказал дуй сюда. Хотя тут 3 уравнения и 3 неизвестных, так что более полезно закодить Метод Крамера.

Кар-Карыч 10.07.2012 16:34

Цитата:

Сообщение от Digimortal (Сообщение 10368780)
Ага, не умею.

Ох боже мой, решение системы уравнений методом обратной матрицы, смотри тут

Cornereaux 01.12.2012 11:36

Написать программу, которая выводит на экран изображение перемещающегося кораблика. Кто сможет скинуть проект на почту?

Льюс Терин 01.01.2013 11:50

Чем Delphi 2007 отличается от Delphi 7?

CMETAHA 04.01.2013 01:30

nosikamus, http://nnm.ru/blogs/alex_sporik/delp...yu_s_delphi_7/

Cornereaux 29.04.2013 15:06

Нужна помощь в создании тестовой программы, считывающей вопрос, варианты ответов и ответ с внешнего файла, с выведением количества правильных ответов. Кто может потратить свое бесценное время, прошу помочь.
P.S. Считывание должно быть с .doc файла

Льюс Терин 06.10.2013 12:22

не работает этот кусок кода:
Код:

begin
Form1.Canvas.Ellipse(360, 112, c.Di+360, c.Di+112);

end;

Если просто числами задать, то все нормально, с простыми переменными тоже не работает.
Ошибка
E2250 There is no overloaded version of 'Ellipse' that can be called with these arguments

Keltar 08.10.2013 22:54

nosikamus, переменные типа integer? Нарыл такой кусок кода, сверь со своим.
Цитата:

var x1, y1, x2, y2: Integer;
begin
X1:=100; y1:=100;
X2:=200; y2:=200;
canvas.Ellipse(x1, y1, x2, y2);

Льюс Терин 08.10.2013 23:12

Да. Я уже что по разному извращался.
Попробую твой вставить, посмотрю будет работать или нет.
Спасибо.
А где подробней про классы почитать можно про это? Мне это нужно именно через класс сделать, вроде.

Keltar 08.10.2013 23:15

nosikamus, ну вот это http://win-ni.narod.ru/lect/lect14.htm например. Я на дельфи так-то не пишу)

Льюс Терин 02.11.2013 17:17

Как сделать так, что бы когда я ввожу текст по символьно через компонент Button в Edit, сиволы вводились последовательно, а не заменяя друг друга. Или с Edit такое нельзя сделать?


АПД:
Тупой вопрос, на самом деле, и задал его тупо.
Все просто:
Код:

Edit1.Text:=  Edit1.Text + 'символ'

Льюс Терин 18.11.2013 15:51

Можно ли как-то Delphi сформировать что-то типа отчета о использованных компонентов в написанной программе - какие события использовались, и.т.д.
Можно,конечно вручную, но вот подумал: а не предусмотрена такая возможность в самой среде.
Delphi 7
RAD XE

Льюс Терин 19.11.2013 20:37

И в догонку еще проблема:
Код:

if (Key in ['+']) then
 begin
 key:= #0;
 Btn11.Click;
 end;

 if (Key in ['-']) then
 begin
 key:= #0;
 Btn12.Click;
 end;

 if (Key in ['*']) then
 begin
 key:= #0;
 Btn13.Click;
 end;

 if (Key in ['/']) then
 begin
 key:= #0;
 Btn14.Click;
 end;

Все работает, кроме '-', сама кнопка работает, но не срабатывает при нажатии '-'

Льюс Терин 21.01.2015 20:04

Тут все мертво...

Хочу передать синусойду через сокет на другой компьютер, передаю уже посчитаные x и y а на приеме уже рисую.i

Код:

procedure TForm1.Button3Click(Sender: TObject);
begin
while x *<=100 do
*begin
* y:=sin(x);
* *ClientSocket1.Socket.SendText(FloatToStr(x) + '&' +FloatToStrf(y, fffixed, 3,3) );
* x:= x + dx;
end;
end;

На цикле сокет заикается, и не передает ничего. Если цикл убрать, и просто клацать кнопку, то отрисовка у клиента идет. Думал добавить Sleep(), но не получается засунуть отправку в поток:
Код Delphi

Код:

ClientSocket1.Socket.SendText(FloatToStr(x) + '&' +FloatToStrf(y, fffixed, 3,3) );
Без потока программа естественно виснет.
Как сделать так, что бы сокет передавал данные?

[CCCP] Monster 21.01.2015 20:48

nosikamus,
Цитата:

Тут все мертво...
Сегодня встретишь ты едва ли,
Тех кто пишет на Паскале.
Все, кого ты ни спроси,
Программируют на Си.

Цитата:

На цикле сокет заикается, и не передает ничего.
Объект сокета создавался как синхронный? Какие параметры протокола использовались? Конструктор и настройки, в общем, напиши.

Льюс Терин 21.01.2015 21:16

[CCCP] Monster, все, на меня поругались на кибер форуме, и решил проблему http://www.cyberforum.ru/delphi-netw...ad1359013.html

Marcus. F 04.03.2016 20:51

Подскажите как написать в делфи программу проверки пунктуации? тоесть она должно проверять наличие пробелов перед точкой и после, если есть перед то удалить его, если нет пробела после точки поставить. Сам в делфи даун, но очень надо.

ALEXEVIAN 14.07.2016 11:50

Marcus. F, команды Pos и ReplaceStr тебе в помощь. Первой находишь положение точек в исходном тексте, второй заменяешь неправильные куски на правильные. Ну, ещё понадобится сравнивать соседние с точкой два символа на наличие пробела.

Добавлено через 6 минут
Цитата:

Сообщение от Льюс Терин (Сообщение 11183112)
Можно ли как-то Delphi сформировать что-то типа отчета о использованных компонентов в написанной программе - какие события использовались, и.т.д.

Можно перебрать все обьекты на форме и перечислить их. Названия компонентов в смысле библиотек типа LMD использованных в программе вряд ли удастся автоматом вывести.

Льюс Терин 14.07.2016 12:17

Так и делал.


Часовой пояс GMT +4, время: 16:34.

Powered by vBulletin® Version 3.8.0
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.