Avatar billede justincase1089 Nybegynder
08. november 2001 - 08:38 Der er 5 kommentarer og
2 løsninger

Udveksling af data comobjects

Hej

Jeg har et større problem som jeg har kogt ned til sagens kerne.
Jeg har brug for to programmer (muligvis det samme, men startet to gange), der kan snakke sammen igennem et com interface. Det er umiddelbart ikke den i mine øjne vanskelige del :). I hvert program skal der være en løkke med en enkelt udregning i:

for i:=0 to 100 do
begin
  TestVar1:=TestVar1+TestVar2
end;

Programmet indeholder selv TestVar1, men værdien TestVar2 skal den hente fra det andet program når den er blevet beregnet i dets løkke. På en eller anden måde skal det være muligt for det ene program at se i det andet program, at det er færdig med en runde i løkken inden det henter værdien. Jeg vil helst have et svar med en masse kode :).

Justin Case

Avatar billede snowmoad Nybegynder
08. november 2001 - 08:46 #1
TestVar1:=TestVar1+TestVar2(;)-----> \";\"

måske
Avatar billede justincase1089 Nybegynder
08. november 2001 - 08:50 #2
Ja den mangler, men har ingen betydning for spørgsmålet.
Avatar billede hreiff Nybegynder
08. november 2001 - 10:16 #3
Er det ikke bare at lade program 2 gemme resultatet og et flag i enten en midlertidig fil, i registreringsdatabasen eller på en absolut adresse i memoryen, og så lade program 1 polle på flaget for at se om program 2 er færdigt?

Dvs:

Program 1 starter op
Gemmer flag = false
Gemmer resultat = 0
Starter program 2                            Program 2 starter op
...                                          ...
...                                          gemmer resultat og
...                                          sætter flag = true
...                                          når det er beregnet
henter resultat når flag = true
og foretager beregning


Avatar billede unclebug Nybegynder
08. november 2001 - 11:26 #4
Kig evt. på TEvent (i hjælpen). Hvis du creater en event med at navn, er det globalt i hele Windows, og det ene program kan vente på det andet.

Avatar billede hreiff Nybegynder
08. november 2001 - 12:32 #5
Hvis du kalder program2 vha. ShellExecute har du muligheden for at overføre parametre (via en pointer). I stedet for en tekststreng kunne det være en pointer til en type (type arg = record  flag: boolean; Resul: Double; end;).

I program 2 kan du så finde adressen via Addr(ParamStr(1)) og ændre dem som du vil.
Avatar billede justincase1089 Nybegynder
12. november 2001 - 10:45 #6
Tak for svarene. Det er nok unclebug der kommer tættest på en sober måde at gøre tingene på. hreiffs måde kan godt lade sig gøre, men er ikke særlig køn, da der er rige muligheder for at benytte sig af events INDENI COM interfacerne på en standardiseret måde. Det var netop det jeg søgte et eksempel på.
Avatar billede justincase1089 Nybegynder
12. november 2001 - 10:46 #7
Tak for svarene. Det er nok unclebug der kommer tættest på en sober måde at gøre tingene på. hreiffs måde kan godt lade sig gøre, men er ikke særlig køn, da der er rige muligheder for at benytte sig af events INDENI COM interfacerne på en standardiseret måde. Det var netop det jeg søgte et eksempel på.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester