Toon posts:

[Delphi] Plaatjes in Excel formulier

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo mede tweakers,
ik zit weer eens met een probleempje waar ik niet uit kom.
In mijn programma is de mogelijkheid om de uitvoer op te slaan als Excel bestand.
Dat werk allemaal prima.

Maar de resultaten worden ook in een diagram getoond (TChart).
Nu wil ik dat diagram ook in dat Excel document.

Het lukt me wel om plaatjes in het Excel bestand te krijgen.
[code]
Sheet3 := XLApp.WorkBooks[1].WorkSheets.add;
sheet3.Pictures.Insert(Bestands naam van het figuur);
[code]
Dit werk ook allemaal prima.

Maar nu het probleem:
Het programma wordt van CD gestart en ik weet niet of er schrijft rechten zijn op de computer.
Ik kan dus wel het diagram exporteren en dan weer inladen in het Excel document. Maar dit vind ik nogal onhandig.
De TChart heeft ook een functie "TeeCreateBitmap", die een TBitmap terug geeft.

Is er een manier om een TBitmap of TMetafile direct in het Excel document te zetten.

(Ik kan sheet.pictures[2] niet direct aanspreken)

Kan iemand mij hiermee helpen ??

Alvast bedankt.

  • Tomatoman
  • Registratie: November 2000
  • Laatst online: 15:09

Tomatoman

Fulltime prutser

Of je direct plaatjes vanuit het geheugen kunt toevoegen weet ik niet, maar je zou natuurlijk wel een bitmap kunnen maken in de Temp directory. Dat gaat altijd en je hoeft je geen zorgen te maken over schrijfrechten (wel over diskruimte natuurlijk).

Uit The Tomes of Delphi 3: Win32 Core APIvan Larry Diehl e.a.:
Delphi:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
var
  Form1: TForm1;
  PathName: array[0..MAX_PATH] of char;  // holds the temporary file path

implementation

procedure TForm1.FormCreate(Sender: TObject);
begin
  {retrieve the path for temporary files}
  GetTempPath(MAX_PATH, @PathName);

  {change the listbox directory to this directory, and display it}
  FileListBox1.Directory := string(PathName);
  Label2.Caption := string(PathName);

end;

procedure TForm1.Button1Click(Sender: TObject);
var
  NewTempName: array[0..MAX_PATH] of char;  // holds a temporary file name
begin
  {create a temporary file name}
  GetTempFileName(PathName, 'WOW', 0, @NewTempName);

  {display the filename, and update the file listbox}
  Label4.Caption := ExtractFileName(string(NewTempName));
  FileListBox1.Update;
end;

Een goede grap mag vrienden kosten.


Verwijderd

Topicstarter
weet vandaag misschien iemand een oplossing voor mijn probleem ?

ik zou het wel op deze manier kunne oplossen
maar ik zou ik graag anders doen.

(heb plaatje direct van mijn bitmap erin zetten)

  • martijn_brinkers
  • Registratie: November 2001
  • Laatst online: 25-08 22:13
Volgens deze link kan het waarschijnlijk niet direct:

http://groups.google.com/...40cpmsftngxa08%26rnum%3D1

  • ProgrammerX
  • Registratie: Juli 2002
  • Laatst online: 26-02-2021
Als je het plaatje uit een bestand wil halen, kan het volgens mij niet anders dan de oplossing van tomatoman.

Wat je misschien wel eens kunt proberen is om het plaatje in het windows clipboard te copieren en dan in excel te plakken (heb dit zelf niet onderzocht, is gewoon maar een idee)

Verwijderd

Topicstarter
Via het clibboard zou idd een mogelijkheid zijn.

Hoe kan in Excel in in VBA in een een sheet plakken ?

  • ProgrammerX
  • Registratie: Juli 2002
  • Laatst online: 26-02-2021
Verwijderd schreef op 14 januari 2003 @ 13:00:
Via het clibboard zou idd een mogelijkheid zijn.

Hoe kan in Excel in in VBA in een een sheet plakken ?
Kun je denk ik beter ff opzoeken in msdn (online). Staat best veel informatie over VBA.

Er is geloof ik ook een toetsencombinatie in excel, dan krijg je ook informatie te zien over VBA (objecten met methods enzo).

Heb het even opgezocht:
Wijs in het menu Extra de optie Macro aan en klik op Visual Basic-editor.
Het is weliswaar voor VB, maar geeft wel informatie over de objecten, methods, properties enz. + wat voorbeelden die je los kan volgen.
Pagina: 1