02. april 2006 - 21:07Der er
12 kommentarer og 1 løsning
Ryk felter i en CheckListBox
Hej Eksperter.
Jeg har en checklistbox med 4 items ex. IT1 IT2 IT3 IT4
De items der er checked åbner hver sit program, men disse skal man kunne rokere på, sådan at hvis man vil åbne program 2 før program 1 skal dette kunne rettes og huskes når programmet åbnes igen.
Er der nogen der kan hjælpe mig med dette? Bruger delphi 4.
Den moderne arbejdsplads er i stigende grad afhængig af mødelokaler til at fremme samarbejde, men dette skift medfører også stigende sikkerhedsudfordringer.
Har fået løst mit Drag & Drop problem, nu mangler jeg bare at få difineret et Item på en listbox. Dette er den måde den skal læse det på Se på Item 1, står der IT1, åben program 1 Står der IT2, Åben program 2...
Se på Item 2, står der IT1, åben program 1 Står der IT2, Åben program 2...
procedure RunProg(no : byte); begin case no of 1 : showmessage('kode til at starte program 1'); 2 : showmessage('kode til at starte program 2'); 3 : showmessage('kode til at starte program 3'); 4 : showmessage('kode til at starte program 4'); end; end;
begin if Hvad='IT1' then RunProg(1) else if Hvad='IT2' then RunProg(2) else if Hvad='IT3' then RunProg(3) else if Hvad='IT4' then RunProg(4) end;
----------------
var i : integer; begin for i:=0 to ListBox.Count-1 do StartProgram(ListBox.Items[i]); end;
-----
Hvis der altid er et tal til slut efter ITx (1-4) så kan det gøres kortere:
procedure StartProgram(Hvad : string); begin case Hvad[3] of '1' : showmessage('kode til at starte program 1'); '2' : showmessage('kode til at starte program 2'); '3' : showmessage('kode til at starte program 3'); '4' : showmessage('kode til at starte program 4'); end; end;
--------------
var i : integer; begin for i:=0 to ListBox.Count-1 do StartProgram(ListBox.Items[i]); end;
Undskyld jeg har været så lang tid om at svare tilbage, men tror at vi har misfortået hinanden (eller jeg har forklaret mit problem forkert. Jeg skal have defineret teksten på et Item.
Altså hvis der i Listboxen står Program1 i item1 og Program2 i item2, disse kan jeg rokere på, så de bytter plads, men programmet kører, så Program2 står på Item1's plads og program1 står på Item2's plads, derfor skal koden læse teksten og starte med at indlæse det program der står som Item1, og dernæst det der står som Item2.
procedure StartProgram(Hvad : string); begin if Hvad='Billede program' then showmessage('kode til at starte billede program'); if Hvad='Skrive program' then showmessage('kode til at starte skrive program'); osv.
Her har jeg smidt en ListBox og en Button på en form og indtastet "Billede program" og "Skrive program" i listboxen, når jeg trykker på knappen vil de 2 programmer starte i den rækkefølge de står i i listboxen.
procedure StartProgram(Hvad : string); begin if Hvad='Billede program' then ShellExecute(0,Pchar('Open'),Pchar('Notepad.exe'),nil,nil,SW_SHOW); if Hvad='Skrive program' then ShellExecute(0,Pchar('Open'),Pchar('mspaint.exe'),nil,nil,SW_SHOW); end;
//---------------------
procedure TForm1.Button1Click(Sender: TObject); var i : integer; begin for i:=0 to ListBox.Count-1 do StartProgram(ListBox.Items[i]); end;
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.