Delphi-PRAXiS
Seite 2 von 8     12 34     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Runde, ovale, diagonale, geschwungene oder sonstwie Buttons (https://www.delphipraxis.net/78959-runde-ovale-diagonale-geschwungene-oder-sonstwie-buttons.html)

newuser01 13. Okt 2006 21:27

Re: Runde, eckige, diagonale, geschwungene oder sonstwie But
 
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 :mrgreen:

Sunlight7 13. Okt 2006 21:32

Re: Runde, eckige, diagonale, geschwungene oder sonstwie But
 
*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.

Hawkeye219 13. Okt 2006 21:43

Re: Runde, eckige, diagonale, geschwungene oder sonstwie But
 
Zitat:

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

Sunlight7 13. Okt 2006 21:51

Re: Runde, eckige, diagonale, geschwungene oder sonstwie But
 
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 :gruebel:
Der Fehler wurde erst später eingebaut, und ich wollte eigentlich wissen, ob der Fehler bei den neueren Versionen immer noch da ist.

Zacherl 13. Okt 2006 21:52

Re: Runde, eckige, diagonale, geschwungene oder sonstwie But
 
Unter D2005 PE lässt sich der Code einwandfrei compilieren ...

Sunlight7 13. Okt 2006 21:54

Re: Runde, eckige, diagonale, geschwungene oder sonstwie But
 
Danke, also doch kein Fall für die Delphi-Bug Reports.

newuser01 13. Okt 2006 21:55

Re: Runde, eckige, diagonale, geschwungene oder sonstwie But
 
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"

Sunlight7 13. Okt 2006 22:00

Re: Runde, eckige, diagonale, geschwungene oder sonstwie But
 
Und das sagst Du mir erst jetzt??? :roll:

Hawkeye219 13. Okt 2006 22:06

Re: Runde, eckige, diagonale, geschwungene oder sonstwie But
 
Zitat:

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

dino 13. Okt 2006 22:10

Re: Runde, eckige, diagonale, geschwungene oder sonstwie But
 
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


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:07 Uhr.
Seite 2 von 8     12 34     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz