Форум Игромании
 
Регистрация
Справка

Программирование Создание, разработка и доработка различных игр и программного обеспечения

Ответ
 
Опции темы
Старый 23.06.2010, 22:42   #1
Игрок
 
Аватар для Ost1n_ud
 
Регистрация: 28.09.2009
Сообщений: 812
Репутация: 586 [+/-]
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

Последний раз редактировалось Ost1n_ud; 28.06.2010 в 20:20. Причина: Обновление шапки
Ost1n_ud вне форума  
Отправить сообщение для Ost1n_ud с помощью ICQ Ответить с цитированием
Старый 10.12.2010, 12:42   #21
Глава клана "Киноманы"
 
Аватар для Дарио

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

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

Чую, пропадет моя студенческая жизнь
Дарио вне форума  
Отправить сообщение для Дарио с помощью ICQ Ответить с цитированием
Старый 10.12.2010, 13:24   #22
Пугатель
 
Аватар для [CCCP] Monster

 
Регистрация: 26.06.2005
Адрес: Москва, СССР
Сообщений: 5,810
Репутация: 856 [+/-]
Дарио, Честно говоря, я тут понял еще меньше. Это хоть какая предметная область? Что за дисциплина?
__________________
Служу Советскому Союзу!

Хорошо смеется тот, кто стреляет первым! (танкистская мудрость)
[CCCP] Monster вне форума  
Отправить сообщение для [CCCP] Monster с помощью Skype™ Ответить с цитированием
Старый 10.12.2010, 13:44   #23
Опытный игрок
 
Аватар для Kapone
 
Регистрация: 10.06.2006
Сообщений: 1,160
Репутация: 74 [+/-]
Цитата:
Сообщение от Дарио Посмотреть сообщение
Никак не могу понять, что от меня вообще требуется в этой задаче. Подскажите, пожалуйста
Скрытый текст:
В следующем фрагменте программы определите новый курс К2 корабля, если корабль сначала шел по курсу К1, а затем его курс был изменен согласно приказу ПР

type
курс = (СЕВЕР, ВОСТОК, ЮГ, ЗАПАД);
приказ = (ВПЕРЕД, ВЛЕВО, ВПРАВО, НАЗАД);
var
К1, К2: курс;
ПР: приказ;
вообще по синтаксису на паскаль тянет, а не на с/с++
__________________
Никогда не твори зло.
Будь выше этого.
Kapone вне форума  
Ответить с цитированием
Старый 10.12.2010, 20:48   #24
Глава клана "Киноманы"
 
Аватар для Дарио

 
Регистрация: 25.08.2006
Адрес: шутка про адрес
Сообщений: 842
Репутация: -196 [+/-]
В общем, требовалось что-то вроде
Скрытый текст:
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.

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

Чую, пропадет моя студенческая жизнь
Дарио вне форума  
Отправить сообщение для Дарио с помощью ICQ Ответить с цитированием
Старый 10.12.2010, 23:19   #25
Хитрые планы
 
Аватар для Steklov
 
Регистрация: 01.01.2007
Адрес: Северная столица мира!
Сообщений: 2,078
Репутация: 471 [+/-]
есть два комбобокса
в одном допустим 1 2 3 4
в другом Коля петя маша саша

как записать что бы при выборе 1, во втором появлялся только маша саша, при выборе 2 появлялся коля петя, при выборе другого только определенные данные?
как бы в if записать, но как правильнее?
Steklov вне форума  
Отправить сообщение для Steklov с помощью ICQ Отправить сообщение для Steklov с помощью Skype™ Ответить с цитированием
Старый 11.12.2010, 19:21   #26
Dis is one half
 
Аватар для OneHalf
 
Регистрация: 19.10.2007
Адрес: Санкт-Петербург
Сообщений: 1,460
Репутация: 304 [+/-]
Скрытый текст:
Цитата:
Сообщение от Дарио Посмотреть сообщение
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 Посмотреть сообщение
есть два комбобокса
в одном допустим 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;

Последний раз редактировалось OneHalf; 12.12.2010 в 01:16. Причина: Добавлено сообщение
OneHalf вне форума  
Отправить сообщение для OneHalf с помощью ICQ Отправить сообщение для OneHalf с помощью Skype™ Ответить с цитированием
Старый 04.01.2011, 18:55   #27
Игрок
 
Аватар для KTO
 
Регистрация: 30.11.2006
Адрес: Казань
Сообщений: 796
Репутация: 204 [+/-]
При добавлении элемента в контейнер, он становится в начало ? почему ?

Последний раз редактировалось KTO; 04.01.2011 в 21:53.
KTO вне форума  
Ответить с цитированием
Старый 10.03.2011, 19:07   #28
Новичок
 
Аватар для Klas
 
Регистрация: 06.06.2009
Адрес: Калининград
Сообщений: 6
Репутация: 70 [+/-]
Какая разница между Delphi 2007 и Delphi 7 Lite Full Edition?
__________________
^_^
Klas вне форума  
Отправить сообщение для Klas с помощью ICQ Отправить сообщение для Klas с помощью Skype™ Ответить с цитированием
Старый 14.04.2011, 14:48   #29
Юзер
 
Аватар для [Frgt10]
 
Регистрация: 12.03.2007
Сообщений: 306
Репутация: 113 [+/-]
Как написать след. условие: если в результате sql запроса ничего не было найдено, то выполнить действие. ?
Сам запрос, на всякий случай
Скрытый текст:
Код:
DataModule1.ADOQuery1.SQL.Add('SELECT [Название вакансии]');
DataModule1.ADOQuery1.SQL.Add('FROM Вакансии WHERE [Название вакансии] =:Назв_вак;');
DataModule1.ADOQuery1.Parameters.ParamByName('Назв_вак').Value := DBEdit4.Text;
__________________
lastfm.ru/user/Frgt10_13
steamcommunity.com/id/FRGT
[Frgt10] вне форума  
Отправить сообщение для [Frgt10] с помощью ICQ Ответить с цитированием
Старый 14.04.2011, 15:07   #30
 
Аватар для XMst
 
Регистрация: 08.08.2010
Сообщений: 2,544
Репутация: 140 [+/-]
[Frgt10], проверь количество записей после выполнения запроса. Считай, если ничего не найдено, то записей будет 0.

Цитата:
if (DataModule1.ADOQuery1.recno=0) then
Дальше пишешь то, что будет выполнятся, если в результате запроса ничего не было найдено.
XMst вне форума  
Ответить с цитированием
Старый 14.04.2011, 16:20   #31
Юзер
 
Аватар для [Frgt10]
 
Регистрация: 12.03.2007
Сообщений: 306
Репутация: 113 [+/-]
Цитата:
Сообщение от Celsius Посмотреть сообщение
[Frgt10], проверь количество записей после выполнения запроса. Считай, если ничего не найдено, то записей будет 0.
Код:
if (DataModule1.ADOQuery1.recno=0) then
Попробовал. Так не правильно, т.к. даже если по запросу ничего не найдено в таблице все равно есть 1 строка, только пустая. Поэтому это условие не выполнялось. Нашел подходящую функцию:
Код:
 if (DataModule1.ADOQuery_Vac.IsEmpty=true) then
Так работает.
__________________
lastfm.ru/user/Frgt10_13
steamcommunity.com/id/FRGT
[Frgt10] вне форума  
Отправить сообщение для [Frgt10] с помощью ICQ Ответить с цитированием
Старый 23.04.2011, 19:55   #32
Юзер
 
Аватар для [Frgt10]
 
Регистрация: 12.03.2007
Сообщений: 306
Репутация: 113 [+/-]
Как в таблице перейти на запись выбранную в ComboBox'e ? В комбобоксе список компаний, выбрав одну нужно отобразить сведения о ней.
Думаю что примерно так
Код:
DataModule1.ADOTable_Companys.FieldbyName('Название компании').[нечто, чему присваиваем значение комбобокса] ComboBox1.Text;
и еще подскажите как комбобоксу задать значение по умолчанию?
__________________
lastfm.ru/user/Frgt10_13
steamcommunity.com/id/FRGT

Последний раз редактировалось [Frgt10]; 23.04.2011 в 20:47.
[Frgt10] вне форума  
Отправить сообщение для [Frgt10] с помощью ICQ Ответить с цитированием
Старый 25.04.2011, 07:39   #33
 
Аватар для XMst
 
Регистрация: 08.08.2010
Сообщений: 2,544
Репутация: 140 [+/-]
Цитата:
Сообщение от [Frgt10
;9268432]Как в таблице перейти на запись выбранную в ComboBox'e ? В комбобоксе список компаний, выбрав одну нужно отобразить сведения о ней.
Через фильтр может?

Цитата:
DataModule1.ADOTable_Companys.Filter:='Название_ко мпании='+ComboBox1.Text;
Цитата:
Сообщение от [Frgt10
;9268432]и еще подскажите как комбобоксу задать значение по умолчанию?
ComboBox1.ItemIndex:=индекс выбираемого значения;

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

Последний раз редактировалось XMst; 25.04.2011 в 07:44.
XMst вне форума  
Ответить с цитированием
Старый 25.04.2011, 10:15   #34
Юзер
 
Аватар для [Frgt10]
 
Регистрация: 12.03.2007
Сообщений: 306
Репутация: 113 [+/-]
Celsius, через фильтр не работает. Ошибка: Аргументы имеют неверный тип, выходят за пределы доспустимого диапазона или вступают в конфликт друг с другом.
__________________
lastfm.ru/user/Frgt10_13
steamcommunity.com/id/FRGT
[Frgt10] вне форума  
Отправить сообщение для [Frgt10] с помощью ICQ Ответить с цитированием
Старый 25.04.2011, 14:40   #35
 
Аватар для XMst
 
Регистрация: 08.08.2010
Сообщений: 2,544
Репутация: 140 [+/-]
[Frgt10], попробуй

Цитата:
DataModule1.ADOTable_Companys.Filter:='[Название_ко мпании]='+ComboBox1.Text;
XMst вне форума  
Ответить с цитированием
Старый 25.04.2011, 16:52   #36
Юзер
 
Аватар для [Frgt10]
 
Регистрация: 12.03.2007
Сообщений: 306
Репутация: 113 [+/-]
Celsius, результат тот же. ладно, забей.
__________________
lastfm.ru/user/Frgt10_13
steamcommunity.com/id/FRGT
[Frgt10] вне форума  
Отправить сообщение для [Frgt10] с помощью ICQ Ответить с цитированием
Старый 25.04.2011, 22:48   #37
Игроман
 
Аватар для SolidlSnake
 
Регистрация: 24.03.2008
Сообщений: 3,805
Репутация: 427 [+/-]
[Frgt10], не надо так забрасывать - проблемы нужно учиться решать, в будущем пригодится.
__________________
Все выше сказанное - мое личное мнение.
SolidlSnake вне форума  
Ответить с цитированием
Старый 26.04.2011, 07:28   #38
Юзер
 
Аватар для [Frgt10]
 
Регистрация: 12.03.2007
Сообщений: 306
Репутация: 113 [+/-]
SolidlSnake, я и не собираюсь забрасывать.
__________________
lastfm.ru/user/Frgt10_13
steamcommunity.com/id/FRGT
[Frgt10] вне форума  
Отправить сообщение для [Frgt10] с помощью ICQ Ответить с цитированием
Старый 03.05.2011, 00:01   #39
Новичок
 
Регистрация: 02.11.2008
Сообщений: 0
Репутация: 146 [+/-]
Тут с несложными заданиями помогают?
Скрытый текст:
Alex_PRO вне форума  
Ответить с цитированием
Старый 11.06.2011, 10:12   #40
Юзер
 
Аватар для [Frgt10]
 
Регистрация: 12.03.2007
Сообщений: 306
Репутация: 113 [+/-]
Есть компонент BDCtrlGrid, на нем помимо разных edit'ов и пр. есть Label в котором должен отображаться порядковый номер записи. Как это сделать?
__________________
lastfm.ru/user/Frgt10_13
steamcommunity.com/id/FRGT
[Frgt10] вне форума  
Отправить сообщение для [Frgt10] с помощью ICQ Ответить с цитированием
Ответ

Метки
delphi, обсуждение, помощь, программирование

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


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


Powered by vBulletin® Version 3.8.0
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Rambler's Top100 Яндекс цитирования