Avatar billede nop Nybegynder
18. maj 2004 - 11:18 Der er 11 kommentarer og
1 løsning

Form designer

Jeg vil lige prøve igen;
Jeg ville gerne lave en form-designer ala delphi'es, den skal dog ikke kunne bruges til at run-time-designe eller andet, jeg skal nok selv gemme og gentegne mv.
Jeg har en der er 100% properties drevet og som bruger et "preView" panel under opbygningen og en activeX form der hvor jeg bruger formen, det virker fint, men jeg ville gerne have det visuelle med.

Er der nogen der har et link eller bare en stump kode som viser hvordan man kan hive i og flytte en label?
Og jeg er kun interreseret i source og ikke nødvendigvis gratis.

33 points for 3 første brugbare link, har du kode som jeg kan bruge så 99.

--nop
Avatar billede stone Forsker
18. maj 2004 - 14:18 #1
er det et panel din label er på og have den trukket over på formen?
Avatar billede nop Nybegynder
18. maj 2004 - 14:20 #2
det var bare forklarende for hvordan jeg har lavet min designer.
Og der skal ikke trækkes noget....Hvor står det?
Avatar billede nop Nybegynder
18. maj 2004 - 14:20 #3
nå ja..hive=gøre størrer/mindre (her!)
Avatar billede nop Nybegynder
18. maj 2004 - 15:26 #4
stone>>flytte = flytte label rundt på samme moder (her et panel).
Yderlig forklaring:
Jeg kunne jo selv tegne de 8 grå firkanter og så lave noget kode der håndterede onClick på dem og på onClick på "komponenten" (en label i mit eksempel).
Men komponenterne har jo allerede nogle metoder/props til netop dét, kan man ikke benytte sig af dem?
Avatar billede nop Nybegynder
18. maj 2004 - 15:27 #5
Det er nok mest mouseDown/up/move der skal bruges på de små grå firkanter :)
Avatar billede stone Forsker
18. maj 2004 - 18:33 #6
//her er et eksempel  på at hive en label rundt på formen
//eksemplet kan bruges på alle componenter

//{$R *.DFM}
const
Traekker:Boolean=False;
var
Sidste_x, Sidste_y:Integer;

procedure TForm1.Label1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
if (SSleft in shift) then begin
Traekker:= True;
Sidste_x:=x;
Sidste_y:=y;
end;

end;

procedure TForm1.Label1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
var
mx,my:Integer;
begin
if (traekker)and( ssleft in shift) then
begin
mx:=Label1.Left;
Label1.Left:=Label1.Left-(sidste_x-x);
mx:=Label1.Left-mx;
my:=Label1.Top;
Label1.top:=Label1.top-(Sidste_y-y);
my:=Label1.Top-my;
sidste_y:=Y-my;
sidste_x:=x-mx;
end
else
traekker:= false;
end;
Avatar billede nop Nybegynder
18. maj 2004 - 23:22 #7
Ja ok.
Men det skal være sådan at label'en "vælges" og der tegnes træk-punkter, som bruges til at gøre labelen størrer og mindre i de forskellige retninger. i breden og højeden, med anker modsat træk-punktet og osse dem som resizer både breden og højden.
Når man trykker (mouseDown) på midten af en allerede valgt komponent så kan den flyttes, lige som stone foreslår, og punkterne skal osse med.
Det er jo altsammen som ide'et i delphi 6.0, så mon ikke man kan få tegnet en komponent med punkter og de andre ting.
Det er nok det mit spørgsmål egentlig kan koges ned til.
Ellers skal man vist i gang med en længere kodning.
Avatar billede nop Nybegynder
18. maj 2004 - 23:24 #8
stone>>er den kode testet, hvad med mouseUp hvor trækker resettes, og ikke i mouse move.
Avatar billede stone Forsker
19. maj 2004 - 00:37 #9
her er et eksempel fra mine gemmer af  Finn Ekberg Christiansen / www.danish-shareware.dk
he he websted til låns:::
www.victor-cykler.dk/resize.zip

her er forskellige eksempler på componenter som kan resized....
Avatar billede nop Nybegynder
19. maj 2004 - 08:44 #10
Tak, det virker osse, men det var måske ikke helt det jeg ville have at vide.
MEN jeg er blevet overbevist om at det er den vej frem = en masse kode :)
Så du er berettiget til points.
Avatar billede stone Forsker
19. maj 2004 - 14:01 #11
håber du får løst det med dine firkanter til at trække i.
//stone
Avatar billede nop Nybegynder
19. maj 2004 - 14:02 #12
Tak, ja det har jeg en plan om.
Er der ingen andre der har et svar......
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester