AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Gitternetz auf Canvas der Form wird nicht ganz gezeichnet

Gitternetz auf Canvas der Form wird nicht ganz gezeichnet

Ein Thema von flomei · begonnen am 7. Okt 2003 · letzter Beitrag vom 7. Okt 2003
Antwort Antwort
Benutzerbild von flomei
flomei

Registriert seit: 17. Jan 2003
Ort: Schieder-Schwalenberg
2.094 Beiträge
 
Delphi 2005 Personal
 
#1

Gitternetz auf Canvas der Form wird nicht ganz gezeichnet

  Alt 7. Okt 2003, 19:09
Hallo!
So zum üben wollte ich mir mal die Form mit nem Gitternetz vollmalen lassen. Klappt auch fast aber irgendwann hört er einfach auf.
Hier mal der Code:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
  var
    x,y: Integer;
      begin
        x:=0;
        y:=0;
          while x < Form1.ClientWidth
          do begin
            Form1.Canvas.MoveTo(x,0);
            Form1.Canvas.LineTo(x,Form1.ClientWidth);
            Application.ProcessMessages;
            x := x+10;
          end;
          while y < Form1.ClientHeight
          do begin
            Form1.Canvas.MoveTo(0,y);
            Form1.Canvas.LineTo(Form1.ClientHeight,y);
            Application.ProcessMessages;
            y := y+10;
          end;
      end;
Habe schon ClientWidth und ClientHeight getauscht und auch durch Form1.Height und Width ersetzt aber immer blieb der gleiche Effekt.

Im Anhang nen Screenshot...

Danke im Vorraus!

MfG Florian
Miniaturansicht angehängter Grafiken
dp_208.jpg  
Florian Meier
... ist raus.
Vielen Dank für die Zeit mit euch!
http://www.flomei.de -- http://www.md5hash.de
  Mit Zitat antworten Zitat
Dagon

Registriert seit: 13. Jul 2003
505 Beiträge
 
Delphi 7 Professional
 
#2

Re: Gitternetz auf Canvas der Form wird nicht ganz gezeichne

  Alt 7. Okt 2003, 19:21
Ich habe den Fehler gefunden! 8)

In der zweiten while-Scheife musst du die Zeile
Form1.Canvas.LineTo(Form1.ClientHeight,y); durch
Canvas.LineTo(ClientWidth, y); ersetzen.
  Mit Zitat antworten Zitat
Benutzerbild von Gollum
Gollum

Registriert seit: 14. Jan 2003
Ort: Boxberg
456 Beiträge
 
Delphi 10.1 Berlin Professional
 
#3

Re: Gitternetz auf Canvas der Form wird nicht ganz gezeichne

  Alt 7. Okt 2003, 19:22
Hallo,

das Problem liegt in Deinen Schleifen:

Für die x-Schleife musst Du bei MoveTo, ClientHeight und für die y-Schleife ClientWidth nehmen.

Besser aber wäre, da Du eh auf einen Canvas zeichnest, die Eigenschaft ClipRect zu nehmen.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var x,y: Integer;
begin
  x:=0;
  y:=0;
  with Form1.Canvas do
  begin
    while (x<ClipRect.Right) do
    begin
      MoveTo(x,0);
      LineTo(x, ClipRect.Bottom);
      Inc(x, 10);
    end; // while
    while (y<ClipRect.Bottom) do
    begin
      MoveTo(0,y);
      LineTo(ClipRect.Right, y);
      Inc(y, 10);
    end; // while
  end; // with
end;
  Mit Zitat antworten Zitat
Benutzerbild von flomei
flomei

Registriert seit: 17. Jan 2003
Ort: Schieder-Schwalenberg
2.094 Beiträge
 
Delphi 2005 Personal
 
#4

Re: Gitternetz auf Canvas der Form wird nicht ganz gezeichne

  Alt 7. Okt 2003, 19:26
Super! Funktioniert!!!

DANKE!

MfG Florian
Florian Meier
... ist raus.
Vielen Dank für die Zeit mit euch!
http://www.flomei.de -- http://www.md5hash.de
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 05:48 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