Avatar billede stone Forsker
05. april 2001 - 18:05 Der er 12 kommentarer og
1 løsning

acces violation

har et databaseprogram med minitable.
hvis man trykker på en knap inden hele programmet er indlæst,får man en accees violation.hvad kan man gøre for at undgå det?
(udover at lade være med at trykke på knappen :-))
kan man deaktivere funktionerne indtil hele programmet er indlæst?

Avatar billede kokoko Nybegynder
05. april 2001 - 19:04 #1
Kan du ikke bare sætte knappens Enabled værdi til False i Object Inspector... og så i formen\'s OnCreate Event sætte den til True igen (nederst)?
Avatar billede stone Forsker
05. april 2001 - 19:40 #2
jo....det kan jeg, men der er mange andre knapper og + menuen og popup.Så det vil blive mange disabled/enabled,
det vil ligne en hovsa løsning.
Og det vil givevis forsinke programmet.
Jeg var ude efter en lidt smartere måde at gøre det på.
Avatar billede kokoko Nybegynder
05. april 2001 - 23:33 #3
Jeg tror du skal have vildt mange knapper før du kan mærke at det vil forsinke programmet, men ok det bestemmer du jo selv..
For at vi skal kunne hjælpe dig med en anden løsning bliver du i hvertfald nødt til at komme med flere information på hvorfor det sker.. og hvad der sker
Avatar billede stone Forsker
06. april 2001 - 00:43 #4
har prøvet dit forslag
samme problem.
problemet ligger i at når man trykker på en knap
under indlæsning kan den ikke udføre handlinge
før programmet er indlæst,derved får man en \"aceess violation\"
er der en måde at uddele resourcer til at håndtere
en event før programmet er indlæst.
Avatar billede kokoko Nybegynder
06. april 2001 - 09:13 #5
kan man så ikke vente med at sætte OnClick eventen til formens OnCreate? prøv det
Avatar billede kokoko Nybegynder
06. april 2001 - 09:19 #6
hmm kan du ikke paste den kode du har i knappens OnClick event?
Avatar billede stone Forsker
06. april 2001 - 11:05 #7
den onclick event for knappen åbner en form med en dbgrid
Oversigt.show;
Avatar billede jensfudge Nybegynder
06. april 2001 - 14:24 #8
Du kan sætte menupunkter og knapper disablede og enablede med ganske få liniers kode.
Så en løsning ville være at sætte knapper/menupunkter disablede i designtime

på formens OnCreate skriver du derefter:

for i := componentCount -1 do
begin
  if components[i] is TButton then
    TButton(components[i]).enabled := true
  else
  if components[i] is TMenuItem then
  TMenuItem(components[i]).enabled := true;
end;

Hilsen
Jens
Avatar billede stone Forsker
07. april 2001 - 12:09 #9
\"jensfudge\"
får en fejlmelidng ved brug af dit eksempel
undeclared identifier(i)
\'To\'ekspected but \'do\' found
exspression expected but \'begin\' found
Avatar billede kokoko Nybegynder
07. april 2001 - 14:11 #10
du skal lige ændre den første linje til:

for i := 1 to componentCount -1 do

også så skal du lige oprette variablen i som skal være en integer

altså

var
I: integer;
Avatar billede stone Forsker
07. april 2001 - 15:30 #11
1 fejlmelding:
expression expected but \'begin\' found
Avatar billede stone Forsker
14. april 2001 - 17:44 #12
gir samme fejlmelding
Avatar billede jensfudge Nybegynder
17. april 2001 - 07:54 #13
Nåå, Sorry Jeg havde lavet en bøf..

procedure TForm1.Create (sender TObject);
var
i : integer;

begin
for i := 1 to componentCount -1 do
begin
  if components[i] is TButton then
    TButton(components[i]).enabled := true
  else
  if components[i] is TMenuItem then
  TMenuItem(components[i]).enabled := true;
end;

end;

Jeg troede at du godt vidste hvor du oprettede lokale variabler osv... Jeg vil kraftigt anbefale dig at købe en lærebog om delphi, eller programmering i al almindelighed.
Jeg kan anbefale \"Teach yourself .... in 21 days\" serien, der er sikker en hvor .... skal udskiftes med Delphi

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