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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.04.2011, 21:38   #11
BlackFishSQL
Форумчанин
 
Аватар для BlackFishSQL
 
Регистрация: 02.04.2011
Сообщений: 136
По умолчанию

Но я не понимаю их же как то надо описать
вот
Image1.Picture.Icon.Handle:=ExtractAssoci atedIcon(HInstance, Pchar(s), IconIndex);
Вот сдесь я обращаюсь к 1му имэйджу а при создании run-time мы просто создаём ещё имайдж но в прогк прописан только 1!!!!
Вот мне что не понятно!

Человек_Борща
Я сразу на форму 10 штук кину! Но как это в коде описать!!
Код:
Может просто создать массив из Image а потом в процедуре dropfile везде где обращаемся м imageну замеменить это на имя массива???
Может попробовать???
BlackFishSQL вне форума Ответить с цитированием
Старый 03.04.2011, 22:15   #12
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию

Тебе нужно в run-time создавать Timage каждый раз когда поисходит дроп файлов.
И правильно в disign-time ты не увидишь ни одного timage кроме того что ты кинул. Тебе нужно сохранять/заружать это из какого-либо файла. А при дропе проверяешь переменую в которую ты записываешь +1 кадый раз когда дропаешь файл.
Человек_Борща вне форума Ответить с цитированием
Старый 03.04.2011, 22:21   #13
BlackFishSQL
Форумчанин
 
Аватар для BlackFishSQL
 
Регистрация: 02.04.2011
Сообщений: 136
По умолчанию

Можно я напишу завтра и покажу это ли вы имели ввиду????
BlackFishSQL вне форума Ответить с цитированием
Старый 03.04.2011, 22:22   #14
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

ну конечно можно
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 05.04.2011, 21:57   #15
BlackFishSQL
Форумчанин
 
Аватар для BlackFishSQL
 
Регистрация: 02.04.2011
Сообщений: 136
По умолчанию

Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, Shellapi;

type
  TForm1 = class(TForm)
    Panel1: TPanel;
    Label1: TLabel;
    Timer1: TTimer;
    Timer2: TTimer;
    Label2: TLabel;
    Image1: TImage;
    procedure Panel1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure Timer2Timer(Sender: TObject);
    procedure Image1MouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure FormShow(Sender: TObject);
  private
    { Private declarations }
     procedure WmDropFile(var Msg: TWMDropFiles); message WM_DropFiles;
  public
    { Public declarations }
  end;
  Const MaxObjects=10;
var
  Form1: TForm1;
  v, i:integer;

  CFileName:array [0..MAX_PATH] OF Char;    //В этом массиве хранится имя файла
  s:string;                                               //перемещённого мышкой
  mass:array of TImage;
implementation

{$R *.dfm}

procedure TForm1.Panel1Click(Sender: TObject);
begin
 if v=0 then
  Begin
   Label1.Caption:='<<<<1';
   v:=1;
   Timer1.Enabled:=True
  end   else
  Begin
   Timer2.Enabled:=true;
   Label1.Caption:='0>>>>';
   v:=0;
  end;







 end;

procedure TForm1.FormCreate(Sender: TObject);
begin
DragAcceptFiles(Handle,true);
SetLength(Mass, 0);
v:=0;
i:=0;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
 if i=15 then
 Timer1.Enabled:=false
 else
 Begin
  i:=i+1;
  Form1.Left:=Form1.Left-10;
 End;
end;

procedure TForm1.Timer2Timer(Sender: TObject);

begin
if i=0 then
 Timer2.Enabled:=False
 else
 Begin
  i:=i-1;
  Form1.Left:=Form1.Left+10;
 End;
end;

procedure TForm1.WmDropFile(var Msg: TWMDropFiles);
var Icon:hicon;
    Iconindex:word;
begin
 try
 if MaxObjects<= 10 then
 if DragQueryFile(Msg.Drop,0, CFileName, MAX_PATH)>0 THEN
 Begin
  MaxObjects:=MaxObjects+1;
                                      {Функция DragQueryFile извлекает из перенесенных
                                      мышью обьектов путь до этих обьектов,(извлекает имена обьектов)}
                                 {Параметры функции:
                                1) Msg.Drop дискриптор структуры для перемещяемых файлов!
                                2)0 индекс запрашеваемого файла
                                3)CFileName буфер для имени файла
                                4)MAX_PATH размер буфера для имени файла}

  s:=CFileName; //Полный путь до файла который мы перенесли мышкой!
  LAbel2.Caption:=ExtractFileName(s);
                           {Функция ExtractFileName убирает путь до файла и оставляет только его имя!}
  Msg.Result:=0;

  SetLength(Mass, length(Mass) + 1);
  Mass[length(Mass) - 1] := TImage.Create(Self);
  with Mass[length(Mass) - 1] do
  begin
    Parent := Form1;
    Top := 10 + length(Mass) * 25;
    Left := 10;
  end;
 finally
 DragFinish(Msg.Drop);
 end;
