Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Dreiecke (https://www.delphipraxis.net/96394-dreiecke.html)

Amateurprofi 23. Jul 2007 21:36


Dreiecke
 
Liste der Anhänge anzeigen (Anzahl: 2)
Ich hab mich ein wenig mit Dreiecken beschäftigt.
Das Resultat ist im Anhang. Vielleicht kann der eine oder andere Nutzen daraus ziehen.

Im Hauptfenster wird kontext-sensitive Hilfe unterstützt - also Mauszeiger auf das Objekt zu dem man was wissen will und F1 drücken. Mit Strg-F1 gehts auf die Haupseite des Helpfiles.

Integriert ist ein kleiner Parser zur Auswertung numerischer Ausdrücke, der eigentlich nur gedacht war, die im Helpfile gezeigten Formeln zu prüfen, der aber dann ein gewisses Eigenleben entwickelt hat und dehalb zu gegebener Zeit als separates Programm veröffentlicht wird. @marabu : Darauf bezog sich meine Frage zu Zeilenwechsel beim TMEMO.

Änderung 25.11.2017
Ich habe vor einiger Zeit festgestellt, dass die ursprüngliche Version (stammt aus 2007) bei mir nicht mehr richtig lief (Komponenten lagen teilweise außerhalb des Programmfensters). Ich hab dann neu kompiliert, aber seinerzeit vergessen die geänderte Version hier reinzustellen.
Die neue Version heißt Dreieck.zip.

bitsetter 23. Jul 2007 22:23

Re: Dreiecke
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,

wenn ich mal wieder mit Dreiecken zu tun habe, dann kann ich dein Programm sicherlich gebrauchen. Außerdem sieht es nicht schlecht aus, das hat bestimmt etwas Arbeit gemacht. Wie ich gerade sehe, hast du auch die Formeln zur Dreiecksberechnung in der ausführlichen Hilfe.
Allerdings flackert das Bild beim Drehen des Dreieckes, dafür gibt es doch DoubleBuffered.
Beim Hauptmenü steht oftmals ein Untermenü "Zeigen" und "Nicht Zeigen", da würde ich einfach einen Haken oder eine Checkbox in das betreffenden Menü einfügen, dass würde übersichtlicher sein.

Amateurprofi 23. Jul 2007 22:41

Re: Dreiecke
 
Zitat:

Zitat von bitsetter
Hi,

Allerdings flackert das Bild beim Drehen des Dreieckes, dafür gibt es doch DoubleBuffered.

Beim Hauptmenü steht oftmals ein Untermenü "Zeigen" und "Nicht Zeigen", da würde ich einfach einen Haken oder eine Checkbox in das betreffenden Menü einfügen, dass würde übersichtlicher sein.

Bei mir flackert es nicht - so sehr ich mich auch bemühe es flacken zu lassen.

Zur Checkbox statt 2 Menu Items.
Geht nicht.
Das Menu ist dafür gedacht, z.B. alle Linien eines Typs aus- oder einzublenden.
Es ist aber möglich für jede Linie separat festzulegen, ob sie gezeigt werden soll oder nicht.
Wenn nun z.B. gerade 2 der Mittelsenkrechten gezeigt werden und eine nicht - was soll dann die Checkbox zeigen ?

bitsetter 23. Jul 2007 22:46

Re: Dreiecke
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Amateurprofi
Zur Checkbox statt 2 Menu Items.
Geht nicht.
Das Menu ist dafür gedacht, z.B. alle Linien eines Typs aus- oder einzublenden.
Es ist aber möglich für jede Linie separat festzulegen, ob sie gezeigt werden soll oder nicht.
Wenn nun z.B. gerade 2 der Mittelsenkrechten gezeigt werden und eine nicht - was soll dann die Checkbox zeigen ?

Dann kann man gleich auf den 1. Blick sehen, welche Linien angezeigt werden und welche nicht. Wenn es angeblich nicht geht, dann ist es auch kein Beinbruch.

Bei mir flackert das Bild ganz schön, wenn ich das Dreieck bewege.

EDIT: Ich habe mal ein Bild angehängt, wie ich es mit dem Menü meinte. Das ist ein Screenshot von einem bekannten Programm.

DP-Maintenance 24. Jul 2007 06:12

DP-Maintenance
 
Dieses Thema wurde von "SirThornberry" von "Programmieren allgemein" nach "Freeware" verschoben.

WS1976 24. Jul 2007 06:46

Re: Dreiecke
 
Hallo,

wieder mal ohne Quellcode. Geb ich keinen Kommentar zu.

Grüsse Rainer

DeddyH 24. Jul 2007 08:13

Re: Dreiecke
 
Mit Quellcode wäre es ja wohl eher unter OpenSource zu finden, oder? :stupid:

xZise 24. Jul 2007 10:13

Re: Dreiecke
 
Zitat:

Zitat von Amateurprofi
Zur Checkbox statt 2 Menu Items.
Geht nicht.
Das Menu ist dafür gedacht, z.B. alle Linien eines Typs aus- oder einzublenden.
Es ist aber möglich für jede Linie separat festzulegen, ob sie gezeigt werden soll oder nicht.
Wenn nun z.B. gerade 2 der Mittelsenkrechten gezeigt werden und eine nicht - was soll dann die Checkbox zeigen ?

Das müsste kein Problem sein. Heißt das Menüitem beispielsweise "miHalbierende", dann musst du bei OnClick überprüfen, ob das gesetzt ist:
Delphi-Quellcode:
procedure ...
begin
  if miHalbierende.Checked then
    ShowHalbierende
  esle
    HideHalbierende;
end;
Sry, aber ein bisschen Offtopic
Zitat:

Zitat von WS1976
wieder mal ohne Quellcode. Geb ich keinen Kommentar zu.

Definition: SPAM
Ich würde an deiner Stelle einfach mal das Freeware Forum lassen und nur das Opensource Forum durchstöbern.

[edit]Das Programm ist ziemlich heftig! :thumb:
Gibt es ein "Mouseshortcut" zum Drehen/Zoomen?

Und einen kleinen visuellen Bug :) Und zwar bekomme ich (mit Luna) rechts eine Scrolleiste :(

MfG
xZise

PS: Ich muss gestehen, dass programm noch nicht angegcukt zu haben :oops:

TheAn00bis 24. Jul 2007 11:19

Re: Dreiecke
 
Sehr cooles Prgramm, leider kann man unter Vista die Hilfedatei nicht öffnen (zumindest nicht ohne zusätzlichen Aufwand, siehe http://support.microsoft.com/kb/917607).

jmit 24. Jul 2007 18:21

Re: Dreiecke
 
Hallo,

das Programm ist Dir sehr gut gelungen.

Zitat:

Zitat von Amateurprofi
Zitat:

Zitat von bitsetter
Hi,

Allerdings flackert das Bild beim Drehen des Dreieckes, dafür gibt es doch DoubleBuffered.

Beim Hauptmenü steht oftmals ein Untermenü "Zeigen" und "Nicht Zeigen", da würde ich einfach einen Haken oder eine Checkbox in das betreffenden Menü einfügen, dass würde übersichtlicher sein.

Bei mir flackert es nicht - so sehr ich mich auch bemühe es flacken zu lassen.

Beim Verschieben des Dreiecks flackert dieses bei mir ebenfalls.
Warum läßt Du nicht zu, dass man das Fenster minimieren kann?


Gruß Jörg

Amateurprofi 24. Jul 2007 20:21

Re: Dreiecke
 
Zitat:

Zitat von jmit
Warum läßt Du nicht zu, dass man das Fenster minimieren kann?

Gruß Jörg

Hab ich ausgeschaltet, weil ich dachte, daß das Probleme mit sich bringt wenn bei den Constraints MinHeight und MinWidth definiert sind. Das scheint aber nicht der Fall zu sein.
Werd ich ändern.

@bitsetter
Der Bereich in dem das Dreieck gezeichnet wird, ist eine PaintBox.
Kannst Du mir erklären, wie das mit Doublebuffered funktioniert - ich hab das noch nie benutzt. Danke.

Amateurprofi 24. Jul 2007 20:44

Re: Dreiecke
 
Zitat:

Zitat von xZise
Zitat:

Zitat von Amateurprofi
Zur Checkbox statt 2 Menu Items.
Geht nicht.
Das Menu ist dafür gedacht, z.B. alle Linien eines Typs aus- oder einzublenden.
Es ist aber möglich für jede Linie separat festzulegen, ob sie gezeigt werden soll oder nicht.
Wenn nun z.B. gerade 2 der Mittelsenkrechten gezeigt werden und eine nicht - was soll dann die Checkbox zeigen ?

Das müsste kein Problem sein. Heißt das Menüitem beispielsweise "miHalbierende", dann musst du bei OnClick überprüfen, ob das gesetzt ist:
Delphi-Quellcode:
procedure ...
begin
  if miHalbierende.Checked then
    ShowHalbierende
  esle
    HideHalbierende;
end;

Als ich schrieb "das geht nicht", ging es mir nicht um die Frage wie ich ein MenuItem auf checked oder unchecked setze, oder darum auf ein gechecktes bzw. ungechecktes zu reagieren, sondern um folgendes.
Mit den Menueinträgen kann man alle Linien eines Typs, also zum Beispiel alle Winkelhalbierenden ein- / ausblenden.
Es gibt aber andere Wege, gezielt eine bestimmte Winkelhalbierende auszublenden, die beiden anderen aber unverändert zu lassen.
Somit sind 6 verschiedene Zustände möglich.
Mit einem Check im MenuItem sind aber nur 2 dieser Zustände darstellbar.
Nehmen wir an Wa=sichtbar, Wb=sichtbar, Wc=nicht sichtbar.
Wie soll dann der Status des Menuitems sein ?
Checked wäre falsch, denn es sind nicht alle sichbar.
Unchecked wäre ebefalls falsch, denn es sind nicht alle unsichtbar.
Folglich : Geht nicht

Amateurprofi 24. Jul 2007 20:47

Re: Dreiecke
 
Zitat:

Zitat von WS1976
Hallo,

wieder mal ohne Quellcode. Geb ich keinen Kommentar zu.

Grüsse Rainer

Da du fundiertes Halbwissen hasst, wird es für dich sicherlich kein abendfüllendes Problem sein, so ein Pipifax-Programm selbst zu schreiben. Wozu also brauchst du den Quellcode ?

Amateurprofi 24. Jul 2007 20:58

Re: Dreiecke
 
Zitat:

Zitat von "xZise
Gibt es ein "Mouseshortcut" zum Drehen/Zoomen?

Und einen kleinen visuellen Bug :) Und zwar bekomme ich (mit Luna) rechts eine Scrolleiste

MouseShortcuts zum drehen/zoomen :
nein, entweder Scrollbar oder Tastatur

Und einen kleinen visuellen Bug :) Und zwar bekomme ich (mit Luna) rechts eine Scrolleiste :
Wo genau kommt rechts eine Scrollleiste ?

Hawkeye219 24. Jul 2007 22:33

Re: Dreiecke
 
Hallo Klaus,

das ist ein sehr schönes (und mächtiges) Programm, welches du mit viel Liebe zum Detail gestaltet hast. Zwei Kleinigkeiten sind mir aufgefallen: beim "OK"-Button im Test-Dialog und bei beiden Buttons im Parser-Dialog solltest du die vertikalen Anchors korrigieren.

Gruß Hawkeye

bitsetter 24. Jul 2007 22:35

Re: Dreiecke
 
Zitat:

Zitat von Amateurprofi
@bitsetter
Der Bereich in dem das Dreieck gezeichnet wird, ist eine PaintBox.
Kannst Du mir erklären, wie das mit Doublebuffered funktioniert - ich hab das noch nie benutzt. Danke.

Hallo,

also eine Paintbox ich dachte ein TImage, du kannst ja mal versuchen im onCreate Event
Delphi-Quellcode:
PaintBox1.Parent.DoubleBuffered:= true;
aufzurufen.

Ansonsten könnte man das Problem noch mit einem Hier im Forum suchenOffScreenBitmap lösen. Da werden die einzelnen Kreise und Linien auf ein Bitmap im Speicher gezeichnet und dann wird das gesamte Bild im onPaint Event zum Beispiel mit BitBlt() in die Paintbox gezeichnet.

xZise 25. Jul 2007 09:07

Re: Dreiecke
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zu den visuellen Bug hab ich mal ein Screenshot angehangen.

Zitat:

Zitat von Amateurprofi
MouseShortcuts zum drehen/zoomen :
nein, entweder Scrollbar oder Tastatur

Wäre das noch irgendwie möglich :P

[edit]Ein Tipp: Editiere Beiträge welche innerhalb von 24h geschrieben worden sind! Ansonsten kannst du Probleme mit den Mods bekommen :)[/edit]

Amateurprofi 25. Jul 2007 12:28

Re: Dreiecke
 
Zitat:

Zitat von Hawkeye219
Hallo Klaus,

das ist ein sehr schönes (und mächtiges) Programm, welches du mit viel Liebe zum Detail gestaltet hast. Zwei Kleinigkeiten sind mir aufgefallen: beim "OK"-Button im Test-Dialog und bei beiden Buttons im Parser-Dialog solltest du die vertikalen Anchors korrigieren.

Gruß Hawkeye

Danke, Hawkeye.
Die Buttons hab ich nachträglich hinzugefügt (weil es machem lästig ist, das kleine x in der Titelzeile zu "suchen") und habe dann nicht mehr an Anchors gedacht. Werde ich ändern.

Amateurprofi 25. Jul 2007 13:28

Re: Dreiecke
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe ein paar Änderungen durchgeführt.

@bitsetter:
PaintBox.Parent.DoubleBuffered auf True gesetzt.

@Hawkeye:
Anchors bei den Buttons korrigiert.

@xSize:
Das Problem mit der Scrollbar scheint an einem Delphi-Bug zu liegen.
Ich hatte während der Programmentwicklung oft das Problem, daß dann, wenn ich in den Design-Modus ging, alle Komponenten, bei denen bei den Anchors Bottom=True ist, ein Stück nach oben rutschten.
Dieses Problem tritt bei mir immer dann auf, wenn ein Formular ein MainMenu hat und bei Komponenten Anchors.Bottom True ist.
Ich hatte hierzu schon mal eine Anfrage gestartet, leider ohne Resonanz.
Siehe hier
Ich vermute einen Zusammenhang mit der bei dir erscheinenden Scrollbar.
Workaround:
Im Design-Modus haben jetzt alle Komponenten Anchors.Bottom=false und werden erst im OnCreate auf True gesetzt.
Vielleicht hilft das.
Über die Möglichkeit Drehen/Größe ändern mit der Maus werde ich nachdenken.

Jakob Ullmann 25. Jul 2007 13:44

Re: Dreiecke
 
Sehr schönes Programm. Ja, mehr kann man echt nicht sagen. Gefällt mir auch mit den Hovern und allem. Was allerdings zu verbessern wäre: Das Formelzeichen der Fläche ist nicht "F" sondern "A" wie Area(l).

Amateurprofi 25. Jul 2007 23:04

Re: Dreiecke
 
Zitat:

Zitat von Jakob Ullmann
Sehr schönes Programm. Ja, mehr kann man echt nicht sagen. Gefällt mir auch mit den Hovern und allem. Was allerdings zu verbessern wäre: Das Formelzeichen der Fläche ist nicht "F" sondern "A" wie Area(l).

Danke, Jakob.
Was das Formelzeichen für die Fläche betrifft denke ich, daß das nur deine Meinung ist.
Meine Meinung ist (erstens), daß jeder jede Bezeichnung wählen kann, die ihm gefällt, wenn nur deutlich wird, was gemeint ist und (zweitens) daß man, wenn möglich, die gängigen Bezeichnungen wählen sollte.
Gängig scheint in Deutschland F = Fläche zu sein, so hab ich es vor nunmehr 40 Jahren in der Schule gelernt und so steht es auch heute noch in Nachschlagewerken wie Duden und Brockhaus.
Zitat aus Brockhaus 19te Ausgabe 2002 "... Der Flächeninhalt F eines Dreiecks lässt sich mithilfe der folgenden Formeln berechnen ..."
Mir ist durchaus bewußt, daß es auch Nachschlagewerke gibt (zum Beispiel Wikipedia) in denen die Fläche mit A bezeichnet wird. Allerdings wird dort auch einer der Eckpunkte des Dreiecks mit A bezeichnet. Ich denke da wurde aus den englischsprachigen Versionen abgekupfert....

Amateurprofi 25. Nov 2017 00:59

AW: Dreiecke
 
Ich habe eine neu kompilierte Version des Programms hochgeladen.
Einzelheiten in #1


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:10 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