Autor Beitrag
Lux
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 104

Win XP Home
D2005 Pers.
BeitragVerfasst: Di 12.04.05 10:04 
Hallo Leute.
Ich bins nochmal mit meinem OLE-Container und dem Excel Diagramm.
Ich versuche nun den Maximumwert des Diagramms einzubauen. Leider klappt es nicht mit:
ausblenden Quelltext
1:
Excel.Charts[1].Axes.MaximumScale := 20;					

Er Compiliert alles wunderschön, aber wenn ich dann das Ding aufrufen will, dann kommt folgende Fehlermeldung:
Zitat:
Die Methode 'MaximumScale' wird vom Automatisierungsobjekt nicht unterstützt


Habt ihr eine Idee?

Hier nochmal der gekürzte Quellcode:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
  //Erstellen des Bereiches welches das Diagramm abfragen soll
  length := 'A1:B' + inttostr(counting);

  //Erstellen des Excel Diagrammes
  Excel.Charts.Add;
  Excel.Charts[1].Activate;
  Excel.Charts[1].Chartwizard
    (excel.Worksheets['Tabelle1'].Range[length],
    4, 4, 2, 1, 0, 2, Chart_title,
    'Zeitraum', ListView1.Selected.SubItems[6], '');
  Excel.Charts[1].Axes.MaximumScale := 20;

  //Übergabe an den OLE Container
  Excel.Charts[1].ChartArea.Copy;
  diagramm_frm.diagramm_ole.Paste;
  diagramm_frm.diagramm_ole.enabled := false;
  Excel.DisplayAlerts := false;
  Excel.Workbooks.Close;



Moderiert von user profile iconGausi: Topic aus VCL (Visual Component Library) verschoben am Mi 13.04.2005 um 09:54

_________________
There are 10 different people.
Those who understand binary code and those who don't understand.
Keldorn
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 2266
Erhaltene Danke: 4

Vista
D6 Prof, D 2005 Pro, D2007 Pro, DelphiXE2 Pro
BeitragVerfasst: Di 12.04.05 21:17 
Hallo

Zitat:

(excel.Worksheets['Tabelle1'].Range[length],
4, 4, 2, 1, 0, 2, Chart_title,

in dem anderen Thread hast du gefragt, was 4100, 2 etc. bedeutet. Warum zum Geier nimmst du hier nicht die Konstanten :roll:, Meinst du nicht, das mit XLline jeder (bzw. eher) weiß, das du ein Liniendiagramm zeichnest?

Zitat:

Excel.Charts[1].Axes.MaximumScale := 20;

rein vom logischen: ein Diagramm hat 2 Achsen, welche sprichst du mit dem code an ;) ? Auch hier ein makro aufzeichnen und ein Blick in die Hilfe von Excel helfen immens. Axes hat einen Paramter "Type" der xlValue oder xlCategory sein kann.

Mfg Frank

_________________
Lükes Grundlage der Programmierung: Es wird nicht funktionieren.
(Murphy)
Lux Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 104

Win XP Home
D2005 Pers.
BeitragVerfasst: Mi 13.04.05 08:23 
user profile iconKeldorn hat folgendes geschrieben:
Hallo

Zitat:

(excel.Worksheets['Tabelle1'].Range[length],
4, 4, 2, 1, 0, 2, Chart_title,

in dem anderen Thread hast du gefragt, was 4100, 2 etc. bedeutet. Warum zum Geier nimmst du hier nicht die Konstanten :roll:, Meinst du nicht, das mit XLline jeder (bzw. eher) weiß, das du ein Liniendiagramm zeichnest?

Ich hab das eben ausprobiert, statt der 4 einfach mal xlLine einzugeben. Dann sagt er mir von vornherin Unbekannter Bezeichner. und wenn ich das in Hochkommatas setze. Dann startet er zwar das Prog, aber dann meldet er beim erstellen des Diagrammes:
Zitat:
Die ChartWizard-Methode des Chart-Objekts konnte nicht ausgeführt werden

Also mit einfach nur die Konstante da reinhauen geht net ;)

Zitat:

Zitat:

Excel.Charts[1].Axes.MaximumScale := 20;

rein vom logischen: ein Diagramm hat 2 Achsen, welche sprichst du mit dem code an ;) ? Auch hier ein makro aufzeichnen und ein Blick in die Hilfe von Excel helfen immens. Axes hat einen Paramter "Type" der xlValue oder xlCategory sein kann.

Mfg Frank

Das habe ich ja gemacht, ein Makro erstellt. Daraus haben ich ja diesen Code gezogen :)
Ich habe auch schon im Internet nach xlValue gesucht, aber nichts dazu gefunden.

Hab auch schon folgenden Code ausprobiert:
ausblenden Delphi-Quelltext
1:
2:
  Excel.Charts[1].Axes('xlValue').Select;
  Excel.Charts[1].Axes('xlValue').MaximumScale := 20;

Weil ich bei dem Makro gesehen habe, das er das Ding erst einmal selektiert. Allerdings klappt das so auch nicht, dann kommt eine ähnliche Fehlermeldung wie bei dem xlLine:
Zitat:
die Axes-Methode des Chart-Objekts konnte nicht ausgeführt werden

Und wenn ich nun wieder das ganze ohne Hochkommatas mache, sagt er mir wieder Unbekannter Bezeichner...

Ich denke ich muss für xlValue wieder eine Zahl einsetzen... Aber welche?
Oder bin ich dort auf dem Holzweg?

Ich hab nun eben noch einmal mir die Excel-Hilfe zu Gemüte getan.
Wenn ich das richtig gesehen habe, muss ich sogar zwei Ausdrücke reinsetzen.
Habs als nun mit folgendem Code probiert...
ausblenden Delphi-Quelltext
1:
2:
  Excel.Charts[1].Axes('xlValue', '').Select;
  Excel.Charts[1].Axes('xlValue', '').MaximumScale := 20;

Geht aber leider auch nicht :cry:

_________________
There are 10 different people.
Those who understand binary code and those who don't understand.
Keldorn
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 2266
Erhaltene Danke: 4

Vista
D6 Prof, D 2005 Pro, D2007 Pro, DelphiXE2 Pro
BeitragVerfasst: Mi 13.04.05 09:40 
Zitat:

Unbekannter Bezeichner

Konstanten gehören nicht in hochkommas. Aber: Liest du eigentlich die Antworten?
user profile icontoms hat folgendes geschrieben:
Die Konstanten findest du z.B in Word2000.pas od. WordXp.pas od. Wor97.pas usw.


spricht irgendetwas dagegen, die excel*, word*, und/oder office*.pas-Dateien (* steht für 97,2000 oder XP, je nach Version und Delphi) per uses mit einzubinden? unabhängig von der delphi-Version (personal oder pro...), diese pas-dateien sind immer mit dabei (Delphi-ornder/ocx/servers), dort kannst du auch mal suchen, wenn du nicht weißt, wo und wie eine Konstante deklariert ist, da manche allgemein fürs ganze office und nicht bloß für Excel gelten.

Mfg Frank

_________________
Lükes Grundlage der Programmierung: Es wird nicht funktionieren.
(Murphy)
Lux Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 104

Win XP Home
D2005 Pers.
BeitragVerfasst: Mi 13.04.05 10:08 
Ich hab nun noch einmal meine komplette Festplatte durchsucht aber weder eine Word97 noch Word2000 noch WordXP noch irgendeine andere Word, Excel oder gar Office.pas Datei gefunden.

ich finde auch keinen Ordner Namens ocx oder Servers...

Zumal wusste ich nicht, dass man diese mit integrieren muss...
Auf der CD kann ich diese Dateien auch nicht finden

_________________
There are 10 different people.
Those who understand binary code and those who don't understand.
Tino
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: Mi 13.04.05 10:13 
Probier es mal so:
ausblenden Delphi-Quelltext
1:
Excel.Charts[1].Axes(1).MaximumScale := 20;					
Lux Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 104

Win XP Home
D2005 Pers.
BeitragVerfasst: Mi 13.04.05 10:49 
Leider genau diesselbe Fehlermeldung...
Hab es auch schon mit 0 ausprobiert. ging auch nicht :(

_________________
There are 10 different people.
Those who understand binary code and those who don't understand.
Keldorn
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 2266
Erhaltene Danke: 4

Vista
D6 Prof, D 2005 Pro, D2007 Pro, DelphiXE2 Pro
BeitragVerfasst: Mi 13.04.05 15:35 
Ich weiß nicht, was du machst
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
//  für in Tabelle eingebettete Diagramme  
//  Excel.ActiveSheet.ChartObjects['Diagramm 1'].Activate;
//  Excel.ActiveSheet.ChartObjects['Diagramm 1'].chart.Axes(xlvalue).MaximumScale := 20;

    //für als Blatt eingefügte Diagramme
    Excel.Charts[1].activate;
    Excel.Charts[1].Axes(xlvalue).MaximumScale := 20;


xlvalue ist in Excel*.pas drin. Eine D2005-Personal habe ich nicht, "nur" die Pro. der Pfad für diese Datei ist Delphi2005/BDS/3.0/OCX/servers. Die waren immer mit dabei, ich kann mir nicht vorstellen, das die mit einmal bei der Personal nicht mit dabei sind.
Excel20000.pas hat folgendes geschrieben:

// Constants for enum XlAxisType
type
XlAxisType = TOleEnum;
const
xlCategory = $00000001;
xlSeriesAxis = $00000003;
xlValue = $00000002;


Zitat:

Wenn ich das richtig gesehen habe, muss ich sogar zwei Ausdrücke reinsetzen.

der 2. Paramter ist optional, muß man nicht angeben

Mfg Frank

_________________
Lükes Grundlage der Programmierung: Es wird nicht funktionieren.
(Murphy)
Lux Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 104

Win XP Home
D2005 Pers.
BeitragVerfasst: Mi 13.04.05 15:50 
Könnte mal bitte jemand, der auch noch D2K5Pers hat, mal schauen, ob derjenige die hier angesprochenen Dateien auf seiner Festplatte hat?

Wenn dem so ist, kann er mir diese dann bitte irgendwie geben, weil ich habe sie nicht!

EDIT: Hat sich erledigt. Ich habe die Dateien zwar trotzdem nicht. Habe das Problem allerdings mit Hilfe von Keldorn nun lösen können. Danke für deine/Eure Hilfe!

_________________
There are 10 different people.
Those who understand binary code and those who don't understand.