Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > проблема с PNGbuttons


Автор: Violina 11.1.2009, 14:30
такая проблема с PNGbutton'ами: 
После того, как на него нажмешь еще какое-то время он отходит... а за это время можно еще раз нажать на этот баттон - и он ничего не сделает... может кто работал с ними - может там здержка стоит какая-то? С обычными баттонами все ok - а эти какие-то тормозные...

Автор: SneG0K 11.1.2009, 14:37
Violina, дай код.

Автор: Violina 11.1.2009, 15:01
Код

unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    Image1: TImage;
    Button2: TButton;
    Button3: TButton;
    Image2: TImage;
    PNGButton1: TPNGButton;
    PNGButton2: TPNGButton;
    PNGButton3: TPNGButton;
    procedure FormCreate(Sender: TObject);
    procedure PNGButton3Click(Sender: TObject);
    procedure PNGButton2Click(Sender: TObject);
    procedure PNGButton1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

const
  PICTURES_COUNT = 73;
  PictureNames: Array [1..PICTURES_COUNT] Of String =
    ('KARTINKO01', 'KARTINKO02', 'KARTINKO03','KARTINKO04', 'KARTINKO05', 'KARTINKO06','KARTINKO07', 'KARTINKO08', 'KARTINKO09','KARTINKO10', 'KARTINKO11', 'KARTINKO12','KARTINKO13', 'KARTINKO14', 'KARTINKO15','KARTINKO16', 'KARTINKO17', 'KARTINKO18','KARTINKO19', 'KARTINKO20', 'KARTINKO21','KARTINKO22', 'KARTINKO23', 'KARTINKO24', 'KARTINKO25', 'KARTINKO26', 'KARTINKO27','KARTINKO28', 'KARTINKO29', 'KARTINKO30','KARTINKO31', 'KARTINKO32', 'KARTINKO33','KARTINKO34', 'KARTINKO35', 'KARTINKO36','KARTINKO37', 'KARTINKO38', 'KARTINKO39','KARTINKO40', 'KARTINKO41', 'KARTINKO42','KARTINKO43', 'KARTINKO44', 'KARTINKO45','KARTINKO46', 'KARTINKO47'
    ,'KARTINKO48', 'KARTINKO49', 'KARTINKO50', 'KARTINKO51','KARTINKO52', 'KARTINKO53', 'KARTINKO54','KARTINKO55', 'KARTINKO56', 'KARTINKO57','KARTINKO58', 'KARTINKO59', 'KARTINKO60', 'KARTINKO61', 'KARTINKO62', 'KARTINKO63','KARTINKO64', 'KARTINKO65', 'KARTINKO66','KARTINKO67', 'KARTINKO68', 'KARTINKO69','KARTINKO70', 'KARTINKO71', 'KARTINKO72', 'KARTINKO73');
var
  Form1: TForm1;
  PictureNumber: Byte = PICTURES_COUNT;

implementation

{$R *.dfm}



procedure LoadJPEGFromRes(const AJPEGName: string; APicture: TPicture);
var
  ResourceStream: TResourceStream;
  JPEGImage: TJPEGImage;
begin
  ResourceStream := TResourceStream.Create(HInstance, AJPEGName, RT_RCDATA);
  try
    JPEGImage := TJPEGImage.Create;
    try
      JPEGImage.LoadFromStream(ResourceStream);
      APicture.Bitmap.Assign(JPEGImage);
    finally
      JPEGImage.Free;
    end;
  finally
    ResourceStream.Free;
  end;
end;


procedure TForm1.FormCreate(Sender: TObject);
begin
  Position:=poDesktopCenter;
VertScrollBar.Visible:=False;
HorzScrollBar.Visible:=False;
Form1.DoubleBuffered:=true;
  PNGButton2.Enabled:=false;
  PNGButton1.Enabled:=false;
  LoadJPEGFromRes(PictureNames[1], Image1.Picture);
  PictureNumber := 1;
end;

procedure TForm1.PNGButton3Click(Sender: TObject);
begin
   PNGButton2.Enabled:=true;
   PNGButton1.Enabled:=true;
  if PictureNumber = PICTURES_COUNT then
    PictureNumber := 1
  else
    Inc(PictureNumber);
  LoadJPEGFromRes(PictureNames[PictureNumber], Image1.Picture);
  if PictureNumber = 73 then PNGButton3.Enabled:=false;
end;

procedure TForm1.PNGButton2Click(Sender: TObject);
begin
  PNGButton3.Enabled:=true;
  LoadJPEGFromRes(PictureNames[1], Image1.Picture);
  PictureNumber := 1;
  if PictureNumber = 1  then PNGButton1.Enabled:=false;
  PNGButton2.Enabled:=false
end;

procedure TForm1.PNGButton1Click(Sender: TObject);
begin
PNGButton3.Enabled:=true;
  if PictureNumber = 1 then
    PictureNumber := PICTURES_COUNT
  else
    Dec(PictureNumber);
  LoadJPEGFromRes(PictureNames[PictureNumber], Image1.Picture);
  if PictureNumber = 1 then PNGButton2.Enabled:=false;
  if PictureNumber = 1 then PNGButton1.Enabled:=false;
end;

end.


Автор: Violina 11.1.2009, 21:06
я разобралась в чем тут дело - просто на PNGbutton есть функция double click и вот так как я не писала код - то просто оно у меня нажималось...  а как можно его отключить тот double click - тока что бы 1 раз клик работало?

P.S.  разобралась)  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)