Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.11.04;
Скачать: CL | DM;

Вниз

Скрыть button   Найти похожие ветки 

 
Mariya   (2007-10-10 07:26) [0]

Подскажите, пожалуйста, у меня есть

if Sender is TMyButton then
 a:=ShellExecute(handle, nil, Pchar((Sender as TMyButton).Prog), NiL, NiL, SW_SHOWNORMAL);
 if a <>42 then
 MessageDlg("Такой программы не существует!", mtInformation, [mbOk], 0);
Смогла написать, что если нет екзешника, выдает об этом сообщение, а можно при создании формы (при запуске) как бы проверить имеются ли екзешники, которые в ини Prog=... написаны, если нет, то просто не создавать эту кнопку. Пыталась в онкриейт написать  if a <>42 then btn[i].Visible:=False; не верно.


 
ASoft   (2007-10-10 07:49) [1]

в oncreate:
если *ini..[prg] Prog=программа.exe* существует, то создать кнопку (создавать кнопки вы кажется научились:-))
беспредел какой-то, имхо....%)


 
Mariya   (2007-10-10 08:56) [2]


> ini..[prg] Prog=программа.exe* существует

можно подробнее? это мы проверяем есть ли такая запись в ини? или существует ли такой екзешник?


 
ASoft   (2007-10-10 08:58) [3]

существует ли такой екзешник, указанный в ini


 
Leonid Troyanovsky ©   (2007-10-10 09:20) [4]


> Mariya   (10.10.07 07:26)  

> написаны, если нет, то просто не создавать эту кнопку

Создавать кнопку не надо, достаточно одной на форме.
А надо из ini заполнить, например, TListBox (один)
именами исполняемых файлов.
При нажатии на кнопку пускаем выбранное приложение
with Listbox do WinExec(PChar(Items[ItemIndex]), SW_SHOW).

Можно и без кнопки, на ListBox.On{Dbl}Click

--
Regards, LVT.


 
Mariya   (2007-10-10 09:27) [5]

Здесь немного не так. Есть форма, на ней должны быть кнопки с названиями баз данных, есть 10 юзеров, доступ к базам у всех разный (юзер1 например имеет доступ к 8 из 10 баз) так вот, и у него (каждого) получается установлены базы, к которые он может открывать, а к которым у него нет доступа, они не устанолены, нет екзешников. Получается мне нужно, при создании формы (типа программы навигатора), проверить установлены ли программы (есть ли екзешники), которые перечислены в ини-файле (там перечислены все базы), если установлены, то создать кнопки с названием этих баз, если не установлены, то эти кнопки не создавать вообще, чтобы юзер какбы даже не знал, что существуют другие базы.


 
Leonid Troyanovsky ©   (2007-10-10 09:35) [6]


> Mariya   (10.10.07 09:27) [5]

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

Дались тебе эти кнопки.
Если в листбоксе нет строки, то про нее никто и не узнает.

--
Regards, LVT.


 
Kolan ©   (2007-10-10 09:40) [7]

> Leonid Troyanovsky ©   (10.10.07 09:20)

Ой ненадо, мы тут только с кнопками развязались, шас начнётся новая волна&#133

установлены базы &#133 у него нет доступа &#133 нет екзешников
Открою страшную тайну &#151; экзешники &#151; это не базы данных!

если установлены,&#133, если не установлены
Проверяйте существование файла FileExists. если ваши &laquo;базы&raquo; установлены в ProgramFiles, то добраться до них можно так:

IncludeTralingPathDelimiter(GetEnvironmentVariable("ProgramFiles"))+IncludeTralingPathDelimiter(Папака с &laquo;Базой&raquo;>)+<&laquo;База&raquo;.exe>


 
Kolan ©   (2007-10-10 09:40) [8]

вместо <> подставьте нужные имена&#133


 
Leonid Troyanovsky ©   (2007-10-10 09:45) [9]


> Kolan ©   (10.10.07 09:40) [7]

> Ой ненадо, мы тут только с кнопками развязались, шас начнётся

Хе-хе, развязались:
показывать - показали,
а скрыть - скрыли.

--
Regards, LVT.


 
Mariya   (2007-10-10 09:52) [10]

Подскажите как мне в дельфи обратиться к записи в ини-файле, конкретно к kkk.exe чтобы проверить существует ли ОНО?
[Prog]
Prog1=kkk.exe
Prog2=ddd.exe


 
Kolan ©   (2007-10-10 09:54) [11]

> Подскажите как мне в дельфи обратиться к записи в ини-файле

Ты издеваешься? Как то же ты их раньше загружала?&#133


 
Mariya   (2007-10-10 09:57) [12]

Ini.ReadString("Prog", "Prog1", "   ") к этому можно применить FileExists?


 
Kolan ©   (2007-10-10 10:00) [13]

Eсли предположить, kkk.exe лежит в ProgramFiles, то:

FileExists(IncludeTralingPathDelimiter(GetEnvironmentVariable("ProgramFile s"))+IncludeTralingPathDelimiter(kkk)+kkk.exe)
Жирным выделено то, что надо подставить&#133


 
Leonid Troyanovsky ©   (2007-10-10 10:10) [14]


