Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi (до версии 2009) - часть 5

Модерирует : ShIvADeSt

ShIvADeSt (19-05-2010 05:14): Продолжаем тут http://forum.ru-board.com/topic.cgi?forum=33&topic=11215  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101

   

ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Продолжение темы Вопросы по Delphi (до версии 2009) - часть 4

Познаем сами, помогаем другим...
Обсуждаем вопросы, не связанные с юникоидными версиями Delphi - для этого есть соответствующая тема (см. ссылки ниже).

Правила топика:
    Прежде чем спрашивать:
  1. Желательно изучить вопрос, попытаться найти ответ в прилагаемых мануалах, хелпах и анализируя исходники.
  2. Выполнить поиск по топику (открыть "Версия для печати" и поискать ответ там).
  3. Применить фильтр по разделу "Прикладное программирование". Ответы на многие старые вопросы могли быть даны в отдельных темах.
  4. Продумайте вопрос. На поверхностные вопросы вы получите поверхностные ответы, или вообще ответов не получите.
  5. Желательно указывать версии используемого компилятора и операционной системы.
    Прежде чем отвечать:
  1. Если не можете помочь, не мешайте.
  2. Если уж вы отвечаете на вопрос, давайте ответ по сути.
  3. Если вы не уверены, так и говорите! Ошибочный, но авторитетно звучащий ответ хуже, чем отсутствие ответа.
  4. Задавайте дополнительные вопросы, чтобы получить больше информации.
  • Отсутствие ответа не равносильно игнорированию - иногда участники форума просто не знают ответ. Повторная посылка вопроса не приветствуется. Посты типа "неужели никто не знает ответа..." или "может мне все-таки кто-нибудь ответит" недопустимы.  
  • Все большие куски кода (более 5 строк) оформляем в тег [morе] дабы уменьшить размер поста. FAQ по тегу [morе].

  • Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 02:09 28-06-2009 | Исправлено: psa1974, 12:00 02-02-2010
    snike555



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    MegoChelovek
     
    1) Посмотрите функцию RoundTo
    2) Каким образом ругается компилятор?
    3) Точно хотите к типу integer преобразовать?

    Всего записей: 380 | Зарегистр. 02-10-2009 | Отправлено: 22:11 16-02-2010
    Odysseos



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    MegoChelovek
     
    Во-первых, ругается-то тут не компилятор, а уже выполняющаяся программа, так?
     
    Во-вторых - на что именно ругается? Текст сообщения какой?
     
    В-третьих - прям навскидку видно, что функция obrezanie будет работать совершенно некорректно, если запятой во введенной строке нет вообще.

    Всего записей: 186 | Зарегистр. 02-01-2006 | Отправлено: 22:35 16-02-2010
    zakov



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    так вот когда я в Эдит ввожу отрицательное число, то компилятор начинает ругаться...как быть ?

     
    У меня такой вот код ошибки не вызывает:

    Код:
     
    function obrezanie(S: string; Count: Integer): String;
    var
        N: Integer;
    begin  
      N:=Pos(',', S);  
      if N> 0 then begin
         N:=N+Count;    
         Result:=Copy(S, 1, N);
      end else
         Result:=S;
    end;
     
    procedure TForm1.Button1Click(Sender: TObject);
    var
      koordX, x0 : integer;
    begin
      x0 := 0;
       
      koordX:= x0+round((strtofloat(obrezanie(Edit1.Text,1)))*40);
      label1.Caption:=intTostr(koordX);
    end;
     

    Всего записей: 163 | Зарегистр. 24-01-2008 | Отправлено: 00:54 17-02-2010
    Man Without Face



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Доброго времени суток. Вопрос по dbChart:
    Диаграмма из двух кривых, нужно добавить третью (сложить первую со второй). Возможно ли это и как это можно реализовать? По иксу время от 0ч до 24ч, по игрику значения. Заранее благодарен. Код создания диаграммы: Подробнее...

    Всего записей: 381 | Зарегистр. 25-01-2010 | Отправлено: 10:21 17-02-2010
    Eyrikh

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Man Without Face
    Может быть, в одном цикле по времени (часам) выбирать данные каждым запросом с построением графиков, полученные значения складывать, построение общего графика и т.д. по циклу (по шкале времени )

    Всего записей: 4 | Зарегистр. 11-07-2006 | Отправлено: 10:51 17-02-2010
    Man Without Face



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Что то похожее пробовал Подробнее.... Вообще ерунду строит.
     
    Добавлено:
    Если бы что то похожее было: bar_ser3.add(bar_ser1 + bar_ser2);
     
    Добавлено:
    Всем спасибо, все сделал

    Всего записей: 381 | Зарегистр. 25-01-2010 | Отправлено: 11:06 17-02-2010
    MegoChelovek



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Спасибо, щас попробую исправить  
     
    Добавлено:
    zakov
    Спасибо за obrezanie (смешно звучит ) щас всё работает корректно
     
    Всем спасибо за помощ !
     
    P.S. только вот почему программа раньше выдавала исключение типа EConverError я так и не понял

    Всего записей: 33 | Зарегистр. 08-12-2009 | Отправлено: 16:06 17-02-2010 | Исправлено: MegoChelovek, 17:21 17-02-2010
    jonikDk



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    MegoChelovek

    Цитата:
    P.S. только вот почему программа раньше выдавала исключение типа EConverError я так и не понял

    ну так ошибка была при конвертировании из одного типа в другой

    Всего записей: 1604 | Зарегистр. 01-03-2004 | Отправлено: 17:39 17-02-2010
    MegoChelovek



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    jonikDk
    нудопустим в поле я вводил отрицательное число, strtofloat преобразовывала в вещ тип ......блин...кажеться я врубилсо....если запятой не было, то получалось что у меня только знак "-" копировался....ну из этого и исключение..
     
    Вот и поговорил сам с собой

    Всего записей: 33 | Зарегистр. 08-12-2009 | Отправлено: 17:54 17-02-2010 | Исправлено: MegoChelovek, 17:55 17-02-2010
    Man Without Face



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Всем привет. Делаю экспорт в dbf при помощи Halcyon6. Файл создается с полями но они все пустые, подскажите пож. что не так делаю?.
     
    Код:
    Подробнее...

    Всего записей: 381 | Зарегистр. 25-01-2010 | Отправлено: 16:59 18-02-2010
    jonikDk



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Код:
     
    while qExportDbf.Eof do  
                begin  
                  hds.Append;  
     
     
                  hds.FieldByName('SHIFTDATE').AsDateTime := qExportDbf.FieldByName('rc_sd_begindate').AsDateTime;  
                  //hds.FieldByName('EMTCODE').AsInteger := 640;  
                  hds.FieldByName('AZSCODE').AsInteger := qExportDbf.FieldByName('rc_sd_object').AsInteger;  
                  hds.FieldByName('OILCODE').AsInteger := qExportDbf.FieldByName('rc_smenar_producttype').AsInteger;  
     
                  hds.Post;  
                  //showmessage(inttostr(hds.FieldByName('azscode').AsInteger));  
                  hds.Next;  
                end;
     

    Попробуй отладчик: у тебя цикл не выполняется, затем строка в цикле  
    hds.Next; ты по какому DataSetу собрался перемещаться ?  

    Всего записей: 1604 | Зарегистр. 01-03-2004 | Отправлено: 17:45 18-02-2010
    Odysseos



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Man Without Face
     
    while qExportDbf.Eof do заменить на while not qExportDbf.Eof do
     
    hds.Next; заменить на qExportDbf.Next;

    Всего записей: 186 | Зарегистр. 02-01-2006 | Отправлено: 20:14 18-02-2010
    jonikDk



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Odysseos
    блин ну неужели все надо разжевывать, я специально не написал решение, чтобы человек подумал и сам нашел свои ошибки ...

    Всего записей: 1604 | Зарегистр. 01-03-2004 | Отправлено: 20:31 18-02-2010
    Odysseos



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    jonikDk
     
    В шапке топика:
     
    2. Если уж вы отвечаете на вопрос, давайте ответ по сути.

    Всего записей: 186 | Зарегистр. 02-01-2006 | Отправлено: 06:20 19-02-2010
    Man Without Face



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    jonikDk
    Odysseos
    Спасибо большое, я затупил нереально...

    Всего записей: 381 | Зарегистр. 25-01-2010 | Отправлено: 09:12 19-02-2010
    jonikDk



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Odysseos
    ну и где я не по сути ответил ??? я указал на конкретные две ошибки.

    Всего записей: 1604 | Зарегистр. 01-03-2004 | Отправлено: 09:26 19-02-2010
    zakov



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Уважаемые! Подскажите кто как использует автоинкрементные поля?
    Есть клиент-серверный проект с использованием Midas. Идея в том, чтобы пользователь вводил виртуальный документ со строками данных. Запись нового документа и данных грида документа (формы) производится в базу данных после заполнения грида и нажатия по кнопке сохранить.
    Значения ключевого поля ClientDataSet заполняются вызовом процедуры базы данных, считывающей значение генератора в базе данных, после чего генератор инкременируется.
    Так вот проблема в чем... Если пользователь нажимает кнопку отмена, документ не сохраняется и сгенирированные значения теряются, т.е. выпадают из последовательности в базе данных...
    Как сделать так, чтобы значения генерировались в базе данных при записи данных???
    Стандартно создал триггер и пробовал разными способами и не получается, что в общем-то логично:
    - если ключевое поле оставлять пустым, компилятор ругается на пустое поле;
    - если заполнять нулями - ругается на неуникальное значение ключевого поля.
     
    Подскажите, пожалуйста, решение!!!

    Всего записей: 163 | Зарегистр. 24-01-2008 | Отправлено: 23:36 20-02-2010
    volser

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    и сгенирированные значения теряются, т.е. выпадают из последовательности в базе данных...  

    И чем это плохо? А если удалить документ, то значения не теряются?

    Всего записей: 713 | Зарегистр. 31-03-2006 | Отправлено: 00:03 21-02-2010
    zakov



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    И чем это плохо? А если удалить документ, то значения не теряются?

     
    Теряются конечно, и когда отдельные строки документа удаляются, просто хотелось эти потери минимизировать, как-то стройнее было бы
     
    Добавлено:
    А есть возможность отключить контроль DataSet-а за ключевым полем???

    Всего записей: 163 | Зарегистр. 24-01-2008 | Отправлено: 00:27 21-02-2010
    volser

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    zakov
    Я так и не получил ответ чем же это плохо? Зачем это делать если дырки в последовательности айдишек и так будут? Или же можно отказаться от инкрементов и писать свой велосипед.

    Всего записей: 713 | Зарегистр. 31-03-2006 | Отправлено: 00:49 21-02-2010
       

    Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101

    Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi (до версии 2009) - часть 5
    ShIvADeSt (19-05-2010 05:14): Продолжаем тут http://forum.ru-board.com/topic.cgi?forum=33&topic=11215


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru