AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

OnMouseOver bei selbst erzeugtem TPicture

Ein Thema von tobi1701 · begonnen am 27. Okt 2005 · letzter Beitrag vom 10. Nov 2005
Antwort Antwort
Seite 1 von 2  1 2      
tobi1701

Registriert seit: 16. Okt 2005
30 Beiträge
 
#1

OnMouseOver bei selbst erzeugtem TPicture

  Alt 27. Okt 2005, 13:18
hallo,

ich habe eine liste erzeugt, die aus records besteht. in diesem record sind wiederum TPicture elemente enthalten.
in der liste wird jeder eintrag angezeigt und das darin enthaltene TPicture wird als verkleinertes thumbnail angezeigt.
ich möchte jetzt, wenn ich mit dem mauszeiger über dem TPicture bin, eine vergrösserte ansicht in einer anderen TPaintBox anzeigen lassen.

doch wie kann ich das machen? es muss ja irgendwie für alle TPictures in allen einträgen der liste die gleiche prozedur aufgerufen werden.
oder kann man das nur machen, wenn mein eintrag ein object ist? und wenn ja, wie?

um hier nicht zu allgemein rumzureden, kann ich ja mal meinen eintrag hinzufügen:

Delphi-Quellcode:
BasicGameEntry = record
   Name,Genre,System,Publisher,Released: string;
   Description: TStrings;
   Rating: integer;
   Picture: Array[1..6] of TPicture;
  end;
so. wie man sehen kann, solle es eine kleine datenbank für spiele werden und so ein eintrag soll bis zu 6 bilder bekommen, die in der listenansicht als thumbs (stretchdraw) angezeigt werden.
  Mit Zitat antworten Zitat
Benutzerbild von Net7
Net7

Registriert seit: 22. Jun 2004
Ort: Lauenburg
161 Beiträge
 
Delphi 7 Professional
 
#2

Re: OnMouseOver bei selbst erzeugtem TPicture

  Alt 27. Okt 2005, 14:30
Erweitere doch TPicture doch um das Ereignis OnMouseOver. Wo ist das Problem??
Marko
So`ne Atombombe kann einem den ganzen Tag verderben!
Eine eigene DLL in C++ geschrieben wird meist ein Sklave für mein Delphi/Pascal.
  Mit Zitat antworten Zitat
tobi1701

Registriert seit: 16. Okt 2005
30 Beiträge
 
#3

Re: OnMouseOver bei selbst erzeugtem TPicture

  Alt 27. Okt 2005, 16:20
genau das möchte ich ja machen. da ich aber nicht weiss wie ich das machen kann, frage ich ja hier.
wie kann ich TPicture um das ereignis OnMouseOver erweitern und vor allem verstehe ich nicht so ganz, wie ich dann allgemein jedes TPicture an meine paintbox senden kann.
während das programm läuft, sollen ja einträge erstellt und der liste hinzugefügt werden. und auch diese einträge sollen schon diese OnMouseOver eigenschaft besitzen. das ist mein problem.
  Mit Zitat antworten Zitat
Benutzerbild von Net7
Net7

Registriert seit: 22. Jun 2004
Ort: Lauenburg
161 Beiträge
 
Delphi 7 Professional
 
#4

Re: OnMouseOver bei selbst erzeugtem TPicture

  Alt 27. Okt 2005, 17:50
Ahhhh jetzt verstehe ich was du meinst...

Vergiss das mit TPicture und On MouseOver.. Das geht ja garnet weils ein Container ist


Aber mal als Anstoß.. Setze mal eine Paintbox auf deinen Formular. Und Create ein TPicture das etwa halb so groß ist wie deine Paintbox. Über die X-Y Koordinaten müsste sich ja rausfinden lassen wo sich dein Picture aufhält.


Bisschen pseudocode aus einem meiner Projekte (leicht abgeändert)

Delphi-Quellcode:
function TPictuere.Erkennen(Punkt:Tpoint): boolean;
var
PunktOL:Tpoint; //Punkt oben links deines Pictures
PunktUR:Tpoint; //Punkt unten rechts deines Pictures
begin
    
     PunktOL.X:=self.x1+10;
     PunktOL.Y:=self.y1+10;
     PunktUR.X:=self.x2-10;
     PunktUR.Y:=self.y2-10;
     
     if (punkt.X >=PunktOL.X) and (punkt.X <=PunktUR.X) and (Punkt.Y>=punktOL.Y) and (Punkt.Y<=punktUR.Y) then
     begin
        result:=true;
       
        //Tpicture berührt
     end
      else
        begin
          result:=false;
          // ausserhalb von Tpicture
        end;




end;

Ich hoffe es hilft dir etwas.
Marko
So`ne Atombombe kann einem den ganzen Tag verderben!
Eine eigene DLL in C++ geschrieben wird meist ein Sklave für mein Delphi/Pascal.
  Mit Zitat antworten Zitat
tobi1701

Registriert seit: 16. Okt 2005
30 Beiträge
 
#5

Re: OnMouseOver bei selbst erzeugtem TPicture

  Alt 27. Okt 2005, 18:17
ja, so kenne ich das auch noch aus der guten alten DOS-zeit. ich dachte nur, dass es unter windows vielleicht etwas leichter geht und man das nicht mehr alles per hand machen muss.

ich meine, ein Button weiss ja auch, wann auf ihn geklickt wird, ohne das vorher gefragt wird, wo der cursor ist.
und wenn ich ein TPicture aus dercomponenten-leiste auswähle und auf meine form lege, dann kann ich ihm ja auch die eigenschaft OnMouseOver (oder OnClick...) zuweisen.
daher denke ich auch, dass das es irgendwie möglich sein muss, allen TPictures, die in meiner liste kreiert werden, den Event OnMouseOver zuzuweisen und das TPicture schreibt sich dann auf zB PaintBox1.Canvas, oder?
  Mit Zitat antworten Zitat
Benutzerbild von Net7
Net7

Registriert seit: 22. Jun 2004
Ort: Lauenburg
161 Beiträge
 
Delphi 7 Professional
 
#6

Re: OnMouseOver bei selbst erzeugtem TPicture

  Alt 27. Okt 2005, 18:32
Zitat von tobi1701:
ja, so kenne ich das auch noch aus der guten alten DOS-zeit. ich dachte nur, dass es unter windows vielleicht etwas leichter geht und man das nicht mehr alles per hand machen muss.

ich meine, ein Button weiss ja auch, wann auf ihn geklickt wird, ohne das vorher gefragt wird, wo der cursor ist.
und wenn ich ein TPicture aus dercomponenten-leiste auswähle und auf meine form lege, dann kann ich ihm ja auch die eigenschaft OnMouseOver (oder OnClick...) zuweisen.
daher denke ich auch, dass das es irgendwie möglich sein muss, allen TPictures, die in meiner liste kreiert werden, den Event OnMouseOver zuzuweisen und das TPicture schreibt sich dann auf zB PaintBox1.Canvas, oder?
Wie kann man denn ein TPicture aus der Kompoleiste verwenden??

Meinst manchmal ein du Timage??
Marko
So`ne Atombombe kann einem den ganzen Tag verderben!
Eine eigene DLL in C++ geschrieben wird meist ein Sklave für mein Delphi/Pascal.
  Mit Zitat antworten Zitat
tobi1701

Registriert seit: 16. Okt 2005
30 Beiträge
 
#7

Re: OnMouseOver bei selbst erzeugtem TPicture

  Alt 27. Okt 2005, 18:54
err, sorry, ich rede natürlich die ganze zeit von TImage.
  Mit Zitat antworten Zitat
Benutzerbild von Net7
Net7

Registriert seit: 22. Jun 2004
Ort: Lauenburg
161 Beiträge
 
Delphi 7 Professional
 
#8

Re: OnMouseOver bei selbst erzeugtem TPicture

  Alt 27. Okt 2005, 19:06
also sieht dein Record so aus??

Delphi-Quellcode:

BasicGameEntry = record
   Name,Genre,System,Publisher,Released: string;
   Description: TStrings;
   Rating: integer;
   Picture: Array[1..6] of TImage;
  end;

öhhm dann hat doch jedes Picture dieses Event

Und du kannst es abfragen.
Marko
So`ne Atombombe kann einem den ganzen Tag verderben!
Eine eigene DLL in C++ geschrieben wird meist ein Sklave für mein Delphi/Pascal.
  Mit Zitat antworten Zitat
tobi1701

Registriert seit: 16. Okt 2005
30 Beiträge
 
#9

Re: OnMouseOver bei selbst erzeugtem TPicture

  Alt 27. Okt 2005, 19:24
ich glaube, wir reden hier aneinander vorbei.

also: ich habe eine paintbox, in der alle ainträge meiner liste dargestellt werde. die einträge sind das oben genannte record, das bilder in einer verkleinerten thumbnail-ansicht darstellt.
das funktioniert auch einwandfrei so.

es gibt jetzt noch eine zweite paintbox, in der die bilder in der originalgrösse (oder zumindest grösser) dargestellt werden sollen, wenn ich mit dem mauszeiger über das verkleinert dargestellte TImage des listeneintrags gehe.

das problem ist: von alleine tut es das nicht. was muss ich machen, damit genau das realisiert wird?
ich weiss, dass irgendwie irgendwo etwas in einen .OnMouseOver event geschrieben werden muss, habe aber wirklich keine ahnung wie und wo.
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#10

Re: OnMouseOver bei selbst erzeugtem TPicture

  Alt 27. Okt 2005, 19:33
Zitat von tobi1701:
ich glaube, wir reden hier aneinander vorbei.
Du solltest eben die Klassennamen nicht so umeinander werfen .
Zitat:
also: ich habe eine paintbox, in der alle ainträge meiner liste dargestellt werde.
[...], wenn ich mit dem mauszeiger über das verkleinert dargestellte TImage des listeneintrags gehe.
Was denn nun ?
Wie zeigst du die thumbnails in der Paintbox an? Auf jeden Fall musst du bei deren OnMouseMove aus den Koordinaten den Index des Bildes errechnen und dieses dann in der zweiten Paintbox anzeigen.

[add]Sind im Record die Thumbnails oder die Original-Bilder enthalten? [/add]
Sebastian
Moderator in der EE
  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 12:15 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