AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi OnMouseDown-Ereignis bei dynamisch erstelltem Image
Thema durchsuchen
Ansicht
Themen-Optionen

OnMouseDown-Ereignis bei dynamisch erstelltem Image

Ein Thema von bender251 · begonnen am 2. Dez 2004 · letzter Beitrag vom 3. Dez 2004
Antwort Antwort
Seite 1 von 2  1 2      
bender251

Registriert seit: 11. Okt 2003
32 Beiträge
 
#1

OnMouseDown-Ereignis bei dynamisch erstelltem Image

  Alt 2. Dez 2004, 11:57
Hallo,

ich habe folgendes Problem: In meinem Programm werden Image-Komponenten dynamisch erstellt. Ich habe also ein Array of TImage. Wie kann ich jetzt abfangen, wenn auf eines dieser Images mit der Muas geklickt wurde?
Ich will also, wenn jemand auf ein Image klickt etwas mit dem Image anstellen.

Wie funktioniert sowas? Kann ich beim createn des Images dem OnMousedown-Event etwas zuweisen?

Gruß bender251
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: OnMouseDown-Ereignis bei dynamisch erstelltem Image

  Alt 2. Dez 2004, 12:00
Geht genaus wie bei Hier im Forum suchenbutton dynamisch erstellen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.268 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: OnMouseDown-Ereignis bei dynamisch erstelltem Image

  Alt 2. Dez 2004, 12:04
Im Objekt im Protected-Bereich das einfügen:

procedure Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); in der Implementation das einfuegen

Delphi-Quellcode:
procedure TForm1.Image1MouseDown(Sender: TObject;Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  inherited;

  // hier das abarbeiten, was du möchtest
end;

Und wenn das Image dynamisch erzeugt wird, das ereignis zuweisen

Delphi-Quellcode:
Image1:=TImage.create(self);
Image1.OnMouseDown:=Image1MouseDown;

Gerd
  Mit Zitat antworten Zitat
bender251

Registriert seit: 11. Okt 2003
32 Beiträge
 
#4

Re: OnMouseDown-Ereignis bei dynamisch erstelltem Image

  Alt 2. Dez 2004, 12:33
Im Objekt im Protected-Bereich das einfügen:

procedure Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);


Hallo, erstmal Danke für die Antworten

leider weiß ich nicht wo ich einen Protected-Bereich habe. Ich habe einfach in der globalen Variablendeklaration von Form1 ein Array of Timage deklariert und später im Programm dann entsprechend created und weiterbearbeitet. Geht das dann so nicht mehr?

Mit Dank im Voraus
bender251
  Mit Zitat antworten Zitat
Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.268 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: OnMouseDown-Ereignis bei dynamisch erstelltem Image

  Alt 2. Dez 2004, 13:18
Delphi-Quellcode:
type
  TForm1 = class(TForm)
  private
    { Private-Deklarationen }
  protected
    { Protected-Deklarationen }
   procedure Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
  public
    { Public-Deklarationen }
  end;
Wenn's protected bei dir nicht gibt, dann einfach einfügen.

Zur Not geht's auch im private-Bereich oder public-Bereich



Gerd
  Mit Zitat antworten Zitat
bender251

Registriert seit: 11. Okt 2003
32 Beiträge
 
#6

Re: OnMouseDown-Ereignis bei dynamisch erstelltem Image

  Alt 3. Dez 2004, 08:00
Hallo,

hab jetzt soweit verstanden, wie es funktionieren sollte, aber es funktioniert leider nicht. Ich habe jetzt ein Objekt erstellt und dort im public-Bereich die Funktion eingefügt.

Delphi-Quellcode:
type tbildimage = class(Timage)
  private
  protected
  public
    procedure MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
  end;
und im Programm dann die einzelnen Images so erstellt:

Delphi-Quellcode:
...
    bildteil[i] := tbildimage.Create(Form1);
    bildteil[i].Parent := Form1;
    bildteil[i].OnMouseDown := MouseDown;
...
DIe Funktion sieht so aus:

Delphi-Quellcode:
procedure tbildimage.MouseDown(Sender: TObject;Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
    showmessage('hallo');
end;
Wenn ich dann versuche das Programm zu compilieren und auszuführen erhalte ich die Meldung, dass procMouseDOwn ein undefinierter Bezeichner sei.

Ich steh momentan leider auf dem Schlauch.

Gruß
bender251
  Mit Zitat antworten Zitat
Benutzerbild von Orbmu2k
Orbmu2k

Registriert seit: 29. Nov 2004
Ort: Erfurt
254 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: OnMouseDown-Ereignis bei dynamisch erstelltem Image

  Alt 3. Dez 2004, 08:07
die procedure gehört ja auch zu deiner Form Klasse und nicht zum Image Control

so sollte es passen

Delphi-Quellcode:
TForm1 = class(TForm)
  private
  protected
  public
    procedure MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
  end;

procedure TForm1.MouseDown(Sender: TObject;Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
    showmessage('hallo');
end;
  Mit Zitat antworten Zitat
Benutzerbild von Orbmu2k
Orbmu2k

Registriert seit: 29. Nov 2004
Ort: Erfurt
254 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: OnMouseDown-Ereignis bei dynamisch erstelltem Image

  Alt 3. Dez 2004, 08:12
oder aber nochmal drüber nachgedacht ....


  bildteil[i].OnMouseDown := tbildimage.MouseDown;
  Mit Zitat antworten Zitat
bender251

Registriert seit: 11. Okt 2003
32 Beiträge
 
#9

Re: OnMouseDown-Ereignis bei dynamisch erstelltem Image

  Alt 3. Dez 2004, 08:16
Hallo,

ich hatte beide Versionen schonmal ausprobiert. Aber ich kriege die Prozedur procMouseDown nicht angeboten. Also wenn ich

    bildteil[i].OnMouseDown := tbildimage. eingebe, dann kommt dieses Programmierhilfefenster mit allen verfügbaren Prozeduren und da bekomme ich nur den Creator angeboten. Und wenn ich manuell die Prozedur hinschreibe kommt wieder der gleiche Fehler.

Gruß bender251
  Mit Zitat antworten Zitat
Benutzerbild von Orbmu2k
Orbmu2k

Registriert seit: 29. Nov 2004
Ort: Erfurt
254 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: OnMouseDown-Ereignis bei dynamisch erstelltem Image

  Alt 3. Dez 2004, 08:20
es wäre besser wenn du mal mehr von deinem code postest weil ich z.B nicht sehe von welcher Klasse du Die images aus erstellst und vorallem sehe ich in deinem Code kein "procMouseDown"
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:38 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz