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 2 von 8     12 34     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)
 
newuser01

 
Delphi 7 Professional
 
#11
  Alt 13. Okt 2006, 21:27
Zitat:
a könnte man, aber dazu mußt Du erst noch überzeugungs Arbeit Leisten. Mr. Green

Die Delphigemeinde dem "Sunlight7" Hypnotisiert und eintrichtert "du bist ein RoundButton-Komponentenschreiber" "du bist wirklich ein RoundButton-Komponentenschreiber" wenn du aufwachst schreibst du nur an dieser Komponente bis zur Vollendung
  Mit Zitat antworten Zitat
Benutzerbild von Sunlight7
Sunlight7

 
Delphi 5 Standard
 
#12
  Alt 13. Okt 2006, 21:32
*Von der Leitung runter Steige*

Ich habs nacher noch kapiert.
Problem behoben und hochgeladen (.pas).

Edit: @newuser01 Wenn ich mal Zeit habe mach ich das noch, mal sehen, derweil mußt Du noch mit den Ressourcen auskommen.
  Mit Zitat antworten Zitat
Hawkeye219

 
Delphi 2010 Professional
 
#13
  Alt 13. Okt 2006, 21:43
Zitat von Sunlight7:
Kann mal wer probieren, ob diese Funktion in neueren Delphi Versionen auch nen internen Fehler verursacht?!
Das hat mich was genervt..
Der Code scheint etwas zu komplex für den Compiler zu sein. Versuche einmal den Umweg über eine Hilfsvariable:

Delphi-Quellcode:
function GetPixel (Bitmap: TBitmap; const x, y: Integer): LongInt;
var
  sl : PByteArray;
  idx : Integer;
begin
  sl := Bitmap.ScanLine[y];
  idx := x * 3;
  Result := RGB(sl[idx + 2], sl[idx + 1], sl[idx]);
end;
Eine Alternative wäre der TypeCast mit TRGBTriple aus der Unit Windows.

Gruß Hawkeye
  Mit Zitat antworten Zitat
Benutzerbild von Sunlight7
Sunlight7

 
Delphi 5 Standard
 
#14
  Alt 13. Okt 2006, 21:51
Das Problem hab ich schön gelöst, aber Danke:

Delphi-Quellcode:
function GetPixel(Bitmap:TBitmap; const x, y:Integer):LongInt;
   var sl:PByteArray;
begin
   sl:=Bitmap.ScanLine[y];
   Result:=(sl[(x * 3)+2])+(sl[(x * 3)+1] shl 8)+(sl[(x * 3)+0] shl 16);
end;
Zu komplex für den Compiler?
Der Delphi 2.0 Compiler kann das aber
Der Fehler wurde erst später eingebaut, und ich wollte eigentlich wissen, ob der Fehler bei den neueren Versionen immer noch da ist.
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

 
Delphi 10.2 Tokyo Starter
 
#15
  Alt 13. Okt 2006, 21:52
Unter D2005 PE lässt sich der Code einwandfrei compilieren ...
  Mit Zitat antworten Zitat
Benutzerbild von Sunlight7
Sunlight7

 
Delphi 5 Standard
 
#16
  Alt 13. Okt 2006, 21:54
Danke, also doch kein Fall für die Delphi-Bug Reports.
  Mit Zitat antworten Zitat
newuser01

 
Delphi 7 Professional
 
#17
  Alt 13. Okt 2006, 21:55
Ich habe bei den VCL Komponenten die "JvgButton1" Kompo gefunden diese Komponente hat alles was man dazu braucht eine Schaltfläche so zu erstellen wie sie "Sunlight7" und "Dino" Programmiert haben. In dieser Komponente läd man einfach die entsprechenden Bilder wie sie oben schon gezeigt wurden rein also z.b für ButtonActive,ButtonInactive,ButtonMask,ButtonPushe d und hat dann diese Schaltfläache. Wenn man nun ein gesamte runde Schaltfläche haben will die aufgeteilt ist dann legt man einfach mehrere "JvgButtons" mit den entsprechenden Bildern aneinander das funktioniert bestens und sieht genau so aus wie die Komponente von "Sunlight7"
  Mit Zitat antworten Zitat
Benutzerbild von Sunlight7
Sunlight7

 
Delphi 5 Standard
 
#18
  Alt 13. Okt 2006, 22:00
Und das sagst Du mir erst jetzt???
  Mit Zitat antworten Zitat
Hawkeye219

 
Delphi 2010 Professional
 
#19
  Alt 13. Okt 2006, 22:06
Zitat von Sunlight7:
Der Fehler wurde erst später eingebaut, und ich wollte eigentlich wissen, ob der Fehler bei den neueren Versionen immer noch da ist.
Sorry, ich hätte es erwähnen sollen: ein Test mit Delphi 6 professional brachte die Meldung "Interner Fehler C1850". Nach der Aufteilung des Codes war die Fehlermeldung weg. Schaltet man in den Compileroptionen die Optimierung aus, läßt sich auch dein Originalcode übersetzen. Ich vermute daher, daß dem Compiler/Optimizer die Register ausgehen. Delphi 2006 übersetzt deinen Code mit und ohne Optimierung ohne Probleme.

Gruß Hawkeye
  Mit Zitat antworten Zitat
dino

 
Delphi 5 Professional
 
#20
  Alt 13. Okt 2006, 22:10
nach dem loslassen bleibt der btton nicht grau, sondern wird blau... sollte aber rot sein, weil die maus noch drauf ist

genauer ehts nicht, ausser mit nem video
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 8     12 34     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 04:52 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