Avatar billede brian0905 Nybegynder
17. januar 2004 - 23:37 Der er 4 kommentarer og
1 løsning

Ideer til implementering af mit program

Jeg er ved at bygge en relationel database editor i Delphi. Desværre er Delphi og Object Pascal ikke min stærke side, men sådan ligger landet nu engang. Jeg skal have lavet ed editor hvor an kan tilføje nogle tabeller således de rent grafisk bliver tilføjet en brugergrænseflade således man derefter kan linke forskellige felter sammen mellem disse tabeller. Mit problem er nu at jeg er i tvivl om hvordan jeg skal implementere mine tabeller. Jeg har overvejet at lave dem som TListBox, da jeg vil have muligheden for at kunne trække (Drag 'n' drop) et felt fra den ene liste til den anden liste og så i min GUI tegne en linie derimellem. Jeg har tumlet lidt med det og det vil ikke helt virke, tror umiddelbart ikke at det er det store problem at lve denne drag 'n' drop funktionalitet, men at få lavet drag'n'drop på mine TListBox'es således min bruger frit kan placere dem i et arbejdsområde (lidt a'la SQL Serveren, hvis der er nogle der kender den). Umidddelbart er jeg ikke efter kode, men det ville da være en ekstra bonus, jeg vil lige så gerne høre nogle konkrete bud på, hvordan jeg får løst mine problemer, måske specielt med en flytbar TListBox på et panel.
Avatar billede stone Forsker
17. januar 2004 - 23:56 #1
det jeg kán bidrage til er
flytbar listbox:


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

procedure TForm1.ListBox1MouseDown(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.ListBox1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
var
mx,my:Integer;
begin
if (traekker)and( ssleft in shift) then
begin
mx:=listbox1.Left;
listbox1.Left:=listbox1.Left-(sidste_x-x);
mx:=listbox1.Left-mx;
my:=listbox1.Top;
listbox1.top:=listbox1.top-(Sidste_y-y);
my:=listbox1.Top-my;
sidste_y:=Y-my;
sidste_x:=x-mx;
end
else
traekker:= false;
end;


end.
Avatar billede brian0905 Nybegynder
18. januar 2004 - 00:16 #2
Den brokker sig over at ' Left side cannot be assigned to' i denne linie

const
Traekker:Boolean=False;

Derefter vil den ikke assigne overhovedet, hvis jeg flytter Traekker fra at være konstant til at være en almidelig variabel, så kan den køre, men når jeg dragger sker der ikke noget !!!
Avatar billede stone Forsker
18. januar 2004 - 00:30 #3
ok...jeg kan sende dig mit eksempel som virker og er cut and paste til det eksempel du ikke kan få til at virke...

smid en mail adr.. hvis du ikke vil det kan du maile til mig på sl@sl-software.dk

eksemplet er lavet i d5 interprise
Avatar billede brian0905 Nybegynder
18. januar 2004 - 00:31 #4
Sorry, jeg lavede en fejl.... jeg fik det til at virke efter lidt hakken og banken, og så selvfølgelig efter jeg rettede min egen fejl. Takker for koden, det virker fint nu :-)

/Brian

P.S. Lav lige et svar
Avatar billede stone Forsker
18. januar 2004 - 00:36 #5
glad for du fik det til at virke

//stone
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

IT-JOB