AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Runde, ovale, diagonale, geschwungene oder sonstwie Buttons
Thema durchsuchen
Ansicht
Themen-Optionen

Runde, ovale, diagonale, geschwungene oder sonstwie Buttons

Ein Thema von Sunlight7 · begonnen am 13. Okt 2006 · letzter Beitrag vom 15. Nov 2006
Antwort Antwort
Seite 4 von 8   « Erste     234 56     Letzte »    
Benutzerbild von Sunlight7
Sunlight7
Registriert seit: 17. Sep 2006
Hallo DPler!

Eigentlich wollt ich nur Wissen, ob meine Idee funktionieren würde, und heraus kam diese Komponente...

Man kann in den Ressourcen die Bitmaps hinterlegen, welche dann als Buttons dargestellt werden.
Auf Deutsch gesagt, man zeichnet die Buttons, und Kompo setzt es um.
Also das ist jetzt schwierig zu beschreiben, am besten, Ihr guckt Euch den Screenshot mal an.

Geschrieben ursprünglich mit Delphi 2, die Komponente zum Download ist jetzt aber für Delphi 5.0+

Neu in V1.5:
  • Speed Optimierung, besonders für große Bitmaps
  • Eigenschaften:
  • EnabledStr & PushedStr: Zur komfortablen Nutzung im OI und zur einfachen Speicherung und Wiederherstellung von Konstellationen für Enabled bzw. Pushed.
  • Bugs ausgebügelt.

Neu in V1.4:
  • Eigenschaften: PushedButtons & Pushed

V1.3:
  • Ressourcen Bitmaps entfernt
  • Bitmaps zum OI hinzugefügt, ich hoffe ihr seid jetzt glücklicher

V1.2:
  • Eigenschaft Enabled für die Buttons
  • Bugfixes im Design-Modus
  • Bugfixes mit gedrückter Maustaste
  • Timer entfernt (D5+)

V1.1b:
  • "Schnelles Maus darüber ziehen Problem behoben"
  • TransparentColor:
    • Ein beliebiger Farbwert, oder:
    • clNone: Keine Transparenz
    • clBackground: Die Farbe von Pixels[0, 0] wird verwendet.

Hint:
F: Ist doch eine Standard Eigenschaft?
A: Jein, ich habe aus der Eigenschaft eine StringList gemacht.
Die 0. Zeile bleibt leer, die restlichen Zeilen stehen für den
jeweiligen Button.

ResStandard, .., ResTouchZones
Hier können die Ressourcennamen eingegeben werden, die dann
geladen werden.

Ich weiß, das ist noch nicht das Gewünschte...

Viel Spaß damit!

PS: Wäre schön, wenn Ihr einen Screenshot posten würdet, was ihr damit gemacht habt.

Zitat von Delphi 5.0 Compiler:
interner Fehler C1569
Das hat mich was genervt...

Edit: Demo Exe erneuert.
Miniaturansicht angehängter Grafiken
tpaintedbuttons_535.png  
Angehängte Dateien
Dateityp: zip tpaintedbuttons.exe_813.zip (193,7 KB, 246x aufgerufen)
Windows: Ja - Microsoft: Nein -> www.ReactOS.org

Geändert von Sunlight7 ( 8. Mai 2011 um 20:28 Uhr)
 
dino

 
Delphi 5 Professional
 
#31
  Alt 15. Okt 2006, 15:23
hab noch ein gemeinsames(oder emeinsamen??? ka) Bug gefunden:

dein und mein Programm haben beide das Problem. dass wenn man ganz schnell über die Buttons geht, dass dann unter umständen ein Button aktiviert bleibt, weil die Maus sich, da sie so schnell bewegt wurde ja offiziel nicht wegbewet sondern einfach verschwunden ist

die Maus ist mit einem Sprung vom Button dahingesprungen, wo sie nicht mehr kontrolliert wird...

wie kann man das ändern?


ich will z.B. nen Timer bestimmen, der jedesmal überprüft, wo sich die maus befindet, aber im gegensatz zu onmousemove wird nem timer nicht die x,y koordinaten der maus übergeben...
  Mit Zitat antworten Zitat
Benutzerbild von Sunlight7
Sunlight7

 
Delphi 5 Standard
 
#32
  Alt 15. Okt 2006, 19:08
Der Fehler kommt bei TGraphicControl, so wie Du in Beschrieben hast öfters vor.

Wenn ich ehrlich bin, hatte ich noch keine Zeit, Deinen Quellcode anzusehen

Das mit dem Timer mache ich normalerweise bei meinen Kompos, aber weil ich diese als Open-Source veröffentlicht habe, hab ich das gelassen, weol ich das für eine schlechte programmierweise halte.

Was besserers ist mir noch nicht eingefallen, man könnte ggf. MouseCapture verwenden, aber ob das ideal ist und bei ohne Handle Fenster funkt hab ich noch nicht probiert.

PS: Du muß bei dem Timer die MousePos abfragen und auf das gewünschte Control umrechnen.
  Mit Zitat antworten Zitat
dino

 
Delphi 5 Professional
 
#33
  Alt 15. Okt 2006, 22:27
ich habe immernoch nicht verstanden, darum frag ich nochmal verienfacht:

wie kann ich z.B. ner Timerprozedur die Mauskoordinaten übergeben?
  Mit Zitat antworten Zitat
Benutzerbild von Sunlight7
Sunlight7

 
Delphi 5 Standard
 
#34
  Alt 15. Okt 2006, 22:42
Zitat von Dino:
wie kann ich z.B. ner Timerprozedur die Mauskoordinaten übergeben?
Das läuft anders herum, Du hohlst Dir die Mauskoordinaten in der Timerprocedure.

Hast Du ne jetzt ne Kompo, nutzt Du meine oder hast das nur so auf einem Formaular?

Ich werde das mal in die Kompo einbauen, dann kannst Du Dir das ansehen.
Das sind dann 2 Fliegen mit einer Klappe (Nicht das Du ne Fliege wärst).
  Mit Zitat antworten Zitat
dino

 
Delphi 5 Professional
 
#35
  Alt 15. Okt 2006, 23:03
wofür bruache ich deine Kompo?
nenne mich alltmodisch, aber ich hätte wenn dann gerne ein Projekt, wo das drin vorkommt...

wenn der timer die Koordiaten erhalten will, muss sie jemand eben, nur solche sachen wie onmousemove oder irgendwa onmouse klappt nicht, da die maus sich nicht auf der Form befindet und somit auch keine koordinatenüberreichende anweisungen macht
  Mit Zitat antworten Zitat
Benutzerbild von Sunlight7
Sunlight7

 
Delphi 5 Standard
 
#36
  Alt 15. Okt 2006, 23:48
Update hochgeladen... siehe oben.

Zitat von dino:
wofür bruache ich deine Kompo?
Weiß ich nicht, war ja nur ne Frage...
Zitat von dino:
nenne mich alltmodisch, aber ich hätte wenn dann gerne ein Projekt, wo das drin vorkommt...
Spricht ja nix gegen.
Kompos haben halt den Vorteil, das man Sie nur einmal Programmieren muß, und sie dann leichter in mehreren Projekten verwenden kann.

Wegen den Timer:
1. Gucke Dir die neue Kompo an, oder
2. Gib in Deinem Projekt einen "Reset", sobald das Formular einen MouseMove feststellt.

2teres funkt nicht immer, wenn die Form sehr klein ist.
  Mit Zitat antworten Zitat
dino

 
Delphi 5 Professional
 
#37
  Alt 16. Okt 2006, 06:06
2. funktioniert auch nicht, wenn die buttons am rand sind, weil man dann ja auch schafft davonzuspringen...
also allgemein nochmal die frage: schhafft mans die koordinaten zu kriegen, auch wennn die maus nicht auf der Form ist?(oder zumindest zu erkennen, dass die Maus nicht auf der Form ist)

bisher erkenne ich den Standpunkt der Maus nur, wenn ch eine taste drücke, oder die maus bewee sonst nicht...
  Mit Zitat antworten Zitat
Benutzerbild von Sunlight7
Sunlight7

 
Delphi 5 Standard
 
#38
  Alt 16. Okt 2006, 06:21
Hast Du Dir die neue Kompo nicht angesehen?

Genauso, wie es da drin steht kannst Du es auch auf einer Form machen.
  Mit Zitat antworten Zitat
dino

 
Delphi 5 Professional
 
#39
  Alt 16. Okt 2006, 07:22
ne noch nicht, aber wenn du schon sagst, dass es auf einer kleinen Form immernoch vorkommt, weiss ich ja, dass du bei form1 onmousemove den reset durchführst, was aber nichts bringt, solange die maus ausserhalb der Form rumläuft...

also entweder, wir holen uns die mausosition irgendwie anders, oder wir schummeln, indem wir die form screengröße geben, es aber so aussehen lassen, als sei sie kleiner, indem wir das Fensterdesign normal darstellen und darumherrum den hintergrund zeigen...
kann man in dem Fall bei Klick in den äusseren bereich dem hintergrund übergeben?(dass man per rechtsklick auf die form das sieht, wenn man auf den desktop klickt
  Mit Zitat antworten Zitat
Benutzerbild von Sunlight7
Sunlight7

 
Delphi 5 Standard
 
#40
  Alt 16. Okt 2006, 08:08
Sieh Dir zuerst die Komponente an ...

Da ist die 1. Option mit Timer drin
Die 2. würde ohne gehen, aber wie gesagt, funkt net immer.

Edit: Falls Du die Exe probiert hast, die hab ich nicht neu hoch geladen, die hat den Fehler noch.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 4 von 8   « Erste     234 56     Letzte »    


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 11:09 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