Toon posts:

[Delphi] Excel dropdown

Pagina: 1
Acties:

Verwijderd

Topicstarter
Wanneer ik vanuit Delphi een excel file wil laten genereren, krijg ik het niet voor elkaar om een dropdown-veld te maken. Het is de bedoeling dat er een dropdown gemaakt wordt die gevuld wordt met een TStrings object. Kan iemand me hiermee helpen?

  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

Zoek eens op hoe je dit zou kunnen doen in VBA, bijvoorbeeld in je VBA help van Excel of msdn.microsoft.com. Op diezelfde manier kan je het ook in Delphi.

We adore chaos because we like to restore order - M.C. Escher


Verwijderd

Topicstarter
Bovenstaande tip brengt me tot dit probleem:
In VB:
code:
1
2
3
....
Set ddBox = Application.ActiveSheet.DropDowns.Add(.Left, .Top, .Width, .Height)
....


In Delphi kan ik wel de Activesheet ophalen, echter daarvan kan ik niet de DropDowns opvragen.

  • Pino
  • Registratie: Oktober 2001
  • Laatst online: 14:16
Verwijderd schreef op 08 januari 2004 @ 17:02:
Bovenstaande tip brengt me tot dit probleem:
In VB:
code:
1
2
3
....
Set ddBox = Application.ActiveSheet.DropDowns.Add(.Left, .Top, .Width, .Height)
....


In Delphi kan ik wel de Activesheet ophalen, echter daarvan kan ik niet de DropDowns opvragen.
Hmm, als je een excelapplication object hebt kun je daar idd niet bij, met een exelworksheet object wel.

"If you don't know where you are going, any road will take you there"


  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

TExcelApplication.ActiveSheet is van het type IDispatch. Als je verstand van COM hebt weet je dat dit een interface is voor late binding. Je kan die ActiveSheet als variant opslaan en dan via late binding gebruiken. Het nadeel is dat je geen compile time controle hebt.
Delphi:
1
2
3
4
5
var V: Variant;
begin
  V := Application.ActiveSheet.
  V.DropDowns;
end;

Of je zet de interface om naar een Excel Worksheet interface en werkt met early binding.

We adore chaos because we like to restore order - M.C. Escher