Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.06.2009, 14:16   #11
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
и типы в добавок не совпадают
Показывай код. Для Shellexecute в некоторых случаях строковые параметры нужно приводить к PCHAR:
Код:
Shellexecute(Handle, 'open', pchar(WAY), '', nil , SW_SHOW);
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.06.2009, 14:18   #12
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

вместо Хендла можете и 0 поставить.
напишите так:
PAnsiChar(путь)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 11.06.2009, 16:30   #13
FatumS
Пользователь
 
Регистрация: 03.06.2009
Сообщений: 16
По умолчанию

Ребята написал вот так,
Цитата:
procedure TLink.DblClick(Sender: TObject);
begin
Shellexecute(0, 'open', PAnsiChar(WAY), '', nil , SW_SHOW);
end;
программа запускается но по двойному щелчку по ярлыку ничего не происходит, а должна открыться программа если я не ошибаюсь
FatumS вне форума Ответить с цитированием
Старый 11.06.2009, 16:51   #14
BaronTreep
Форумчанин
 
Регистрация: 29.05.2009
Сообщений: 320
По умолчанию

Ставь брейк-поинт левее этой строчки (красным) и жми F9, потом нажимай кнопку, и должен будешь попасть прямо на эту строку. Если нет, значит с методом что-то не то. Если брейк сработал, то в этом режиме Дельфи должен показывать значение всех переменных, при наведении мыши. Поэтому если в WAY правильный путь и он преобразован к PChar, то это просто мистика.
BaronTreep вне форума Ответить с цитированием
Старый 11.06.2009, 16:54   #15
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
по ярлыку ничего не происходит
Значит нужно проверить результат который эта функция возвращает. Его значения см в хелпе.
Код:
if ShellExecute(form1.handle,'open','D:\Help\api_help.exe','D:\Help\','',SW_HIDE)<=32 тхен RaiseLastWin32Error;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.06.2009, 17:47   #16
FatumS
Пользователь
 
Регистрация: 03.06.2009
Сообщений: 16
По умолчанию

Сделал как писал BaronTreep с брейк-поинтом, ничего не произошло - метод значит неправильный, да? А что делать в таком случае?
Компилятор пишет еще вот такую гадость
[Warning] Unit1.pas(25): Method 'DblClick' hides virtual method of base type 'TControl'

Последний раз редактировалось FatumS; 11.06.2009 в 17:50.
FatumS вне форума Ответить с цитированием
Старый 11.06.2009, 20:38   #17
BaronTreep
Форумчанин
 
Регистрация: 29.05.2009
Сообщений: 320
По умолчанию

Кидай весь код в архиве. Я недавно тоже панельки раставлял по такому принципу...
BaronTreep вне форума Ответить с цитированием
Старый 12.06.2009, 12:24   #18
FatumS
Пользователь
 
Регистрация: 03.06.2009
Сообщений: 16
По умолчанию

Да ничего особого в коде нет, все то что написано в теме. Основной от BaronTreep, вот только решил сделать функциональными процедуры Click, DblClick, SlowDblClick, ImageMouseMove, ImageMouseDown, ImageMouseUp. Еще даже иконки не вытягивал с файла чтобы функции не мешали визуально с кодом работать, а просто по заданному пути ставлю одно и тоже изображение.Это ведь первый шаг к созданию программы и оказался самым сложным.
FatumS вне форума Ответить с цитированием
Старый 13.06.2009, 16:07   #19
BaronTreep
Форумчанин
 
Регистрация: 29.05.2009
Сообщений: 320
По умолчанию

Тогда вот какая идейка насчет переписывания функций. Ты наследуешь класс иконки от TPanel (или TImage), и если хочешь делать методы, то делаешь примерно так:

Код:
const
  MAX_ICONS = 1000;

type TIconPanel = class(TPanel)
  protected
    MousePut : Boolean;
    XPut, YPut : integer;
    procedure MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: integer); override;
    procedure MouseMove(Shift: TShiftState; X, Y: integer); override;
    procedure MouseUp(Button: TMouseButton; Shift: TShiftState; X, Y: integer); override;
    procedure DblClick; override;
  public
    {..}
    procedure INItial({..});
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
end;

type TIconList = array [1 .. MAX_ICONS] of TIconPanel;

{..}

constructor TIconPanel.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  {..}
end;

destructor TPlugInPanel.Destroy;
begin
  [...}[/color]
  inherited Destroy;
end;

procedure TIconPanel.INItial({..});
begin
  {..}
end;

procedure TIconPanel.MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: integer);
begin
  MousePut := True;
  XPut := X;
  YPut := Y;
end;

procedure TIconPanel.MouseMove(Shift: TShiftState; X, Y: integer);
begin
  if MousePut then begin
        Self.Left := Self.Left + X - Xput;
        Self.Top := Self.Top + Y - Yput;
        
  end;
end;

procedure TIconPanel.MouseUp(Button: TMouseButton; Shift: TShiftState; X, Y: integer);
begin
  MousePut := False;
end;

procedure TIconPanel.DblClick;
begin
  {..}
end;
Т.е. заметь что мы наследуем методы с переопределением - к.с. override; и вызываем метод предка - inherited.
BaronTreep вне форума Ответить с цитированием
Старый 19.06.2009, 16:23   #20
FatumS
Пользователь
 
Регистрация: 03.06.2009
Сообщений: 16
По умолчанию

Всем привет. Чет я не пойму, мучился несколько дней, перепробовал кучу способов и все бесполезно. Неужели я такой тупой что ли? Ребята если кто может помогите пожалуйста очень прошу, а то у меня скоро нервы сдадут.
FatumS вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Dockbar или плавающая панель с ярлыками Hronos13 Qt и кроссплатформенное программирование С/С++ 0 04.05.2009 12:19
управление транзакциями Ary БД в Delphi 11 30.03.2008 17:33
Управление по локалкЕ ZhekON Работа с сетью в Delphi 5 17.07.2007 09:04