![]() |
RGB-Farbvorschau mit spinedit funzt nicht immer
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe eine RGB-Fabvorschau geschrieben. Funzt auch, aber wenn man in die spinedits Zahlen auf der Tastatur (anstatt Maus) eingibt dann mault das Programm, das der Integer ungültig ist. So sieht das aus:
Delphi-Quellcode:
Ach und übrigens, wie kann man die Werte in Hexadezimal-Werte umrechnen?
procedure TForm7.farb_update;
begin form7.Panel1.color :=RGB(form7.SpinEdit1.value, form7.spinedit2.value, form7.spinedit3.value); end; procedure TForm7.rotchg(Sender: TObject); //spinedit1.onchange begin farb_update; end; procedure TForm7.blauchg(Sender: TObject); //spinedit2.onchange begin farb_update; end; procedure TForm7.gupdate(Sender: TObject); //spinedit3.onchange begin farb_update; end; |
Re: RGB-Farbvorschau mit spinedit funzt nicht immer
Du musst ungültige Eingaben, die sich nicht in einen Integer wandeln lassen, von Hand abfangen. Ein keine Eingabe '' ist auch eine ungültige Eingabe.
Eine andere Variante wäre es nicht auf onChange zu reagiren, sondern durch einen ButtonClick die Vorschau zu aktualisieren. Ist einfacher, aber auch unschöner! Schau dir dazu mal die Prozedur "Val" in der Hilfe an. gruss, dizzy PS: Zitat:
|
Re: RGB-Farbvorschau mit spinedit funzt nicht immer
naja, ich habe das forum bereits vor meinem Beitrag durchsucht. Ich habe allkes ausprobiert, was mir eingefallen ist, auch Val, try und except sowie if spineditX.value >=0
Aber allmählich gehen mir die Ideen aus. |
Re: RGB-Farbvorschau mit spinedit funzt nicht immer
Also zu mindest die Hau-Ruck-Methode mit try-exceot sollte geholfen haben. :roll:
|
Re: RGB-Farbvorschau mit spinedit funzt nicht immer
Hallo,
ich weiß warum eine Exception auftritt. Wenn im TSpinEdit eine Zahl z.B. 42 steht und Du diese Zahl markierst. Jetzt möchtest Du die 42 durch 84 ersetzen. Dafür tippst Du zuerst auf die acht und dann auf die vier. Was passiert aber, wenn Du auf die acht getippt hast? Erst wird der Inhalt des TSpinEdit gelöscht und dann die acht geschrieben. Die Löschung des Inhalt's wird jedoch als Änderungen erkannt und das OnChange-Event wird ausgelöst bevor die acht in TSpinEdit steht. Dadurch kommt es in farb_update zur Execption. Die Lösung wäre (wie von Luckie erwähnt) dann folgende:
Delphi-Quellcode:
procedure TForm7.farb_update;
begin Try form7.Panel1.color :=RGB(form7.SpinEdit1.value, form7.spinedit2.value, form7.spinedit3.value); Except end; end; |
Re: RGB-Farbvorschau mit spinedit funzt nicht immer
Danke für eure Antworten. Auf die try-Idee bin ich schon vorher mal gekommen, aber es hat trotzdem nicht gefunzt. Ich bin jetzt mal auf die Idee gekommen :idea: , das Programm zu kompilieren und danach nicht aus Delohi, sonder aus dem Windows-Explorer heraus zu starten. Und siehe da, ES FUNZT!!! :lol:
Delphi scheint ja nur aus irgendwelchen Debug-Gründen zu maulen, aber wenn es sein kann, dass irgendetwas schief läuft, dann würde man doch kein try nehmen, oder?? :gruebel: |
Re: RGB-Farbvorschau mit spinedit funzt nicht immer
Zur Zahlenumwandlung (hex):
![]() Ist leider schon älter, müsste ich mal aktualisieren: Statt der selbstgebastelten Funktion für Potenzen solltest du Power nehmen (war damals weder mir noch meinem Informatiklehrer bekannt) MfG |
Re: RGB-Farbvorschau mit spinedit funzt nicht immer
Zitat:
Dann ist klar, dass ein try...except (scheinbar) nix gebracht hat :roll: gruss, dizzy |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:03 Uhr. |
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 by Thomas Breitkreuz