Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Hilfe! Rechtecke im Imagefenster (https://www.delphipraxis.net/89274-hilfe-rechtecke-im-imagefenster.html)

ChicBrennan 28. Mär 2007 19:41


Hilfe! Rechtecke im Imagefenster
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo
Hoffe, schreibe hier nicht in den falschen zweig...
Vielleicht kann mir jemand von euch helfen. Ich kenne mich nicht so gut mit delphi aus, muss aber bis nächsten Montag folgendes programmieren:
In einem leeren image-fenster soll auf einen buttonklick das hier entstehen:
(siehe Anhang) vier rechecke ineinander... wo jeweils das innere mit den ecken, dieseiten des äußeren halbiert, aber trotzdem innerhalb bleibt, also kleiner ist...
kann das jemand von euch?
Lg Chic

SirThornberry 28. Mär 2007 19:43

Re: Hilfe!!! Kann mir jemand helfen?!
 
Herzlich willkommen in der dp :dp:
Könntest du deinem Beitrag bitte einen aussagekräftigen Titel geben? (Einfach http://www.delphipraxis.net/template.../icon_edit.gif benutzen)

mkinzler 28. Mär 2007 19:44

Re: Hilfe!!! Kann mir jemand helfen?!
 
Zitat:

kann das jemand von euch?
Ja.
Und du solltest es auch können.
Zeichnen kannst du mit den Zeichenfunktionen von TCanvas und der Rest ist ja nur Mathematik

DP-Maintenance 28. Mär 2007 19:45

DP-Maintenance
 
Dieses Thema wurde von "SirThornberry" von "Sonstige Fragen zu Delphi" nach "VCL / WinForms / Controls" verschoben.

bitsetter 28. Mär 2007 21:34

Re: Hilfe!!! Kann mir jemand helfen?!
 
Hi,

so könnte man es machen:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  Size, HalfSize, iLeft, iTop: integer;

  procedure Draw2Rect;
  begin
    Image1.Canvas.Polyline([Point(0, 0), Point(Size, 0),
      Point(Size, Size), Point(0, Size), Point(0, 0)]);

    Image1.Canvas.Polyline([Point(HalfSize, 0), Point(Size, HalfSize),
      Point(HalfSize, Size), Point(0, HalfSize), Point(HalfSize, 0)]);
  end;

begin
  Size := 100;

  iLeft := (Image1.Width - Size) div 2;
  iTop := (Image1.Height - Size) div 2;
  HalfSize := Size div 2;

  SetViewportOrgEx(Image1.Canvas.Handle,iLeft, iTop, nil);
  Draw2Rect;

  Size := HalfSize;
  HalfSize := Size div 2;

  SetViewportOrgEx(Image1.Canvas.Handle,iLeft + HalfSize, iTop + HalfSize, nil);
  Draw2Rect;

  SetViewportOrgEx(Image1.Canvas.Handle, 0, 0, nil);
end;

TKC 28. Mär 2007 21:38

Re: Hilfe!!! Kann mir jemand helfen?!
 
Das klingt mir verdächtig nach Hausaufgabenerledigungsmaschiene .. :warn:

bitsetter 28. Mär 2007 21:42

Re: Hilfe!!! Kann mir jemand helfen?!
 
Ja ist mir schon klar, aber ich hatte gerade Lust dazu.

alzaimar 29. Mär 2007 07:01

Re: Hilfe!!! Kann mir jemand helfen?!
 
Oder einfach mal rekursiv (die Aufgabe schreit ja geradezu danach):
Delphi-Quellcode:
Procedure RechteckImRechteck (P1,P2,P3,P4 : TPoint; Ebene : Cardinal);
Begin
  If Ebene = 1 Then
    ZeichneReckeck (P1,P2,P3,P4) // Das muss man selbst programmieren
  Else
    RechtEckImRechteck (
              Point ((P1.x+P2.x)/2, (P1.y+P2.y)/2),
              Point ((P2.x+P3.x)/2, (P2.y+P3.y)/2),
              Point ((P3.x+P4.x)/2, (P3.y+P4.y)/2),
              Point ((P4.x+P1.x)/2, (P4.y+P1.y)/2)
     Ebene - 1);
End;

...
  RechtEckImRechtEck (P1,P2,P3,P4,4); // Zeichnet 4 ineinander verschachtelte Rechtecke
...
Selbst wenn man das abtippt, hat man noch Einiges zu tun. Und vor allen Dingen dann, wenn der Lehrer wissen will, wie es funktioniert...

mkinzler 29. Mär 2007 07:03

Re: Hilfe!!! Kann mir jemand helfen?!
 
Zitat:

Selbst wenn man das abtippt, hat man noch Einiges zu tun. Und vor allen Dingen dann, wenn der Lehrer wissen will, wie es funktioniert...
Spätestens dann wünscht man sich man hätte es selber gemacht. :zwinker:

franktron 29. Mär 2007 07:28

Re: Hilfe!!! Kann mir jemand helfen?!
 
Zitat:

Zitat von ACE-ppc
Das klingt mir verdächtig nach Hausaufgabenerledigungsmaschiene .. :warn:

Man kann nur hoffen das die Lehrer den Schüler mal Fragen wie das Programm was die geschrieben (Copy Paste :-D ) funktioniert :zwinker:


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:15 Uhr.
Seite 1 von 2  1 2      

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