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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
    mauar



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Есть 5 переменных типа string например:
    s1..s5 : string;
     
     и 5 переменных типа integer.  
    a1..a5 : integer;
     
    Я целочисленные переменные перевожу в строковые, у меня получается 10 строковых переменных,
     
    5 переменных с именами  s1..s5  
    и  
    5 переменных с именами a1..a5.
     
    Далее эти переменные заносятся в  
     
    memo1.lines.add((s1)+(s2)+(s3)+(s4)+(s5)+(a1)+(a2)+(a3)+(a4)+(a5));
     
     
    Мне нужно чтобы эти переменные в memo указывались в случайном произвольном порядке.  
     
    Например чтобы стало вот так.
    memo1.lines.add((s1)+(a2)+(a3)+(s5)+(a1)+(s2)+(s3)+(a4)+(s4)+(a5));
     
    Главное чтобы они в произвольном порядке могли отображаться в мемо при запуске программы.

    Всего записей: 134 | Зарегистр. 31-07-2006 | Отправлено: 00:00 20-12-2009
    psa1974



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

    Цитата:
    Мне нужно чтобы эти переменные в memo указывались в случайном произвольном порядке.

    Алгоритм: объявляешь массив из 10 строковых элементов, инициализируешь его своими "5 переменными с именами  s1..s5" и "5 переменными с именами a1..a5". Затем пересортировуешь элементы массива случайным образом и формируешь строку, подряд выбирая все 10 элементов массива.
    смотри здесь вариант решения

    ----------
    У программёра есть два состояния: "Втупляю" и "Попёрло"...

    Всего записей: 438 | Зарегистр. 08-11-2005 | Отправлено: 01:45 20-12-2009 | Исправлено: psa1974, 04:58 20-12-2009
    SIgor33

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

    Цитата:
    Посмотрите функцию WNetAddConnection.

    А примерчик можно

    Всего записей: 652 | Зарегистр. 03-03-2009 | Отправлено: 10:23 21-12-2009
    ShIvADeSt



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

    Цитата:
    А примерчик можно  

    Ндас, а на гугле забанили?

    Код:
     
    Подключить сетевой ресурс:
    WNetAddConnection(NetResourse, Password, LocalName: PChar): longint;
    где
       1. NetResourse - имя сетевого ресурса (например '\\P166\c')
       2. Password - пароль на доступ к ресурсу (если нет пароля, то пустая строка)
       3. LocalName - имя, под которым сетевой ресурс будет отображен на данном компьютере (например 'F:')
    Пример подключения сетевого диска:
    WNetAddConnection('\\P166\C', '', 'F:');
     


    ----------
    И создал Бог женщину... Существо получилось злобное, но забавное...

    Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 10:42 21-12-2009
    data man



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    SIgor33
     
    В dsiwin32.zip есть такие функции, возвращающие true в случае "удачи":
      function DSiConnectToNetworkResource(const networkResource: string; const mappedLetter: string; const username: string; const password: string): boolean;
      function  DSiDisconnectFromNetworkResource(mappedLetter: char; updateProfile: boolean = false): boolean;

    ----------
    Любой достаточно развитый тролль неотличим от подлинно помешанного на какой-либо идее.
    Кекс. Антибиотики. Ламбада.

    Всего записей: 1696 | Зарегистр. 13-10-2005 | Отправлено: 11:05 21-12-2009 | Исправлено: data man, 11:06 21-12-2009
    SIgor33

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

    Всего записей: 652 | Зарегистр. 03-03-2009 | Отправлено: 13:06 21-12-2009
    VandB



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Уважаемые "форумчане", те кто работает с 3D не сочтите за трудность, помогите пожалуйста.
    Вот здесь : http://forum.ru-board.com/topic.cgi?forum=33&topic=10849#lt .
    Заранее спасибо.
    (Вопрос непосредственно по Delphi)

    Всего записей: 164 | Зарегистр. 05-05-2009 | Отправлено: 15:46 22-12-2009 | Исправлено: VandB, 15:46 22-12-2009
    straxxx

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    помоги кодом
    вопрос довольно прост:
    как запретить запуск более 2х exe?
    спасибо за скорый ответ)

    Всего записей: 4 | Зарегистр. 27-12-2008 | Отправлено: 01:16 23-12-2009
    ShIvADeSt



    Moderator
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    straxxx
    При старте сделать перечисление процессов. Если процессов более двух, то завершаться. Либо -  
    стартуем процесс, процесс пытается создать мьютекс например MyCoolMutex1. Если все ок - то запускаемся, если нет - то пытаемся создать MyCoolMutex2. Если все нормально, то мы второй процесс - и запускаемся. Если опять обломинго - то увы, мы третий процесс и выходим.

    ----------
    И создал Бог женщину... Существо получилось злобное, но забавное...

    Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 02:31 23-12-2009
    straxxx

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ShIvADeSt
    спасибо...а как это будет выглядеть ввиде кода на Delphi 5 или 7

    Всего записей: 4 | Зарегистр. 27-12-2008 | Отправлено: 10:18 23-12-2009
    ShIvADeSt



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

    Код:
     
         CreateMutex(nil, false, 'MyTestMutex1');
         if GetLastError=ERROR_ALREADY_EXISTS then begin
           CreateMutex(nil, false, 'MyTestMutex2');
           if GetLastError=ERROR_ALREADY_EXISTS then Halt(0);
         end;
     
     
    примерно так.

    ----------
    И создал Бог женщину... Существо получилось злобное, но забавное...

    Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 10:54 23-12-2009
    delover

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

    Цитата:
    имхо сам разработчик должен ловить свои баги.

    Да я не разработчик. У меня в Delphi 2006 всё работает, а у него видимо был "косяк" с оформлением PackageWizard. В Delphi 5 это делалось с помощью процедуры, сейчас можно по другому, а вот выше Delphi 2006 видимо старый способ приводит к умиранию процесса, так как после компиляции пакета его приходится перезагрузить, а визард устанавливая старым способом нельзя было потом выковырять. А в Дэльфях выше его надо выковыривать обязательно, иначе IDE-хе плохо.

    Всего записей: 1395 | Зарегистр. 25-06-2007 | Отправлено: 11:27 23-12-2009
    zakov



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите, может кто сталкивался!?
    Как в dbGrid изменить предопределенную реакцию на нажития клавиш. Т.е. вместо установленных действий на нажатие Enter, Tab, Esc, Down, Up, Left, Right, при нажатии на символьные и цифровые клавиши dbGrid не должен входить в режим редактирования.
    Хочется сделать не обходными путями, как то обработка KeyPress и KeyDown, а переопределить методы компонента. Может кто знает где копать в source?

    Всего записей: 163 | Зарегистр. 24-01-2008 | Отправлено: 16:07 23-12-2009
    ShIvADeSt



    Moderator
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    zakov
    В свойствах Гриды (там где всякие RowSelect) отключи Editing и будет тебе счастье.

    ----------
    И создал Бог женщину... Существо получилось злобное, но забавное...

    Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 02:37 24-12-2009
    zakov



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

    Цитата:
    zakov  
    В свойствах Гриды (там где всякие RowSelect) отключи Editing и будет тебе счастье.

     
    Я так и сделал. Только коряво получается. Пользователю надо оставить возможность редактировать данные в гриде.  
    Я сделал так, что по нажатию определенных клавиш или дбл клике на ячейке обработчик делает грид редактируемым, при смене строки грид опять делаю не редактируемым. Для добавления строки по кнопке вниз опять таки обработчик, так как грид постоянно не редактируемый, а надо, чтобы это срабатывало.
    Так вот, куча кода получается. И мне это богатство нужно во всех формах проекта. Поэтому я и хочу изменить компонент, а как и где незнаю. Опыта по написанию компонент у меня нет.
    Может кто поможет, желательно кодом...

    Всего записей: 163 | Зарегистр. 24-01-2008 | Отправлено: 02:46 24-12-2009
    MoBiRo

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Proxy для TWebBrowser в Delphi 7
    Хочу сделать переход на страницу под проксей, но никак не могу этого добиться. В гугле всё время нахожу два примера, больше не нашел. Пытаюсь их использовать - или выдаёт ошибку , или не работает =\ Вот ссылка на проект в Delphi 7 (5,9 kb) http://files.wyw.ru/wyw_file?id=4185922  
    Всё должно быть легко, но я полдня на гугл убил.

    Всего записей: 68 | Зарегистр. 11-11-2009 | Отправлено: 08:11 24-12-2009
    MoBiRo

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    О, я разобрался =)

    Всего записей: 68 | Зарегистр. 11-11-2009 | Отправлено: 10:06 25-12-2009
    ppkp

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Как отличить tkFloat обычый double или TDateTime ?
     
    case PropInfo^.PropType^.Kind of
    tkFloat:
      Result := FormatFloat('#0.00', GetFloatProp(Self, PropInfo));
    //а если TDateTime
      Result := FormatDateTime('dd.mm.yy', GetFloatProp(Self, PropInfo))
    Нигде не нашел что-то типа tkDateTime
     

    Всего записей: 480 | Зарегистр. 13-04-2006 | Отправлено: 11:11 25-12-2009
    LordMAD



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

    Цитата:
    Как отличить tkFloat обычый double или TDateTime ?  


    Код:
    if PropInfo^.PropType^ = System.TypeInfo(TDateTime) then ...

    Всего записей: 378 | Зарегистр. 01-10-2002 | Отправлено: 14:08 26-12-2009
    ppkp

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

    Цитата:
    :if PropInfo^.PropType^ = System.TypeInfo(TDateTime) then ...  

    Спасибо, все заработало. Только System я опустил.
    В общем, нужно было взять второе поле у PropInfo^.PropType^ - не Kind, а Name.
     
    Только тогда теряется красота case и нужно не промахнуться с 'Double' (не double)
      ....
      end else if PropInfo^.PropType^.Name = 'Double' then begin...
     
    PS Зато нет заморочек с tkLString (в D2007) и tkUString (в D2010)
    Спасибо.

    Всего записей: 480 | Зарегистр. 13-04-2006 | Отправлено: 18:28 26-12-2009 | Исправлено: ppkp, 18:42 26-12-2009
       

    Страницы: 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