Avatar billede fun22 Nybegynder
11. oktober 2002 - 21:32 Der er 21 kommentarer og
1 løsning

Flere kanpper på et billede

Hej

Jeg har et baggrunds billede hvor jeg har tegnet nogle knapper på. Så vil jeg gerne have sådan at når jeg trykker på de knapper så sker der noget. Normatl der dobbelt klikker man bare på billedet men det er jo små dele af billedet jeg vil have inddelt. Håber i forstår.
Avatar billede dkn Nybegynder
11. oktober 2002 - 21:35 #1
En nem løsning ville være at tage en label, sætte den til transparent, og så bruge dens onclick
Avatar billede fun22 Nybegynder
11. oktober 2002 - 21:37 #2
det har jeg prøvet men det virker ikke. Der sker ikke noget når man klikker på knappen. Det er som om den ikke er der
Avatar billede dkn Nybegynder
11. oktober 2002 - 21:39 #3
du skal være sikker på at autosize ikke er på og at den er foran billedet. Prøv at markere den label og gå til edit->Bringtofront
Avatar billede fun22 Nybegynder
11. oktober 2002 - 21:41 #4
virker stadigvæk ikke
Avatar billede fun22 Nybegynder
11. oktober 2002 - 21:42 #5
Jeg kan godt se labelen men programmet reagere som om den ikke er der
Avatar billede dkn Nybegynder
11. oktober 2002 - 21:43 #6
mærkeligt, har du prøvet med andre af dens events?
Avatar billede fun22 Nybegynder
12. oktober 2002 - 10:27 #7
Jeg har fundet ud af at det er fordi jeg bruger en funktion så at jeg kan flytte formen selvom brders er slået fra. Den virker næmlig når jeg sletter den funktion. Så nu skal jeg bare have det til at virke sammen. Koden jeg bruger ser sådan ud:

unit Unit1;

interface

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

type
  TForm1 = class(TForm)
  private
    procedure WMNCHitTest(var Message : TWMNCHitTest); message WM_NCHITTEST;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

{ TForm1 }

procedure TForm1.WMNCHitTest(var Message: TWMNCHitTest);
begin
  inherited;

  if Message.Result = HTCLIENT then
    Message.Result := HTCAPTION;
end;

end.
Avatar billede fun22 Nybegynder
13. oktober 2002 - 20:02 #8
Ved du hvordan jeg kan bruge koden til at flytte formen og samtidig bruge labels til knapper?
Avatar billede dkn Nybegynder
13. oktober 2002 - 20:06 #9
Prøv dette på Formens onmove:

const
  SC_DragMove = $F012;
begin
  ReleaseCapture;
  Form1.Perform(WM_SysCommand, SC_DragMove, 0);
Avatar billede fun22 Nybegynder
13. oktober 2002 - 20:10 #10
det er der ikke noget der hedder: onmove
Avatar billede fun22 Nybegynder
13. oktober 2002 - 20:10 #11
det er der ikke noget der hedder
Avatar billede fun22 Nybegynder
13. oktober 2002 - 20:11 #12
onmove
Avatar billede dkn Nybegynder
13. oktober 2002 - 20:11 #13
sorry min fejl FormMouseMove
Avatar billede dkn Nybegynder
13. oktober 2002 - 20:11 #14
OnMouseMove
Avatar billede fun22 Nybegynder
13. oktober 2002 - 20:13 #15
virker stadigvæk ikke
Avatar billede dkn Nybegynder
13. oktober 2002 - 20:13 #16
husk at fjern dit gamle kode
Avatar billede fun22 Nybegynder
13. oktober 2002 - 20:15 #17
det er væk
Avatar billede dkn Nybegynder
13. oktober 2002 - 20:22 #18
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
const
  SC_DragMove = $F012;
begin
  ReleaseCapture;
  Form1.Perform(WM_SysCommand, SC_DragMove, 0);
end;


Kan du ikke flytte din form?
Avatar billede fun22 Nybegynder
13. oktober 2002 - 20:24 #19
nej
Avatar billede dkn Nybegynder
13. oktober 2002 - 20:25 #20
hedder din mainform Form1?

Kan jeg se din unit?

Får du nogle fejl?
Avatar billede fun22 Nybegynder
13. oktober 2002 - 20:27 #21
Ja den hedder form1 og nej jeg får ingen fejl: her er min unit:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, TFlatProgressBarUnit, MPlayer, inifiles,
  TB2Item, Menus, SxTrayIcon;

type
  TForm1 = class(TForm)
    main: TImage;
    Panel1: TPanel;
    mp3list: TListBox;
    Progress: TFlatProgressBar;
    luk: TLabel;
    open: TLabel;
    OpenDialog1: TOpenDialog;
    play: TLabel;
    MediaPlayer1: TMediaPlayer;
    Label4: TLabel;
    Label5: TLabel;
    tilbage: TLabel;
    Timer1: TTimer;
    frem: TLabel;
    TrayIcon: TSxTrayIcon;
    TBPopupMenu1: TTBPopupMenu;
    TBItem1: TTBItem;
    TBItem2: TTBItem;
    TBItem3: TTBItem;
    TBItem4: TTBItem;
    TBItem5: TTBItem;
    TBItem6: TTBItem;
    TBItem7: TTBItem;
    TBItem8: TTBItem;
    TBSeparatorItem1: TTBSeparatorItem;
    TBPopupMenu2: TTBPopupMenu;
    TBItem9: TTBItem;
    TBItem10: TTBItem;
    procedure lukClick(Sender: TObject);
    procedure openClick(Sender: TObject);
    procedure playClick(Sender: TObject);
    procedure Label4Click(Sender: TObject);
    procedure Label5Click(Sender: TObject);
    procedure tilbageClick(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure fremClick(Sender: TObject);
    procedure mp3listDblClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure TBItem1Click(Sender: TObject);
    procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);

  private

  public
    Procedure PlaySelected;
  end;

var
  Form1: TForm1;

implementation
type
  TMusikFil = class(TObject)
    Filename: string;
    Filelocation: string;
  end;
{$R *.dfm}
Procedure TForm1.PlaySelected; //******
var
  mp3: TMusikFil;
begin
Progress.Max:=0;
if mp3list.ItemIndex = -1 then exit;
  mp3 := Pointer(mp3list.Items.Objects[mp3list.ItemIndex]);
try
MediaPlayer1.stop;
except
end;
MediaPlayer1.Filename := mp3.Filelocation;
MediaPlayer1.DeviceType := dtAutoSelect;
MediaPlayer1.Open;
MediaPlayer1.Play;
Progress.Max := MediaPlayer1.Length;
end;




procedure TForm1.lukClick(Sender: TObject);
begin
Close;
end;

procedure TForm1.openClick(Sender: TObject);
var
  mp3: TMusikFil;
begin
  if opendialog1.execute then
begin
  mp3 := TMusikFil.create;
  mp3.filename := extractfilename(opendialog1.filename);
  mp3.Filelocation :=opendialog1.filename;
  mp3list.Items.AddObject(MP3.Filename, MP3)
end;
end;



procedure TForm1.playClick(Sender: TObject);
begin
PlaySelected;
end;



procedure TForm1.Label4Click(Sender: TObject);
begin
MediaPlayer1.stop;
end;

procedure TForm1.Label5Click(Sender: TObject);
begin
MediaPlayer1.pause;
end;

procedure TForm1.tilbageClick(Sender: TObject);
begin
if mp3list.ItemIndex = 0 then exit;
mp3list.ItemIndex := mp3list.ItemIndex-1;
PlaySelected;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  if Progress.Max<>0 then
    Progress.Position := MediaPlayer1.Position;
end;

procedure TForm1.fremClick(Sender: TObject);
begin
if mp3list.ItemIndex = mp3list.items.count then exit;
mp3list.ItemIndex := mp3list.ItemIndex+1;
PlaySelected;
end;

procedure TForm1.mp3listDblClick(Sender: TObject);
begin
PlaySelected;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
ini:tinifile;
st:tstringlist;
i:integer;
mp3: TMusikFil;
begin
main.Picture.LoadFromFile('skins\main.bmp');
ini := Tinifile.create(extractfilepath(application.exename)+'settings.ini');
st:=tstringlist.Create;
ini.ReadSectionValues('LIST', st);
for i := 0 to st.count-1 do
begin
  mp3 := TMusikFil.create;
  mp3.filename := extractfilename(st[I]);
  mp3.Filelocation :=st[I];
  mp3list.Items.AddObject(MP3.Filename, MP3);
end;
end;


procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var
ini : TInifile;
i:integer;
mp3: TMusikFil;
begin
ini := Tinifile.create(extractfilepath(application.exename)+'settings.ini');

For i := 0 to mp3list.items.count-1 do
begin
mp3 := Pointer(mp3list.Items.Objects[I]);
ini.writestring('LIST', inttostr(I), mp3.Filelocation);
end;
ini.free;
end;


procedure TForm1.TBItem1Click(Sender: TObject);
begin
Close;
end;

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
const
  SC_DragMove = $F012;
begin
  ReleaseCapture;
  Form1.Perform(WM_SysCommand, SC_DragMove, 0);

end;
Avatar billede dkn Nybegynder
13. oktober 2002 - 20:35 #22
det kan jeg ikke lige se hvorfor ikke skulle virke...

Du skal regne med at det er kun når man kliker på formen og kører med musen den flytter sig.

Prøv at sætte en shomessage ind på dens OnMOuseDown for at se hvornår du er på formen
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester