Autor |
Beitrag |
elundril 
      
Beiträge: 3747
Erhaltene Danke: 123
Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
|
Verfasst: Do 18.01.07 16:49
aso das heißt FWS!!! ich hab mir immer gedacht "warum schreiben die solche hieroglyphen da hin"!!^^
danke!!!
lg el
_________________ This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
|
|
jaenicke
      
Beiträge: 19315
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Do 18.01.07 17:03
ROFLBTC
Dadrunter steht doch dann beispielsweise Zitat: | Fully functional
Source: Included |
Es gibt jedenfalls auch noch SW - Shareware und FW - Freeware 
|
|
hansa
      
Beiträge: 3079
Erhaltene Danke: 9
|
Verfasst: Do 18.01.07 19:07
Sieht ziemlich nach Abkupferungs-Aktion aus. Ohne irgendwelches Hindergrundwissen soll wohl irgendwas vorhandenes aus unbekannter Quelle umgefriemelt werden.  Und das ganze komplett ohne Verständnis von OOP. Insofern wird wohl irgendwann demnächst mit TComponent angefangen, um das Rad wenigstens komplett neu zu erfinden und nicht nur halb. 
_________________ Gruß
Hansa
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: Fr 19.01.07 13:48
Der Fehler mit den Formalen Parametern in den Zeilen um 180ff basiert auf einem Typfehler ... StrPas will als Eingabe einen PChar haben ...
Man deklariere also:
Delphi-Quelltext
Initialisiere also:
Delphi-Quelltext
Übergebe also:
Temp^ an GetUsername und GetComputername
und finalisiere anschließend also:
Delphi-Quelltext
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
elundril 
      
Beiträge: 3747
Erhaltene Danke: 123
Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
|
Verfasst: Sa 20.01.07 15:27
ROFLBTC???? was das??
zur abkupferungsaktion: is es nicht da ich mir den source erklären lasse. und zwar von euch.
ich hab da jetzt was gebastelt:
Delphi hat mir immer gesagt das er Button, shift, x und y nicht kennt. deshalb hab ich sie als variable deklariert. nur:
Das OnMouseDown event wird erst beim loslassen angezeigt und das OnMouseUp event gar nicht. X und Y bleiben grundsätzlich gleich und sind zahlen die sich um die 100000 stelle drehen. was hab ich da falsch gemacht und wie muss ichs ändern??
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88:
| unit ExScrollBar;
interface
uses SysUtils, Classes, Controls, StdCtrls, Messages;
type TSmallPoint = packed record x: SmallInt; y: SmallInt; end;
type TWMLButtonDown = packed record Msg: Cardinal; Keys: Longint; case Integer of 0: ( XPos: Smallint; YPos: Smallint); 1: ( Pos: TSmallPoint; Result: Longint); end;
type TWMLButtonUp = packed record Msg: Cardinal; Keys: Longint; case Integer of 0: ( XPos: Smallint; YPos: Smallint); 1: ( Pos: TSmallPoint; Result: Longint); end;
type TMouseEvent = procedure(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer) of object;
type TExScrollBar = class(TScrollBar) private Button: TMouseButton; Shift: TShiftState; X,Y: integer; FOnMouseDown: TMouseEvent; FOnMouseUp: TMouseEvent; procedure WMLButtonDown(var Message: TWMLButtonDown); message WM_LBUTTONDOWN; procedure WMLButtonUp(var Message: TWMLButtonUp); message WM_LBUTTONUP; protected public published property OnMouseDown: TMouseEvent read FOnMouseDown write FOnMouseDown; property OnMouseUp: TMouseEvent read FOnMouseUp write FOnMouseUp; end;
procedure Register;
implementation
procedure Register; begin RegisterComponents('ExComponents', [TExScrollBar]); end;
procedure TExScrollbar.WMLButtonDown(var Message: TWMLButtonDown); begin inherited; if Assigned(FOnMouseDown) then FOnMouseDown(Self, Button, Shift, X, Y); end;
procedure TExScrollbar.WMLButtonUp(var Message: TWMLButtonUp); begin inherited; if Assigned(FOnMouseUp) then FOnMouseUp(Self, Button, Shift, X, Y); end;
end. |
lg el
_________________ This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
|
|
Sinspin
      
Beiträge: 1335
Erhaltene Danke: 118
Win 10
RIO, CE, Lazarus
|
Verfasst: Sa 20.01.07 18:03
Das ist vollkommen klar. Denn woher soll denn die Infomation kommen die in den lokalen Variablen drinne steht? Die kommt aus dem nichts!
Die an WMLButtonDown und WMLButtonUp übergebe Message enthält die benötigten Parameter die du bei aufruf mit übergeben musst. Den ShiftStatus bekommst du von der Tastatur.
Die lokalen Variablen können dementsprechend weg.
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7:
| procedure TExScrollbar.WMLButtonDown(var Message: TWMLButtonDown); begin inherited; if Assigned(FOnMouseDown) then with Message do FOnMouseDown(Self, TMouseButton(Keys), [], Pos.x, Pos.Y); end; |
Das ist aber noch nicht ausreichend. Den ShiftState habe ich erstmal komplett weg gelassen. Eigentlich braucht du den für deine Aufgabe auch nicht. Du kannst also deinen Ereignishandler "entlasten".
_________________ Wir zerstören die Natur und Wälder der Erde. Wir töten wilde Tiere für Trophäen. Wir produzieren Lebewesen als Massenware um sie nach wenigen Monaten zu töten. Warum sollte unser aller Mutter, die Natur, nicht die gleichen Rechte haben?
|
|
jaenicke
      
Beiträge: 19315
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Sa 20.01.07 18:24
 Hab ich aus einer weitergeleiteten Handler-Methode einfach kopiert, und habe übersehen, dass das so gar nicht deklariert ist...
So isses ganz richtig (hoffe ich):
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| type TWMButtonEvent = packed record Msg: Cardinal; Keys: Longint; case Integer of 0: ( XPos: Smallint; YPos: Smallint); 1: ( Pos: TSmallPoint; Result: Longint); end; |
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| procedure TExScrollbar.WMLButtonDown(var Message: TWMButtonEvent); begin inherited; if Assigned(FOnMouseDown) then with Message do FOnMouseDown(Self, mbLeft, KeysToShiftState(Keys), XPos, YPos); end;
procedure TExScrollbar.WMLButtonUp(var Message: TWMButtonEvent); begin inherited; if Assigned(FOnMouseUp) then with Message do FOnMouseUp(Self, mbLeft, KeysToShiftState(Keys), XPos, YPos); end; |
// EDIT: Ach so: KeysToShiftState ist aus der Unit Forms 
|
|
elundril 
      
Beiträge: 3747
Erhaltene Danke: 123
Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
|
Verfasst: So 21.01.07 14:24
Ok vielen danke!!!!
lg el
_________________ This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
|
|
|