> Kolan ©   (10.10.07 10:00) [13]

> Eсли предположить, kkk.exe

Если предположить, что это exe, то проверять надо FindExecutable.

--
Regards, LVT.


 
Mariya   (2007-10-10 10:22) [15]

Не обязательно в програм файлс, может лежать в любом месте на жестком диске, в любой папке


 
Leonid Troyanovsky ©   (2007-10-10 10:27) [16]


> Mariya   (10.10.07 10:22) [15]

> Не обязательно в програм файлс, может лежать в любом месте
> на жестком диске, в любой папке

Ну, и славно.
Файлы конфигурации на то и даны, чтобы настраивать, в том числе,
пути поиска, имена файлов и т.д.

--
Regards, LVT.


 
clickmaker ©   (2007-10-10 10:28) [17]


> [15] Mariya   (10.10.07 10:22)


как вариант, но не на все случаи

var
  Reg: TRegistry;

 Reg := TRegistry.Create(KEY_READ);
 try
    Reg.RootKey := "HKEY_LOCAL_MACHINE";
    if Reg.KeyExists("SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths" + ExeName) then
      // существует
  finally
    Reg.Free;
  end;


 
ASoft   (2007-10-10 10:32) [18]

ну, все, хана.. Маша сейчас в реестр полезет-)))


 
Игорь Шевченко ©   (2007-10-10 10:40) [19]

НАЙМИТЕ УЖЕ ПРОГРАММИСТА!!!


 
Leonid Troyanovsky ©   (2007-10-10 11:17) [20]


> Игорь Шевченко ©   (10.10.07 10:40) [19]

> НАЙМИТЕ УЖЕ ПРОГРАММИСТА!!!

Не поможет :)
С консерваторией там чего-то не то,
около десятка уже, похоже, сбежали.

Ну, а задание просто генеральское: вместо того,
чтобы вытянуть на стол (меню) десяток ярлыков -
подать сюда навигатор, не менее.

--
Regards, LVT.


 
clickmaker ©   (2007-10-10 11:24) [21]


> [18] ASoft   (10.10.07 10:32)
> ну, все, хана.. Маша сейчас в реестр полезет-)))

или утонет, или плавать научится )


 
Anatoly Podgoretsky ©   (2007-10-10 11:34) [22]

Взлетит, не взлетит?

Мария найми Игоря на работу, конечно дорого, но и результат будет.


 
Kolan ©   (2007-10-10 11:35) [23]

> Мария найми Игоря на работу

Из пушки по воробьям :)


 
Anatoly Podgoretsky ©   (2007-10-10 12:20) [24]

> Kolan  (10.10.2007 11:35:23)  [23]

Ну ей же нужен результат. За это время ей уже такие бабки заплатили, Игорь бы дешевле обошелся.


 
Mariya   (2007-10-10 12:51) [25]


> бабки заплатили

ошибаетесь! :)
Игорь это кто?


 
Mariya   (2007-10-10 13:03) [26]


> НАЙМИТЕ УЖЕ ПРОГРАММИСТА!!!

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


 
Dib@zol ©   (2007-10-10 13:05) [27]

> Игорь это кто?
Осмелюсь предположить - который Шевченко?

> Вы же все уже взрослые,
Неправда.


 
Игорь Шевченко ©   (2007-10-10 13:12) [28]

Mariya   (10.10.07 13:03) [26]

Обучение предполагает поиск педагога и оплату его усилий по вколачиванию требуемых знаний в пустую голову.

Читать наизусть до полного и окончательного просветления:
http://ln.com.ua/~openxs/articles/smart-questions-ru.html


 
Mariya   (2007-10-10 13:12) [29]

Удалено модератором


 
Mariya   (2007-10-10 13:17) [30]

Undeclared identifier "IncludeTralingPathDelimiter".


 
Kolan ©   (2007-10-10 13:22) [31]

> [30] Mariya   (10.10.07 13:17)
> Undeclared identifier "IncludeTralingPathDelimiter".

IncludeTrailingPathDelimiter


 
Kolan ©   (2007-10-10 13:23) [32]

Когда начинешь что-то писать нажми Ctrl+Space появится подсказка(Code insite)


 
Игорь Шевченко ©   (2007-10-10 13:55) [33]


> Undeclared identifier "IncludeTralingPathDelimiter".


Больно слышать


 
Mariya   (2007-10-10 14:21) [34]


> Больно слышать

Может читать менее больно?



Страницы: 1 вся ветка

Текущий архив: 2007.11.04;
Скачать: CL | DM;

Наверх




Память: 0.55 MB
Время: 0.078 c
2-1192198988
Neo
2007-10-12 18:23
2007.11.04
как закрыть форму, если выполняется большой цикл?


3-1182663843
celeron
2007-06-24 09:44
2007.11.04
Чтение типа Binary из MS SQL Server 2000


15-1190289015
de.
2007-09-20 15:50
2007.11.04
Кто программирует под Linux? Отзовитесь !!!


15-1191222209
AntiUser
2007-10-01 11:03
2007.11.04
Microsoft продлевает срок продажи Windows XP до 30 июня 2008 года


2-1192084067
vamp_avp
2007-10-11 10:27
2007.11.04
реестр!!!