Hallo Leute und Euch allen ein gesundes neues Jahr!
Zitat von
xX0815Xx:
@ sirius: Es geht
imho darum dass beim Click auf den Button was ausgeführt werden soll, man den Button aber auch auf der Oberfläche verschieben kann (dann soll die Click-Prozedur nicht ausgeführt werden)
exacto del mundo, im moment ist es so das zwar das onmousedown ausgeführt wird,
aber das onclick überhaupt nicht. Habe das mit Rückgabe wert kontrolliert.
Auszug aus dem oncreate des Buttons:
Delphi-Quellcode:
aLabel.OnClick:=p1_1Click;
aLabel.OnMouseDown:=verschiebebutton;
aLabel.OnMouseUp:=speicherposition;
dann
Delphi-Quellcode:
procedure TKasse.verschiebebutton(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if ssLeft in Shift then begin
with (Sender as TXiButton) do begin
ReleaseCapture;
Perform(WM_SYSCOMMAND, $F012, 0);
end;
end;
end;
dann speichern
Delphi-Quellcode:
procedure TKasse.speicherposition(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
with (Sender as TXiButton) do begin
t1_quer.Close; t1_quer.SQL.Clear;
t1_quer.SQL.Add('UPDATE k_artdb SET');
t1_quer.SQL.Add('SETLEFT='+IntToStr(Left)+',');
t1_quer.SQL.Add('SETTOP='+IntToStr(Top)+' ');
t1_quer.SQL.Add('WHERE id='+IntToStr(TComponent(Sender).Tag)+'');
t1_quer.ExecSQL;
Showmessage('!');
end;
end;
das onlick erspar ich mir jetzt.
Vielen Dank Leute