![]() |
Types of actual and formal var parame
Hallo,
Was ist falsch hier :
Delphi-Quellcode:
ich bekomme diese Meldung :
begin
if Msg.Msg = WM_LButtonDown then ToggleCursor // Reaktion von LeftButtonDown // soll verändert werden else Bevel1OrgWinProc(Msg.Msg); // Zeile 42 end;
Delphi-Quellcode:
[Error] Unit1.pas(42): Types of actual and formal var parameters must be identical
|
Re: Types of actual and formal var parame
Hallo
Zitat:
|
Re: Types of actual and formal var parame
mit nur msg statt msg.msg kann zwar das Projekt kompilieren (Ohne Fehler oder Warnung)
aber der Cursor wird nicht ausgeblendet Der Code soll den Cursor durch Klick auf Bevel ausblenden :
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls,ShellAPI; type TForm1 = class(TForm) Bevel1: TBevel; procedure FormCreate(Sender: TObject); private procedure myBevel1WinProc(var Msg:TMessage); public end; var Form1: TForm1; implementation {$R *.dfm} var Bevel1OrgWinProc : TWndMethod; procedure TForm1.myBevel1WinProc(var Msg:TMessage); procedure ToggleCursor; begin if Bevel1.Cursor=crDefault then Bevel1.Cursor:=crNone else Bevel1.Cursor:=crDefault; end; begin if Msg.Msg = WM_LButtonDown then ToggleCursor // Reaktion von LeftButtonDown // soll verändert werden else Bevel1OrgWinProc(Msg); // sonst Original aufrufen end; procedure TForm1.FormCreate(Sender:TObject); begin Bevel1OrgWinProc :=Bevel1.WindowProc; // Originaladresse merken Bevel1.WindowProc:=myBevel1WinProc; // deine eigene Fensterprozedur "einklinken" end; end. ________ |
Re: Types of actual and formal var parame
Screen.Cursor := crNone ;)
|
Re: Types of actual and formal var parame
//off topic on
Hi taktaky, wie ich sehe hat unsere Schelte hier dir tatsaechlich die Augen geoeffnet und du faengst an selbst zu coden und zu sehen dass alles machbar ist! Von mir: :hello: und weiter so! //off topic off |
Re: Types of actual and formal var parame
Zitat:
Was wäre wenn ich eine fremde Anwendung in meine Form binde ?! Natürlich wird der Cursor trotz der Code " Screen.Cursor := crNone" oder "Bevel1.Cursor:=crNone;" nicht ausgeblendt. Ich binde eine fremde Anwenung in meine Form so :
Delphi-Quellcode:
Der Cursor bleibt leider immer eingeblendet, wenn er auf die fremde Anwendung (test.exe, die in Form gebunden ist) sich bewegt.
procedure TForm1.Button1Click(Sender: TObject);
var dhwnd1: THandle; begin shellexecute(1,'open','"test.exe"','','',SW_show);// die fremde Anwendung wird gestartet panel1.SetFocus; dhwnd1:=FindWindow('TMainForm',nil); // die fremde Anwendung wird gesucht if dhwnd1<>0 then Windows.SetParent(dhwnd1, panel1.Handle); //EnableWindow(FindWindow('TMainForm', nil),false); ShowWindow(dhwnd1, SW_MAXIMIZE); // maximiert fremde Programme end; Die Lage wie du siehst, ist nicht so einfach ________ |
Re: Types of actual and formal var parame
Überleg doch mal selber: Wenn du auf das Bevel klickst, während sich die fremde Anwendung darin befindet, klickst du nicht auf das Bevel sondern auf die Anwendung.
Fazit: Die Window-Proc wird garnicht erst aufgerufen, denn du klickst nicht auf das Bevel sondern auf die Anwendung. Ergo müsstest du die fremde Anwendung irgendwie so umbiegen, dass SIE (und nicht DEIN Prog) beim Klick auf sie den Cursor ausblendet. Aber das ist schonwieder ein Kapitel für sich. An deiner Stelle würde ich mit dem Cursor leben. ... Quark ... :wall: Edit: Am besten legst du ein TImage mit Align = alClient auf das Bevel, reagierst dort einfach auf den Image1.OnClick und blendest ihn mit Image1.Cursor := crNone oder so aus. Und jetzt mach nicht wieder Screenshots, wenn er meint "Undefined identifier: Cursor" bei Image1. Ich hab keine Ahnung, ob Image1 eine Cursor-Eigenschaft hat. Ich weiß nichtmal, ob Image überhaupt ein OnClick hat. Habs nicht getestet. Sonst machs halt mit nem transparenten Panel und Screen.Cursor - aber da blendet es im ganzen System den Cursor aus. |
Re: Types of actual and formal var parame
Zitat:
lade (die in Panel unter TImage posisioniert) dann kann der Cursor nie ausgeblendet werden. Ich habe versucht TImage mit Control (bring to Front) nach vorne zu verschieben ohne Erfolg !!! ______ |
Re: Types of actual and formal var parame
Naja, wie du ja weißt (
![]() |
Re: Types of actual and formal var parame
Kann man nicht einfach einen Mousehook setzen, mit dem man dann kontrollieren kann, wie der Zeiger aussehen soll?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:13 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz