Dahl Skrevet 22. desember 2003 Skrevet 22. desember 2003 (endret) Hei hei! Jeg har begynt å lage noen små programmer i Delphi i det siste, og det går ganske bra synes jeg. Men det er Noen ting jeg lurer på: 1. Hvordan kan man lage en lenke til en webside? 2. Hvordan kan man åpne/lukke cd-skuffen? 3. Går det ann å ta bort de tre ikonene øverst i høyre hjørnet? (minimer, gjenopprett/maksimer og lukk) 4. Hvordan kan man vise dato og tid (basert på pc-klokka)? Takk for hjelpen! Bruker Delphi 6 Personal. Edit: Endret noen skriveleifer. Endret 22. desember 2003 av @kd
tasle Skrevet 23. desember 2003 Skrevet 23. desember 2003 1. Aktiv lenke til en webside: WinExec (PChar ('rundll32 url.dll, FileProtocolHandler HTTP://www.hardware.no'), SW_MAXIMIZE); Kanskje den enkleste metoden, men ikke den aller beste. Eksemplet åpner http://www.hardware.no. Du kan bruke denne koden i forbindelse med klikk på en label, for eksempel. 2. Åpne CD-skuffa så du kan sette en kaffekopp eller eller juleølet der: mciSendstring ('SET CDAUDIO DOOR OPEN WAIT', nil, 0, Self.Handle); Den kan lukkes med : mciSendstring ('SET CDAUDIO DOOR CLOSED WAIT', nil, 0, Self.Handle); Disse to er også såpass enkle at du slipper å programmere deg i hjel. Begge bruker (Uses) mmSystem. Juletips: Plasser en Timer og en Mediaplayer på formularet ditt. I timerens OnTimer plasserer du koden for åpning og lukking av DC-skuffa. Sett Interval til ca. 3 sekunder (3000 msek). Sett mediaplayeren til å spille av en kort wav-fil med en eller annen luguber lyd. Latter eller s*e*x lyd. Garantert festlig for de med litt spesiell humor når CD-luka jokker inn og ut... 3. Sett alle formularets BorderIcons til False. 4. Plasser en label på formularet: Label1.Caption:= DateTimeToStr (Now); For å få en digital løpende klokke må du bruke denne koden med en timer, og plasser koden i timerens OnTimer. God jul til alle programmerere!
_Wolfman_ Skrevet 23. desember 2003 Skrevet 23. desember 2003 Annen mulighet på 1 ShellExecute(handle, 'open', 'http://www.mypage.com'', nil, nil, SW_SHOWNORMAL); Må legge til shellapi i uses.
Dahl Skrevet 23. desember 2003 Forfatter Skrevet 23. desember 2003 Tusen takk for hjelpen tasle og _Wolfman_! God jul!
Dahl Skrevet 23. desember 2003 Forfatter Skrevet 23. desember 2003 (endret) Har nå fått testet kodesnuttene dere ga meg. _Wolfman_: Det funka ikke, selvom jeg la til shellapi i uses. Tasle: 1: Funka ikke, det kom en errormessage, tror det var ettelerannet med rundll32.dll eller noe. (Testa det på en maskin som ikke er koblet til internett, kanskje det er grunnen? ) 2: Funka bra, men det tok en liten stund før cd-skuffen reagerte (mulig det er pc-en min). 3: Funka. 4: Funka. Har også noen spørsmål til: 5: Kan man fjerne programmet for listen som kommer opp når man trykker ctrl+alt+del? 6: Kan man gjøre det sånn at det kommer opp en melding hvis du prøver å avslutte programmet? (Er du sikker på at du vil avslutte? Eller noe...) Må funke med Alt+F4 også. God jul!! Endret 23. desember 2003 av @kd
tasle Skrevet 23. desember 2003 Skrevet 23. desember 2003 1: Du må nok være tilkoplet Internett for å kunne åpne en gitt URL, med mindre URL'en er lokal på din maskin. 2: Det er vel en viss forskjell i hurtigheten på de forskjellige CD-stasjonene. Min er akseptabel kvikk til å reagere, men på min bærbare går det litt tregere. 5: Utdyp det litt nærmere. Jeg skjønner ikke spørsmålet helt. Skal programmet ikke vises i prosessoversiketen (oppgavebehandling) når du trykker på Ctrl-Alt-Del ? 6: I skjemaet OnClose legger du inn en MessageDlg : If MessageDlg ('Virkelig avslutte?', mtConfirmation, [mbYes, mbNo], 0) = mrNo Then Exit; Denne bruker (Uses) Dialogs.
Dahl Skrevet 23. desember 2003 Forfatter Skrevet 23. desember 2003 Takk! 5: Ja, det er som du gjetter!
tasle Skrevet 24. desember 2003 Skrevet 24. desember 2003 I Win9x var det en funksjon som heter RegisterServiceProcess, men den var avhenging av av KERNEL32.DLL. Kernel32. Dll har endret seg i de forskjellige versjonene av Windows, og XP har visst ikke lenger RegisterServiceProcess i sin opprinnelige form. Det nærmeste jeg kommer i farta vil ikke skjule programmet i oppgavebehandling, men skjule programmet fra oppgavelinja med ShowWindow (Application.Handle, SW_HIDE); SetWindowLong (Application.Handle, GWL_EXSTYLE, GetWindowLong (Application.Handle, GWL_EXSTYLE) Or WS_EX_TOOLWINDOW); ShowWindow (Application.Handle, SW_SHOW); Denne må du ha i programmets OnCreate. Alternativet er å sette opp programmet som en service i WinXP, men det krever litt mer programmering for å implementere det ordentlig. Ulempen er at programmet vil kjøre selv om brukeren logges av og ny logges inn. Hvis du søker på Internett på dette temaet kan det hende at du kommer over en komponent som fikser dette.
Dahl Skrevet 12. januar 2004 Forfatter Skrevet 12. januar 2004 I Win9x var det en funksjon som heter RegisterServiceProcess, men den var avhenging av av KERNEL32.DLL. Kernel32. Dll har endret seg i de forskjellige versjonene av Windows, og XP har visst ikke lenger RegisterServiceProcess i sin opprinnelige form. Merket at det ikke funket helt bra ja... Men finnes det en annen måte å gjøre det på? (åpne webside når man foreksempel trykker på en Label).
Dino_ Skrevet 12. januar 2004 Skrevet 12. januar 2004 Men finnes det en annen måte å gjøre det på? (åpne webside når man foreksempel trykker på en Label). procedure TForm1.Label1Click(Sender: TObject); begin ShellExecute(Handle, 'open', PChar('http://www.sol.no/'), nil, nil, SW_SHOW); end; Åpner i default browser. procedure TForm1.Label1Click(Sender: TObject); begin ShellExecute(Handle, 'open', PChar('C:\Programfiler\Opera7\opera.exe'), ' "http://www.sol.no/" ', nil, SW_SHOW) end; Åpner i Opera (f.eks.) Har ikke testa i NT/XP-flavours....
Dahl Skrevet 14. januar 2004 Forfatter Skrevet 14. januar 2004 Dino_: Takk for hjelpen, det funka bra (måtte legge til shellapi i uses) Tasle: Takk til deg også, nå synes ikke programmet... Har også et nytt spørsmål: Hvordan kan jeg få programmet til å endre innholdet i en fil?
Dino_ Skrevet 14. januar 2004 Skrevet 14. januar 2004 Bare hyggelig å kunne hjelpe . Hvordan kan jeg få programmet til å endre innholdet i en fil? Det er tre ting du må gjøre for å endre innholdet i di fil: 1* lese fila inn i minnet 2* redigere til ønsket resultat 3* lagre fila på harddisken din. Enkelt ikke sant? Dette gjelder all filredigering, uansett type fil. det gjelder bare å gjøre det på rett måte Det aller enkleste er å redigere en text.fil, Du leser fila inn i minnet, og kansje lagrer du den i et memo? : procedure TForm1.lesefil(Sender: TObject); begin memo1.Lines.LoadFromFile('c:\windows\win.ini'); end; her i memoet kan du da redigere det som står i fila, så skal du lagre... procedure TForm1.lagrefil(Sender: TObject); begin memo1.Lines.SaveToFile('c:\windows\win.ini'); end; merk! ikke kødd med win.ini uten å vite hva du gjør!!! bare så det er sagt! Du har også andre muligheter, du kan for eksempel laste fila inn i minnet uten å bruke en memo, men heller bruke en TStringList (denne må du kalle ved å bruke create ved programoppstart, les i hjelpefila, mange fine eksempel..). Her lagrer du file, mens du kan få programmet til å lete etter spesielle fragment i fila, bytte dem ut med forhandsvalgte data, og så lagrer du fila etterpå. Dette prinsippet kan man også bruke for å lage en patch til en binærfil, men da må man huske på at det er en binærfil man behandler. og ikke en textfil. Lykke til. Have fun!
Format71 Skrevet 14. januar 2004 Skrevet 14. januar 2004 Hvordan kan jeg få programmet til å endre innholdet i en fil? TFileStream -Vegar
Dahl Skrevet 14. januar 2004 Forfatter Skrevet 14. januar 2004 Hvordan kan jeg få programmet til å endre innholdet i en fil? TFileStream -Vegar Kan du utdype det litt mere? Dino_: Takk (igjen ) for raskt og godt svar! Har kødda litt med win.ini fila før, jeg... Det gikk ikke så VELDIG bra... Hehe!
Dahl Skrevet 14. januar 2004 Forfatter Skrevet 14. januar 2004 Kom på enda en ting jeg lurer på... Hvordan opprette/slette en fil? Antar at det er noe lignende som det forrige, men vil gjerne vite eksakt hvordan jeg gjør det.
Format71 Skrevet 15. januar 2004 Skrevet 15. januar 2004 Kan du utdype det litt mere? Opprette/Skrive til en fil: procedure SkrivTilFil(Filnavn: string); var fs: TFileStream; begin fs := TFileStream.Create(Filnavn, fmCreate or fmShareCompat); try fs.Write(.....) finally fs.free; end; end; Åpne og lese fra en fil: procedure LesFraFil(filnavn: string); var fs: TFileStream; begin fs := TFileStream.Create(Filnavn, fmOpenRead or fmShareCompat); try fs.Read(...) finally fs.free; end; end; Sjekk hjelpefila for informasjon om hvordan Write( ) og Read( ) metodene fungerer. -Vegar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå