AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Onclick-Ereignis für ein per Code erstelltes Objekt
Thema durchsuchen
Ansicht
Themen-Optionen

Onclick-Ereignis für ein per Code erstelltes Objekt

Ein Thema von KahPee · begonnen am 8. Feb 2010 · letzter Beitrag vom 12. Feb 2010
Antwort Antwort
Benutzerbild von KahPee
KahPee

Registriert seit: 12. Mai 2009
214 Beiträge
 
Turbo Delphi für Win32
 
#1

Onclick-Ereignis für ein per Code erstelltes Objekt

  Alt 8. Feb 2010, 17:50
Hallo,

ich habe ein Problem, was wahrscheinlich ganz Banal zu Lösen ist. Ich erstelle zur Laufzeit eine neue Seite (Tab) in einer PageControl-Komponente. Und auf der Seite wird ein Bild erstellt. Die Bilder der verschiedenen Tabs sind in einem TImage-Array gespeichert.
Bilder: array of TImage Der Index des Bildes ist identisch mit dem Index des Tabs in dem das Bild erstellt wurde.

Ich möchte jetzt folgendes erreichen bei dem Klick auf eines der Bilder aus dem Arrays soll ein Ereignis ausgelöst werden. Wie definiere ich dieses Ereignis für die Bilder?

Den Index des Bildes könnte ich ganz einfach ermitteln:
PageControl.ActivePage Dies ist möglich, da ja immer nur das Bild, dass zu der gerade aktiven Seite gehört, geklickt werden kann.
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#2

Re: Onclick-Ereignis für ein per Code erstelltes Objekt

  Alt 8. Feb 2010, 18:06
Bilder[i].OnClick := DeinOnClickEreignis wobei DeinOnClickEreignis etwa so aussieht:


Delphi-Quellcode:
private
  procedure DeinOnClickEreignis(Sender : TObject);

Delphi-Quellcode:
implementation

//...

procedure TForm1.DeinOnClickEreignis(Sender : TObject);
begin
end;
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von KahPee
KahPee

Registriert seit: 12. Mai 2009
214 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Onclick-Ereignis für ein per Code erstelltes Objekt

  Alt 12. Feb 2010, 13:10
Zitat:
[Pascal Error] pfs_MainUnit.pas(151): E2010 Incompatible types: 'TObject' and 'Tobject'
Irgendwie hat der damit ein Problem...
bild[i].Onclick:=Image1Click; Image1 ist auch auf der Form. das OnImage1Click ereignis löst nur "showmessage" aus. Wenn man auf das entsprechende Image klickt dann macht er das auch. Allerdings kompiliert der die Unit nicht wegen obiger Zuweisung.

mfg KahPee
  Mit Zitat antworten Zitat
Benutzerbild von KahPee
KahPee

Registriert seit: 12. Mai 2009
214 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Onclick-Ereignis für ein per Code erstelltes Objekt

  Alt 12. Feb 2010, 21:50
Der Fehler tritt bei mir bei JEDER Zuweisung eines Ereignisses dieser art auf, auch wenn ich das ganze mit einem Label mache. Woran könnte das liegen? in einem anderen Programm funktioniert ähnliches
  Mit Zitat antworten Zitat
daywalker9

Registriert seit: 1. Jan 2010
Ort: Leer
594 Beiträge
 
Delphi XE3 Professional
 
#5

Re: Onclick-Ereignis für ein per Code erstelltes Objekt

  Alt 12. Feb 2010, 22:04
Poste mal bitte ein bisschen mehr von deinem Code. So kann man nicht sehen was dort falsch ist.
Lars
  Mit Zitat antworten Zitat
Benutzerbild von KahPee
KahPee

Registriert seit: 12. Mai 2009
214 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Onclick-Ereignis für ein per Code erstelltes Objekt

  Alt 12. Feb 2010, 22:17
Deklaration:
var pagepic: array of Timage; Array vergrößern
Delphi-Quellcode:
SetLength(pagepic, Length(pagepic)+1); //Array vergrößern
  index:=length(pagepic-1); //etwas mit dem letzten Object im Array machen
  pagepic[index]:=Timage.Create(self);
  pagepic[index].Onclick:=Image1Click;

Image1Click ist eine funktionierende Prozdeur wie oben schon beschrieben. Kann es sein, dass das was mit Objekten in dynamischen arrays zu tun hat?

mfg KahPee
  Mit Zitat antworten Zitat
daywalker9

Registriert seit: 1. Jan 2010
Ort: Leer
594 Beiträge
 
Delphi XE3 Professional
 
#7

Re: Onclick-Ereignis für ein per Code erstelltes Objekt

  Alt 12. Feb 2010, 22:19
Lad mal bitte deine ganze Unit mit hoch.
Lars
  Mit Zitat antworten Zitat
Benutzerbild von KahPee
KahPee

Registriert seit: 12. Mai 2009
214 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Onclick-Ereignis für ein per Code erstelltes Objekt

  Alt 12. Feb 2010, 22:29
Das ganze Projekt besteht aus mehreren Units unten die MainUnit und die Unit mit den Declarationen. Die anderen Units sind unrelevant.
  Mit Zitat antworten Zitat
daywalker9

Registriert seit: 1. Jan 2010
Ort: Leer
594 Beiträge
 
Delphi XE3 Professional
 
#9

Re: Onclick-Ereignis für ein per Code erstelltes Objekt

  Alt 12. Feb 2010, 22:37
Ah OK. Nun verstehe ich:

Du hast folgendes:
Delphi-Quellcode:
Tobject=record //Objekte
    Typ: Tobjecttyp;
  end;

Wobei Delphi ja selber ein Typen von TObject hat. Dort kommt der durch einander. Benne das um und es funktioniert
Lars
  Mit Zitat antworten Zitat
Benutzerbild von KahPee
KahPee

Registriert seit: 12. Mai 2009
214 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: Onclick-Ereignis für ein per Code erstelltes Objekt

  Alt 12. Feb 2010, 22:40
argh... so was blödes..

Vielen Dank!! Ich bin noch dabei den Schritt vom Anfänger zum Fortgeschrittenen Programmierer zu machen

KahPee
  Mit Zitat antworten Zitat
Antwort Antwort


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 10:23 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