Sætte en checkbox værdi

Tags:    delphi

Har et problem med at sætte en checkbox.checked uden at den kalder OnClick

Jeg læser data ind fra en database , og tildeler forskellige felter og checkboxe tidligere værdier.
Men hver gang der indlæses en værdi der er modsat af den værdi der tidligere var i checkbox.checked feltet (den datapost der var vist før denne) kaldes OnClick.
Problemet er så at i OnClick har jeg et kald til databasen om at ændre til den nye værdi (som så er den samme).
Det kan umiddelbart så virke som ligegyldigt, men da min database er MySQL og ligger på en server der også bruges af vores hjemmeside bevirker det at dataposten/varen bliver opdateret, og dermed skal med i næste rettelse af diverse andre tabeller etc.


procedure TVis_1vare.web_synligClick(Sender: TObject);
var
y: integer;
begin
if web_synlig.Checked then
y:=1 else y:=0;
qq:=format('UPDATE vare SET web_synlig=%d WHERE internnummer=%s',
[y,InternnummerLabel.Caption]);
MainForm.DoQuery(qq,'R'); //R=RELOAD

end;


Jeg vil gerne slippe for løsninger med at klikke på en anden knap for at opdatere.



2 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato
Det må kunne løse med en variabel, som fortæller om det er dig eller brugeren som ændrer værdien. Altså noget ala:

Erklær' variablen Author:boolean som globalvar (altså der hvor der også står Form1:=TForm).

Procedure IndLæsData //Du ændrer på værdien.
begin
Author:=true;
CheckBox.Checked:=true;
end;

Procedure CheckBox.OnClick
begin
if not Author then
begin
Det den normalt udfører når brugeren klikker på knappen.
end;
Author:=false;
End;

Håber det kan bruges!!!

Vh Tarrild



Håber det kan bruges!!!

Vh Tarrild



Det var nemt og effektivt!!

Tak for det!!



nb: Er i mellemtiden også blevet bekendt med at SQL ikke opdaterer en datapost værdi hvis den har samme værdi som man ønsker at sætte.




t