AGB  ·  Datenschutz  ·  Impressum  







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

Eigene Komponente mit Buttons

Ein Thema von TheMiller · begonnen am 4. Apr 2007 · letzter Beitrag vom 5. Apr 2007
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#1

Eigene Komponente mit Buttons

  Alt 4. Apr 2007, 21:15
Hallo,

ich habe schon wieder eine Frage. Und zwar bin ich doch dabei, eine Komponente zu schreiben. Soweit auch schon ganz erfolgreich. Jetzt benötige ich Navigationsschaltflächen (vor und zurück), die ich per Draw aus einer Resource lade. Klappt auch. Doch wie kann ich jetzt registrieren, dass ein Benutzer auf dieses Bild klickt? Ich vermute mal, dass ich dazu noch nicht einmal Draw benutzen darf, sondern eine Button-Komponente einbauen muss, oder?

Danke!
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Eigene Komponente mit Buttons

  Alt 4. Apr 2007, 21:23
von welcher Komponente hast du abgeleitet und wie stellst du die Bilder dar?
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Eigene Komponente mit Buttons

  Alt 4. Apr 2007, 21:24
Ich würde auf jedenfall eine Unterkomponente verwenden
Markus Kinzler
  Mit Zitat antworten Zitat
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#4

Re: Eigene Komponente mit Buttons

  Alt 4. Apr 2007, 21:24
Zitat von DJ-SPM:
Und zwar bin ich doch dabei, eine Komponente zu schreiben. Soweit auch schon ganz erfolgreich. Jetzt benötige ich Navigationsschaltflächen (vor und zurück), die ich per Draw aus einer Resource lade.
Hi,
Wenn ich nichts verpasst habe, dann kann man mit der der Funktion Draw nur zeichnen, nicht laden. Die Frage ist hier eher, von was für einer Komponente ist Deine abgeleitet? Wenn Du auf sie zeichnen kannst, dann gibt es bestimmt auch die Ereignisse OnMouseDown und OnMouseUp, über diese bekommst Du die Position einer Mausaktion. Da Du das Bild zeichnest, musst Du nur schauen wo der Maus-click statt findet und was ander der Stelle steht (vor oder zurück), fertig.

Gruß Der Unwissende
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#5

Re: Eigene Komponente mit Buttons

  Alt 4. Apr 2007, 21:29
Hallo,

meine Komponente ist von TCustomcontrol abgeleitet. Dass man mir Draw nur zeichnen kann, ist ja schon irgendwie klar. Ich weiß nur nicht, welche Unterkomponente ich verwenden soll, damit man bei dem Button keinen Rand mehr sieht. Dieser Button soll nämlich fest ins Design eingebaut werden und nicht "rausstehen".
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Eigene Komponente mit Buttons

  Alt 4. Apr 2007, 21:33
dann überschreibe einfach die Methoden MouseDown und MouseUp
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#7

Re: Eigene Komponente mit Buttons

  Alt 4. Apr 2007, 21:35
Hm naja,

der Button steht ja von Haus aus ein bisschen raus. Dieser pseudo-3D-Effekt soll hier aber (in meinem Fall) vermieden werden. Oder gibt's dafür eine Eigenschaft?
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#8

Re: Eigene Komponente mit Buttons

  Alt 4. Apr 2007, 21:42
Zitat von DJ-SPM:
..Jetzt benötige ich Navigationsschaltflächen (vor und zurück), die ich per Draw aus einer Resource lade...
Wäre es da nicht besser, diese Schaltflächen vorzusehen und bei Bedarf zu aktivieren ? Also eine Form vorzubereiten und diese zur Weiterverwendung in die Objektablage zu verfrachten ?
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#9

Re: Eigene Komponente mit Buttons

  Alt 4. Apr 2007, 21:45
Das verstehe ich jetzt nicht... Sorry
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#10

Re: Eigene Komponente mit Buttons

  Alt 4. Apr 2007, 22:16
Zitat von DJ-SPM:
Doch wie kann ich jetzt registrieren, dass ein Benutzer auf dieses Bild klickt?
Weil es sich um eine Komponente handelt, so über ein Event, z.B. OnPictureClick.

Dieses Event erzwingen kannst du dann so, soweit du intern über das OnMouseDown Event festgestellt hast, dass das Bild angeklickt wurde:

Delphi-Quellcode:
type
  TOnPictureClick = procedure (Sender : TObject) of object ; // Weitere Parameter sind auch möglich. TNotifyEvent entspricht dieser Deklaration

TMyComponent = class (TUserControl)
private
  procedure AnyProcedure ;
published
  property OnPictureClick : TOnPictureClick read FOnPictureClick write FOnPictureClick ;
end ;

Das Event OnPictureClick auslösen kannst du in deinem Komponentencode überall etwa so:

Delphi-Quellcode:
procedure TMyComponent.AnyProcedure ;
begin
     if Assigned (OnPictureClick) then
         OnPictureClick (Self) ;
end ;
  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 06:39 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