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

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

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

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125

Открыть новую тему     Написать ответ в эту тему

ShIvADeSt



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

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


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


    Некоторые "родственные" топики:
     
  • Вопросы по Delphi (версии 2009-2010 Weaver)
  • Вопросы по компонентам для Delphi, C++ Builder
  • Использование DevExpress
  • Вопросы по Ehlib
  • Компоненты и утилиты для Delphi/BCB/FreePascal/Lazarus - только Open Source
  • Коммерческие компоненты и утилиты для Delphi/BCB
  • кабак программистов :)
     
    См. также: Некоторые полезные ресурсы о Delphi
     
    И старайтесь, чтобы ваш код не попал сюда :)

  • Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 05:13 19-05-2010 | Исправлено: akaGM, 02:33 15-07-2020
    R3Pa4eK



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    А как можно скрыть файлы? Но скрыть их так, чтобы их не было видно (даже если в системе установлено "Скрывать скрытые файлы и папки")?

    Всего записей: 963 | Зарегистр. 15-01-2011 | Отправлено: 09:41 02-06-2011
    Frodo_Torbins

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    R3Pa4eK
    Можно сделать файл "системным". Но для отображения таких файлов тоже есть галка.

    Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 20:28 02-06-2011
    ShIvADeSt



    Moderator
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    R3Pa4eK
    Перехват функций АПИ для перечисления файлов, чревато разборками с антивирусниками, так как напоминает поведение зловредов. В любом случае достойно отдельной темы, так как ни разу ни ФАК

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

    Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 15:06 03-06-2011
    viman82



    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Подскажите алгоритм, пожалуйста, не могу продумать
     
    Есть 3 переменные, условно А В С. в определенном месте им присваиваются значения, могут быть одинаковыми или разными (рандом). Требуется провести их сравнение и вывести их буквенный эквивалент, по старшинству, от большего к меньшему. Например если А<В<С то вывести 'СВА', если А=В<С то вывести 'САВ', т.е. первый символ в этой тройке Больший потом Средний  потом Меньший.

    ----------
    -= Каждому свое =-

    Всего записей: 581 | Зарегистр. 03-11-2009 | Отправлено: 19:05 03-06-2011
    akaGM

    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    viman82
    type
      TVARREC = record  
        value: integer; // real
        name: string; // ну или char
      end;
    var
      A, B, C: TVARREC;
     
    величины value сравниваются по обычным законам сравнения целых/вещественных чисел

    Всего записей: 24056 | Зарегистр. 06-12-2002 | Отправлено: 19:46 03-06-2011
    viman82



    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    akaGM
    В одном сложность, я начинающий, и что это я не знаю, но попробую разобраться.
    И значения АВС уже обьявлены типом integer

    ----------
    -= Каждому свое =-

    Всего записей: 581 | Зарегистр. 03-11-2009 | Отправлено: 20:52 03-06-2011 | Исправлено: viman82, 20:57 03-06-2011
    GRom V

    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Вопросик - создаем ярлык:
     
    procedure CreateLink(const PathObj, PathLink, WorkDir, Desc, Param: string);
    var
      IObject: IUnknown;
      SLink: IShellLink;
      PFile: IPersistFile;
    begin
      IObject := CreateComObject(CLSID_ShellLink);
      SLink := IObject as IShellLink;
      PFile := IObject as IPersistFile;
      with SLink do
      begin
        SetPath(PChar(PathObj)); //Сам файл
        SetWorkingDirectory(PChar(WorkDir)); //Рабочая папка
        SetDescription(PChar(Desc)); //Коментарий
        SetArguments(PChar(Param)); //Параметры запуска
        SetWorkingDirectory(PChar(WorkDir)); //Рабочая папка
      end;
      PFile.Save(PWChar(WideString(PathLink)), FALSE);
    end;
     
    Вызываем:
    CreateLink('%windir%\system32\cmd.exe', C:\1.lnk, '%currentdir%', 'коментарий', 'параметр');
     
    В свойствах ярлыка есть еще вкладка окно (поумолчанию стоит Обычный размер окна)...
    Нигде не нашел как сделать чтоб эта вкладка была на (свернутое в значек).
    Т.Е. как то  
     
    procedure CreateLink(const PathObj, PathLink, WorkDir, Window, Desc, Param: string);
     
    setWindow...
     
    И второе: Как задать иконку ярлыку???
     
    Подскажите кто знает!...

    Всего записей: 466 | Зарегистр. 31-10-2006 | Отправлено: 11:03 04-06-2011 | Исправлено: GRom V, 11:56 04-06-2011
    smirnvlad

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

    Всего записей: 417 | Зарегистр. 31-03-2009 | Отправлено: 11:55 04-06-2011
    GRom V

    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    smirnvlad
    Во я втупил...
    Спасибо!!!

    Всего записей: 466 | Зарегистр. 31-10-2006 | Отправлено: 12:15 04-06-2011 | Исправлено: GRom V, 13:58 04-06-2011
    akaGM

    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    viman82
    Код:
    type
      TVARREC = record  
        value: integer;
        name: char;
      end;
    var
      Arec, Brec, Crec: TVARREC;  
      A, B, C: integer;
     
    begin
      Arec.value := A;
      Brec.value := B;
      Crec.value := C;

    и далее во всех сравнениях использовать величины вида Arec.value
    а там где ты писал бы write('A') писать write(Arec.name)

    Всего записей: 24056 | Зарегистр. 06-12-2002 | Отправлено: 13:59 04-06-2011
    viman82



    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    akaGM
    Дак вот иемнно механизм сравнения и вывода букв в нужной последовательности и не могу реализовать...

    Всего записей: 581 | Зарегистр. 03-11-2009 | Отправлено: 21:12 04-06-2011
    akaGM

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

    Цитата:
    Дак вот иемнно механизм сравнения и вывода букв не могу реализовать

    всего лишь...
    "я не могу решить поставленную мне задачу..."
     
    сравнение двух числел a, b:
     
    if (a >= b) then
       а больше или равно b
    else
       b больше a

     
    чего здесь непонятного?
     
    сравнение трёх числел a, b, с:
     
    if (a >= b) then
       а больше или равно b
       х = а
    else
       b больше a
       х = b
     
    if (х >= с) then
       х самое большое (или равное любому из трёх)
       тут уже нужны дальнейшие проверки
    else
       с самое большое из трёх чисел

    Всего записей: 24056 | Зарегистр. 06-12-2002 | Отправлено: 21:36 04-06-2011
    GRom V

    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Почему не работает эта штука, а именно при нажатии на кнопку - выбираем файл, который тут же записывается в ini, т.е при следующем выборе файла - путь должен считываться из этого ini... Но если в ини меняю путь, то открывается старый, следовательно путь не считывается! Почему??? Где ошибочка? :
     
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      Vars:=TiniFile.Create(extractfilepath(paramstr(0))+'setting.ini');
      openDialog := TOpenDialog.Create(self);
      openDialog.InitialDir := Vars.ReadString('Key','Dir','key.key'); //Вот путь
      openDialog.Options := [ofFileMustExist];
      if openDialog.Execute
      then begin
      Vars.WriteString('Key','Dir',OpenDialog.Filename); //Записываем в иньку
      end else
      Vars.Free;
    end;
     
    ИНИ получается такого типа
    [Key]
    Dir=D:\1.key

    Всего записей: 466 | Зарегистр. 31-10-2006 | Отправлено: 07:39 05-06-2011 | Исправлено: GRom V, 07:46 05-06-2011
    ShIvADeSt



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

    Цитата:
     openDialog.InitialDir := Vars.ReadString('Key','Dir','key.key'); //Вот путь

    Не путайте путь к файлу (кусок ДО ИМЕНИ файла) с полным путем файла (именно его вы считываете из инишки). В вашем случае нужно либо FileName вместо InitialDir либо делать ExtractFilePath для считанного из ини значения делать

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

    Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 09:07 05-06-2011
    GRom V

    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    ShIvADeSt
    блин...Ну конечно!

    Всего записей: 466 | Зарегистр. 31-10-2006 | Отправлено: 09:37 05-06-2011
    viman82



    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    akaGM
    так то до этого и сам допер, решил задачу, думал что можно проще без тупого сравнения if a>b then else

    ----------
    -= Каждому свое =-

    Всего записей: 581 | Зарегистр. 03-11-2009 | Отправлено: 21:57 05-06-2011 | Исправлено: viman82, 21:57 05-06-2011
    akaGM

    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    viman82
    а как ты в жизни выбираешь из двух значений бОльшее без тупого сравнения?

    Всего записей: 24056 | Зарегистр. 06-12-2002 | Отправлено: 00:54 06-06-2011
    ShIvADeSt



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

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

    Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 04:22 06-06-2011
    akaGM

    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ShIvADeSt
    а кстати, не знаешь есть ли в новых дельфях что-нибудь кроме max() и maxValue() с переменным числом аргументов?

    Всего записей: 24056 | Зарегистр. 06-12-2002 | Отправлено: 15:16 06-06-2011
    ShIvADeSt



    Moderator
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    akaGM
    Я все еще сижу на Дельфи 5 Мне хватает, а если что надо - сам дописываю, поэтому не знаю

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

    Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 15:49 06-06-2011
    Открыть новую тему     Написать ответ в эту тему

    Страницы: 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 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125

    Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi (до версии 2009) - часть 6


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru