AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Suche (gute) Diagramm-Komponennte

Ein Thema von MrKnogge · begonnen am 23. Dez 2003 · letzter Beitrag vom 23. Dez 2003
Antwort Antwort
Seite 1 von 2  1 2      
MrKnogge

Registriert seit: 9. Jun 2003
Ort: Pforzheim
2.458 Beiträge
 
Delphi 2007 Professional
 
#1

Suche (gute) Diagramm-Komponennte

  Alt 23. Dez 2003, 15:06
Hi

Ich suche ne gute Diagramm-Komponennte die AlphaBlending unterstützt (siehe Screenshot).
Miniaturansicht angehängter Grafiken
du_meter.jpg  
Christian Bootz
Einstein ist tot, Newton ist tot,
und mir ist auch schon ganz schlecht...
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Suche (gute) Diagramm-Komponennte

  Alt 23. Dez 2003, 15:07
Ich auch Für mich sollte diese auch ohne sichtbares Fenster laufen. Bin gerne bereit dafür zu löhnen

......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Benutzerbild von phlux
phlux

Registriert seit: 4. Nov 2002
Ort: Witten
1.335 Beiträge
 
Delphi 6 Personal
 
#3

Re: Suche (gute) Diagramm-Komponennte

  Alt 23. Dez 2003, 15:45
hmm ich hab mir mal so nen pseudo diagram mopped zusammengepuzzled (sieht so aus wie das diagrammopped im taskmanager) falls ihr mal gucken wollt sagt bescheid dann lad ich das hoch. aba vorsicht ist gruselig gecodet
Christian "phlux" Arndt
  Mit Zitat antworten Zitat
Mikko

Registriert seit: 23. Jan 2003
Ort: Baden
65 Beiträge
 
#4

Re: Suche (gute) Diagramm-Komponennte

  Alt 23. Dez 2003, 16:38
So'n Diagramm wie das vom DU-Meter kannst du dir auch selbst coden. Du nimmst dir z.B. 'ne normale Image-Komponente und malst dir die Linien drauf, wie du willst. So hast du sogar den Vorteil, daß du das Diagramm so aussehen lassen kannst, wie du es willst.

Ein bißchen Fantasie, bitte. Wenn man bei jedem Ding 'ne separate Kompo braucht, was ist dann im Prog letztendlich noch von einem selbst?

Mein DU-Meter-Clone sieht so wie auf dem Bild aus, unterstützt AlphaBlend, und läuft natürlich im Hintergrund stets weiter. Das Striche im Diagramm zu coden sind vielleicht ca. 50 Codezeilen.
Miniaturansicht angehängter Grafiken
graph1.jpg  
  Mit Zitat antworten Zitat
MrKnogge

Registriert seit: 9. Jun 2003
Ort: Pforzheim
2.458 Beiträge
 
Delphi 2007 Professional
 
#5

Re: Suche (gute) Diagramm-Komponennte

  Alt 23. Dez 2003, 18:09
gibts dein DU-Meter_Clone OpenSource ?
Christian Bootz
Einstein ist tot, Newton ist tot,
und mir ist auch schon ganz schlecht...
  Mit Zitat antworten Zitat
Mikko

Registriert seit: 23. Jan 2003
Ort: Baden
65 Beiträge
 
#6

Re: Suche (gute) Diagramm-Komponennte

  Alt 23. Dez 2003, 18:16
Zitat von MrKnogge:
gibts dein DU-Meter_Clone OpenSource ?
Noch nicht, da ich noch dran arbeite (sollen noch ein paar Funktionen rein und hat noch ein paar kleine Bugs). Aber wenn du den Quelltext vom Diagramm willst, kann ich dir den zusammenstellen.
  Mit Zitat antworten Zitat
MrKnogge

Registriert seit: 9. Jun 2003
Ort: Pforzheim
2.458 Beiträge
 
Delphi 2007 Professional
 
#7

Re: Suche (gute) Diagramm-Komponennte

  Alt 23. Dez 2003, 18:23
wäre nett
Christian Bootz
Einstein ist tot, Newton ist tot,
und mir ist auch schon ganz schlecht...
  Mit Zitat antworten Zitat
MrKnogge

Registriert seit: 9. Jun 2003
Ort: Pforzheim
2.458 Beiträge
 
Delphi 2007 Professional
 
#8

Re: Suche (gute) Diagramm-Komponennte

  Alt 23. Dez 2003, 18:30
@Sakura
Ab der Proffessional-Version gibts doch ne Diagramm-Komponennte
funktioniert das nicht eventuell mit dieser ?
Christian Bootz
Einstein ist tot, Newton ist tot,
und mir ist auch schon ganz schlecht...
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Suche (gute) Diagramm-Komponennte

  Alt 23. Dez 2003, 18:34
Zitat von MrKnogge:
Ab der Proffessional-Version gibts doch ne Diagramm-Komponennte
funktioniert das nicht eventuell mit dieser ?
Nee, die kann nur auf sichtbaren Formularen genutzt werden, aber nicht im Hintergrund auf Bitmap projezieren

......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Mikko

Registriert seit: 23. Jan 2003
Ort: Baden
65 Beiträge
 
#10

Re: Suche (gute) Diagramm-Komponennte

  Alt 23. Dez 2003, 19:22
@MrKnogge
Du setzt eine Image-Kompo auf eine Form. Das AlphaBlend stellst du über dein Form ein. Damit ist dein Diagramm somit auch "durchsichtig".

