AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi canvas.rahmen.aufziehen.laufzeit = wie.aufziehen.entwicklung

canvas.rahmen.aufziehen.laufzeit = wie.aufziehen.entwicklung

Ein Thema von cyberfreak · begonnen am 16. Nov 2003 · letzter Beitrag vom 19. Nov 2003
Antwort Antwort
Seite 2 von 4     12 34   
Benutzerbild von Stanlay Hanks
Stanlay Hanks

Registriert seit: 1. Mär 2003
2.078 Beiträge
 
Delphi 2005 Professional
 
#11

Re: canvas.rahmen.aufziehen.laufzeit = wie.aufziehen.entwick

  Alt 16. Nov 2003, 22:12
Hi. Hab meinen Ursprüunglichen Source mit dem OnMouseMove noch etwas erweitert. Du müsstest ihn halt für dich anpassen. (unter Anderem können die Panels nicht gezeichnet werden, wenn der ausgangspunkt größer ist als der Endpunkt) Aber du sagtest ja, dass ist nicht das Problem.

Ich hätte das folgendermaßen gelöst:

Delphi-Quellcode:
var xm,ym : Integer;
begin
  IF IsMouseDown = true THEN
   begin
    With Form1.Canvas do
    begin
    Pen.Color := clbtnface;
    Pen.Style := pssolid;
    Rectangle(xk,yk,xm,ym);
    Brush.Color := clbtnface;
    Rectangle(0,0,Width,Height);
    Pen.Color := clblack;
    Pen.Style := psDot;
    Rectangle(xk,yk,x,y);
    end;
   end;
 xm := x;
 ym := y;
end;
Im Endeffekt mach ich nix anderes, als jedes mal einen gestrichelten Rahmen (psdot) gezeichnet und das Canvas wieder neu zu übermalen, so dass die alten Rahmen nicht mehr da sind. Funzt natürlich nur mit einfarbigem Hintergrund

Man liest sich, Stanlay
  Mit Zitat antworten Zitat
cyberfreak

Registriert seit: 16. Nov 2003
22 Beiträge
 
Delphi 7 Enterprise
 
#12

Re: canvas.rahmen.aufziehen.laufzeit = wie.aufziehen.entwick

  Alt 16. Nov 2003, 22:20
Wie meinst du das mit Endpunkt größer als Ausgangspunkt? Bei was Rahmen? Oder Komponente?
  Mit Zitat antworten Zitat
Benutzerbild von Stanlay Hanks
Stanlay Hanks

Registriert seit: 1. Mär 2003
2.078 Beiträge
 
Delphi 2005 Professional
 
#13

Re: canvas.rahmen.aufziehen.laufzeit = wie.aufziehen.entwick

  Alt 16. Nov 2003, 22:23
Delphi-Quellcode:
Width := x-xk;
Height := y-yk;
Damit mein ich diese Zeilen. Is ja auch logisch. Wenn der Punkt, an dem du die Maus runtergrdrückt hast (xk,yk) kleiner is, als der Punkt an dem die Maus in dem Moment ist, wo du sie loslässt, dann würde das panel ja eine Minus Größe haben...Aber das könnte man ja noch anpassen (Wenn x kleiner als xs, dann mach es umgekehrt als vorher usw...)

Man liest sich, Stanlay
  Mit Zitat antworten Zitat
scp

Registriert seit: 31. Okt 2003
1.120 Beiträge
 
Delphi 7 Personal
 
#14

Re: canvas.rahmen.aufziehen.laufzeit = wie.aufziehen.entwick

  Alt 16. Nov 2003, 22:46
Wenn man über das gesamte Form ein leeres Image legt und auf dessen Canvas den Rahmen zeichnet, dann bleiben auch evtl. nicht einfarbige Hintergründe und Bilder erhalten.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
42.824 Beiträge
 
Delphi 12 Athens
 
#15

Re: canvas.rahmen.aufziehen.laufzeit = wie.aufziehen.entwick

  Alt 16. Nov 2003, 23:28
Noch eine kleine Anmerkung zu Stanlay's Post.
Zitat von Stanlay:
Funzt natürlich nur mit einfarbigem Hintergrund
Hast du schon ein mal ein bissel mit PenMode rumgespielt?
OH > TPenMode

Einfach mal in das OnPaint-Ereignis eine leeren Formulars setzen.
Delphi-Quellcode:
Procedure TForm1.FormPaint(Sender: TObject);
  Procedure Z(P: Integer; PM: TPenMode);
    Begin
      Canvas.Pen.Mode := PM;
      Canvas.Rectangle(20, P, 100, P + 7);
      Canvas.Rectangle(120, P, 200, P + 7);
      Canvas.Rectangle(120, P, 200, P + 7);
    End;

  Var X: Integer;

  Begin
    Canvas.Pen.Mode := pmCopy;
    Canvas.Brush.Color := clBtnFace;
    Canvas.FillRect(Rect(0, 0, 220, 202));

    Canvas.Brush.Color := clGreen;
    For X := 1 to 13 do
      Canvas.FillRect(Rect(X * 15, 25, X * 15 + 8, 192));

    Canvas.Brush.Color := clBlue;
    Canvas.Pen.Color := clRed;
    Canvas.Rectangle(10, 10, 210, 17);
    Z(30, pmBlack);
    Z(40, pmWhite);
    Z(50, pmNop);
    Z(60, pmNot); {x}
    Z(70, pmCopy); {Standard}
    Z(80, pmNotCopy);
    Z(90, pmMergePenNot);
    Z(100, pmMaskPenNot);
    Z(110, pmMergeNotPen);
    Z(120, pmMaskNotPen);
    Z(130, pmMerge);
    Z(140, pmNotMerge);
    Z(150, pmMask);
    Z(160, pmNotMask);
    Z(170, pmXor); {x}
    Z(180, pmNotXor); {x}
  End;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
iamjoosy

Registriert seit: 12. Nov 2003
53 Beiträge
 
#16

Re: canvas.rahmen.aufziehen.laufzeit = wie.aufziehen.entwick

  Alt 17. Nov 2003, 15:12
Hi, schau doch bitte mal bei Torry.net unter "TrectBox", ich denke das ist genau das was Du brauchst !
Fertige Komponente, die man verscheiben ziehen etc. kann.

HTH
  Mit Zitat antworten Zitat
cyberfreak

Registriert seit: 16. Nov 2003
22 Beiträge
 
Delphi 7 Enterprise
 
#17

Re: canvas.rahmen.aufziehen.laufzeit = wie.aufziehen.entwick

  Alt 17. Nov 2003, 21:23
Danke für eure vielen Tips! Und die TRectBox kann ich nicht downloaden, da ich die Seite nicht aufrufen kann. Vielleicht könnte sie mir ja jemand schicken? Mail und alles steht ja unten! Bitte!
Und außerdem wäre mein Problem jetzt fast perfekt gelöst wenn ich noch wüsste, wie man den Rahmen schon beim erzeugen anzeigen kann. So z.B.: Bei onMouseMove soll sich der Rahmen jenachdem vergrößern, oder verkleinern. Wie man die Maus eben bewegt!

mfg
cyberfreak
  Mit Zitat antworten Zitat
Benutzerbild von Stanlay Hanks
Stanlay Hanks

Registriert seit: 1. Mär 2003
2.078 Beiträge
 
Delphi 2005 Professional
 
#18

Re: canvas.rahmen.aufziehen.laufzeit = wie.aufziehen.entwick

  Alt 17. Nov 2003, 21:28
Aber genau das macht der Rahmen doch, wenn du die Prozedur von mir und die dementsprechenden Ergänzungen von himitsu z.B. nimmst.

Man liest sich, Stanlay
  Mit Zitat antworten Zitat
cyberfreak

Registriert seit: 16. Nov 2003
22 Beiträge
 
Delphi 7 Enterprise
 
#19

Re: canvas.rahmen.aufziehen.laufzeit = wie.aufziehen.entwick

  Alt 17. Nov 2003, 21:34
Ok, werde ich machen. Gibts eigentlich auch irgendwo eine Dokumentation, Auflistung, oder ähnliches mit sämtlichen Funktionen und Möglichkeiten von Delphi? So wie zum Beispiel in Java (programmiere ich nämlich auch ein bisschen) die Java Docs (Java Dokumentaion) falls das jemand kennt.
  Mit Zitat antworten Zitat
Benutzerbild von Stanlay Hanks
Stanlay Hanks

Registriert seit: 1. Mär 2003
2.078 Beiträge
 
Delphi 2005 Professional
 
#20

Re: canvas.rahmen.aufziehen.laufzeit = wie.aufziehen.entwick

  Alt 17. Nov 2003, 21:39
Ich weiß nicht, ob du sowas meinst, aber das Entwicklerhandbuch vom Handbuchsatz von Borland ist recht ausführlich und detailliert geschrieben...kommt ja auch direkt von der Quelle

Man liest sich, Stanlay
  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 19:47 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