webForumDet fria alternativet

Global procedur

1 svar · 341 visningar · startad av mott

mottMedlem sedan juni 2000836 inlägg
#1

Hej! Jag håller på att gå över från VB till Delphi och har lite svårt att hitta vissa saker.

Jag försöker göra en funktion för att centrera formen på skärmen.

Själva koden är ju rätt självklar:

<font size="1" face="Verdana, Arial, Helvetica, sans-serif">Kod:<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600">
frmPensionStart.Left:=Screen.Width div 2 - frmPensionStart.Left div 2;
frmPensionStart.Top:=Screen.Height div 2 - frmPensionStart.Height div 2;

Men nu vill jag ju inte bara centrera frmPension utan vilken form som helst.

Dessutom vill jag kunna kalla på centrera-funktionen varifrån som helst, vilken form som helst.

Alltså typ (i VB)

Modul:

<font size="1" face="Verdana, Arial, Helvetica, sans-serif">Kod:<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600">
Function CenterWindow(Window)
Window.left=...osv
Window.top=...osv
End Function

Valfri form:

<font size="1" face="Verdana, Arial, Helvetica, sans-serif">Kod:<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600">
CenterWindow(Me)

--

Hur i H-E gör jag detta i Delphi? *desperat*

------------------
Daniel Mott
________________
War Is Peace. Ignorance Is Strength. Freedom Is Slavery.
1984, George Orwell
[: E-posta gärna. :]
Vad är godast?
Vad har du för operativsystem i din dator?

jtMedlem sedan juni 2000326 inlägg
#2

Två exempel på hur du deklarerar funktioner så du kan anropa dessa globalt. Du måste lägga till Unit1 i uses när du vill anväda funktionen från någon annan unit.

uses
unit1;

Form1.CenterWindowA(Me)
CenterWindowB(Me)

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;

type
TForm1 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
function CenterWindowA(AForm: TForm):boolean;
end;

var
Form1: TForm1;
function CenterWindowB(AForm: TForm):boolean;

implementation

uses Unit2;

{$R *.DFM}

function TForm1.CenterWindowA(AForm: TForm): boolean;
begin
AForm.Position := poScreenCenter;
end;

function CenterWindowB(AForm: TForm):boolean;
begin
AForm.Position := poScreenCenter;
end;

end.

[Redigerat av jt den 09 okt 2001]

Genererad på 356 ms · cache AV · v20260730165559-full.f96bc7eb