Die Prozedur für den Rahmen sieht so aus:

Delphi-Quellcode:
procedure tform4.hintergrund_zeichnen;
var y:integer;
begin
form4.Image1.Repaint;
form4.image1.Canvas.Pen.Color:=clgray;
form4.image1.Canvas.Pen.style:=pssolid;
form4.image1.Canvas.Brush.Color:=$00EEE0DA;
form4.image1.Canvas.Rectangle(0,0,292,100);
form4.image1.Canvas.Pen.Color:=clblack;
form4.image1.Canvas.Rectangle(44,2,166,80);
form4.image1.Canvas.Rectangle(168,2,290,80);
form4.image1.Canvas.Font.Name:='Arial';
form4.image1.Canvas.Font.Size:=6;
form4.image1.Canvas.Font.Color:=stringtocolor(ini_farbe_dl);
form4.image1.Canvas.TextOut(27,80,'DL');
form4.image1.Canvas.Font.Color:=stringtocolor(ini_farbe_ul);
form4.image1.Canvas.TextOut(27,88,'UL');
if ini_label_raster=true then begin //Minutenraster
 form4.image1.Canvas.Pen.Color:=clgray;
 form4.image1.Canvas.Pen.style:=psDot;
 form4.image1.Canvas.Pen.Color:=clgray;
 form4.image1.Canvas.MoveTo(44+60,78);
 form4.image1.canvas.LineTo(44+60,2);
 form4.image1.Canvas.MoveTo(168+60,78);
 form4.image1.canvas.LineTo(168+60,2);
 end;
if ini_label_100=true then begin //100%-Linie
 form4.image1.Canvas.Pen.Color:=clgray;
 form4.image1.Canvas.Pen.style:=psDot;
 form4.image1.Canvas.Pen.Color:=clgray;
 y:=strtoint(floattostr(roundto(76/((form4.ini_zusatz)/100),0)));
 y:=76-y;
 form4.image1.Canvas.MoveTo(44+2,y);
 form4.image1.canvas.LineTo(44+120,y);
 form4.image1.Canvas.MoveTo(168+2,y);
 form4.image1.canvas.LineTo(168+120,y);
 end;
//Anzeige, ob Timer aktiv
if (form4.Showing=true) and ((form1.gllabel1.Visible=true) or (form1.gllabel2.Visible=true))
 then begin
 shape1.Visible:=true;
 label3.Visible:=true;
 end
 else begin
 shape1.Visible:=false;
 label3.Visible:=false;
 end;
end;
Das ist die Prozedur, um das Diagramm zu zeichnen. Diese Prozedur zeichnet je 2Linien für Up- und Download. Eine Linie in der Farbe des Graphen und die zweite, die an der ersten Linie anschließt, in der Farbe des Hintergrunds, um die Linie, die eventuell vorher da war, zu übermalen.

Delphi-Quellcode:
procedure TForm4.graph_zeichnen(d1, s1:extended; stelle:byte; speed:integer);
var linie:extended;
begin
if form4.Showing=true then begin
 //Download
 form4.image1.Canvas.Pen.style:=pssolid;
 form4.image1.Canvas.Pen.Color:=stringtocolor(ini_farbe_dl);
 form4.image1.Canvas.Pen.Width:=1;
 form4.image1.Canvas.MoveTo(44+stelle,78);
 if speed>0 then
  linie:=d1*75/((speed)/(1024*8))
  else
  linie:=0;
 linie:=roundto(linie*1/((ini_zusatz)/100),0); //variabler Zuschlag
 if linie>76 then linie:=76;
 form4.image1.canvas.LineTo(44+stelle,78-(linie));

 //Upload
 form4.image1.Canvas.Pen.Color:=stringtocolor(ini_farbe_ul);
 form4.image1.Canvas.MoveTo(168+stelle,78);
 if speed>0 then
  linie:=s1*75/((speed)/(1024*8))
  else
  linie:=0;
 linie:=roundto(linie*1/((ini_zusatz)/100),0); //variabler Zuschlag
 if linie>76 then linie:=76;
 form4.image1.canvas.LineTo(168+stelle,78-(linie));
end;
end;
Gespeist wird diese Prozedure von folgendem Code, der bei mir jetzt in einer anderem Form steht und von einem Timer aufgerufen wird:

Delphi-Quellcode:
i:=120;
repeat
 r[i]:=r[i-1];
 s[i]:=s[i-1];
 geschw[i]:=geschw[i-1];
 dec(i);
until i=0;
r[1]:=roundto(((down)/1024),-2);
s[1]:=roundto(((up)/1024),-2);
geschw[1]:=speed;
if (form4.Showing=true) then begin
 form4.hintergrund_zeichnen;
 for i:=1 to 120 do
  form4.graph_zeichnen(r[i],s[i],i,geschw[i]); //Graph zeichnen
Zuerst werden die ankommenden Daten in ein Array gelesen. Danach wrd das Array um eine Stelle verrückt (>Vorrücken des Graphen). Dann wird die Prozedure graphzeichnen für jedes Element aufgerufen. Als letztes habe ich jetzt noch eine Stringbearbeitung drin, die hier aber nicht interessiert (es sollen auf alle Fälle immer 2 Nachkommastellen stehen).


So, das ist der ganze Code. Den mußt du nur auch deine Bedürfnisse umbiegen.

Zur Info: Der DU-Meter-Clone ist noch in Bearbeitung. Daher keine Gewähr für Fehler, besonders schönen Code etc.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 22:09 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