iconindex:=1;
Image1.Picture.Icon.Handle:=ExtractAssociatedIcon(HInstance, Pchar(s), IconIndex);
DrawIcon(Canvas.Handle,10,10,icon);

end;

procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
if Button=mbLeft then
 ShellExecute(Form1.Handle,nil,Pchar(s), nil,nil,SW_RESTORE);
if Button=mbRight then
 MaxObjects:=MaxObjects-1;
 s:='';
 Label2.Caption:='******';   //типа место свободно

 end;

procedure TForm1.FormShow(Sender: TObject);
begin
ShowWindow(Application.Handle,SW_HIDE);
end;

end.
И ошибки
[Error] Unit1.pas(103): Left side cannot be assigned to
[Error] Unit1.pas(128): 'END' expected but 'FINALLY' found
[Error] Unit1.pas(130): EXCEPT or FINALLY expected

Вы так имели ввиду!

Последний раз редактировалось BlackFishSQL; 05.04.2011 в 22:00.
BlackFishSQL вне форума Ответить с цитированием
Старый 06.04.2011, 00:10   #16
eduard93
Форумчанин
 
Регистрация: 06.12.2010
Сообщений: 300
По умолчанию

Брошу сюда ссылочку на всякий случай: http://www.delphikingdom.com/asp/vie...?catalogid=342
eduard93 вне форума Ответить с цитированием
Старый 07.04.2011, 22:06   #17
BlackFishSQL
Форумчанин
 
Аватар для BlackFishSQL
 
Регистрация: 02.04.2011
Сообщений: 136
По умолчанию

Подскажите я поставил прозрачность формы свойство AlphaBlend! Но вместе с формой прозрачные стали и обьекты как так сделать чтобы только форма была прозрачна а обьекты нет???
BlackFishSQL вне форума Ответить с цитированием
Старый 07.04.2011, 22:25   #18
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию

1000000 раз обсуждалось.
Человек_Борща вне форума Ответить с цитированием
Старый 08.04.2011, 23:01   #19
BlackFishSQL
Форумчанин
 
Аватар для BlackFishSQL
 
Регистрация: 02.04.2011
Сообщений: 136
По умолчанию

Появилось несколько вопросов по создания обьектов в run_time!
1)Очень странно! Мне надо создавать Image 10 штук но на форме они не отображаются а после 20 щелчков на кнопку(появления настроил по нажатия на кнопку) на форме появляется полоса прокрутки!!! Я подумал выщимить их (т.к. на форме они невидимы) как либо вот в последней строчке написан путь до картинки чтобы он в каждую сделаный image загружал эту картинку! Подскажите ошибки!!!
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Image1: TImage;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  mass:array of TImage;
implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
SetLength(Mass, 0);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 SetLength(Mass, length(Mass) + 1);
  Mass[length(Mass) - 1] := Timage.Create(Self);
  with Mass[length(Mass) - 1] do
  begin
    Parent := Form1;
    Top := 10 + length(Mass) * 25;
    Left := 10;
    picture:= LoadFromFile(F:\Панель быстрого запуска!\фон\Безымянный.bmp);
    //Text:= 'Edit' + inttostr(length(Mass));
end;
end;
end.

Последний раз редактировалось BlackFishSQL; 08.04.2011 в 23:03.
BlackFishSQL вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Значки быстрого запуска в Windows 7 Kasper1 Windows 1 26.02.2011 00:35
Фичи для панели быстрого запуска. Alex Cones Софт 10 18.09.2010 10:14
Simple Dock v.0.1.21 Ещё одна панель быстрого запуска Marsel737 Софт 14 05.09.2010 17:52
раскрывающееся панелька Polotenchik Общие вопросы по Java, Java SE, Kotlin 1 12.01.2009 23:57
Панель быстрого запуска. Небесный Операционные системы общие вопросы 3 18.12.2007 00:21