Ergebnis 1 bis 7 von 7
  1. #1
    Sobig Wurm
    Registriert seit
    07.08.2008
    Beiträge
    203

    Standard Delphi Hilfe Minipaint...

    Ich muss für die Schule das Programm fertigstellen. Ich bin erst seit 3 wochen an Delphi allerdings sind meine Mitschüler deutlich weiter als ich. Dem Programm fehlt nur die "LINIE ZEICHNEN" funktion mehr ist nicht notwendig könnte mir jmd sagen wie ich dass am besten bewerkstelige?

    Hier Mein Progi:
    http://uploaded.to/?id=vdr8o1
    ach und: Nach möglichkeit sollte die Linie noch bevor sie gezogen wurde sichtbar sein. Also ein Vorschau haben.

    MfG

  2. #2
    NoClose Wurm
    Registriert seit
    23.09.2008
    Beiträge
    193

    Standard

    also wie ich das jetzt mal deute wilsch du einfach en programm das was malt^^

    naja dafür is die funktion TCanvas wohl am besten geeignet.

    Einfach mal bei Delphi Praxis reinschauen
    Wenn man unendlich viele Affen hat und jeder Affe etwas auf einer Schreibmaschine tippt, ist sicher einer dabei,
    der Romeo und Julia von Shakespere schreibt!! (infinite Monkey-theorem)

  3. #3
    W32.FunLove
    Registriert seit
    06.12.2006
    Beiträge
    130

    Standard

    Hier: http://rapidshare.com/files/17366551...paint.rar.html
    Habe es mal vollendet (ich hoffe es funktioniert alles).
    Sollte eigentlich selbsterklärend sein ^^
    Ne, Scherz. Ich weiß, dass man am Anfang evtl. nicht alles versteht.
    Also ich habe zwei globale Variablen "AnfangX" und "AnfangY" deklariert denen beim Klicken die aktuelle Position zugewiesen wird. Wenn man jetzt die Maus wieder loslässt springt Canvas zuerst mit "Canvas.MoveTo" zur aktuellen Mausposition und zeichnet dann mit "Canvas.LineTo" eine Linie zu dem Anfangspunkt. Außerdem habe ich noch hinzugefügt, dass der Linien-Modus deaktiviert wird, wenn man auf einen anderen Button klickt.
    Alle meine Änderungen habe ich mit ///////// am Ende der Zeile kenntlich gemacht.

    //Sry. Habe das mit der aktuellen Linie nicht gelesen. Da guck ich eben noch mal.
    Hmmm ich glaube, das mit dem direkten malen wird etwas schwierig, wenn man nur Canvas benutzt, da man damit alles direkt übermalt. Ich könnte es dir zwar so schreiben, das die Linien direkt gezeichnet werden, aber dann würde ein schwarzer Kreis entstehen, wenn du die Maus bewegen würdest. Es ließe sich sogar noch relativ einfach realisieren, die zuvor gezogene Linie mit einer weißen Linie zu übermalen, aber dann würde man ja das eigentliche Bild löschen. Wenn du es wirklich umsetzen willst, dann müsstest du das zuvor gemalte Bild irgendwie abspeichern und bei jeder Bewegung neu laden, oder irgendwie soetwas in die Richtung.

  4. #4
    Sobig Wurm
    Registriert seit
    07.08.2008
    Beiträge
    203

    Standard

    danke sehr!!!
    Das ist eine Superarbeit und ich glaube das müsste bei meiner Lehrerin schon reichen. Das mit der "vorschau" werd ich einfach fragen, weil der rest der klasse das auch nicht so super hat
    ~~~~~~~Noch eine Frage!~~~~~~~
    Wie sieht das ganze aus mit einer Farbpalette? Weil Delphi hat zu ColorGrid keine Hilfe eingetragen. Wundert mich ein wenig.

    MfG
    Zitat Zitat von !Neolution! Beitrag anzeigen
    Ohne das Internet sehe ich keinen Sinn mehr in meinem Leben.

  5. #5
    W32.FunLove
    Registriert seit
    06.12.2006
    Beiträge
    130

    Standard

    Sag mal kurz, wo du die Komponente "ColorGrid" findest. Ich sehe die nämlich gerade bei mir nicht.
    Ansonsten könntest du auch einfach die Komponente "ColorDialog" nehmen.
    Damit würde das dann so aussehen:
    1. Der Dialog wird aufgerufen (z.B. beim OnClick von einem Button): ColorDialog1.Execute;
    2. Du suchst dir eine Farbe aus.
    3. Du setzt auf das OnClose-Ereignis des Dialogs deinen Code. Also beispielsweise Label1.Font.Color := ColorDialog1.Color;

  6. #6
    Sobig Wurm
    Registriert seit
    07.08.2008
    Beiträge
    203

    Standard

    ColorGrid finde ich unter "Samples"
    Aber ich teste mal deine Version
    Zitat Zitat von !Neolution! Beitrag anzeigen
    Ohne das Internet sehe ich keinen Sinn mehr in meinem Leben.

  7. #7
    W32.FunLove
    Registriert seit
    06.12.2006
    Beiträge
    130

    Standard

    Ok, jetzt habe ich es auch gefunden. Scheint einfach zu sein.
    Code:
    procedure TForm1.ColorGrid1Change(Sender: TObject);
    begin
      Form1.Color := ColorGrid1.BackgroundColor;
      Canvas.Pen.Color := ColorGrid1.ForegroundColor;
    end;
    (Das ist die OnChange-Methode des ColorGrids)
    Musste halt nur noch auf dein Formular anpassen.

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •