Guten Abend zusammen =)
Ich bin mir nicht sicher ob dashier das richtige Forum ist wenn nicht tut es mir leid
Also ich habe folgendes Problem: Aufgabe ist es ein bei Mausklick ein Pascalsches Dreieck Graphisch darstellen zu lassen (also nicht die Zahlen, sondern
so (soll nich ganz genau so aussehen nur damit ihr wisst wie ich es ungefähr meine
). Dabei soll immer geprüft werden ob die beiden Pixel die über dem zu prüfenden sind gleich sind. Wenn ja dann soll der geprüfte Pixel grün gefärbt werden, wenn nein dann rot. Der erste und letzte Pixel in jeder Zeile soll immer rot gezeichnet werden. Naja das klappt soweit auch ganz gut. Nur habe ich das Problem das wenn die X-Koordinate der Maus größer als die Y-Koordinate ist nichts gezeichnet wird (was auch logisch ist wenn man sich die Schleife anguckt) und ich nicht genau weiß wie ich das umgehen soll. Das zweite Problem ist, dass er das zwar alles richtig zeichnet, aber irgendwie zeichnet er den ganzen Kram zwei mal und füllt zwischen beiden Exemplaren alles grün aus. Etwas schwer zu erklären, aber ich habe
HIER mal das Projekt hochgeladen, dann könnt ihr euch das vllt mal bitte angucken.
Hier mal der Delphicode für mein Vorhaben:
Delphi-Quellcode:
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
Zeile,Zahl: Integer;
begin
for Zeile:=Y to Y+100 do
begin
for Zahl:=X to Zeile do
begin
if Zahl=X then Canvas.Pixels[Zahl,Zeile]:=clred
else if Zahl=Zeile then Canvas.Pixels[Zahl,Zeile]:=clred
else if Canvas.Pixels[Zahl-1,Zeile-1]=Canvas.Pixels[Zahl,Zeile-1] then
Canvas.Pixels[Zahl,Zeile]:=clgreen
else if Canvas.Pixels[Zahl-1,Zeile-1]<>Canvas.Pixels[Zahl,Zeile-1] then
Canvas.Pixels[Zahl,Zeile]:=clred;
end;
end;
end;
Schon mal vielen Dank =))